Skip to content

Back in stock everywhere except where customers look

Date

12 Aug 2026

Category

Gotcha

Platform

Shopify

A client messaged first thing to say two products were back in stock, could we put them back on the site. The obvious version of that job is inventory. The actual job was everything else.

What we found

Both products were already published and buyable before we touched anything. Anyone who knew the exact URL could have bought one. But the picker on the product page, the block customers use to choose between the related versions of the product, rendered with nothing in it. And neither product sat in the collection that feeds the build-your-own-box builder. On every route a real customer takes, the restock had not happened.

That picker is not driven by the products themselves. It reads a metaobject, a list the store keeps of which products belong together, and those lists still held only the older items. Two things follow from that, and they are the part worth knowing. Setting the field on a product does nothing while the product is missing from the list. And an incomplete list quietly breaks the products that were fine: repairing the two entries brought the picker back on pages nobody had reported as broken.

What we did

Fixed the lists, added both products to the collection, then verified every product page rather than the two we had changed. The durable part came after: a runsheet naming the surfaces a stock change touches, who owns each one and the order they have to be done in, plus a read-only command that prints, per product, whether it is published and buyable, which collections hold it, what tags it carries and what its picker renders. A stock change now ends in a check instead of a hope.

What to take from it

“Back in stock” is one field on Shopify and a merchandising job everywhere else. Collections, bundle builders, pickers, upsell rules and the tags left over from the last time it sold out each hold their own idea of what the store sells, and none of them watch the inventory number. The failure is silent: nothing errors, nothing looks broken, the product is simply absent from the paths customers use. If you sell things that go out of stock and come back, write the list of surfaces down once. It is the same list every time.