The problem this solves
Selling on Shopee and Lazada across Singapore, Malaysia, Indonesia, Thailand, the Philippines and Vietnam creates a reconciliation problem that spreadsheets cannot survive. Each marketplace holds your money in an escrow account until the buyer confirms receipt, then releases a net payout after deducting commission, transaction fees, service fees, shipping subsidies, campaign discounts and coin or voucher offsets. What lands in your bank is never the sum of your order values. Meanwhile the same SKU is listed in several shops, each with its own campaign price and its own stock reservation, and NetSuite has no idea any of it happened.
The usual result is a team keying orders into Sales Orders by hand, a second team downloading settlement CSVs and trying to work out which fee belongs to which order, and a warehouse working from stock figures that are hours or days stale. Oversells are common. Month-end close drags because the marketplace receivable never ties out.
NetSuite has no native Shopee or Lazada integration, and neither marketplace publishes a SuiteApp. Any real solution is a customization against their open APIs.
What ECOSIRE builds
ECOSIRE builds this as a NetSuite customization delivered as an unmanaged bundle or an SDF project that you own outright. Nothing here is pre-built or downloadable — the connector is scoped against your account, your item catalog and your marketplace shops, then built and installed.
Order ingestion
A Scheduled script polls each connected shop for new and updated orders, and a Map/Reduce script transforms them into NetSuite records. Each marketplace order becomes a Sales Order against a marketplace customer record, with the marketplace order ID, shop ID, order status and buyer-paid amount written to custom body fields so the record is traceable back to the source. Line items map through a custom SKU-mapping record that links marketplace item and model IDs to NetSuite Inventory Items, Assembly Items or Kit/Package Items. Unmapped SKUs are quarantined into an exception queue rather than silently guessed.
Order status changes — ready to ship, shipped, delivered, cancelled, returned — are pulled on the same cycle and drive NetSuite fulfillment and return flows. Cancellations and buyer returns create Return Authorizations rather than editing history.
Escrow settlement and fee posting
This is the part generic connectors skip. A dedicated Map/Reduce script retrieves escrow detail per order and settlement statements per payout cycle, then builds the accounting rather than assuming it. Gross order value posts as revenue. Each fee category — commission, transaction fee, service fee, shipping fee and shipping subsidy, campaign or voucher funding, coin offsets, affiliate commission — posts to its own expense or contra-revenue account through a mapping table you control. The net payout is staged in a marketplace clearing account so that when the bank deposit arrives, it reconciles to a single cleared balance rather than a pile of unmatched invoices. Journal Entries and Customer Deposits are created against the correct subsidiary in OneWorld and the correct currency, with foreign-currency payouts handled through NetSuite's own exchange-rate handling.
Inventory and price publishing
Inventory pushes run the other way. A Scheduled script reads available quantity from a saved search you define — so you decide whether availability means on hand, available, or available minus a safety buffer, and whether it is aggregated across locations or drawn from a single fulfillment location — and publishes it to each shop. Multi-shop and multi-country listings can draw from different location sets. Price publishing supports both your base price and campaign pricing, so a promotional price for a flash sale window can be pushed and rolled back on schedule without touching your NetSuite price levels.
Custom records, roles and errors
The build includes custom records for shop credentials and API configuration, SKU mapping, fee-to-account mapping, settlement batches and a full sync log. A dedicated integration role is created with only the permissions the scripts need. A User Event script guards manual edits to synced orders so a well-meaning user cannot break the settlement chain. Every API call and every failure is logged with its payload so a failed sync can be diagnosed and replayed rather than re-keyed.
Who this is for
Brands and distributors already live on NetSuite who sell through Shopee or Lazada in more than one ASEAN market, particularly those running OneWorld with a subsidiary per country. It suits businesses whose finance team currently reconciles marketplace payouts manually and whose operations team is fighting oversells caused by stale stock.
It is not for businesses that only need a one-off historical data load, and it is not a listing-management tool — content, images and listing creation stay in the marketplace seller centres.
How delivery works
Scoping call. We walk through your shops, your subsidiaries and currencies, your item types, your fulfillment model, and how you want fees to hit the chart of accounts. We look at your existing saved searches and any customizations that touch Sales Orders.
Fixed quote. You receive a written scope and a fixed price before any code is written. The listed price is the starting point for a standard single-region build; additional shops, subsidiaries or non-standard accounting treatment are quoted explicitly.
Build. Typical lead time is two to four weeks depending on scope. Development happens against your sandbox, using SuiteScript 2.1, SuiteTalk REST for any external calls into NetSuite, and SuiteFlow where an approval or exception path is better expressed as a workflow than as script.
Install in test, then production. The bundle is installed in your sandbox first. We run your real order and settlement data through it, reconcile a full payout cycle against your bank statement, and adjust the fee mapping until it ties. Only then does it move to production, with a short parallel-run window where manual and automated processes both operate.
Support. A support window is included after go-live for defect fixes and for adjusting to marketplace API changes announced during that period. Source code is handed over — you are not locked into ECOSIRE to maintain it.