A product marked as digital gets no shipping rate, and it can take the cart with it

RateGuard · Last checked 14 August 2026

A Shopify product with “This is a physical product” unchecked is not shippable, so it contributes nothing to a shipping quote and can leave the entire cart with no rate. It is the most common cause of a silently broken checkout and it is almost never a decision anyone made: the flag arrives that way through CSV imports with a missing column, through apps that create products via the API, and through duplicating a genuinely digital product. The catalogue looks normal in the admin, because a non-shippable product is a legitimate thing to sell. Here is what the flag does, why it lands where it does, and how to find every one in a single export.

What the flag actually does

Shopify decides whether a line item needs delivery from one boolean per product, exposed in the admin as the “This is a physical product” checkbox and in exports as Requires Shipping. When it is off, that item is not shippable, so it contributes nothing to a shipping quote.

Products → open a product → Shipping → “This is a physical product”

The part that catches merchants is what happens to the rest of the cart. A cart made only of non-shippable items correctly skips shipping entirely, which is right for a store selling downloads. A cart mixing a normal product with one that is wrongly flagged is where it goes wrong, and the outcome depends on your rates: weight-based rates see a lighter cart than reality, and a cart that ends up below your lowest bracket returns nothing at all.

Why it is almost never deliberate

Three routes account for most of it, and none of them involves anyone deciding a product is digital.

Find every one of them in two minutes

Do not click through products. The ones that break checkout are, by definition, the ones you would not think to open.

  1. Products → Export → All products → CSV for Excel, Numbers, or other spreadsheet programs.
  2. Open the file and sort on the Requires Shipping column.
  3. Every row reading FALSE that is not genuinely a download, a service or a gift card is a cart you are losing.

Fix them in the admin one by one if there are a handful. For more than that, correct the column in the export and re-import the file, then re-check by exporting again: an import that silently skipped rows looks identical to one that worked.

Gift cards are a real exception. A gift card product is correctly non-shippable and should stay that way. So is a service, a deposit, and a download. The check is not “every row should say TRUE”, it is “every row saying FALSE should be something you would never put in a box”.

The variant trap

The flag lives on the variant, not only on the product. A product whose default variant is correct can still hold a second variant that is not, usually because it was added later or by an app. In the CSV, that is a row with the same Handle and a different Requires Shipping value, which is why sorting on the column beats scanning by product name.

Check the whole store instead of one setting

RateGuard reads your products, delivery profiles, zones, brackets and locations and names the specific setting that returns no rate at checkout. Read-only: it can see your shipping configuration and cannot change it, and it is never given customer or order data.

  • Five of the six documented causes checked in full, carrier-calculated rates in part
  • Three free scans for the lifetime of the store, PDF report included, no card
  • Every finding names the admin screen and the field to change
Scan your store freesoon

Written 14 August 2026. Admin paths reflect the Shopify admin as of that date; Shopify moves settings occasionally, and this page is re-checked when it does.