Inventory cutover deserves its own plan
Order sync can often launch with a small test batch. Inventory cutover is riskier because customers see the result directly. If Shopify availability is wrong, the store can oversell, hide available stock, route orders to the wrong warehouse, or create support tickets before the back-office team sees the issue.
A Shopify Odoo warehouse cutover is the moment Shopify starts trusting Odoo inventory data. That means Odoo stock, warehouse mapping, product links, and sync direction need to be correct before live storefront availability depends on them.
This runbook supports the Shopify Odoo inventory sync, multi-location inventory sync, warehouse management, inventory mismatch, and Shopify inventory management with Odoo pages. It is written for operations teams preparing to stop manual stock edits and let the connector own stock movement between Shopify and Odoo.
Define the cutover point
The cutover point should be explicit. Do not let inventory gradually drift into automation while staff still make manual Shopify edits as usual.
Choose a cutover window when:
- Warehouse staff can pause non-urgent stock adjustments.
- Shopify staff know not to make manual quantity edits unless agreed.
- Product links between Shopify variants and Odoo products have been tested.
- Shopify locations and Odoo warehouses are mapped.
- The team has time to review failed jobs after the first sync.
For some stores, cutover is a quiet weekday morning. For high-volume stores, it may be a planned maintenance window or staged by product category. The important part is that the team knows when Odoo becomes the source for Shopify availability.
Do not mix a CSV stock import, manual Shopify edits, Odoo adjustments, and connector updates in the same window unless the team has a clear sequence. Multiple stock writers make it almost impossible to explain differences later.
Build the location map
Start with a location map before touching quantities. Shopify and Odoo do not model locations the same way. Shopify locations are storefront-facing inventory surfaces. Odoo warehouses can contain internal stock locations, routes, bins, and operational rules.
Create a map with these fields:
- Shopify location name.
- Shopify location type: online, retail, 3PL, pickup, marketplace, or reserve.
- Odoo warehouse or stock location.
- Odoo company.
- Sync enabled or excluded.
- Inventory buffer, if used.
- Notes for fulfillment ownership.
Every Shopify location should have an explicit outcome. It either maps to Odoo or it is deliberately excluded. Avoid "default warehouse" behavior unless the business accepts it for that location.
For example, a 3PL Shopify location should not silently use the main Odoo warehouse if that stock is physically elsewhere. A retail pickup location should not expose reserved store inventory online unless that is intentional.
Related guide: Shopify Odoo warehouse mapping.
Confirm product links before opening stock sync
Inventory sync needs product identity. If a Shopify variant is not linked to an Odoo product, the connector cannot know which Odoo stock quantity to use.
Before cutover, check:
- High-volume Shopify variants have linked Odoo product IDs.
- SKU or barcode matching has been tested for existing products.
- Products with variant options match the intended Odoo variants.
- Archived, draft, and inactive products are handled deliberately.
- Bundle or kit products have a separate plan if component stock drives availability.
Run a sample of high-velocity SKUs first. These are the products where mistakes hurt fastest. Then sample slow-moving, variant-heavy, and recently created products.
If the connector has to create missing products during order sync, decide whether that is allowed before inventory cutover. Product creation can be useful, but stock sync should not surprise the catalog team by creating duplicate Odoo products.
Useful reads: product matching guide, existing product mapping, and variant sync.
Decide inventory direction
Inventory direction should match where stock truth changes.
Common patterns:
- Odoo-to-Shopify: Odoo is the warehouse source of truth. Stock adjustments, receipts, transfers, and cycle counts happen in Odoo and update Shopify availability.
- Shopify-to-Odoo: Shopify is allowed to drive stock changes into Odoo for a simpler operation or a specific workflow.
- Bidirectional: both sides can update stock, but conflict rules and timing must be clear.
Most Odoo-centered operations should be Odoo-to-Shopify for stock truth. Shopify orders may still reduce Odoo stock through order or fulfillment workflows. That is different from letting Shopify manual edits overwrite Odoo counts.
If bidirectional sync is enabled, answer these questions:
- What happens if Shopify and Odoo change the same SKU around the same time?
- Does a Shopify manual edit create an Odoo stock adjustment?
- Does an Odoo cycle count overwrite Shopify immediately?
- Are there products or locations excluded from bidirectional behavior?
If the team cannot answer, start with one direction and add complexity later.
Prepare opening stock
Opening stock is the baseline. If the baseline is wrong, every later reconciliation is harder.
Before cutover:
- Run or confirm a recent Odoo cycle count for key warehouses.
- Freeze manual Shopify stock edits for the mapped locations.
- Check pending purchase receipts, transfers, and returns in Odoo.
- Decide whether open Shopify orders should be included in availability.
- Apply any inventory buffer before publishing quantities to Shopify.
For a high-volume store, do not push every SKU blindly. Start with a controlled group. Confirm the numbers, then expand. If there is a mismatch, determine whether the problem is product link, warehouse mapping, buffer, reserved stock, or stale Shopify quantity.
The first opening-stock sync should be followed by a spot check:
- Top 20 selling SKUs.
- Products with multiple variants.
- Products at low stock.
- Products in multiple warehouses.
- Products fulfilled by a 3PL or retail location.
Test one stock event per important location
The location map is not proven until events move through it.
For each important Shopify location, test:
- An Odoo stock adjustment.
- A Shopify order or fulfillment event that affects that location.
- A failed product link case.
- A quantity correction after a cycle count.
The expected outcome should be visible in Shopify and Odoo. If a test fails, check whether the issue is location mapping, company access, product link, inventory direction, or API permissions.
Do not move to all locations until the first important location is clean. A repeated mapping issue across five warehouses is harder to fix than one issue found early.
Useful reads: Odoo stock quant to Shopify inventory, inventory webhook payload guide, and default inventory location guide.
Plan for 3PL and retail locations
Third-party logistics and retail locations need special attention because they often have different operational ownership.
For a 3PL:
- Confirm whether Odoo, the 3PL, or Shopify owns the stock count.
- Confirm whether the 3PL location should map to a separate Odoo warehouse.
- Check whether fulfillment events originate in Shopify, Odoo, or the 3PL app.
- Decide whether buffer stock should apply.
For retail:
- Decide whether store stock is available online.
- Exclude reserved store inventory if it should not sell online.
- Confirm POS orders reduce Odoo stock if POS is part of the workflow.
- Test pickup and ship-from-store separately if both exist.
For regional warehouses:
- Map region-specific Shopify locations to corresponding Odoo warehouses.
- Check market, company, and currency context if Shopify Markets or multiple companies are involved.
- Test one order per region.
The question is not "does this location exist?" The question is "should Shopify buyers be allowed to consume this stock, and which Odoo warehouse proves that quantity?"
Monitor drift signals after cutover
Inventory drift often starts as small manual workarounds. Watch for them early.
First-week drift signals:
- Shopify staff make manual stock edits after cutover.
- Same SKU repeatedly appears in failed inventory jobs.
- Products show different quantities across Shopify and Odoo after reconciliation.
- Orders route to a Shopify location that is not mapped.
- Cycle-count corrections in Odoo do not reach Shopify.
- High-velocity SKUs sell while queue jobs are delayed.
Review these signals daily during week one. The review should not be complicated. Pull failed inventory jobs, compare top SKUs, and ask warehouse staff whether they made manual edits.
If drift appears, classify it:
- Product identity problem.
- Location mapping problem.
- Inventory direction conflict.
- Buffer or reservation issue.
- Odoo access or company issue.
- Shopify API delay or rate limit.
Fix the class of issue, not only the individual SKU.
Cutover checklist
Use this list before opening inventory sync:
- Shopify locations are listed and classified.
- Odoo warehouses or stock locations are selected.
- Odoo company context is verified.
- Unmapped locations are excluded deliberately.
- Product links are tested for high-volume SKUs.
- SKU or barcode matching is confirmed.
- Inventory direction is selected.
- Opening stock baseline is reviewed.
- Buffer rules are documented.
- 3PL and retail location behavior is decided.
- One stock event is tested per important location.
- One failed inventory job is reviewed by the operations team.
- First-week monitoring owner is assigned.
After this checklist is complete, inventory sync has a real operating foundation. The storefront is no longer trusting a generic stock number. It is trusting a mapped Odoo warehouse model that the team has tested.
Where Synco fits
Synco Connector maps Shopify inventory locations to Odoo warehouses, supports configurable inventory direction, processes stock updates through queues, and keeps failed inventory jobs visible. That matters because inventory sync is not a cosmetic feature. It is the workflow that protects revenue and customer trust.
Use this runbook with stop Shopify overselling with Odoo inventory sync, two-way Shopify Odoo stock sync, and the Shopify Odoo go-live checklist before relying on automated stock in production.