← All case studies

Shopify POS · NetSuite · Celigo

A 60-second trade-in workflow that posts serialized inventory and tax correctly.

Exquisite Timepieces runs a high-value watch business in which sales representatives create roughly 540 orders and $6–7 million in revenue each month. The defining transaction is the trade-in: a serialized asset, a taxable sale, and an accounting decision that must be completed while the customer is still at the counter.

Shopify POSNetSuiteCeligoSerialized inventory
Shopify logo representing the Exquisite Timepieces POS trade-in workflowExquisite TimepiecesShopify POS · NetSuite · Celigo
~540rep orders monthly
$6–7Mmonthly revenue
4trade-in scenarios
Exquisite Timepiecesclient

Complexity lived between the systems.

Before the project, representatives left Shopify POS and re-keyed trade-in details into NetSuite. Each transaction could leave the customer owing money, receiving an overage, storing credit as a deposit, or trading multiple watches. Serial data, inventory, discounts, tax, receivables, and refunds all had to remain accurate across Shopify POS, Celigo, and NetSuite.

02 · What we delivered

Built around the operating reality.

  1. Built a Shopify POS extension that captures brand, reference, serial, condition, box and papers, warranty date, and trade-in credit without leaving the register.
  2. Stored structured order and line-item context in Shopify metafields, including representative attribution, payment type, and stock availability for remote-payment draft orders.
  3. Implemented four trade-in accounting scenarios, including customer-paid differences, customer overages, outright purchases held as customer deposits, and multiple serialized trade-ins.
  4. Created the paired NetSuite inventory adjustment and sales-order activity from one POS event, with explicit tax-group and clearing-account behavior verified against production data and reviewed with the client’s CPA.
  5. Built refund handling for open, uninvoiced sales orders and customer deposits, including a visible refund date and deliberate non-restocking until physical inspection.
  6. Migrated historical commerce data from Ecwid into the new Shopify operating environment and supported the production cutover.

03 · Outcome

The representative stays with the customer—and the books stay clean.

A trade-in can now be captured at the counter in about a minute while the required serial, tax, credit, deposit, inventory, and refund context reaches NetSuite without manual re-entry. The workflow supports the real transaction patterns of a high-value retailer rather than forcing them into a generic order model.

Talk through a similar challenge
The rep stays with the customer. The serial, the tax, and the trade credit all land in NetSuite correctly—without anyone re-keying a thing.

Technology stack

Shopify POSShopify MetafieldsPOS extensionsNetSuiteSuiteScriptCeligoSerialized inventoryDraft-order SMS checkout

Have a similarly complex project?

Bring us the storefront, ERP, or integration bottleneck.

We’ll help define a practical next step based on the systems, operating model, and business outcome involved.

Next case studyOffset Press Supply