Product conditions
Last updated: July 18, 2026
Product conditions match the items in the cart: tag, collection, type, vendor, title, SKU, barcode, HS code, country of origin, specific products or variants, metafields, line item properties, unit price, and line quantity. On a cart fee they decide whether the fee applies; on a per-product fee they also select exactly which items are charged.
Product tag
Rules: contains, does not contain, is one of, is not one of.
Matches Shopify product tags, the workhorse for fee targeting: tag the affected products once and the fee follows them forever. Tags power the Pfand deposit (tag deposit) and California CRV (tags crv5, crv10 for the two rates).
Collection
Rules: contains, does not contain, is one of, is not one of (collection title).
Matches products by the collections they belong to. Handy when your catalog is already organized: everything in Beverages carries the deposit, everything in Furniture the weight-based eco-participation, with no extra tagging.
Product type
Rules: contains, does not contain, is one of, is not one of.
Matches the standard Product type field. The French eco-participation preset uses it (type small appliance), as do mattress and tire recycling fees.
Vendor
Rules: contains, does not contain, is one of, is not one of.
Matches the product's vendor field. Typical for a dropship handling fee: items shipped from a partner's warehouse carry their surcharge, your own stock does not.
Product title
Rules: contains, does not contain, is one of, is not one of.
Is one of matches the product name; contains matches the full "Product - Variant" text, so it can also catch variant names. Useful when a naming convention already marks the products, for example titles containing OVERSIZED add a bulky handling fee.
SKU
Rules: contains, does not contain, is one of, is not one of.
Matches variant SKUs. With a disciplined SKU scheme, contains FRZ- puts a cold pack fee on all frozen items, and a parts list by SKU drives a core charge.
Barcode
Rules: contains, does not contain, is one of, is not one of.
Matches the variant barcode field (ISBN, UPC, GTIN). Deposit and recycling programs often publish covered-product lists by GTIN; paste them into is one of and the bottle deposit lands exactly on the listed containers.
HS code
Rules: contains, does not contain, is one of, is not one of, starts with, does not start with.
Matches the variant's Harmonized System code from the product's shipping settings. HS codes are hierarchical, so starts with is the star: starts with 8517 covers a whole tariff heading, 85 a whole chapter. You can type codes dotted (8511.20) or bare (851120); both work. Items without an HS code never match. This is the precision tool behind the tariff surcharge.
Country of origin
Rules: is one of, is not one of.
Matches the variant's country of origin (two-letter ISO codes, from the product's shipping settings). Note the codes are not always obvious: GB is the United Kingdom, DE Germany, CN China. Comma-separate several, like CN,VN. Items without an origin set never match. The tariff preset combines this with a percentage-of-cost fee.
Product IDs
Rules: is one of, is not one of.
A hand-picked list of product IDs (from the product page URL in your admin). The bluntest and most precise tool: exactly these products, nothing else. Good for short, stable lists like a handful of deposit bottles.
Variant IDs
Rules: is one of, is not one of.
Like product IDs but at variant level. When only the assembled variant of a product should carry an assembly fee, or only the glass-bottle variant a deposit, target the variant IDs directly.
Product metafield
Rules: contains, does not contain, is one of, is not one of. Value format: namespace.key:value1,value2.
Matches custom product metafields, for structured data that tags should not carry: custom.battery:true drives a battery recycling fee, custom.screen_size:large an e-waste fee tier. The metafield definition needs Storefront access enabled so its value is readable; list metafields match when any entry matches.
Variant metafield
Rules: contains, does not contain, is one of, is not one of. Value format: namespace.key:value1,value2.
The same idea one level down, on the variant. When only some variants are glass (custom.material:glass), a fragile handling fee hits exactly those.
Line item property
Rules: contains, does not contain, is one of, is not one of. Value format: key:value1,value2 (use * for any value).
Matches options saved on the individual cart line, the way themes record engraving text, gift wrap choices, or uploads. Engraving:* charges the personalization fee only on lines that actually have an engraving; plain lines of the same product stay free. Also the cleanest route to a per-item gift wrap fee.
Product price (per-product fees only)
Rules: is greater than or equal to, is less than or equal to, is equal to, is not equal to.
The unit price of a single line after discounts, in your store currency. Every line whose own price passes is charged: items of 500 or more get white-glove handling. Combine with a tag or type condition to narrow the range.
Line quantity (per-product fees only)
Rules: is greater than or equal to, is less than or equal to, is equal to, is not equal to.
The quantity of one product line, not the whole cart. Six or more of the same wine triggers a case-packing fee on that line. For the cart-wide count use total quantity.
Related
- All 34 conditions at a glance
- Cart conditions and customer conditions
- Fee types: what happens once these match