Skip to content

Sync Inventoros shipments and tracking to Shopify - #2

Merged
mpge merged 5 commits into
mainfrom
feat/shipment-fulfilment-sync
Oct 23, 2026
Merged

mpge merged 5 commits into
mainfrom
feat/shipment-fulfilment-sync

Conversation

@mpge

@mpge mpge commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

TL;DR: Shipped parcels and tracking in Inventoros can fulfil the matching Shopify quantities, with Shopify sending the shipping email. Historical orders are excluded.

Shipment sync is optional and off by default. Each ship-from warehouse maps to one Shopify location. Imported order lines retain exact Shopify line IDs, so partial shipments fulfil only the quantities actually shipped. Previously unstocked inventory items are activated at the destination before moving fulfilment-order lines. Reads use bounded requests and complete nested pagination. Holds, unsupported routing and invalid line mappings stop for review. Shipping does not deduct Inventoros stock again.

Shopify owns the customer shipping email while this mode is enabled, including paused connections. A persisted send claim and returned fulfilment ID prevent duplicate creation. An uncertain creation response stops for manual verification in Shopify; it is never blindly replayed. Historical orders and orders that did not commit stock cannot enter this flow.

Built on #6 so the order-history, authentication, payment and shipment features work together. Review/merge order: #3 ? #4 ? #5 ? #6 ? #2. Core main includes shipment notification ownership; optional payment imports from #6 separately require Inventoros/Inventoros#305. The release version, changelog and setup guide are updated.

Validation: the full combined suite passes 162 tests / 900 assertions on SQLite. Shipment/HTTP/lifecycle checks pass on MySQL and PostgreSQL (12 tests / 43 assertions each), following the complete database runs for the underlying import stack. The UI builds. The 1.4.0 release ZIP installs, activates, deactivates, reactivates and deletes cleanly through the real installer in an isolated database. Provider calls are faked; no live store was changed.

GitHub-hosted CI cannot start because GitHub reports failed account payments or a spending-limit restriction. No build steps ran; local checks above cover the changes.

@mpge
mpge changed the base branch from feat/variant-warehouse-availability to main October 22, 2026 02:01
@mpge
mpge changed the base branch from main to feat/payment-records October 23, 2026 01:51
@mpge
mpge changed the base branch from feat/payment-records to main October 23, 2026 15:47
@mpge
mpge merged commit ce8c7b7 into main Oct 23, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant