Why Doesn't My Digital Product Show WooCommerce Shipping?
Why WooCommerce Skips Shipping for Virtual Items
The Virtual checkbox exists specifically to tell WooCommerce a product doesn't need physical fulfillment — a service, a digital license key, a subscription to online content — and the system's shipping logic checks this flag to decide whether shipping fields and calculation apply at all. This is separate from the Downloadable checkbox, which additionally handles delivering an actual file, though the two are commonly used together for digital goods.
Common Related Scenarios
- A cart mixing virtual and physical products still shows shipping options, calculated based only on the physical items, since the virtual item correctly contributes nothing to that calculation.
- A product accidentally marked Virtual when it actually needs physical shipping is a common cause of a product mysteriously missing from shipping calculations when it shouldn't be.
- Downloadable without Virtual is possible but unusual — a physical product that also includes a downloadable component (a manual, for instance) alongside genuine physical shipping.
- Order confirmation and email content often differs slightly for virtual products, typically emphasizing access/download instructions instead of shipping/tracking information.
Confirming This Is Set Correctly
- Check the product's General tab and confirm the Virtual checkbox matches whether it actually needs physical shipping.
- Uncheck Virtual if a product was mistakenly marked as needing no shipping.
- Review order emails and confirmation content for virtual products to ensure they reflect the correct fulfillment type.
Confirming the flags on each product
- Open the product's General tab. Check the Virtual and Downloadable boxes against what the product really is. A service or licence is virtual. A file delivered to the customer is virtual and downloadable.
- Check variations separately. For a variable product, each variation has its own Virtual and Downloadable settings, so one may be flagged differently from the parent.
- Test a cart with only that product. Shipping fields should not appear at checkout. If they do, something on the cart is still marked as physical.
- Test a mixed cart. Shipping should be calculated for the physical items only.
If you still need an address
A virtual-only order hides the shipping address but still asks for billing details, because they are needed for tax and payment. Where you want less friction, billing fields can be reduced with a checkout-field setting or plugin, with the caveat that tax rules in some regions need the customer's location.
Need digital product configuration reviewed and corrected? See custom WooCommerce development.