Submission on behalf of Anita Sharma.
Requirement
The customer needed to create RMAs, Item Receipts (IRs), and Credit Memos (CMs) in NetSuite for returns. For exchanges, they needed to create Sales Orders, Item Fulfillments, and Invoices—covering up-sell, down-sell, and exchanges. One challenge was web exchanges; these had to remain on hold in Shopify and NetSuite until the Item Receipt was manually created in NetSuite. Only then could the Sales Order proceed and the Shopify hold be lifted.
Reasons for the Complexity
Standard NetSuite and Shopify connectors, while excellent for core order-to-cash processes, typically do not comprehensively manage the end-to-end lifecycle of returns, especially complex exchanges. This client's unique needs created significant gaps for out-of-the-box solutions:
- Conditional Exchange Order Release: The core challenge was the explicit requirement to hold web exchange orders in Shopify until a manual item IR was confirmed in NetSuite. This conditional release based on a NetSuite event is not a standard integration feature.
- Manual IR, Automated Follow-up: While IR creation was manual, the subsequent automation of CMs, Sales Order status updates, and "on-hold" release in Shopify required sophisticated coordination between systems.
- Financial Adjustments: Handling up-sells (new payments), down-sells (customer refunds), and exchanges, along with intricate tax overrides, shipping fees, and discounts, required precise financial reconciliation logic beyond basic syncing.
Solution
We built a custom Celigo flow using Shopify's GraphQL API to check for return or exchange updates. It automatically creates RMAs, Credit Memos, Refunds, or Payments. In NetSuite, we added scripts, fields, and saved searches to support this process. A User Event script monitors the manual creation of Item Receipts, updating the exchange Sales Order to pending fulfillment, while another flow removes the on-hold status in Shopify. This setup automates POS and web returns smoothly, efficiently covering all edge cases.
Flow
There are scripts active in this solution.
Let us know if you're interested.