How it works, from first click to first order
Seven steps take you from an empty builder to a shop running on your own hosting. Building and previewing cost nothing and need no account. You pay once, a person checks the payment by hand, and the ZIP is then yours to keep.
The five stages, in order
The seven numbered steps further down are these five in detail: choosing is step 01, adding your business and your products is steps 02 and 03, building the site is steps 04 to 06, and deploying it is step 07. Customizing is the stage that never finishes — it happens in your shop's own admin panel, for as long as you run the shop.
- Choose Pick a ready-made theme
- Add Your business and your products
- Build Your website is assembled
- Customize Colours, content and menu
- Deploy Upload the ZIP to your own hosting
The setup walkthrough on video
Video Tutorial Coming Soon
-
Choose Theme
Open the builder, pick your package and then the design you want. There is no account to make, no email address to hand over and nothing to install: the builder opens straight away, and every design is free to browse and free to preview.
- Your package decides how many designs you may choose from. One that yours leaves out is marked on its own card and names the plan that opens it.
- The design is not settled until the store is packaged, so you can go back and change your mind while you work.
- Every design is built mobile first, because most shoppers here arrive on a phone.
-
Customize
Fill in your business details — shop name, tagline, your story, phone, WhatsApp, email, address and your Facebook, Instagram, YouTube and TikTok links. Then set your brand and accent colours, write the homepage heading, the line under it and the button text, add an announcement bar, and give the title and description search engines will show.
- Colours are picked from a swatch or typed in as a hex code, and every page of the shop follows them.
- The announcement bar runs across the top of the shop, which is the usual place for a delivery offer or a holiday notice.
- Nothing here is permanent: business details, colours, homepage text and pages all stay editable in the admin panel of your own shop after launch.
-
Build
Add your products — name, category, price, sale price, stock and a photo — or start from the demo catalogue that is already loaded and edit it into your own. Everything you type stays in your own browser at this stage: nothing is written on our side, no store record is created for you and no ZIP exists.
- Because the build is held in your own browser, you can close the tab and come back to it later in the same browser.
- A sale price is optional, and anything carrying one is listed on the Offers page of your shop automatically.
- Your package sets how many products you may list.
- An account is needed only when you want the build saved to a dashboard, and payment only when you want the ZIP.
-
Preview
Open the preview and click through the whole shop: home, all products, the category list, one category, a product, offers, cart, checkout, the order-received page, order tracking, about, contact and your written pages. It is the real design drawing your real products, not a screenshot, and the frame switches between phone, tablet and desktop widths.
- The preview runs the same theme files the downloaded shop ships with, so what you are looking at is what you will get.
- Your build is sent to the server for that one page view and kept only for the length of your visit. Nothing is saved on our side by looking.
- Preview needs no payment and no account.
-
Payment
When you are happy with it, create a free account and the build comes with you as a store you own. Confirm your package on the submit page, then record your payment: you send the money yourself by bKash, Nagad, Rocket or bank transfer, to the number or account shown on the payment page.
- Submitting is two screens — confirm the package, then record the payment — and it is the payment record that moves your store into the review queue.
- We need the number or account you paid from, and either the transaction ID or a screenshot of the confirmation, so that there is something to check the money against.
- Which methods are on offer is up to the operator; bKash, Nagad, Rocket and bank transfer are the standard four.
- Nothing is ever deducted automatically and no card details are asked for.
- One payment for the shop: no subscription and no monthly fee.
-
Download
A person on our side matches your payment against your submission by hand, and it is that approval which unlocks the download — nothing earlier. You then choose the email and password for the admin panel of your own shop, and the ZIP is packaged at that moment.
- You can carry on editing and previewing while the payment is in review.
- The login you choose here is separate from your StoreForge Pro account: it is the one you will use on your own hosting. The password is kept only as a hash and can never be shown back to you, so write it down somewhere safe.
- Pressing the build button is what creates the archive. From then on that store is your final build: it stays downloadable, every download hands you the same file, and the project here is closed to further changes.
- Anything you want to change after that is changed in the admin panel of your own shop, which is where a live shop is run from in any case.
- A licence key is issued with the build. You will find it in your own admin panel under Settings, and deliberately not in any file inside the archive.
- The archive holds the whole shop: every storefront page, your own admin panel, your products and images, and README.txt, LICENSE.txt and SETUP-GUIDE.html alongside them.
-
Launch
Upload the ZIP to your own hosting and extract it there, set the data and uploads folders to permission 755, then open yourdomain.com/admin/ and sign in with the email and password you just chose. From that moment the shop runs on its own: no database, no monthly fee and no connection back to us.
- Ordinary shared hosting running PHP 8.0 or newer is the whole requirement, plus a domain. No MySQL, no Node.js, no Composer and no SSH.
- What will not work: static-only hosting such as GitHub Pages or Netlify, and any account still on PHP 7. Neither can run the pages at all.
- The shop makes no online licence check and never contacts us, so it keeps working whatever happens to your connection or to us.
- The same instructions travel inside the ZIP as SETUP-GUIDE.html, with the short version in README.txt, so you can read them on the laptop you are uploading from with no internet at all.
Customize: everything you change from your own admin panel
Once the archive is built, this side of the project is closed and the shop is run from its own panel — which is where a live shop is run from in any case. Your panel is /admin/ on your own address, and every item below is a screen in it.
-
Products, categories and coupons
Add, edit and remove products, sort them into categories, and issue discount codes. Products, Categories and Coupons in the panel menu, and every change shows on the shop at once.
-
The menu across the top
Navigation builds the bar yourself: rename a link, move it up or down, hide one for a while without deleting it, point one at a page you wrote, add one that leads somewhere else, or delete it. Empty the menu completely and the shop falls back to its six standard links rather than showing nothing.
-
Your own written pages
Pages holds the ones customers keep asking about — delivery, returns, privacy, terms — and anything else you want to write. One file serves them all: the address carries the page name, as in /page.php?s=delivery, and your footer links to them already.
-
Homepage words and section order
Homepage & text sets the big heading, the line under it, the button, the announcement bar across the top, and the title and description search engines show. Design sets which parts your homepage is made of and the order they run in.
-
Your colours
Design has two kinds. The main colour and the second colour each become a family of a dozen shades your whole design is painted out of, so saving one reaches the buttons, links, prices and badges at once. Eight more are flat — header, page, writing, cards, buttons, their labels and the quiet fills — and each starts empty, meaning leave that part of the design alone. Emptying a box puts the design back.
-
Your services page
What you do fills in /services.php, for the things you do besides selling. It starts empty and says so in a single line until you list something, so it is safe to put in your menu straight away.
-
Your gallery
Your pictures fills in /gallery.php, for photographs of the shop itself. Empty until you add some, and empty says so rather than showing a blank grid.
-
Questions and answers
Questions and answers fills in /faq.php and the questions section of your homepage. Up to ten, each one shown or hidden on its own, and with nothing written the section is left off the homepage altogether.
-
Business details, contact and branding
Business details holds your shop name, tagline, your story, phone, WhatsApp, email, address, your Facebook, Instagram, YouTube and TikTok links, and your logo and favicon. Payments holds the bKash, Nagad, Rocket or bank details customers read at checkout, and Delivery charges holds the delivery fee and the order value above which delivery is free.
-
Backups
Backup & data wraps every list in data/ and every photograph in uploads/ into one file named after your shop and today's date, hands it straight to your browser and deletes its copy from the server. Take one before you change a lot of prices, and keep the file somewhere other than your hosting.
Deploy: from the archive to a live shop
This is the part where a shared-hosting user gets stuck, so here it is in order. There is no database to create, no terminal and nothing to install: you are moving one file into one folder and extracting it there.
- Build
- Download ZIP
- cPanel
- Upload
- Extract
- Connect domain
- Live
-
One file, and it is the one you downloaded
The download hands you a single archive named after your shop and the moment it was built, in the shape freshmart-20260904-101530.zip. That file is the whole website. Upload the ZIP itself and use your hosting's own Extract, because six of the files inside are named .htaccess and the dot at the front of the name is what makes your computer hide them — extracting on the server is how they cannot be left behind. README.txt inside describes the other route, unzipping first and uploading the contents, and if you take it then switch hidden files on before you drag anything: in cPanel File Manager that is the Settings button, then Show Hidden Files. A shop uploaded without those six looks perfectly normal while your orders sit in the open.
-
Where it goes, and the address you get
In cPanel, open File Manager and go into public_html. Extract there and index.php lands directly inside public_html, which means the shop answers on https://yourdomain.com. To put it at https://yourdomain.com/shop instead, make a folder called shop inside public_html and extract into that. The folder you extract into is the address, and there is no setting to change either way: the shop works its own address out from the request on every page it draws.
-
Pointing a domain or a subdomain at it
Nothing inside the shop has to be told its own domain. In cPanel this is the Domains screen — Addon Domains for another domain you own, Subdomains for shop.yourdomain.com — and each one asks you for a folder. That folder is the one to extract into, and a subdomain with its own folder and a folder under public_html are the same job done two ways. A domain bought somewhere else needs its nameservers changed at the registrar to the ones your host gives you, and that is the only part of this that is not immediate.
-
Your admin panel, and the first sign-in
Your panel is /admin/ under whatever address the shop answers on: https://yourdomain.com/admin/, or https://yourdomain.com/shop/admin/ if you extracted into a folder. The email and password are the ones you set on the download page before the archive was packaged, and a later rebuild reuses them unless you type new ones. They travel inside the ZIP as data/admin.json, the password as a hash and never as itself, so nothing can print it back to you — write it down before you build. README.txt in the archive names the address of your panel and deliberately not the email, because it sits in your web root where anybody who guesses its name can read it.
-
What the hosting has to be
PHP 8 or newer, and that is the whole requirement — README.txt inside the archive states it in those words. Nothing checks the version while the shop runs, so an account still on PHP 7 does not greet you with a polite message: the first page to call a PHP 8 function stops with a fatal error, which reaches you as a blank page or a 500. Set Select PHP Version in cPanel to 8.0 or higher before you upload. There is no database to create, no Composer, no Node.js and no SSH, and static-only hosting such as GitHub Pages or Netlify cannot run the shop at all.
-
What is inside the archive
The storefront pages and their shared includes at the top level, theme/ holding the design you chose, data/ holding your config, products, categories, orders, coupons, messages, subscribers, pages, admin and settings as plain JSON, uploads/ holding your pictures, and README.txt, LICENSE.txt and SETUP-GUIDE.html beside them. Sixteen storefront pages plus the panel, and you do not have to create any of them. Two folders have to be writable: data/ and uploads/.
The six jobs, in the order you do them
-
Upload the ZIP to your hosting
Sign in to your hosting control panel — cPanel for most providers, and Plesk or DirectAdmin work the same way — open File Manager and go into public_html. Upload the ZIP itself into that folder rather than unzipping it on your computer first.
For a shop at yourdomain.com/shop, make a folder called shop inside public_html and upload into that instead. While you are in the panel, check the account is on PHP 8.0 or newer under Select PHP Version, and ignore the database section entirely: there is no database to create.
-
Extract it on the server
Right-click the ZIP in File Manager and choose Extract. index.php has to end up directly inside public_html and not inside a second folder. Delete the ZIP afterwards, so that a visitor cannot download your whole site in one file.
Extract on the server rather than dragging files across from your computer, because the shop carries six files whose names begin with a dot — .htaccess in the main folder and again in data, includes, uploads, theme and admin/inc — and that dot is what makes your computer hide them. Those six are what keep your orders and your login private. A shop uploaded without them looks perfectly normal, with no error and no warning, while anyone who types data/orders.json after your web address can read every customer name, phone number and address the shop has ever taken.
So type that address in yourself once you are done. You should be refused. If you see the contents of the file instead, data/.htaccess did not arrive — put that right before you tell anybody the shop is open.
-
Set the folder permissions
Two folders have to be writable by the web server: data, which holds your products, orders and settings, and uploads, which holds your images. In File Manager, right-click each one, choose Change Permissions and set 755. If saving fails on your host, try 775.
The .json files inside data need permission in their own right as well, because the shop opens each file and writes into it rather than replacing it. Set those to 644, and to 664 if a price will not stick or an order never appears — on many hosts the web server runs as a different user from your FTP login, and 664 is what lets the two share. Nothing in the shop ever needs 777.
-
Sign in to your own admin panel
Open yourdomain.com/admin/ and sign in with the email and password you set on the download page before packaging. The email is the one you signed up with, unless you typed a different one there; if you are not sure which you used, the download page still shows it.
That login belongs to your shop and to nothing else. It is separate from your StoreForge Pro account, and README.txt inside the archive deliberately does not print it, because a .txt file sitting in your web root can be read by anybody who guesses its name.
-
Change the password
Settings in your own panel has a Change your password box: type the one you have now, then the new one twice.
If you have forgotten it, no email can reset it — your shop sends no email and asks us nothing. The way back is data/admin.json from a backup you took while you still knew the password. That one file holds the login and nothing else, so putting it back changes nothing else about the shop; replacing the whole data folder would wipe your orders. Take that backup now, from Backup and data in your own panel, and keep the file somewhere other than your hosting. Do not empty the password_hash value to let yourself in: an admin account with no password cannot be signed in to at all, and with no backup to hand the thing to do is ask us before you change anything else.
-
Add your products
Your products, categories, colours and pages arrive already in place, so nothing here is urgent. From now on the catalogue lives under Products, Categories and Coupons in your own panel, and every change shows on the shop at once.
Four settings are worth doing on the first day: the delivery charge and the order value above which delivery is free, both of which appear at checkout immediately; your payment instructions, meaning the bKash or Nagad number or the bank details your customers read on the checkout page; your contact phone and address, which show in the footer and on the contact page; and one test order placed through your own checkout, which is the quickest way to see exactly what a buyer sees.
Your customers never register. They browse, add to the cart and order as guests, then follow the order afterwards with the order number and the phone number they gave.
When it does not work
Three things go wrong on shared hosting, and every one of them is silent — the shop looks finished while one of these is true.
-
data/ is not writable
A price saves and comes back unchanged, or an order never appears in Orders, and nothing tells you why. The folder needs 755, or 775 where 755 will not save, and the .json files inside it need 644 — 664 on a host where the web server and your FTP login are different users. Your shop opens each file and writes into it rather than replacing it, so the files need permission in their own right and not only the folder holding them. Nothing in the shop ever needs 777.
-
It was extracted into the wrong folder
If index.php ended up inside a second folder — public_html/freshmart-20260904-101530/index.php — your address shows a list of files or a 404 instead of a shop. Move the contents up one level so index.php sits directly inside public_html, then delete the ZIP, so that nobody can download your whole site in one file.
-
The host ignores .htaccess
On nginx, or on Apache with AllowOverride switched off, the six .htaccess files in your archive do nothing at all — and the shop still looks perfectly normal while anyone who types data/orders.json after your address can read every customer name, phone number and address you have taken. Test it yourself the moment you are live: you should be refused. If you are not, ask your host for the same three rules by hand — do not serve anything from data/, includes/ or admin/inc/, do not list the contents of folders, and do not run PHP inside uploads/.