A stock number without context is not enough
Two-way inventory is often described as a direction switch: send Tally stock to Shopify, or send Shopify stock to Tally. Real inventory does not stay safe with direction alone.
A Shopify quantity belongs to an inventory item at a particular Shopify location. A Tally quantity belongs to a Stock Item, unit, company, and inventory context. If any of those identities is guessed, the number can be correct and still land on the wrong product or location.
Tally Connect therefore requires confirmed identities before inventory can be activated. The current automatic workflow also requires exactly one confirmed Shopify location mapped to one discovered Tally godown. Multi-godown automatic inventory is not presented as ready when the underlying Tally read is aggregate.
Four things must agree before the first sync
Treat the inventory baseline as an operational approval, not a one-click import. For each product and location pair, confirm:
- Product identity: the Shopify variant is linked to one verified Tally Stock Item.
- Location identity: the active Shopify location is linked to the intended discovered godown.
- Unit conversion: the approved ratio converts quantities into whole units in both directions.
- Starting quantity: the observed Shopify physical quantity and Tally closing quantity represent the same real stock position.
Only then can the connector measure later changes against a shared checkpoint.
Shopify available inventory is not always physical stock
Orders can create a timing gap between what Shopify exposes as available and what has already been posted into TallyPrime. If a paid order reserves stock in Shopify before its Sales Voucher updates Tally, copying the available number directly may subtract the same units twice.
Tally Connect reasons about Shopify physical stock using the available quantity plus tracked reservations for eligible, unposted orders. The baseline and later comparisons use this normalized view rather than assuming that every visible quantity has identical meaning.
This is why order readiness and inventory readiness cannot be designed as unrelated features.
The checkpoint makes change measurable
After a baseline is approved, a later observation can be compared with the last state both systems agreed on.
- Neither side changed: no work is required.
- Only Shopify changed: queue a reviewed Tally Physical Stock adjustment when the configured mode permits it.
- Only Tally changed: update Shopify using a compare-and-set guard when the configured mode permits it.
- Both sides changed: create a conflict and pause that pair.
- The connector sees its own result: recognize the echo and avoid sending the same change back.
Without the checkpoint, the connector cannot reliably distinguish a new warehouse movement from the delayed reflection of its own earlier write.
Conflicts protect real-world work
Suppose warehouse staff correct a quantity in TallyPrime while the ecommerce team adjusts the same SKU in Shopify. Choosing one side automatically would discard valid work without telling either team.
Tally Connect records a conflict instead. The merchant can choose the Tally quantity, the Shopify quantity, or a reviewed custom whole quantity. Resolution does not finish until fresh observations prove the chosen value and establish a new checkpoint.
A conflict is therefore not simply an error. It is a safety boundary for simultaneous change.
Why compare-and-set matters on Shopify writes
Inventory can change between the time a scan reads Shopify and the time a queued job tries to write. A blind update may overwrite an order or manual adjustment that arrived during that gap.
The Tally-to-Shopify path should confirm that the Shopify quantity still matches the value used for the decision. If it has moved, the connector should stop and re-evaluate instead of overwriting the newer change.
The same principle applies to activation. A change to company identity, product mapping, location mapping, unit ratio, or compatibility evidence invalidates the old readiness proof and pauses automatic inventory.
A useful inventory launch test
Use a small set of products with easy-to-count physical stock. For each one:
- Verify the product and location mappings.
- Confirm the unit ratio using quantities that convert exactly.
- Record the Shopify physical quantity and Tally closing quantity.
- Approve the baseline only when both values describe the same stock.
- Test a Shopify-only change and inspect the Tally result.
- Test a Tally-only change and inspect the Shopify result.
- Create a simultaneous change and confirm that a conflict appears.
- Resolve the conflict and confirm a fresh checkpoint is created.
- Temporarily take the Agent offline and confirm work waits safely.
Do not expand to the full catalog until these cases are understood by the people who will own exceptions after launch.
Signals operations should review
Inventory health is not just whether the first quantity matched. Monitor open conflicts, stale baselines, offline Agent status, failed observations, and product or location pairs paused after configuration changes.
A recurring manual correction usually points to a deeper ownership question. Decide which system is authoritative for that workflow instead of training the team to keep fighting the connector.
Continue with inventory baselines, two-way inventory, and conflict resolution.