- Home
- Apps
- Multichannel & PIM Tools
- Southeast Asia Marketplace Pack
Illustrative previewA build-to-order ERPNext application that consolidates orders,
stock, tax documents, payouts and returns from the major Southeast-Asian marketplaces into one ERPNext instance.
ECOSIRE builds, installs and supports it for your Frappe/ERPNext v15 or v16 site after a scoping call.
What is Southeast Asia Marketplace Pack?
A build-to-order ERPNext application that consolidates orders, stock, tax documents, payouts and returns from the major Southeast-Asian marketplaces into one ERPNext instance. ECOSIRE builds, installs and supports it for your Frappe/ERPNext v15 or v16 site after a scoping call. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- ERPNext Compatibility
- —
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- MariaDB 10.6+
About this Product
Regional sellers running on Shopee, Lazada, TikTok Shop, Tokopedia and Bukalapak-class channels usually end up with one browser tab per marketplace and one spreadsheet per country. Orders are keyed into ERPNext by hand or by CSV import, so the Sales Order and Delivery Note trail never matches what the marketplace shipped. Stock is a single Bin figure the seller mentally divides across five storefronts, so the same last unit sells three times and the oversell penalties follow. Payouts arrive net of commission, service fees, shipping subsidies, coin and voucher offsets and withholding, and nobody can tie a settlement line back to a Sales Invoice. ERPNext core handles the accounting perfectly well; what it does not have is any concept of a marketplace channel, a per-channel stock reservation, a settlement file, or an identifier coming back from a partner API — and the community connectors that exist are single-marketplace, so five channels means five unrelated apps with five reconciliation styles.
What we build is one Frappe application — a proper installable app with its own module, fixtures and hooks.py, not a pile of Server Scripts — that treats every marketplace as a configured instance of the same model. A Marketplace Channel DocType holds credentials (encrypted Password fields), region, currency, shop ID and the tax profile; a Marketplace Order DocType is the raw, immutable landing record for every pulled order, keyed on the marketplace order ID with a unique index so a re-pull is idempotent. Scheduler events registered in hooks.py poll each active channel on your chosen cadence, and where the marketplace supports push, a whitelisted endpoint (@frappe.whitelist(allow_guest=True) with HMAC signature verification) accepts the webhook, enqueues via frappe.enqueue and returns immediately. From the landing record we map to a real ERPNext Sales Order using the channel's Item mapping — marketplace SKU to your Item Code, including bundle explosion where one listing ships as several Items — and then let ERPNext's own logistics do the work: Delivery Note, Sales Invoice, and, where a country requires it, the localized tax document via your existing regional compliance app rather than a second implementation of it.
Per-marketplace stock buffers are the piece that stops the overselling. Rather than pushing your raw actual_qty to every channel, the app maintains a Marketplace Stock Allocation per channel and Item — a fixed reserve, a percentage of free stock, or a priority-ordered waterfall — and a scheduled job computes publishable quantity from Bin less reserved-for-other-channels less open marketplace orders, then pushes only the delta to each channel API. Every push is logged with the request, the response and the resulting quantity, so when a marketplace disputes what you sent you have the record. Doc events on Stock Ledger Entry, Sales Order and Delivery Note mark affected Items dirty for the next cycle, so a warehouse transfer or a cancelled order re-publishes within minutes instead of overnight.
Payout reconciliation gets its own document. A Marketplace Settlement is pulled or uploaded per payout batch, its child table holds every fee line the marketplace reports — commission, transaction fee, service fee, shipping fee and subsidy, voucher and coin offsets, adjustments, withholding — and a matching routine links each line to its Sales Invoice by marketplace order ID. What matches becomes a Journal Entry or Payment Entry posting the net receipt to the marketplace's receivable account and each fee to the expense account you nominate per channel and per fee type; what does not match lands on an exceptions list with the reason stated. Returns and refunds run the same way in reverse: a marketplace return creates a Sales Return / Credit Note against the original invoice, restores stock to a per-channel inspection warehouse rather than straight to sellable, and the settlement's refund line reconciles against it. Role profiles and permission rules ship with the app so a marketplace operator can process orders and returns without seeing the General Ledger, and the Frappe REST API plus whitelisted methods let your 3PL or BI tooling read the same records.
This is a build-to-order engagement, not a download. It starts with a scoping call where we confirm which marketplaces and countries are in play, which API programs you already have seller access to, your Item and warehouse structure, your tax and invoicing obligations per country, and your Frappe/ERPNext version. We then quote a fixed scope, build against your version (v15 or v16), and deliver on a staging copy of your site for UAT before anything touches production. Typical delivery is one working week from confirmed scope, longer if a marketplace requires an app-approval process on their developer portal — we will tell you at scoping if that is on the critical path. You receive the full source, the git repository, documentation and training, and a post-go-live support window.
What you get
- Complete installable Frappe app source built for your Frappe/ERPNext version (v15 or v16), with module, DocTypes, fixtures, `hooks.py` and patches
- Installation and configuration on your site — channel records, SKU mapping, stock allocation rules, and account and warehouse mapping per marketplace
- Technical documentation: DocType and field reference, hook and scheduler map, API credential setup per marketplace, and the settlement matching logic
- User guide plus a live training session for your marketplace operators and finance team, recorded for onboarding new staff
- UAT on a staging copy of your production site, with an agreed test script per marketplace and a documented rollback plan before go-live
- Post-go-live support window for defect fixes and configuration adjustments, agreed in writing at scoping
- Git repository handover — full history, branches and tags transferred to your organisation, so you own the code and can maintain or extend it independently
- Marketplace developer-account guidance: which API programs and app approvals are required per channel, and what we need from you to complete them
Who this is for
Regional multi-marketplace seller
Selling into two or more Southeast-Asian countries across Shopee, Lazada, TikTok Shop or Tokopedia-class channels from shared stock. Needs one ERPNext order and stock record instead of a browser tab and a spreadsheet per storefront, and needs the last unit to stop selling three times.
Finance manager or controller
Owns the reconciliation between what the marketplaces paid and what was invoiced. Needs every commission, service fee, shipping subsidy and voucher offset posted to a nominated account and tied to a Sales Invoice, with an exceptions list short enough to work through — not a month-end spreadsheet rebuild.
Operations and warehouse lead
Responsible for fulfilment SLAs and return handling across channels. Needs marketplace orders landing as real Delivery Notes with correct pick information, per-channel stock buffers so a promotion on one storefront does not starve the others, and returns routed to inspection before they go back on sale.
Internal ERPNext or IT lead
Maintains the ERPNext instance after go-live. Needs a proper Frappe app with readable DocTypes, hooks and scheduler events, a git repository they own, and documentation good enough to add a sixth marketplace themselves rather than raising a change request.
How Southeast Asia Marketplace Pack Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Marketplace coverage | Your channel list, scoped up front; every marketplace is a configured record on one shared model | Whatever your team has time to build, usually one channel at a time | Typically one marketplace per app, so five channels means five unrelated integrations | No concept of a marketplace channel exists in ERPNext core |
| Stock across channels | Per-channel buffers (fixed, percentage or waterfall) with delta-only publishing and a full push log | Achievable, but the reservation logic is the part teams usually get wrong first | Usually pushes raw available quantity to every channel, which is how oversells happen | A single `Bin` quantity with no channel dimension |
| Payout and fee reconciliation | Settlement DocType with per-fee-line matching to Sales Invoices, automated posting and an exceptions queue | Often deferred past go-live and left in a spreadsheet indefinitely | Commonly imports the payout total only, leaving fee analysis manual | Payment Entry and Journal Entry exist, but nothing maps a marketplace settlement file to them |
| Returns handling | Marketplace return creates a Credit Note against the original invoice and routes stock to a per-channel inspection warehouse | Usually built after the first bad quarter of returns | Return status often syncs as a flag with no accounting or stock consequence | Sales Return works well, but has no link to a marketplace return event |
| Version support | Built and tested against your Frappe/ERPNext v15 or v16 site, on a staging copy first | Depends entirely on your team's upgrade discipline | Often lags the current ERPNext release by a version or more | Moves with core, but there is no marketplace functionality here to keep compatible |
| Ownership of the code | Full source and git repository handed to your organisation at delivery | You own it, and you also own every hour spent on it | Licensed or subscription; source access varies and is rarely transferable | Open source, but no marketplace functionality to own |
| Time to a working system | one working week from confirmed scope, including UAT on staging and a rollback plan | Months of internal calendar time competing with your team's other work | Fast to install, then weeks of adapting your process to its assumptions | Immediate, but the marketplace work stays manual |
| Permissions and access | Role profiles for operator, finance reconciler and administrator ship with the app | Usually added late, after someone sees a ledger they should not have | Frequently assumes a System Manager runs everything | Frappe's permission engine is capable; the marketplace roles simply do not exist yet |
Frequently Asked Questions about Southeast Asia Marketplace Pack
How long does delivery take?
Typical delivery is one working week from confirmed scope. This is a build-to-order product — there is no instant download. The clock starts once we have agreed the marketplaces and countries in scope, your Item and warehouse structure, the accounts for each fee type, and your Frappe/ERPNext version. Where a marketplace requires an app review on their developer portal before granting production API access, that approval sits outside our control and we will flag it at scoping if it affects your date.
Which marketplaces are covered?
We scope the channel list with you rather than shipping a fixed set. The pack is architected so every marketplace is a configured `Marketplace Channel` record against a shared order, stock, settlement and returns model, so the second and third channels cost far less than the first. Coverage for any given marketplace depends on you holding a seller account with API access on that platform — we build against their official API, never by scraping a seller portal.
Do I need to give you our marketplace API credentials?
Not during scoping. Credentials are entered by your team into the `Marketplace Channel` record on your own site and stored in Frappe encrypted Password fields. For UAT we work against sandbox credentials or a marketplace test shop where the platform provides one. If you prefer us to configure production channels directly, that access is granted by you at go-live and can be rotated immediately afterwards.
What about tax and invoicing per country?
The pack sets the correct Tax Template and invoice fields per channel and country, and handles marketplace-collected tax where the platform is the deemed supplier. It does not reimplement national e-invoicing — where a country requires clearance or a government portal submission, we hand the completed Sales Invoice to your existing regional compliance app so there is exactly one system of record for compliance. If you do not yet have one, we will say so at scoping and quote it separately.
What support and updates do I get?
Delivery includes a post-go-live support window agreed in writing at scoping, covering defect fixes and configuration adjustments. Marketplace APIs change on their own schedule and ERPNext ships a new major version each year, so ongoing maintenance beyond that window is a separate annual arrangement — either a support retainer with us, or your own team, since you receive full source and the git repository and are free to maintain it yourselves.
Will this work with our existing customisations?
The app installs as a separate Frappe app alongside your existing ones and extends core documents through hooks and custom fields rather than editing ERPNext source. At scoping we review your current apps and custom fields for conflicts — particularly anything already writing to Sales Order, Sales Invoice or Stock Ledger Entry — and UAT runs on a staging copy of your real site, with your real customisations, before anything reaches production.
What happens to orders and settlements already in our spreadsheets?
Historical migration is optional and quoted separately. Most customers go live forward-dated — the app takes over from a cut-off date and the historical spreadsheets are archived — because migrating partially reconciled settlements rarely repays the effort. If you do need history inside ERPNext, we scope it as a distinct workstream with its own data-quality review rather than folding it into the build.
Related Modules

SMSA Express Shipping Connector for ERPNext
A build-to-order Frappe app that wires SMSA Express (Saudi Arabia) directly into ERPNext — generate air waybills, handle COD, book pickups, and stream live tracking from your Delivery Notes and Sales Orders. ECOSIRE scopes, builds, installs, and supports it for your instance.

Transportation Management System (TMS) for ERPNext
A build-to-order Transportation Management System for ERPNext that plans loads, runs a dispatch board, manages carrier and owned-fleet rates, accrues freight cost, and captures proof of delivery — all inside your ERPNext instance. ECOSIRE scopes, builds, installs, and supports it for you.

UPS Shipping Connector for ERPNext
A native Frappe app that wires UPS negotiated rates, label printing, and delivery tracking directly into the ERPNext Delivery Note workflow. ECOSIRE builds it to your account and carrier setup, then installs and supports it.
Southeast Asia Marketplace Pack
A build-to-order ERPNext application that consolidates orders, stock, tax documents, payouts and returns from the major Southeast-Asian marketplaces into one ERPNext instance. ECOSIRE builds, installs and supports it for your Frappe/ERPNext v15 or v16 site after a scoping call.
- `Marketplace Channel` DocType per storefront holding shop ID, region, currency, API credentials in encrypted Password fields, sync cadence and per-channel accounting defaults — add a country or a second shop by adding a record, not by writing code
- Immutable `Marketplace Order` landing DocType keyed on the marketplace order ID with a unique constraint, so re-pulls, webhook retries and manual re-syncs are idempotent and never duplicate a Sales Order
- Scheduler events registered in `hooks.py` (configurable cadence per channel) for order pull, stock push, settlement fetch and return polling, each enqueued through `frappe.enqueue` on a long queue so a slow marketplace API never blocks the scheduler
- Whitelisted webhook endpoints with per-channel HMAC signature verification and replay protection for marketplaces that push order and status events, with the payload persisted before any processing
