Free template · CSV
Shopify–ERP Integration Test Plan Template
The test cases that catch the bugs “happy path” testing misses.
Download CSV
24 rows · opens in Excel, Google Sheets, or Numbers · no sign-up
Most integrations are tested with one paid order that ships in full. Production then brings edited orders, partial refunds, split shipments, duplicate webhooks, and an ERP that times out on Black Friday. This test plan lists those scenarios with the expected result in each system, so you can test them before your customers do.
Each case states the expected outcome in the ERP and in Shopify. A test passes only when both are right.
How to use it
- Run the cases in a Shopify development store connected to an ERP sandbox or test company.
- Record the Shopify order number and ERP document number for each run so results can be audited.
- Re-run the “High” priority cases after every change to mappings or integration code.
- Add a case every time a production incident reveals a scenario that isn’t covered.
What each column means
- ID
- Stable test case reference.
- Area
- Orders, refunds, inventory, fulfillment, reliability, tax, B2B.
- Scenario
- What happens in the business.
- Steps
- How to reproduce it in the test environment.
- Expected in ERP
- The correct result in the ERP.
- Expected in Shopify
- The correct result in Shopify.
- Priority
- High, Medium, or Low.
- Result
- Pass, Fail, or Blocked, with the run date.
Preview
The full template, exactly as in the download.
| ID | Area | Scenario | Steps | Expected in ERP | Expected in Shopify | Priority | Result |
|---|---|---|---|---|---|---|---|
| T01 | Orders | Paid order, single item | Place and pay an order | One sales order with correct lines, tax, shipping, and external reference | Order unchanged; later fulfilled from ERP | High | |
| T02 | Orders | Order with discount code and free shipping | Apply order-level discount | Discount posted per the agreed rule; totals match Shopify | — | High | |
| T03 | Orders | Order with a SKU missing in the ERP | Order a product whose SKU is not in the ERP | No order created; record in review queue with clear reason | — | High | |
| T04 | Orders | Order edited after creation (item added, quantity reduced) | Edit the order in Shopify admin before fulfillment | ERP order updated or flagged per policy; no duplicate order | — | High | |
| T05 | Orders | Order cancelled before fulfillment | Cancel and refund in Shopify | ERP order cancelled; stock released | Order shows cancelled | High | |
| T06 | Orders | Multi-currency order | Pay in a presentment currency different from shop currency | Amounts posted in the agreed currency with consistent conversion | — | Medium | |
| T07 | Refunds | Full refund after shipment | Refund all items and shipping | Credit memo/refund reverses sales, tax, and shipping | Order refunded | High | |
| T08 | Refunds | Partial refund of one line, no restock | Refund one unit without restocking | Credit for one unit and its tax; stock not increased | — | High | |
| T09 | Refunds | Refund of shipping only | Refund the shipping charge | Freight revenue and its tax reversed only | — | Medium | |
| T10 | Fulfillment | Full shipment with tracking | Ship in ERP/WMS | Shipment posted | Fulfillment with carrier and tracking; customer notified | High | |
| T11 | Fulfillment | Split shipment from two locations | Ship lines separately | Two shipments against the right lines | Two fulfillments, each with tracking | High | |
| T12 | Fulfillment | Backordered line | Ship available lines, backorder the rest | Remaining quantity open | Partially fulfilled | Medium | |
| T13 | Inventory | Stock receipt in ERP | Receive stock for a SKU | — | Available quantity increases at the mapped location within the agreed delay | High | |
| T14 | Inventory | Last unit sold on two channels at once | Sell the last unit in Shopify and another channel | One order allocated; the other flagged | Product shows out of stock after sync | Medium | |
| T15 | Inventory | Daily reconciliation finds drift | Change a Shopify quantity manually | Reconciliation reports the difference | Quantity corrected to ERP value (if ERP is master) | Medium | |
| T16 | Reliability | Duplicate webhook delivery | Replay the same order webhook | Still exactly one ERP order | — | High | |
| T17 | Reliability | ERP down for 30 minutes | Block ERP access, place orders, restore | All orders created after recovery, in order, no duplicates | — | High | |
| T18 | Reliability | ERP times out after creating the order | Simulate a timeout after commit | Lookup by external reference prevents a duplicate | — | High | |
| T19 | Reliability | Rate limit reached during backfill | Run a large backfill | Backoff and complete without data loss | No throttling errors surfaced to staff | Medium | |
| T20 | Reliability | Webhook missed entirely | Disable delivery, place an order, re-enable | Reconciliation job creates the missing order | — | High | |
| T21 | Tax | Order shipped to a state with local taxes | Ship to an address with state and local tax | Tax posted per jurisdiction to the right codes | — | High | |
| T22 | Tax | Tax-exempt B2B customer | Order as an exempt company location | No tax; certificate referenced on the order | — | Medium | |
| T23 | B2B | Order on net terms with PO number | Place a B2B order with Net 30 and a PO | Order on terms; PO copied; invoice due date correct | Payment pending under terms | Medium | |
| T24 | B2B | Account on credit hold tries to order | Put account on hold in ERP, then order | Order held for review | Checkout goes to review (if configured) | Medium |
Notes
- Expected results reflect common policies. Replace them with your agreed rules before testing.