Shopify: "Fulfillment service can't be blank"
Every variant row needs a fulfillment service and an inventory policy — including the continuation rows most exporters leave empty.
What you are seeing
The import is refused at the validation step, before the preview, usually together with a message about inventory policy.
Fulfillment service can't be blank
Inventory policy is not included in the list
Why it happens
These two columns are required on EVERY variant row, not just on the first row of each product. Most supplier exports and most hand-built files fill them on the product row and leave the continuation rows blank, because that is what you do with Title and Vendor — and for those columns it is correct. For these two it is not.
The two errors travel together because they are the same omission seen twice: a blank fulfillment service is blank, and a blank inventory policy is not one of the values the field accepts.
How to fix it
- Fill Variant Fulfillment Service down every row that carries variant data. `manual` is the right value unless you use a third-party fulfillment service, in which case use its name.
- Fill Variant Inventory Policy down the same rows. `deny` stops selling at zero stock; `continue` allows overselling. Those are the only two values.
- Do NOT fill them down rows that carry no variant — an image-only continuation row with a fulfillment service on it becomes a variant you did not want.
Where this came from
We broke a real Shopify store on purpose to answer these questions, and kept what it said. Nothing on this page is quoted from documentation.
What we did not measure. We saw this refusal on a file whose continuation rows omitted both columns. We did not test each column in isolation, so we cannot tell you which of the two fires first on a file missing only one.
Observed 2026-09-04. The store this was measured on has since been deleted, so these answers are an archive rather than something we re-run — we would rather tell you the date than imply it is checked continuously.
Check your file before you upload it
The Pre-Flight Report reads your supplier file and names every blocker, with the row it is on, before you go near an importer. It is free, it needs no account, and it does not send your file to a model.