The problem
Sellers who grow out of Etsy's own tooling and onto NetSuite hit a wall. The mature marketplace connectors were built for catalogues of fixed SKUs, and Etsy is not that. A single Etsy listing carries a variation matrix — size, colour, wood species, chain length — where each combination may or may not have its own inventory and its own price. On top of that sits personalisation: a free-text field the buyer fills in with a name, a date, an engraving. That text is not a variant, it is a manufacturing instruction, and if it does not reach the person at the bench, the order is wrong.
Made-to-order sellers have a further problem. The item does not exist when the order arrives. Treating it as a stock item means NetSuite either commits inventory you do not have or refuses to fulfill. The usual result is that Etsy orders never make it into NetSuite properly: someone re-keys them, personalisation lives in a note field nobody prints, and inventory drifts until a listing oversells.
What ECOSIRE builds
We build a NetSuite customization that treats Etsy's data model as it actually is, using SuiteScript 2.1 and the Etsy Open API.
Listings and variations mapped properly
We build a listing custom record, customrecord_eco_etsy_listing, and a child variation record linking each Etsy property-and-value combination to a NetSuite item. Where your variations map naturally to an inventory item with a matrix, we bind to that structure and keep the parent-child relationship intact. Where they do not — a made-to-order piece with a size that only changes the price — we map to a non-inventory or assembly item and hold the variant detail on the sales order line via custom columns and a custom segment, so reporting by variation still works without exploding your item master.
Mapping is reviewable. A Suitelet shows every Etsy listing and variation alongside its NetSuite item, highlights anything unmapped, and lets your team resolve it before orders start failing. New listings appearing on Etsy surface here rather than silently erroring in a script log.
Orders with the detail production needs
A Scheduled script polls Etsy for new and updated receipts and creates NetSuite sales orders. Personalisation text is written to a custom column field on the order line — not the memo — so it flows through to the pick ticket, work order and packing slip. Buyer notes, gift messages, requested ship-by dates and Etsy's own order and receipt identifiers are stored on custom body fields, with the Etsy identifier enforced unique so a re-poll or a retry cannot create a duplicate order.
Made-to-order lines can raise a work order or assembly build from the sales order through SuiteFlow, carrying the personalisation text onto the production record, so the bench sees the engraving without anyone re-typing it.
Inventory that does not oversell
A Map/Reduce script pushes NetSuite quantity-available to Etsy on a schedule, calculated from the locations you nominate rather than total on-hand, so stock reserved for other channels is not offered twice. You can hold back a buffer quantity per item or per listing. Made-to-order listings can be excluded from inventory sync entirely and driven by a capacity rule instead — scoping decides which listings behave which way.
Fulfillment and status write-back
When an item fulfillment is created in NetSuite, a User Event script queues the shipment back to Etsy with the carrier, tracking number and ship date, and marks the receipt shipped. Cancellations and refunds issued in Etsy are pulled back and reflected on the NetSuite transaction so the two systems do not diverge.
Financial detail
Etsy's own fees, shipping collected from the buyer, discounts and sales tax handled by the marketplace are captured on the order so revenue is recorded gross with the fee recognised as expense, rather than only the net payout arriving. If you also need the full payout-reconciliation treatment, that is a separate scope we can quote alongside this.
Errors that surface
Every API interaction is logged to a custom record with the payload, the response and the related transaction. Rate limits are respected with backoff, failures retried, and persistent failures raise an email alert. Saved searches ship for unmapped listings, orders that failed to create, fulfillments not yet acknowledged by Etsy, and listings whose inventory push last failed.
Who this is for
Etsy sellers who have outgrown spreadsheets and simple tooling and are running or moving to NetSuite. It fits handmade and made-to-order businesses where personalisation is the product, sellers running Etsy alongside a webstore or wholesale channel out of one inventory pool, and anyone whose Etsy orders are currently re-keyed by hand.
How delivery works
Scoping call. We look at your actual listings, your variation structure, how much is made-to-order versus stocked, your item master, and how personalisation needs to reach production. We agree which listings sync inventory and which do not.
Fixed quote. A written scope, the object list, price and delivery window before any development starts. Lead time is typically two to four weeks from acceptance.
Build. We develop as an SDF project using SuiteScript 2.1 and the Etsy Open API, with credentials held in NetSuite's secrets management and OAuth token refresh handled by the integration.
Install in sandbox. We deploy to your sandbox, map a representative set of real listings, and run live order, inventory and fulfillment cycles with you before anything reaches production.
Install in production. We deploy the bundle, complete listing mapping with your team, configure roles and script schedules, and watch the first live orders land together.
Support. A support window is included from go-live covering defects, Etsy API changes affecting the delivered scope, and questions from your team. You own the code and the SDF project.