Nicotine, vape and tobacco excise-style fees on Shopify

Last updated: September 23, 2026 · Calculation methods only; rates come from your state's tax agency

US nicotine and tobacco charges come in four common shapes: a percentage of the wholesale price, a fixed amount per can or unit, a rate per pouch, and a rate per ounce. FlexiFees has a fee type for each: Percentage of metafield (or Percentage by cost), Fixed, Per unit of metafield, and Per weight. The fee appears as its own line in the cart and at checkout, you can set different rules per product group, and a Formula fee can combine two methods in one line.

Know who owes what first. Nicotine and tobacco taxes are set by each state, and many are levied on distributors or retailers rather than charged to the consumer as a separate line. Whether you show a separate excise-style fee, and at which rate, is a decision for you and your tax advisor. FlexiFees performs the calculation you configure; it does not determine rates or file or remit anything. Not tax or legal advice.

The four calculation methods in FlexiFees

The amounts below are examples to show the math, not any state's rates.

Rule shapeFlexiFees fee typeSetupWorked example
Percentage of the wholesale pricePercentage of metafield, per product feeStore the wholesale price in a product or variant metafield such as custom.wholesale_price. If your Cost per item is the wholesale price, use Percentage by cost instead.40% of 2.00, three cans: 2.40
Fixed amount per can or unitFixed, per product feeThe amount is multiplied by quantity automatically.0.65 per can, 10 cans: 6.50
Rate per pouchPer unit of metafield, per product feeStore pouches per can in a variant metafield such as custom.pouches_per_can.0.05 per pouch, 20 pouches, three cans: 3.00
Rate per ouncePer weight, per ounce, per product feeSet the weight on each variant in Shopify; other units are converted.0.50 per oz, 0.6 oz can, 10 cans: 3.00
FlexiFees fee form with fee type Percentage of metafield, 40 percent of product metafield custom.wholesale_price

Different rules for different products

Create one fee per rule and give each its own product conditions, so pouches, e-liquids and cigars each get the right calculation. Good ways to select a product group:

For a rate per milliliter of e-liquid, the same Per unit of metafield pattern works with a metafield such as custom.ml_per_unit.

A percentage plus a per-unit amount

Some rules combine two parts. Either create two fees with the same conditions (each shows as its own line), or one Formula fee:

  • Both parts: 0.65 * qty + 0.10 * price * qty
  • Whichever is higher: max(0.65 * qty, 0.02 * price * qty)
  • A percentage of a stored wholesale price plus a per-unit amount: 0.40 * pmf("custom.wholesale_price") * qty + 0.65 * qty

Use Try it on a real product in the formula editor to check the result against one of your products before you publish.

FlexiFees formula editor with 0.65 * qty + 0.10 * price * qty and a Try it result of 11.50 for 10 cans of nicotine pouches

Different rules per state

Add the Logged-in customer state / province condition (picked from a list) and create one fee per state rule. Add Customer country is one of United States to pin the country.

FlexiFees conditions: product collection Nicotine pouches and logged-in customer state Washington
Logged-in customers only. FlexiFees adds the fee in the cart. The state is known there for logged-in customers with a saved default address; for guest checkouts it is only known later, at checkout, so state-based fees do not apply to guest carts today. A cart-page ship-to-state selector is planned.

Setup steps

  1. Put the numbers on your products: wholesale prices or pouch counts in metafields (how), weights on the variants.
  2. Create a fee per rule with the matching fee type and a clear Title, and choose Per product fee.
  3. Add product conditions for the product group, and a state condition if the rule is state-specific.
  4. Set the Taxable toggle and an optional SKU as your tax advisor recommends.
  5. Publish and test with a real cart.
The first cart with a new amount. Calculated fees produce amounts Shopify has not seen before; the first time a new amount appears, Shopify can take a few seconds, occasionally up to about a minute, to accept the fee line. FlexiFees retries automatically and the same amount is instant afterwards.
Buy It Now. If the fee must be on every matching order, enable the Buy Now guard so express checkout buttons cannot skip the cart while the fee applies.

Official sources (examples)

Not tax or legal advice. Rates, the taxable base and who owes the tax differ by state and change often. Confirm with each state's tax agency and your advisor before you publish a fee.

Related

Questions

Does FlexiFees calculate or remit nicotine taxes?

No. FlexiFees adds the excise-style fee you configure as a line item. Rates, whether to charge the customer, and filing and remitting are up to you and your tax advisor.

Can I charge a percentage of the wholesale price?

Yes. Store the wholesale price in a metafield and use Percentage of metafield, or use Percentage by cost if Shopify's Cost per item holds the wholesale price.

Can I charge per pouch?

Yes. Store the number of pouches per can in a variant metafield and use Per unit of metafield: 0.05 per pouch with 20 pouches and three cans gives 3.00.

Do state-specific fees work for guest checkouts?

Not today. The state is known in the cart only for logged-in customers with a saved address. A cart-page ship-to-state selector is planned.

Do I need Shopify Plus?

No. FlexiFees works on every Shopify plan.

Start free trial on Shopify