How Shopify orders work with Bizmitra
A Shopify order becomes a sales order in Bizmitra — not an invoice. The invoice is derived from it later, and you decide when. This guide follows one order from checkout through to a settled receivable, and is explicit about which step moves stock.
Last reviewed against the implementation on
At a glance
- Direction
- Shopify → Bizmitra only
- First document
- Sales Order (no accounting entries)
- Then
- Sales Invoice, then Receipt
- Invoice timing
- Your choice — on payment, on order, or manual
- Stock moves
- At invoice, not at sales order
Which system owns the order
Shopify does. The order is created there, paid there, and cancelled there; Bizmitra reflects it. This is a deliberate design decision, not a missing feature — an order that two systems both believe they own is an order that will eventually disagree with itself.
The practical consequence: Bizmitra never writes orders back to your store. Editing the imported sales order in Bizmitra does not change what your customer sees in Shopify.
Step 1 — the sales order
When an order arrives, Bizmitra writes it as a sales order — not an invoice. It gets its own voucher number in the correct financial year, against the customer's ledger and the stock items its lines resolve to.
A sales order in Bizmitra is a non-accounting document. It records what was ordered; it does not touch your ledgers and it does not move stock. That is exactly how the ERP's own sales order screen behaves, and it is what makes the later steps possible as separate, auditable events.
Two things are resolved while writing it:
- The customer — matched to an existing party ledger, or created if this is their first order. Only the name and email reach that ledger; addresses are never extracted from the order payload. See protected customer data for exactly which fields move and what is stored where.
- Each line's product — matched by the stored mapping first, then by SKU. A line whose product cannot be resolved still records on the order; it simply carries no stock item.
Step 2 — when the invoice is raised
This is the setting that changes the shape of everything downstream, and it is yours to choose per connection.
| Mode | The invoice is raised… | Suits |
|---|---|---|
| On payment | When Shopify reports the order as paid. This is the default. | Most stores — the sale and the money land together. |
| On order | As soon as the order arrives, regardless of payment status. | Businesses that invoice on despatch commitment, or bill cash-on-delivery orders up front. |
| Manual | Never automatically — you convert the sales order yourself. | Anyone who wants to check an order before it reaches the books. |
Why the default is "on payment"
It is the behaviour the integration had before the setting existed, so an existing connection's books do not change shape the day the option appears. An unrecognised or blank stored value also falls back to it — a misconfiguration can never silently mean "stop invoicing altogether".
What the invoice posts
Whichever mode raised it, the invoice is a real posted sales invoice — the same document the ERP writes when you invoice by hand. It records:
- A debit to the customer and a credit to your sales account.
- A stock movement out of the warehouse for each line.
- An open receivable, so the invoice shows as unpaid until something settles it.
Raised once, whatever happens
Invoice creation resolves the order's existing invoice before posting anything. A redelivered webhook, a retry racing a manual conversion, and an operator replaying a job all land on the same invoice rather than producing duplicates.
This invoice is also the document that can be pushed onward into TallyPrime — Tally receives the ERP invoice, never the Shopify order itself. See Shopify, Bizmitra and Tally.
Step 3 — the receipt
When Shopify reports payment, a receipt is posted against that invoice: a debit to your cash or bank account, a credit to the customer, and an allocation that knocks the invoice's outstanding amount down. The receivable closes, and the order stops showing as money you are owed.
Automatic receipts can be switched off independently of the invoicing mode. With them off, the invoice stands as an open receivable and you reconcile payouts yourself — which is what you want if you settle against Shopify's payout statements rather than per order.
In manual mode, payment can arrive first
An order can be paid days before you convert it. The payment is not lost: it is recorded, and the receipt is posted when you press Convert, using the captured amount.
When stock actually moves
This trips people up, so it is worth being blunt about it.
No stock movement. The order is recorded, nothing leaves the warehouse.
Stock moves out here — one movement per line.
No stock movement. This is money, not goods.
So in manual mode, an unconverted order has not reduced your stock. That is correct behaviour — nothing has been billed — but it means your Bizmitra stock position reflects invoiced sales, not placed orders. If you want stock to move when the order lands, use on order mode.
Stock flowing the other way — from Bizmitra out to your storefront — is a separate mechanism covered in the inventory guide.
Cancellations and edits
Order updates and cancellations in Shopify are sent to Bizmitra and update the imported order. What they do not do is silently unpick posted accounting: an invoice that has already been raised is a real document in your books, and reversing it is a decision with consequences for your GST position. A refund issued in Shopify is the supported way to reverse the money, and it posts a credit note — see the refund guide.
Worked example
A ₹4,720 order for two items, on a connection left at the default settings.
Default mode — invoice on payment, automatic receipt on
Shopify records the order and marks it paid.
A sales order is written with its own voucher number. No ledger entries, no stock movement.
The sales order is converted into a sales invoice: customer debited, sales credited, two stock movements out, one open receivable.
Cash/bank debited, customer credited, and the receivable is allocated down to zero.
One sales order, one invoice, one receipt — all linked, all reportable, and the GST is on the invoice where it belongs.
Change one setting — invoicing to manual — and steps 3 and 4 do not happen until you press Convert. The order sits as a sales order, your stock is untouched, and the captured payment waits to be receipted.