Skip to content
Menu
Products · E-commerce on ERPNext

E-commerce on ERPNext

For brands that sell on their own website and on marketplaces: what ERPNext does with every online order, from the SKU master to the payout, and how Unicommerce or EasyEcom feeds it.

For
Brands that sell on their own website and on marketplaces, and keep stock and books in ERPNext
Order systems
Unicommerce, live at a client; EasyEcom, built and tested but not yet live at a client
Runs on
ERPNext version 15 or 16 for Unicommerce; version 16 for EasyEcom
Order to payment
  1. Order
  2. Stock
  3. Packed
  4. Invoice
  5. Shipped
  6. Paid
Illustrative records · one online order in ERPNext

An online order, from Unicommerce to the books.

Orders, cancellations, shipments and item changes move on a schedule, and anything unmatched is logged.

erp.client.in/app/sales-orderIllustrative data
Unicommerce sync · last hourIn step
Website orderSales order createdDone
Order cancelled in UnicommerceSales order cancelledDone
Shipment dispatchedSales invoice status updatedSynced
Item MRP changedPushed to UnicommerceSynced
ManifestCreated from the sales invoiceDone

The problem

Online orders arrive through an order system that talks to every marketplace and web store. The books, the stock value and the GST returns live in the ERP. When the two are joined by hand, orders are re-keyed, cancellations and returns are missed, and nobody can say why a marketplace payout is less than the invoices it pays.

What it does at each stage of an order

Unicommerce or EasyEcom runs the channels and, often, the warehouse floor. ERPNext keeps the item master, the stock ledger, the invoices, GST and the money. This is what ERPNext handles once an order is inside.

Catalogue and SKUs
Items with variants such as size and colour, barcodes, HSN codes and price lists. A product bundle sells a combo as one SKU while stock moves on its components. Each channel's SKU is mapped to one item code.
Order capture
A sales order for each online order, with the customer, billing and shipping addresses, taxes and the channel it came from.
Inventory and warehouses
A stock ledger per warehouse, with batches and serial numbers where needed, reserved and projected quantities, and transfers between warehouses. ERPNext's figure is the one the channels are sent.
Fulfilment and shipping
Pick list, packing slip and delivery note when ERPNext runs the warehouse, and a shipment record with the courier and AWB. When the order system picks and ships, ERPNext records the delivery and the stock movement.
Invoicing and GST
A sales invoice with CGST and SGST or IGST by place of supply, TCS where the marketplace collects it, and an invoice series per channel. India Compliance generates the e-invoice and the e-way bill from the ERPNext invoice.
Cancellations and returns
A cancelled order cancels its sales order. A return becomes a credit note, and the stock goes back to a sellable or a damaged-goods warehouse, with a quality inspection where needed.
Payments and settlement
Payment entries against invoices. A marketplace payout can be posted as one payment across many invoices, with fees and deductions booked as an expense. Cash on delivery is followed up until the courier pays it over.
Reporting
Sales and gross profit by channel, item and customer, stock balance and ageing, receivables, and GST return data through India Compliance.

What is included with Unicommerce and with EasyEcom

The same ERPNext sits behind both. What differs is what each connector carries across. Live means it runs at a client today. Standard means it is part of Frappe's open-source e-commerce integrations app, which our Unicommerce connector is built on, and is switched on per installation. Built, not yet live means built and tested against EasyEcom's documented API, but not yet run on a live EasyEcom account.

FeatureWhat happens in ERPNextUnicommerceEasyEcom
Items to the channelItems, variants, MRP, HSN codes and item groups are kept in ERPNextLiveItems with their MRP, and item groups as categories, pushed when they changeBuilt, not yet liveItems, customers and suppliers pushed, created the first time and updated after
Combos and bundlesA product bundle sells as one SKU; stock moves on its componentsNot in the connectorBuilt, not yet liveEach combo SKU mapped to a product bundle
Orders inA sales order with the customer, addresses, taxes and channelLiveOrders become sales orders on a set schedule; an order is never created twiceBuilt, not yet liveBy webhook, with polling as a back-up; one invoice, or sales order, delivery note and invoice, chosen per channel
CancellationsThe sales order is cancelledLiveOrders cancelled in Unicommerce cancel the sales order, checked every 15 minutesBuilt, not yet liveCancellations posted, with a register that explains gaps in the GST invoice series
Stock to the channelsThe stock ledger per warehouse is the figure sent outStandardWarehouse stock pushed to Unicommerce facilities on a set frequencyBuilt, not yet liveStock changes pushed within about 90 seconds; a nightly check drafts a stock reconciliation where the figures differ
Picking, packing and shippingPick list, packing slip, delivery note and shipment, with courier and AWBLiveUnicommerce picks and ships; shipment status updated on the invoice every 10 minutes; manifest created from the invoiceBuilt, not yet livePer channel, EasyEcom ships, or ERPNext picks, packs, books the courier and prints a 4x6 label
InvoicingA sales invoice with GST by place of supplyLiveInvoice and shipping label generated in Unicommerce and posted to ERPNext; delivery note matched to the order linesBuilt, not yet liveInvoice posted in ERPNext; the marketplace's tax is checked, not recalculated, and a mismatch is held for review
E-invoice and e-way billGenerated from the ERPNext invoice through India ComplianceNot in the connectorNot in the connectorEasyEcom's API does not offer e-invoicing
ReturnsA credit note, with stock back in a warehouseStandardCredit notes for courier returns and customer returnsBuilt, not yet liveThe return reason sends stock to the right warehouse, with damage write-down, quality inspection and a draft refund
Payment per orderA payment entry against the invoiceStandardA payment entry per invoice, for channels set to record oneBuilt, not yet liveCash on delivery kept on a chase list until the courier pays it over
Marketplace payout reconciliationOne payment entry across many invoices, with fees booked as an expenseNot availableBuilt, not yet livePayouts pulled daily; one draft payment entry per payout, the gap booked as marketplace deductions, over-charges flagged
Purchases and inbound stockPurchase order and purchase receiptStandardGoods received in ERPNext sent to Unicommerce as a GRNBuilt, not yet livePurchase orders mirrored and received against; quick-commerce orders checked for MRP and shelf life before dispatch
FailuresErrors are kept in ERPNext's logs, with the payload that caused themLiveEvery sync call and failure written to a log for someone to act onBuilt, not yet liveAn exception queue with automatic retries; orders for an unmapped SKU wait and resume once it is mapped
ReportsSales, gross profit, stock and receivables, by channelStandardOrders carry the channel and the Unicommerce order codeBuilt, not yet liveReports for exceptions, order lifecycle, failed pushes, settlements and stock drift

How it works

  1. The order system keeps running the channels; ERPNext becomes the book of record for stock and money

  2. Each channel SKU is mapped to an ERPNext item once

    And channels are mapped to customers, warehouses and accounts

  3. Orders come in on a schedule or by webhook and become ERPNext documents

  4. Status changes

    Cancellations and returns follow on their own schedules

  5. Anything that cannot be posted is logged

    With the reason, for someone to act on

MechanismUnicommerceEasyEcom
Orders inPulled on the frequency set in Unicommerce settings, checked every five minutes, for the channels switched onA webhook is acknowledged at once and processed in the background; polling picks up anything a webhook missed
Status and cancellationsShipment status every 10 minutes, cancellations every 15 minutes, order status and returns every hourSent by webhook; orders stuck for three days are pulled again every hour
StockPushed to Unicommerce on a set frequencyPushed about 90 seconds after a stock change, and compared every night
DuplicatesAn order already in ERPNext, matched on its Unicommerce order code, is not created againEach event carries a unique key; a replayed event reuses what was already posted and builds only the rest
FailuresWritten to the integration log and the error logAn exception queue: retried on a schedule by type of error; orders for an unmapped SKU wait until it is mapped
AccessThe access token is refreshed every eight hoursThe token is refreshed when it expires; incoming webhooks are checked against a secret

Proof from client work

  • Emperor Akbar Cardamom, on Unicommerce, livewebsite orders become sales orders in ERPNext automatically, and B2C order processing moved from manual to automated; customers confirm orders by OTP over SMS, email or WhatsApp
  • NewJaisa, on Amazon and Flipkart directlyorders from both marketplaces are created in ERPNext automatically with channel tags, and stock is held by grade, channel and warehouse across more than 35,000 items
  • Smart Choice, store and onlinesales orders from online and store channels in one system, with invoices and delivery notes generated from the order
  • Sneakare, on Shopify, marketplaces and partner networks, in progress: purchase and production are on ERPNext and in testing, with one SKU master across Shopify, marketplaces and partners and combo product logic; sales, with B2B and B2C orders from the e-commerce platforms, is the next phase

What we built, and what is still open

  • Unicommerceour connector runs in production for one brand; each new installation is set up for that account's Unicommerce tenant
  • EasyEcombuilt and tested against a strict copy of EasyEcom's documented API, with more than 200 automated tests, but not yet run on a live account; the first installation will start as a pilot
  • Payout reconciliation is built only for EasyEcom. EasyEcom's payout data does not name each fee, so the gap is booked as one deduction and the payment entry stays a draft for finance to check
  • Neither connector generates e-invoices or e-way bills; India Compliance does that from the ERPNext invoice

Works with

  • Unicommerce
  • India Compliance (GST, e-invoice, e-way bill)

FAQ

The marketplaces and web stores connected to your Unicommerce or EasyEcom account reach ERPNext through that account. Where a direct link suits better, a marketplace can feed ERPNext on its own: NewJaisa's Amazon and Flipkart orders come straight into ERPNext.

The ERPNext side is the same. Frappe's open-source e-commerce integrations app also connects Shopify directly: orders become sales orders, payment and fulfilment create the invoice and delivery note, and stock levels go back to Shopify. We set it up as part of an implementation.

Nothing is guessed. With Unicommerce, the failure is written to the integration log with the order it belongs to. With EasyEcom, the event goes to an exception queue: network and rate-limit errors retry on their own, and an order for an unmapped SKU waits until the SKU is mapped and then resumes.

Yes. Items, customers, warehouses, accounts and history stay in ERPNext; what changes is the connector and the SKU and channel mapping. Run one connector per set of channels, never both on the same orders, or every order is posted twice.

Taxes on each order are posted to your CGST, SGST, IGST and TCS accounts. With EasyEcom, the marketplace's tax figure is checked against ERPNext's and a mismatch is held for review. E-invoices and e-way bills come from the ERPNext invoice through India Compliance, not from either connector.

With EasyEcom, yes, in the build that is not yet live: each payout becomes one draft payment entry across the invoices it pays, with the deductions shown. Our Unicommerce connector does not reconcile payouts.

Start a conversation

See it running on your data.

A 45-minute demo on a copy of your documents, not a slide deck.