Documentation
Shozystock - Premium Stock Photo, Video, Audio, Vector and Fonts Marketplace
Created: 12, January 2024 by Miguel Vasquez
Last update 21, April 2025Table of Contents
Shozystock is a platform for high-quality premium files, whether photos, videos, audio, vectors or fonts, for multi-vendors or individuals, where they can sell their resources via subscription or direct purchase.
Requirements:
- PHP >= 8.2
- MySQL 5.7 or Mariadb 10.3.17
- Fileinfo PHP Extension
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
- BCMath PHP Extension
- cURL
- GD Library
- allow_url_fopen (PHP.INI) is ON
IMPORTANT:
Make sure your server has PHP 8.2 or higher and MySQL 5.7 as a minimum
IMPORTANT:
if you are running Nginx, please follow these instructions Nginx Configuration
Setting MySQL
- 1.) Create a database
- 2.) Create a user for database
- 3.) Import the Database
- Log into your phpMyAdmin and import the
shozystock.sql
file located in the folderMySQL



Uploading Files
- Upload all files inside the folder
"Script"
to the"public_html"
or"www"
folder on your server. You can compress the files or use FTP.

Installation
- After you have uploaded all files, go to
https://yousite.com/install
- This screen will appear, all the boxes must be green to proceed with the installation.
- On the next screen the file and folder permissions will appear, if all of them are green you will be able to continue.
- Next, configure your database, enter the name of your database, username, host and password.
- Next, create the Admin account, enter your name, email and password.
- If everything goes well, a success notice will appear, the installation is now complete.
- Create Cron Job
- Click on Cron Jobs
- Click on Common Settings and select Once Per Minute





IMPORTANT: It is very important to create a Cron Job so that massive image uploads, automatic wallet renewals, sending queued emails, among other things, can work.


/usr/local/bin/ea-php81 /home/username/public_html/artisan schedule:run >> /dev/null 2>&1
Important: if it doesn't work with /usr/local/bin/ea-php81 or whatever PHP version you have try /usr/local/bin/php
https://yousite.com/panel/admin/google
IMPORTANT:
choose reCAPTCHA v2 and Invisible reCAPTCHA

stripe/webhook
Signing secret
to reveal the Stripe Webhook Secret that you must place in Dashboard > Payment Settings > Stripe
2023-10-16
Client ID
and Secret
in Panel Admin > Payments Settings > PayPal
.Webhook URL
field paste your webhook URL https://yourwebsite.com/webhook/paypal
Webhook ID
in Panel Admin > Payments Settings > PayPal
Panel Admin > Payment Settings > Paystack
Callback URL
Webhook URL
put https://yourwebsite.com/webhook/paystack


Account Settings -> Merchant Settings -> IPN

Panel Admin > Payment Settings > Coinpayments

Panel Admin > Payment Settings > Flutterwave


settings
and then Payment methods


IMPORTANT:
This step is essential, not doing it will not work.
Panel Admin > Payment Settings > Mollie
Panel Admin > Payment Settings > Razorpay
Panel Admin > Payment Settings > Coinbase
https://yourwebsite.com/webhook/coinbase
Panel Admin > Payment Settings > Coinbase

Panel Admin > Payment Settings > Instamojo

- What type of payment solution are you integrating? choose
Online Payments
- Are you using an e-commerce platform? choose
No
- What product are you integrating? choose
CheckoutPro
- Integration model
Leave blank

Access Token
from Production credentials
Access Token
to Panel Admin > Payment Settings > Mercadopago
Storage
- Go to
https://yousite.com/panel/admin/storage
- avatar
- cover
- uploads
- avatar
- cover
Wasabi in trial mode does not allow public files, you must send an email to support@wasabi.com to enable public files, or avoid trial mode.
Important: If you want to migrate your site to any storage service (Amazon, DigtalOcean or Wasabi), you must upload the following folders located in the public folder of your current site:
Important: If your site is new you should upload only these folders located in the public:
Push Notifications (OneSignal)
- Get yourself account Onesignal
- Step 1:
- Step 2:
- Step 3:
- Step 4:
- Go to Panel Admin > Push Notifications enable and set the OneSignal App ID and OneSignal Rest API Key




Coconut® Settings
IMPORTANT: To encode watermarked videos you must set up a Coconut® account otherwise you will not be able to upload videos.
- Create an account from here https://app.coconut.co/signup
- Get your API key from here https://app.coconut.co/api
- Enter the API key and configure in
Panel Admin > General Settings > Video encoding
Note:
You can use the free plan, but I recommend that you activate the paid plan so that you can encode multiple videos at the same time.
OpenAI
- Create an account from here https://platform.openai.com
- Go to https://platform.openai.com/api-keys
- Click on Create new secret key
- Enter the API key and configure in
Panel Admin > AI Generator > Settings
PhotoTag
- Create an account from here https://www.phototag.ai
- Buy credits from here https://www.phototag.ai/pricing
- Go to https://www.phototag.ai/api and click on Create new token
- Enter the API key and configure in
Panel Admin > PhotoTag
Imagga
- Create an account from here https://imagga.com/
- Go to https://imagga.com/profile/dashboard and copy
API Key
andAPI Secret
- Enter the API key and configure in
Panel Admin > Imagga
Algolia
-
Sign Up or Log In
- Visit https://www.algolia.com.
- Click “Start free” to create an account or “Log in” if you already have one. -
Access Your Application Dashboard
- After logging in, you'll be directed to your Dashboard.
- If you have multiple applications, select the one you want to use. -
Navigate to the API Keys Section
- In the left-hand sidebar, click on “API Keys”.
- Here, you'll find your application's API keys, including:- Application ID
- Write API Key (keep this confidential)
-
Copy and Store Your Credentials
- Click the copy icon next to each credential you need.
- Store these credentials securely; you'll use them to connect your application to Algolia. - Enter the API key and configure in
Panel Admin > Advanced search
Meilisearch
-
Launch or Access Your Meilisearch Instance
- Meilisearch Cloud: Log in to your account at cloud.meilisearch.com.
- Self-Hosted: Start Meilisearch with a master key:
./meilisearch --master-key 'your_master_key'
Ensure your master key is at least 16 characters long. -
Navigate to the API Keys Section
- In Meilisearch Cloud, go to your project dashboard and click on “API Keys”.
- In a self-hosted setup, use the following command to retrieve existing API keys:
curl -X GET 'http://localhost:7700/keys' \ -H 'Authorization: Bearer your_master_key'
-
Identify Your Default API Keys
Meilisearch automatically generates two default API keys:
- Default Admin API Key: Use this key for administrative tasks. Keep it confidential and do not expose it publicly.
-
Copy and Store Your Credentials
- Click the copy icon next to each key in the dashboard, or copy them from the command-line output.
- Store these keys securely for use in your application. - Enter the API key and configure in
Panel Admin > Advanced search
Websockets
- Go to Pusher dashboard and go to the Channels category.
- Click on
Create app
Select aname
andcluster region
at your preference. - Next up, you should be redirected to your new app page. If not, head over Apps and select your app.
- Enter the API key and cluster region in
Panel Admin > General Settings > Websockets
Customize
- Language files
- To change the script language go to: lang / en / Edit the text strings of all the files in are in that folder.
/*
|--------------------------------------------------------------------------
| Admin Language Lines
|--------------------------------------------------------------------------
|
*/
'admin' => 'Panel Admin',
'role_admin' => 'Admin',
'dashboard' => 'Dashboard',
Note:
You should only edit the right string, i.e .: 'role_admin' => 'Edit this...',
How to add a new language
https://yourwebsite.com/panel/admin/languages/create
and add you new lenguageTranslate Categories
<?php
return array(
/*
|--------------------------------------------------------------------------
| Categories Language Lines
|--------------------------------------------------------------------------
|
*/
"animals" => "Animales",
"architecture" => "Arquitectura",
"backgrounds" => "Fondos / Texturas",
);
Translate Subcategories
<?php
return array(
/*
|--------------------------------------------------------------------------
| Subcategories Language Lines
|--------------------------------------------------------------------------
|
*/
"bears" => "Osos",
"butterfly" => "Mariposas",
"cats" => "Gatos",
"dogs" => "Perros",
);
Translate Pages
Sitemap
https://yoursite.com/sitemaps.xml
Sitemap Images
https://yoursite.com/sitemaps-media.xml
Troubleshooting
storage / framework
and delete the file named down
and file maintenance.php
go back to Dashboard > Maintenance mode
put "off" and then "on" again, whenever you want to have your site in mode maintenance.Dashboard > Email settings
).htaccess
file has not been corrupted when uploading to your server..env
file has not been corrupted when uploading to your server. It must have a dot before the name, and you must have at least PHP 8.2Make sure these folders have 0755 permissions
FilesBasic PHP configuration
max_execution_time
minimum 6000memory_limit
set to 512Mpost_max_size
set the maximum upload value you wantupload_max_filesize
must be the same maximum value of post_max_size
How to update
Upgrades
folder, select the version you want, click on the README.html file and follow the steps.Sources and Credits
- Laravel - http://laravel.com/
- jQuery - http://jquery.com/
- Bootstrap - http://getbootstrap.com/
- Font Awesome - http://fortawesome.github.io/Font-Awesome/
- jquery Form // malsup.com/jquery/form/
- jqueryTimeago.js // http://timeago.yarp.com/
- Readmore - http://jedfoster.com/Readmore.js/
- Images - unsplash - http://unsplash.com/ -- splitshire http://www.splitshire.com/
- Fonts - https://www.google.com/fonts
- http://www.tinymce.com/
- https://ckeditor.com/
- https://www.chartjs.org
Any problem or doubt send me an email to support@miguelvasquez.net
Do not forget to visit miguelvasquez.net
Thank you for purchasing my script 😉