Sellfino Open Source Shopify App Store is the PHP & Vue.js based platform with free apps for Shopify and framework for developing custom ones. You can now use and modify apps that do the same work as your paid ones from offical Shopify Store - for free
All apps in one place!
Developers! Add as many client stores as you want! No more duplicating apps for every client. Let them share the same code - or write private apps that can be used on the selected stores.
Support and Contribution
Join our awesome community! Here is how you can connect with us:
- Website - all info here + live chat
- Discord - channels to discuss new ideas and ask for help
- Messanger - if you want to chat on Facebook
- Email - whenever we are out of touch, drop us a message
|Out of Stock Manager||Let your customers know when out of stock products are available again|
|Metafields Editor||Edit metafields for products, collections, store and more|
|Zero Stock to Hide||Hides products from your store automatically when out of stock|
|Pre-Order Creator||Manage pre-order & coming-soon products|
|FAQ||Let your customers ask questions and manage the answers|
|Low Stock Watcher||Automate email alerts for low stock products|
|3D Rotate||Display full perspective of the product in your theme|
|Loyalty Program||Reward your customers with discounts and other bonuses|
|More to come||Join Discord and send your ideas for new apps|
- PHP 7.* - whole platform is flat-file based so simple hosting should do the work
- SSL Certificate - embedded apps are obliged to use https when using API. Either buy one of the SSL Certificates or find hosting with free Let's Encrypt feature (i.e. Bluehost.com)
- Shopify Partner Account - you need API keys to authenticate the app
- Cron - this is optional, but useful when you need to manage heavy processes (like importing 1k products, sending emails, etc.)
- Composer - If you don't have access to composer, go here and copy everything into the root folder of the platform.
1. Shopify Partner Account
- 1.1. Go to the Shopify Partner website https://partners.shopify.com and setup your account.
- 1.2. When it is ready, login to your new account and click Apps.
- 1.3. Now click Create App.
- 1.4. Name your app first (i.e. Sellfino App Store), then provide URL to your hosting, where you will put our platform (in our example: https://your-app-domain.com/).
- 1.5. In Whitelisted redirection URL(s) provide these links (keep both with slash and without at the end):
- 1.6. Click Create App button on top bar.
- 1.7. Copy and save API key and API secret key - we will use them later in our environment variables.
- 1.8. Go to the Extensions and make sure that Embedded app is active (green tick box should be right to this title).
2. Platform setup
- 2.1. Copy whole code from the Sellfino repository and upload it to your server.
- 2.2. Run
composer installin the root folder. If you don't have access to composer, go here and copy everything into the root. These are all vendors that are needed to run the platform.
- 2.3. Rename
.envand edit this file.
- 2.4. Replace API keys with those that you got earlier. Under HOST provide URL to your hosting where you put the platform. Under SCOPE there are requirements needed to make future apps work - you can remove or add new ones based on what you need. Full list is here.
- 2.5. Point your domain to
public_htmlfolder in your hosting control panel.
3. Adding stores
- 3.1. Go to your app's domain (i.e. https://your-app-domain.com) - you should see form to provide URL of store.
- 3.2. Add store's URL of yours or your client. Remember to use domain with
- 3.3. You should be redirected to your store - accept everything and it's done - you can go to the new master app (Sellfino App Store) and add apps you have. Congratulations!
- 3.4. If your or yours client store uses custom domain, you need to add it to the whitelist. After successful installation of the new store, in the root folder of the platform you should see
.domainfile. Add your all domains here and point them to
*.myshopify.comprimary domain of the store. It will filter all of the calls to your server and reject ones not from your stores. Example:
- 3.5. You can add as many stores as you want. Every store has its own folder under
storesdirectory and JSON database.
- 4.1. To install new app, you need to copy folder of this app and put it under
- 4.2. When you go to the master app, you should see it in the Disabled list. Now you only need to click green button to activate it.
- 4.3. Go to the Settings and provide SMTP details if you want to send emails to your customers.
Based on the apps that we implemented, you can write your custom ones. Please make sure that you use unique handle - it should be also the same as the app folder's name.
To do that, open
info.json file of the app and add:
If you need to show it on multiple stores, separate domains with coma:
Use domains with
There are some tasks that are quite heavy for server to process - importing large number of products, sending thousends of emails, etc. Without proper solution, you could end with blocked pipeline of action, waiting minutes or more for task to finish, until you could do next thing. We can solve this problem with queues.
In simple words - instead of running the task immidiately, we postpone it to run it by Cron. Here is an example:
- App wants to send email. Instead of sending right the way, platforms saves details of the email and other important things in JSON file, under
queuefolder. You can now do other things in your apps.
- You setup Cron to run Worker that checks if there is any task to do - it's being done in the background. If Worker sees there is file in the
queuefolder, it reads it, start the program attached to it and deletes the file after that, so it will not be run in the next round.
Here is the example how the code for Cron should look like (it will run every minute, 24/7):
* * * * * php /home/your-app-domain.com/public_html/worker.php
Here is the list of awesome stuff we used to build our platform:
- Argon Dashboard - one of the most beautiful (and free) dashboard themes
- Icons8 Animal Icons - the whole library of fantastic icons (we use animals because they look cute
Copyright (c) 2019-present, Lucas Szarzynski