Setting up your store
New project → E-commerce. The project opens on a short wizard; answer it and the whole store is built for you.
Eight steps — your store, outlets, products, payments, returns, delivery, the POS, and a review. Each step is saved when you go on, so you can leave and come back where you were. Nothing is built until you press Set up my store on the review; then it takes about a minute, and you can leave the page while it runs.
A store is still a normal project: you can build your own models next to it, link them to products, orders or customers, and use automations, PDF templates and the public API as in any app.
Currency and order numbers
| Answer | What it does |
|---|---|
| Currency | The money the store sells in — your organization’s country’s by default. |
| Order number prefix | Orders are numbered with it: ORD00001, ORD00002… Changing it later numbers new orders only. |
| Sell items the outlet has none of | Off (the default): the POS refuses a sale bigger than the outlet’s stock. On: stock may go below zero, to be counted later. |
| Guest checkout on your website | On (the default): buyers can order on your website without an account. Off: they sign in or sign up first. Your website reads this setting from your project’s public API (GET /store). |
Outlets
Every shop, stall or warehouse — each keeps its own stock.
- A store sells: the POS opens at a store, and a register (till) is made at each one.
- A warehouse keeps stock and sends it on to stores with a stock transfer.
- Each needs a short code (MAIN, DHK-1) — it’s printed on receipts.
After setup, outlets are records of their own on the Outlets page: add, rename or close them there.
Products and variations
| Answer | What it does |
|---|---|
| Products come in variations | Sizes, colours, flavours. Each variation (a variant) has its own price, SKU, barcode and stock, and the POS asks which one. Off: each product is one item — MINT keeps one hidden variant for it. |
| What products vary by | Up to three option names (Size, Colour). Each product picks its own values. |
| Scan barcodes | The POS adds an item when its barcode or SKU is scanned or typed. |
| Track stock | The default for new products; off for services or made-to-order items. |
| Brands | Shows a Brands page and a brand on each product. |
How customers pay
| Kind | How it works |
|---|---|
| In the store | Cash, card on your own terminal, bank transfer, and — in Bangladesh — bKash, Nagad and Rocket by reference. The POS records the amount and the slip or transaction id; it doesn’t charge cards itself. |
| Your own ways | A gift voucher, a cheque: named once, picked at the till like the others. |
| Online | Your own Stripe, SSLCommerz or bKash merchant account (by your country), for payment links on orders and refunds back to the card or wallet. Add the keys on Payments after setup. |
A sale can be paid several ways at once (part cash, part card); cash shows the change to give.
Returns and refunds
| Answer | What it does |
|---|---|
| Take returns | Off: orders can’t be returned. |
| Returns accepted for | Days after the sale; 0 for no limit. |
| Part of an order | Some lines, or some of a line’s quantity. The refund is worked out from what was paid for those items — their share of discounts and coupons included, tax as charged. |
| Back to stock | The default for each returned item; damaged ones can be kept out of stock. |
| Store credit | A refund can go to the customer’s credit, spent later at the POS like money. |
| Refund by | Which ways money goes back: the way they paid (online payments through the gateway), cash, store credit, or another way noted by hand. |
Delivery and couriers
Switch on Deliver orders for orders taken by phone or by hand that go to the customer: they get a delivery address and a shipping charge from the list you set. Pick the couriers you use (in Bangladesh: Steadfast, Pathao, RedX — or a courier without an API, typed by hand) — an order’s page then has Send to courier, which books the parcel with your own courier account and follows it. You connect each account after setup, on Delivery settings: see Your courier accounts.
The POS
| Answer | What it does |
|---|---|
| Receipts | 80 mm receipt printer or A4, with your own lines at the top and bottom. Each receipt carries the order number, used to find the sale for a return. |
| Registers and shifts | A cashier opens a shift with the cash in the drawer, and closes it with a count; the POS shows what should be there and the difference. |
| Hold a sale | Park a basket and serve the next customer; pick it up later. |
| Discounts | Money or a percentage off an item or the whole sale. |
| Coupon codes | Codes from the Coupons page, checked at the till. |
| Every sale needs a customer | Off: walk-in sales are fine. |
| Tax | No tax, tax in the price (receipts show how much was tax), or tax added at the till — with one or more rates; a product can carry its own, and one without is charged the default rate. |
Review and set up
The review shows each step in one line; Needs a look marks a step with something missing. Press Set up my store. If the setup can’t finish, nothing of it is kept and the wizard says why — fix it and set up again.
What you get
A Store section (POS, Orders, Returns, Store settings) and an E-commerce section with the store’s pages.
| Page | Holds |
|---|---|
| Products, Variants, Categories, Brands | Your catalogue. Every sale is of a variant. |
| Outlets, Stock, Stock movements | Stock per variant per outlet, and every change with its reason. |
| Stock adjustments, Stock transfers | Counted, damaged or found stock; stock moved between outlets. |
| Customers, Store credit | Who buys, their orders and spending, and their credit. |
| Orders, Payments, Returns | Sales, money in and out (payments and refunds in one list), and items brought back. |
| Coupons, Tax rates, Registers, Shifts | As you switched them on. |
Pages for things you switched off stay hidden until you switch them on in Store settings.
Categories
How products are grouped — each category shown on the POS and your website as you choose, in its own order on each.
| Field | What it does |
|---|---|
| Web address | Its address on your website. Left empty, it’s made from the name: Local Chicken → local-chicken. One that’s taken gets -2, -3…, even when you type it. |
| Status on POS | Inactive: the category isn’t on the POS’s category bar. Its products still sell and can be searched. |
| Status on website | Inactive: your website’s category list leaves it out. |
| Order on POS · Order on website | The higher the number, the earlier it shows. Equal numbers go by name. |
| Image · More images | Its main picture, and more if your website uses several — a banner, a gallery. |
| Tax / VAT | The tax its products carry. Set or change it and every product in the category takes it, and their Price after tax follows (see Tax and prices). |
The website rule lives on the Categories list endpoint (API → Endpoints): a filter that leaves out what’s inactive on the website, sorted by Order on website. Change either there if your site needs something else. Like the rest of the store’s fields, these can be relabelled or hidden but not removed; add your own beside them.
Collections
Groups of products for your website — Sale, Featured, New in. Unlike its one category, a product can be in as many collections as you like.
| Field | What it does |
|---|---|
| Web address | Its address on your website, made from the name when left empty (Summer Sale → summer-sale); a taken one gets -2. |
| Status on website | Inactive: your website’s collection list leaves it out. |
| Order on website | The higher the number, the earlier it shows. Equal numbers go by name. |
| Description · Image · SEO | What your website shows on the collection’s page, and how that page looks in search results and shared links. |
- Put a product in collections from its form: Collections, under Category and Brand.
- Or from the collection’s page: its Products tab lists what’s in it. Add existing picks products already there (they keep their other collections); Remove on a row takes that product out — the product itself stays. Add product makes a new one already in it.
- Collections are for your website only — the POS keeps to its categories.
On your website, the Collections list endpoint leaves out the inactive ones, sorted by Order on website, and a collection’s products are the Products list with ?collections=<its id> (API → Endpoints). See also tabs that add existing records.
Tax and prices
One tax rule, from the category to the till — the price on the page is the price charged.
- Tax rates holds your taxes (VAT 15%…) with a Status and one Default. A product with no tax of its own is charged the default rate.
- A category’s Tax / VAT goes to every product in it, and a product moved to a category with a tax takes it. A new product with no tax takes its category’s.
- A variant always has its product’s tax — it can’t be set on its own.
- Price after tax is worked out for you from the price and the tax the till would charge, by your store’s tax mode: tax added on top, tax already in the price (it equals the price), or no tax. Edit a rate, the default or the tax mode and every price follows.
- Switch a tax to Inactive and it comes off every category, product and variant that had it (their price goes back to the bare price). Switch it back to Active and exactly those get it back.
- A tax in use can’t be deleted: you’re told how many products, categories and variants have it, and Replace with… moves them all to another active tax first.
These rules run as System automations (Automations): you can switch each on or off and read what it did in Runs, but not edit or delete it.
Variants, SKUs and barcodes
Every sale is of a variant — one size and colour of a product, or the product itself.
- Give a product its options (Size: S, M, L · Colour: White, Navy) and save: its variants are made from every combination. Add a value later and the new combinations appear; take one away and those variants stop selling — they’re never deleted, since orders and stock name them.
- A product without options has one variant of its own, hidden, that follows the product’s SKU, barcode and status.
- A variant can have its own SKU, barcode and price; an empty price is the product’s. Its tax is always the product’s.
- SKUs and barcodes are one item’s each — saving one that another item has is refused, naming who has it.
Stock: counts, adjustments, transfers
Stock is kept per variant per outlet, and every change is a stock movement saying why.
| To… | Do this |
|---|---|
| Put in opening stock or a count | Open the product → In stock, click the figure for the outlet, and type what’s there (or how many to add or take away). |
| Write off damaged or lost items, or count many at once | Stock adjustments → New: pick the outlet and reason, find the items, type what was counted (or the change, − to take away), then Apply. It applies once. |
| Move stock between outlets | Stock transfers → New: from, to, the items and quantities, then Send — it leaves the first outlet. Receive when it arrives and it’s added to the second. A sent transfer can be cancelled, which puts it back. |
| See what happened | Stock movements: every change with the item, outlet, how much, the figure after it, why and its reference (the order, adjustment or transfer). |
Selling at the POS
Store → POS: the till, full screen. Prices, discounts, tax and totals are worked out by the store; the POS shows them.
| To… | Do this |
|---|---|
| Start | Pick the register you’re at (it’s remembered on this device). With shifts on, open a shift with the cash in the drawer first. |
| Add items | Scan a barcode or type a SKU and press Enter, or tap a product. A product with variants asks which one — with how many the outlet has. Tap a category to narrow the grid. |
| Change a line | Use − and + or type the quantity; the % button gives that item a discount; the bin removes it. |
| Add the customer | Add a customer: find them by name, phone or email, or add them as new. Their store credit shows under their name. |
| Coupon or discount | Type the coupon code and Apply, or Discount for money or a percentage off the whole sale. A coupon that can’t be used says why. |
| Take the money | Pay: the first way to pay is filled with the total. Add another way (+ Card, + bKash…) to split it — it takes what’s left. Cash can be more than what’s due; the change is shown before you finish. |
| Print the receipt | After the sale: Print (80 mm or A4, as Store settings say), then New sale. |
| Hold a sale | Hold parks the basket — nothing is taken from stock or paid. Held sales lists them at this register: Resume to carry on, Discard to drop it. |
| Cash in, cash out, close | Shift since … in the top bar: what the shift has taken by way of paying and the cash that should be in the drawer. Cash in / out records money put in or taken out; Close shift asks for the count and shows if it’s over or short. |
Orders
Store → Orders: every sale at the POS and every order taken by phone or by hand, newest first. Held sales stay in the POS.
| To… | Do this |
|---|---|
| See one kind | The tabs along the top: All, Today, Unpaid (nothing or only part paid), To fulfil (open orders not yet delivered), With returns and Cancelled. Each shows how many orders it has. |
| Find an order | Type its number, the customer’s name, phone or email, or the delivery phone. The tabs’ counts follow what you typed. |
| Narrow it down | All channels → POS or Phone / by hand; All outlets → one outlet (when you have more than one). |
| Open it | Click the row. |
An order’s page
Everything about one order in one place, with what you can do next across the top.
| Part | What it shows |
|---|---|
| Items | Each line with its SKU, price, quantity, discount and total — and how many came back. Under it: subtotal, discounts and coupon, tax, shipping, total, paid, refunded and the balance due. |
| Payments and refunds | Every payment and refund with how it was paid, its reference, when and by whom; cash shows the change given. |
| Returns | Returns made from this order and where each is; click one to open it. |
| Stock movements | What the order took out of the outlet’s stock (and put back if it was cancelled). |
| Timeline | Taken, paid, returned, completed or cancelled, in order. |
| Customer, Delivery, Details | Who it’s for, where it goes and the shipping rate, the channel, outlet, who sold it and the note. |
| More details | Any fields you added to Orders in Models, with this order’s values. |
| Action | What it does |
|---|---|
| Take payment | Shown while something is owed: pay all or part of the balance, split over several ways to pay. |
| Fulfil | Mark packed, shipped or delivered. Delivered completes the order. |
| Cancel | Before it ships: the stock goes back to the outlet and what was paid is refunded the way it came (store credit back to the customer). Add why — it’s kept in the note. |
| Print receipt | The receipt in the size Store settings say (80 mm or A4). |
| Return items | Taking items back and refunding them comes with the returns update; the button is there but not working yet. |
Returns
Store → Returns: items brought back, with the tabs All, Open (requested, approved or received), Refunded and Rejected. Search by return, order or customer.
- Requested — a return was asked for. Approve it, or Reject it.
- Approved — you agreed to take it back. Mark received when the items arrive (or Reject).
- Received — the items are back. The refund is paid from here, which marks it Refunded.
- Refunded or Rejected — Close it when it’s all done.
Your courier accounts
Store settings → Delivery settings, under Delivery: a card for each courier you turned on.
Each courier is your own merchant account with them: you open it, you paste its keys into Mint, the courier bills its delivery charges to you and pays the cash it collects straight to you. Mint never holds that money. Keys are kept locked away — Mint only shows whether each one is saved — and never go to your website or to an AI.
- Open a merchant account with the courier, if you haven’t one (each card links to its sign-up).
- Paste the keys from the courier’s own panel into the card, then Save & test. Mint asks the courier with them and says what came back — “Connected — balance ৳1,240”, or what’s wrong.
- Pick the courier’s settings: the pickup store (from your account), delivery type, the weight to use when an order doesn’t say.
- Copy the webhook address (and secret) from the card into the courier’s webhook page, so it tells Mint where each parcel is. Mint also asks about quiet parcels every 15 minutes, so nothing is missed if a call gets lost.
Connecting Steadfast
- In Steadfast’s dashboard, open API and add a key named “Mint”. Paste its API key and secret key into the Steadfast card and press Save & test.
- Open Steadfast’s Webhook page. Paste the Callback URL and Auth token from the card and press Save webhook. Steadfast keeps one address per account, so this replaces any address that’s there now. If you’d rather use Steadfast’s Generate button, paste the token it makes into the card’s “Or paste the token Steadfast generated” box.
Connecting Pathao
- In Pathao’s merchant panel, open Developer API → Merchant API Credentials (press Generate Credentials if it’s empty). Paste the client id and client secret, and the email and password you sign in to Pathao with — Mint uses them only to sign in to Pathao, and keeps them locked away.
- Pick the pickup store, delivery type (normal or on demand) and what you send (parcel or document).
- In Developer API → Webhook Integration, paste the Callback URL and secret from the card, choose All events, press Add Webhook and use Pathao’s test button.
Connecting RedX
- In RedX’s merchant panel, open Developer APIs → Configuration and request a token (the sandbox token is on the same page — use it with Mode: Test). Paste it and press Save & test, then pick your pickup store.
- In Developer APIs → Webhook, paste the address from the card and press Enable. RedX signs nothing, so the secret is inside the address — keep it private; New secret makes another one.
Couriers without an API
For Sundarban, a local rider or your own van — any country.
Turn on Manual courier and list the couriers you use, one per line: a name, then | and its tracking link with {tracking} where the code goes, if it has one — Sundarban | https://…/track/{tracking}. When you send an order, pick the courier and type the tracking code from their slip. Move the parcel on with Update status on the order; marking it delivered records the cash collected, just as with the other couriers.
Sending an order to a courier
An order’s page → Send to courier. Or several at once: tick them on Orders or Website orders → Send to courier.
| In the dialog | What it does |
|---|---|
| Courier | Only couriers that are connected and tested. |
| Recipient, phone, address | From the order — change them for this parcel only. Bangladeshi couriers need a mobile number (01…). |
| Areas | Pathao: city, zone and area (optional — Pathao reads the address when they’re empty). RedX: a delivery area (needed). They’re matched from the address, or filled in as you picked them before for the same place. |
| Cash to collect | What the order still owes, in whole taka — lower it, or 0 when it’s paid. Never more than it owes. |
| Weight, items, note | The courier’s default weight when the order doesn’t say; the note goes to the rider. |
An order’s parcel
The Courier card on an order’s page.
| Shows / button | What it means |
|---|---|
| Status | Booked → Waiting for pickup → Picked up → On the way → Out for delivery → Delivered; or On hold, Delivery attempt failed, Coming back, Returned, Cancelled, Lost. The order follows: picked up marks it shipped, delivered completes it. |
| Tracking | The courier’s code (copy it) and its tracking page, when the courier has one. Your website’s order page shows the same. |
| Cash | What the courier collects. When it’s delivered, a “Cash on delivery” payment is added to the order for what the courier says it collected. |
| Refresh | Asks the courier now. The page also asks when you open it, and Mint asks about quiet parcels every 15 minutes. |
| Label | A label for the parcel: courier, tracking barcode, recipient, cash to collect, order number. |
| Cancel | Before it’s delivered. Steadfast and RedX are asked to stop it and the status changes when they confirm. |
| Receive returned parcel | When it comes back: tick what arrived and whether it’s damaged. Sellable items go back into stock. A cash-on-delivery order is not refunded (it was never paid) — and if all of it came back, the order closes and owes nothing. |
| Mark paid out | For RedX and manual couriers, once they’ve paid you the cash. Pathao and Steadfast tell Mint themselves. |
Deliveries
Store → Deliveries: every parcel, by where it is — Not sent, Waiting for pickup, On the way, Delivered, Coming back, Returned, Cancelled.
Cash with couriers is what couriers have collected for you and not paid out yet, in all and by courier. Search by delivery, invoice, tracking code or phone; tick delivered parcels to mark them paid out. Two emails come with the store, switched off — “Tell the customer it’s on the way” and “…it’s delivered” — turn them on in Automations.
Checking a buyer
With Steadfast connected, Check the buyer in Send to courier shows how parcels to that phone number have gone across Steadfast: usually takes them, takes some and refuses some, or often refuses — then consider asking for payment first. “Not known” means too few parcels to tell. The answer is kept for a day; Steadfast limits checks by how many parcels you book.
What the store keeps to itself
Money and stock only move through the store — the POS, order pages, returns, adjustments and transfers — so they always add up.
- Orders, payments, returns, stock levels, stock movements, shifts and store credit are made by the store, not with an Add button. Their own fields you added can still be edited.
- Fields the store works out — stock on hand, an order’s totals, paid and refunded amounts, a customer’s credit — show greyed out in forms and can’t be imported or changed in bulk.
- In Models, the store’s own fields can’t be removed or turned into another kind, and its models can’t be deleted. Rename their labels, add your own fields and links, change the layout — that’s all fine.
Store settings
Store → Store settings: the wizard’s answers, a card each, saved on its own.
Switching something on shows its pages at once (coupons, brands, shifts…). Switching it off hides them — but not while it still holds what it made: variations stay on while a product has several variants, store credit while a customer has credit, shifts while one is open.
Troubleshooting
| Symptom | What to do |
|---|---|
| “The last setup didn’t finish” | The reason is shown above the wizard; nothing from it was kept. Check the step it names and set up again. |
| “… is kept by the store and can’t be changed here” | That field moves with sales, returns or counts. Use the POS, the order’s page or a stock adjustment instead. |
| “… is part of your store — some of its fields can’t change” | The field is one the store relies on. Rename its label or hide it from the page instead. |
| “Open a shift on this register first” | Shifts are on for your store: open one from the POS with the cash in the drawer, or switch shifts off in Store settings. |
| “Only 2 of … left here” | The outlet hasn’t got enough. Sell fewer, move stock in with a transfer, or count it in if the figure is wrong. |
| “Only cash can be more than what’s due” | A card, wallet or store credit can only cover what’s left to pay. Lower it, or take the extra in cash. |
| “Steadfast refused these keys” | Copy both keys again from Steadfast’s API page and Save & test. Wait an hour if Steadfast says the key is blocked. |
| “Already with Steadfast — DLV-…” | The order has a parcel on its way. Cancel that delivery first to send it again. |
| “… may have been booked” | The courier didn’t answer in time. Look for the order number in the courier’s panel; if it isn’t there, tick “I checked” and send again. |
| A parcel’s status doesn’t move | Press Refresh. If the courier card says it hasn’t sent an update for 2 days, check the webhook address in the courier’s panel. |