Price and stock sync
Keeping price and stock in sync with your product feed
Why stale prices and stock cause real problems in a product feed, what OpenAI's documentation says about freshness, and how often to refresh.
Checked against the sources on 7 October 20266 min read
A feed is a photograph of your shop at one moment. The shop keeps moving. You sell the last one of something, run a weekend sale, put up a price. Every minute the photograph and the shop disagree, a buyer can be misled.
What goes wrong with a stale feed
- A buyer is shown something as in stock that you sold out of yesterday. You either disappoint them or have to cancel.
- A sale ended but the feed still shows the sale price. You either honour a price you did not intend or send a buyer to a page that says something different.
- A product you have removed is still listed. The page it points to is gone.
- A new product is missing for days because nobody refreshed.
None of these is a disaster in isolation. Together they cost you trust, and trust is hard to measure.
What OpenAI says
The feed spec tells merchants to submit the current price and to update the feed when a sale starts or ends. It treats availability as something to keep current as it changes.
On cadence, the upload guide recommends at least a daily full snapshot. The get started page suggests a full catalogue once a day by file upload, with updates through the day using the API. Small catalogues can use the API for both full and incremental updates. Promotions can only be sent through the API.
The upload guide also gives one detail worth knowing. Products stay for up to 14 days after they disappear from a snapshot, to protect against delayed files. If you need a product out immediately, set is_eligible_search to false rather than just removing it.
How often should you refresh?
There is no single right answer. It depends on how fast your shop changes. A rough way to think about it:
- Made to order, prices rarely change: daily is plenty.
- One-off or limited stock, such as handmade pieces or vintage: stock changes with every sale, so more often is better.
- Running sales or flash offers: refresh when the sale starts and when it ends, not after.
- High turnover with small quantities: hourly, or whatever the fastest option you have is.
Whatever you choose, it is the gap between a change in your shop and the change reaching the feed that matters. A feed sent daily has a gap of up to a day. One synced hourly has a gap of up to an hour.
How SKUHelm handles it
On the free plan, you sync by hand whenever you like. On Pro, SKUHelm re-reads your shop every hour, re-checks every row and updates the hosted feed. It also keeps a change log of price, stock and title changes, so you can see what moved and when, and emails you if items drop out of the feed.
The hosted feed is available as JSONL, CSV and a JSON endpoint. OpenAI's spec lists JSON as unsupported for upload, so use the JSONL or CSV file for delivery and treat the JSON endpoint as something for your own tools.
Habits that keep a feed honest
- Keep stock counts accurate in the shop. A feed cannot be more truthful than its source.
- Mark things out of stock instead of deleting them, so IDs stay stable.
- Turn off sales on the day they end, in the shop, and let the sync carry it across.
- Look at the change log now and then. A price that moved when you did not touch it deserves a look.
- Do not rename products carelessly. If you must, keep the SKU the same.
Where stale data comes from
Most stale feeds are not caused by a slow sync. They come from a source that was never right. Stock counts that nobody updates after a craft fair. Sale prices set in a spreadsheet and not in the shop. Products sold on two channels with no shared stock. A feed copies what the shop says, so before you worry about hourly against daily, check that the shop itself is accurate.
If you sell in more than one place, decide which one is the master. Update stock there, and let everything else follow.
Start with the free plan, sync by hand and see how your feed changes over a week.
Create a free accountQuestions
How often does Pro sync?
Every hour. The free plan syncs when you press the button.
Does OpenAI require hourly updates?
Not as far as the documentation we checked says. It recommends at least a daily full snapshot, with API updates for more frequent changes.
What happens if an item sells out between syncs?
The feed says in stock until the next sync. That is why the length of the gap matters for items with very low stock.
Can I be told when something changes?
On Pro, the change log records price, stock and title changes, and you get an email when items drop out of the feed.
Does SKUHelm push changes to OpenAI?
No. It keeps the hosted feed fresh. Delivery to OpenAI is set up between you and them.