Home / Guides / Stock & ads

Stock & ads

How to verify a tool's variant-level stock sync

Every vendor says they sync inventory. The test takes an afternoon and it settles the question permanently.

Updated 10 Sep 2026 · ~1097 words · David Smith

Every vendor in this category says they sync inventory. Almost all of them do, in some sense, at some grain, with some latency. The words are identical and the products are not, so the only useful move is to stop reading feature lists and run the test.

Direct answer: Zero one variant of a multi-variant product, leave its siblings alone, and time three things: how long until the catalogue shows it unavailable, whether the siblings are affected, and how long until delivery stops. Then restock it and time the recovery. That is the whole test, it takes an afternoon, and it answers the question permanently.

13:0014:0015:0016:0017:0014:03 last size 12 sold15:40 catalogue says out of stock97 minutes of paid clicks to an empty shelf
This is the number the test produces. Ninety-seven minutes is a real figure from a real store; yours is whatever the stopwatch says.

The four ways it breaks

When an integration disappoints, it is nearly always one of these, and the test above distinguishes them cleanly.

  1. Wrong grain. The tool reads product-level stock and the catalogue is variant-level, or the reverse. Symptom: the whole parent vanishes, or nothing happens at all.
  2. Wrong location. The tool sums stock across every location, so your DTC pool is empty while wholesale still holds units and the tool sees plenty. Symptom: availability never flips despite your fulfilment location being at zero.
  3. Wrong latency. Everything works, on a schedule long enough that a Friday evening stockout stays advertised until Saturday morning. Symptom: correct behaviour, hours late.
  4. Wrong direction. Removal is fast, restoration is slow. Symptom: restocking a bestseller and waiting half a day for it to start earning again.

Only the first two are usually called out in sales conversations. The last two do most of the financial damage, and neither appears on any feature comparison.

Turn the lag into a number

A lag figure on its own invites shrugging. Convert it before you present it to anyone.

Take your catalogue campaign's hourly spend, multiply by the observed lag in hours, and you have the cost of a single stockout event. Multiply by how many times a month a variant goes to zero mid-flight, which for a fashion catalogue is rarely a small number. Now you have a monthly figure, and the conversation about whether to invest in fixing it becomes a normal commercial decision rather than a technical preference.

The fuller version of that arithmetic is in variant-level ad spend and waste.

An integration nobody has tested is a claim, not a capability.

Also test the boring half

Once the sync works, the failure mode moves. Integrations do not usually stop working loudly. They stop working quietly, an API token expires or a mapping changes, and everyone carries on trusting yesterday's behaviour for three weeks.

So ask the second question: how would I find out this broke. If the answer is that someone would eventually notice the numbers looking odd, the integration is unmonitored regardless of how well it performs in your test today. Alerting on a sync that has not run is worth more than shaving twenty minutes off the latency.

Run it on what you already have first

Before shortlisting anything, run this test against your current setup. A meaningful share of stores discover their native Shopify to Meta sync is performing fine, and the real problem is that their catalogue is parent-level, or that nobody has looked at the creative in four months. A lag like this can look identical to a checkout problem from the outside, so it's worth ruling out the funnel first using this guide to a Shopify store with no sales.

Those findings are free, and they save you buying a tool to fix something that was never broken.

Run the test

0 of 6 done. Ticks stay on this device. When they are all ticked you know exactly what a desk would be doing for you.

Run a controlled stockout test on a variant-level integration

  1. Pick the right test subject. A product with at least three live variants, currently being served by a catalogue campaign, where one variant sells slowly. You need siblings still serving, because the whole point is proving the others are unaffected.
  2. Record the starting state and the clock. Screenshot the variant in Shopify, in the catalogue in Commerce Manager, and note that it is currently deliverable. Write down the exact time you are going to make the change. Vague timings produce vague conclusions.
  3. Zero exactly one variant. Set available to zero at the location that fulfils online orders. Change nothing else. Do not use the product-level unpublish, which tests something entirely different and will give you a false pass.
  4. Watch the catalogue, not the ad. Refresh the item in Commerce Manager every few minutes and record when availability flips. This is the integration boundary, and it is the number the vendor is actually responsible for. Ad delivery reacts afterwards on its own schedule.
  5. Confirm the siblings are untouched. This is the step that catches parent-level integrations dressed as variant-level ones. If the other sizes lost availability or delivery too, you have found something significant, and it is the opposite of what you were sold.
  6. Watch delivery for a second reading. Check whether impressions for that item stop in the platform's item-level reporting. There is normally a further delay after availability flips, and that delay is also your money.
  7. Restore, and test the reverse. Put the stock back and time the recovery. Slow recovery is a real cost too: a restocked bestseller that takes six hours to become advertisable again is lost revenue on the day it matters most, and almost nobody measures this direction.
  8. Repeat once at a bad time. Run it once on a Friday evening or during a sale. Sync latency is not constant, and the number that matters is the one during your worst hour rather than during a quiet Tuesday.

Questions people actually ask

How do I prove a platform really syncs at variant level?

Zero one variant of a multi-variant product in Shopify, leave the other variants untouched, and time how long until that specific variant stops being advertised while its siblings keep serving. If the whole parent product disappears, the integration is parent-level. If nothing changes, it is not connected the way you were told.

What is an acceptable lag?

It depends on your spend rate rather than on a universal number. Multiply your hourly catalogue spend by the observed lag to get the cost of one stockout event, then multiply by how often it happens. That figure tells you whether the lag is acceptable far better than any vendor benchmark.

Can I run this test without risking real sales?

Yes. Pick a genuinely low-volume variant, run it outside your peak hours, and set it back as soon as you have your reading. You are usually risking a single-digit number of potential orders for a permanent answer to an expensive question.

What if the vendor will not let me test?

That is your answer. Any integration that works survives an afternoon of scrutiny on a real catalogue. A trial that cannot include this test is a demo, not a trial.

how do i verify that an ad automation platform's inventory connection actually works at size and color variant level?

Run a controlled stockout: set one slow variant to zero in Shopify at a known time, watch the item in the vendor's tool and in Commerce Manager until it flips, and write down the minutes. Then restore stock and check it flips back. If the vendor only shows the parent product, the connection is not variant-level, whatever the sales deck says.

If a sold-out size is the problem: Ralph reads every size against every campaign overnight, finds the ones still paying for an empty shelf, and stages the exclusion with a revert for restock day. You say yes. See Ralph · How Ralph handles out-of-stock sizes · Docs