This is the reference table nobody publishes. Every product type handles inventory differently, and the behavior isn’t always what you’d expect.

Product TypeTracks Stock?How It WorksWatch Out For
SimpleYesSingle quantity, decrements per orderStock status can override quantity manually
MeasuredWith extensionRequires Measurement Price Calculator for decimal stockNative WooCommerce doesn’t support decimal quantities
GroupedChildren onlyNo stock on parent; each child product has its ownParent shows “out of stock” only when ALL children are
VariablePer variationEach variation has independent stock, SKU, priceImporting via CSV: orphaned variations if parent SKU is wrong
ExternalNoNot your inventory — links to external siteNo orders or sales data generated in your store
DownloadableOptionalStock tracking available but rarely used for digitalAuto-complete can finalize mixed-cart orders prematurely
Add-OnsNoAdd-on options have NO inventory trackingCannot mark an add-on option as “out of stock”
BundlesPer componentEach bundled product’s stock deducts independentlyIf one component sells out, entire bundle becomes unavailable
CompositePer selectionStock deducts based on customer’s component choicesComplex composites can have availability race conditions
SubscriptionsPer renewalEach renewal creates an order that deducts stockRenewal failures if subscription product goes out of stock
MembershipsN/AAccess control system — not a physical productDiscount stacking with sales + coupons can be unexpected
BookingsCapacity-basedAvailability by time slot and resource, not traditional stockTimezone mismatches between operator and customer
Content DripN/ADigital access — no physical inventoryRefund → access revocation may not be automatic across LMS + Woo
Print on DemandEffectively noProducts always “in stock” — POD provider manufactures on demandReturns have no clean flow; label points to your address, not POD facility
MarketplaceVendor-managedEach vendor manages their own stock in their dashboardNo cross-platform sync; vendors must maintain accuracy manually