Shipping perfume from Shopify without hazmat mistakes
Set up shipping profiles, zones, label tools and a Flow hold so no perfume order ships by air, to the wrong address or without hazmat declared.
The short answer
To ship perfume from Shopify, set up three safeguards, because Shopify’s Help Center says its USPS and FedEx labels can’t carry hazmat. First, a shipping profile, or a collection once your store moves to shipping options by market, that offers only ground services: USPS, UPS or FedEx ground in the lower 48 and DC, and USPS Ground Advantage alone for Alaska, Hawaii and Puerto Rico. Second, a label tool that declares hazmat. Third, a Shopify Flow workflow that holds perfume orders bound for military addresses, other countries or air services.
Setup checklist for shipping perfume from Shopify
Work through these in order.
- Tag every flammable item
hazmat-flammable, samples and gift sets included. - Record each scent’s flash point, from Section 9 of its safety data sheet (SDS), plus bottle size and sample status (product data).
- Move tagged products into a custom shipping profile, and add each new scent at launch (profile setup).
- Give it two ground-only zones: the lower 48 and DC, then Alaska, Hawaii and Puerto Rico.
- Buy perfume labels in a tool that declares hazmat (label tools).
- Turn on the Flow hold (the recipe).
- Test a mixed cart, plus perfume to Honolulu, an APO address and Toronto.
- Before peak, set your holiday order-by date from your ground carrier’s last day to ship (2026 dates and calculator).
- Recheck it all when your store moves to shipping options by market (what changes).
Should a perfume order ship, hold or go ground only?
Ground is the safe default, and only USPS takes perfume to Alaska, Hawaii and Puerto Rico by ground. The table assumes typical alcohol-based perfume in glass or plastic: a Class 3 flammable liquid with a flash point above 20°F up to 73°F.
| Item | Destination | Service | Decision |
|---|---|---|---|
| Perfume, up to 16 fl oz per box | Lower 48 or DC | USPS Ground Advantage, UPS Ground, FedEx Ground or Home Delivery | Ship. Declare hazmat on USPS labels; FedEx needs a scheduled pickup. |
| Perfume, over 16 fl oz per box | Lower 48 or DC | UPS Ground or FedEx Ground | Ship in one box, within Limited Quantity limits. |
| Perfume, over 16 fl oz per box | Anywhere | USPS | Hold. Split into boxes of 1 pint or less. |
| Perfume, up to 16 fl oz per box | Alaska, Hawaii or Puerto Rico | USPS Ground Advantage | Ground only. Hold Alaska ZIP codes USPS serves only by air. |
| Perfume | Alaska, Hawaii or Puerto Rico | UPS or FedEx | Hold. Rebook by USPS Ground Advantage. |
| Perfume | Anywhere | Any air service, or UPS Ground Saver | Hold. Rebook by ground, unless you have USPS air approval or a carrier dangerous goods contract. Ground Saver refuses Limited Quantity. |
| Perfume | Canada | UPS Standard or FedEx International Ground | Ground only, on your own account set up for Limited Quantity. Never USPS. |
| Perfume | APO, FPO or DPO, a territory such as Guam, or another country | Any | Hold. USPS bans it, and UPS and FedEx don’t take it by ground. Ask the customer for another address. |
| Samples only, each vial 30 ml or less | Lower 48 or DC | USPS Ground Advantage | Ship under USPS’s Small Quantity rule, with its package statement and hazmat declared on the label. |
| Perfume oil, flash point above 200°F | Any U.S. address | Any USPS service | Ship. USPS doesn’t treat it as hazmat if it has no other hazard. |
For each carrier’s full rules, see our USPS, UPS and FedEx guides, or test one box in the carrier checker.
What product data do these rules need?
One tag and three fields, because Shopify’s rules can act only on what your products record.
| Data | Set on | Shopify type | Example | What a rule can check |
|---|---|---|---|---|
| Hazmat tag | Product | Tag | hazmat-flammable | Whether an order or collection holds perfume |
| Bottle size (ml) | Variant | Integer metafield | 100 | Liquid per box. USPS allows 1 pint (16 fl oz, about 473 ml) of typical perfume. |
| Flash point (°F) | Product | Decimal metafield | 55 | The USPS band: not mailable at 20°F or lower, 1 pint per box up to 73°F, 1 quart above 73°F and below 100°F, not hazmat above 200°F |
| Sample | Variant | True or false metafield | true | Samples count toward the 1-pint box limit, and a box of only vials of 30 ml or less can use Small Quantity |
Plain numbers work in automated collections; Shopify’s volume and temperature types don’t. To add one, open the Metafields page in your Shopify admin, go to products or variants, click Add definition, name it, click Select type, and select Smart collections.
How do I set up Shopify shipping profiles for perfume?
Create a custom profile for your tagged products with ground rates only. Shopify allows up to 99 custom profiles, and a product or variant belongs to only one, so moving a perfume in takes it off the general profile’s air rates.
- From your Shopify admin, go to Settings > Shipping and delivery.
- In Shipping profiles, click Add custom profile and name it, such as “Perfume, ground only.”
- In Products, click the right arrow icon, select your perfumes, then click Done.
- In Shipping zones, click Add zone, select the countries and regions, then click Done.
- For each rate, click Add shipping option, choose its details, click Done, then click Save.
Shopify puts every new product in the general profile, so moving each new scent belongs in your launch routine.
How do I restrict perfume shipping to certain states?
With zones, which hold only the regions you select. Build two:
- Lower 48 and DC: under the United States, select only the 48 contiguous states and DC, leaving out Alaska, Hawaii and any territory or Armed Forces region.
- Alaska, Hawaii and Puerto Rico: USPS Ground Advantage only.
Add Canada only if you’ve set up UPS Standard or FedEx for it. Addresses outside your zones get a notice that no shipping rate is available.
How do I keep air services off perfume?
Add no express rates to this profile. For live rates, click Add shipping option, set Rate type to Carrier or app calculated, click Choose carrier and apps, pick the carrier or app, and tick only ground services:
USPS Ground Advantage, UPS Ground, FedEx Ground, FedEx Home Delivery
Leave “Automatically include new services when they become available” unticked so no new air service slips in, and skip UPS Ground Saver. Rates from your own carrier account or an app need third-party carrier-calculated shipping, included on Advanced and Plus, and on Grow for a monthly fee or with annual billing.
How are shipping rates combined for multiple items?
Today Shopify adds them. In a cart with products from different profiles, same-name rates are added, so $3 and $5 become $8. If no names match, only the cheapest rates are added and shown as “Shipping.”
So if no perfume rate shares a name with a general-profile rate, a mixed cart never shows express. Shopify doesn’t cover partial matches, such as Ground Advantage in both profiles and Priority Mail in one, so test a mixed cart to each zone.
Under shipping options by market, Shopify charges the highest matching rate within an option instead of the sum, adds prices across options, and still adds calculated rates per shipment.
What changes with market-driven shipping?
Shipping moves from profiles into Markets, and rates follow collections. Shopify began rolling out market-driven shipping, which its Help Center calls shipping options by market, in October 2026, plans to move every shop by July 2027 and migrates your rates. Stores with shipping apps may wait for those apps. If your store is eligible, opt in early under Settings > Shipping and delivery > Get early access.
Each rate in a shipping option applies to all products or to specific collections, never to single products, so perfume needs a collection that every new scent joins on its own:
- Perfume collection. Go to Products > Collections, click Add collection, title it “[Shipping] Perfume ground only” and add a Products source with the condition Tag includes
hazmat-flammable. Leave it unpublished from all sales channels. - Its opposite. Make “[Shipping] Air eligible” with the condition Tag does not include
hazmat-flammable. - Ground options for all products. In Markets, click the market, click Shipping, then click Add shipping option. For calculated rates, select the carrier or app, then only its ground services.
- Air options for air-eligible products only. In each air option’s rate, choose Specific collections from the Applies to menu, click Add collections, select “[Shipping] Air eligible,” click Done, then click Save. A calculated option holds only one rate, so air services need their own option.
The upgrade turns each profile into an unpublished [Shipping] collection and can create single-state markets. Afterward, confirm that the perfume collection picks up new scents (if not, point its rates at the tag-based one), that Alaska, Hawaii and Puerto Rico offer perfume only USPS Ground Advantage, and that shipping staff have the Markets permission, which isn’t automatic. Exclude perfume from international markets’ catalogs under Markets > Catalogs, and leave military addresses, which Shopify’s market docs don’t cover, to the Flow hold.
Can Shopify Shipping labels declare hazmat?
No. Shopify’s Help Center says its USPS labels don’t support hazardous materials and its FedEx labels don’t support hazmat or FedEx dangerous goods. Its US UPS help doesn’t mention hazmat, and DHL eCommerce isn’t offered to stores that sell dangerous goods. Flow’s Purchase shipping label action buys through your Shopify admin, so keep it off perfume. USPS can add a $50 HAZMAT Noncompliance Fee to a commercial package with undeclared hazmat.
Your checkout rates can stay; only the label has to come from a tool that declares hazmat. Per each vendor’s help pages:
| Tool | Declaring USPS hazmat | Default on perfume products | UPS and FedEx |
|---|---|---|---|
| Pirate Ship | Check “Hazardous Materials” below Extra Services | None documented | No UPS hazmat |
| Shippo | Package options > “Shipment contains hazardous materials,” or mark US orders in bulk | None documented | UPS Ground Limited Quantity in the lower 48, with the hazmat box unchecked |
| Veeqo | Tick “This item contains dangerous goods” | Yes. It saves to the product, or set it by CSV. | Not documented |
| Stamps.com | Extra Services > Handling > Hazardous Materials | None documented | Not documented |
| ShipStation | Its blog says USPS hazmat works on Ground Advantage by default | Its help center limits dangerous goods tools to Australian accounts. It also bars dangerous goods on ShipStation Carriers rates. Ask ShipStation in writing. | No dangerous goods on UPS or FedEx labels |
| EasyPost | Set the hazmat option, such as LIMITED_QUANTITY, in your integration | Set per shipment in code | FedEx Limited Quantity yes; UPS not listed |
How do I hold a perfume order automatically?
With Shopify Flow, free on the Basic, Grow, Advanced and Plus plans. Its Hold fulfillment order action blocks fulfillment until released and takes the order off your Unfulfilled list, and its conditions can read address codes, the shipping line’s title, product tags and metafields.
Copy-paste Flow recipe
- Trigger. From your Shopify admin, go to Apps > Flow, click Create workflow, click Select a trigger and choose Order created.
- Perfume check. Click Condition and set: at least one of
order.is equal tolineItems. product. tags hazmat-flammable. - Destination and service check. On its True option, add a condition with criteria joined by OR:
order.is not equal toshippingAddress. countryCodeV2 US;order.is at least one of the codes in the first box;shippingAddress. provinceCode order.includes each word in the second box, one criterion per word.shippingLine. title AK, HI, PR, GU, VI, AS, MP, FM, MH, PW, AA, AE, AP
Priority, Express, Expedited, Air, Overnight, 2Day, 2nd Day, 3 Day, Next Day, Saver
- Hold. On that condition’s True option, click + > Action, choose Hold fulfillment order, set Reason to Other, select Notify merchant and paste this into Reason notes:
Perfume hazmat check: outside the lower 48, or an air or Ground Saver service. AK, HI, PR: USPS Ground Advantage only. Military, territories, abroad: no USPS. Fix before buying a label.
- Tag. Add an Add order tags action with
hazmat-hold. - Turn on. Click New Workflow, name it, then click Turn on workflow.
- Test. Your zones block some addresses at checkout, so test with draft orders: in Orders > Drafts, click Create order, add a perfume, and use Add shipping or delivery > Custom to name the rate. Send “Ground” to Texas (no hold), then to Honolulu and an APO address, and “Priority Mail” to Texas (all held). Mark each as paid, check the hold, then cancel it.
The codes are USPS’s; AA, AE and AP are military addresses. Flow ignores case, so “air” matches “Next Day Air”; add words your air rates use and drop any your ground rates share. Alaska, Hawaii, Puerto Rico and Canada orders hold too, so someone picks the right ground service before buying the label.
What Flow can’t do
- Total the liquid. Conditions can’t multiply quantity by bottle size. The Run code action can, in JavaScript, if every variant has a bottle-size metafield.
- Recheck edits. It runs when the order is created, so a later address change isn’t checked.
- Catch untagged perfume. No tag, no match.
- Control your label app. Some apps queue held orders, some skip them and a few ignore holds, so test yours.
How SypherRing’s Hazmat Box Check checks every order
The Hazmat Box Check in our Peak-Proof Perfume Program checks every new Shopify order against three USPS rules before a label is bought: ground only, no foreign or military addresses, and no more than 16 fl oz of perfume in one box, samples included, which is box math Flow conditions can’t do. An order that breaks one goes on a Shopify hold with a note naming the rule. UPS and FedEx rules have passed testing and are being added. It never buys labels, applies marks or declares hazmat; your team still does those in the label tool.
See what the program includes, or get a free Peak-Proof Report to see where your store’s setup slips today.
Questions brands ask
Does Shopify Shipping support hazmat?
Not for perfume. Shopify says its USPS labels don’t support hazardous materials, its FedEx labels don’t support hazmat, and its US UPS help doesn’t mention it. Declare hazmat in a tool such as Pirate Ship, Shippo, Stamps.com or Veeqo, and ship by USPS Ground Advantage.
How do I exclude Alaska and Hawaii from shipping in Shopify?
Build your perfume profile’s main zone from only the 48 contiguous states and DC. Then add a zone for Alaska, Hawaii and Puerto Rico that offers USPS Ground Advantage alone, since UPS and FedEx don’t take perfume there by ground.
What happens to my shipping profiles with market-driven shipping?
When Shopify upgrades your store, it migrates your rates and turns each profile’s products into an unpublished collection with a [Shipping] prefix. Check that the perfume collection picks up new scents and that no air option’s rate applies to it.
Does a Shopify hold stop my label app from buying a label?
Not always. A hold blocks fulfillment in Shopify and removes the order from the Unfulfilled list, but apps differ: some queue held orders, some skip them and a few ignore holds. Hold a test order and check before you rely on it.
How do I stop perfume orders to APO or FPO addresses in Shopify?
Leave the Armed Forces regions (AA, AE and AP) out of your perfume zones and let the Flow hold catch the rest. USPS Packaging Instruction 3A prohibits flammable liquids to APO, FPO and DPO addresses, and UPS and FedEx don’t take perfume to military addresses by ground. Our USPS guide has the rule.
Sources
- Shopify Help Center: Shipping profiles, checked October 13, 2026
- Shopify Help Center: Setting up and managing shipping profiles, checked October 13, 2026
- Shopify Help Center: Calculating shipping rates from different shipping profiles, checked October 13, 2026
- Shopify Help Center: Setting up shipping zones and rates, checked October 13, 2026
- Shopify Help Center: Third-party carrier-calculated shipping, checked October 13, 2026
- Shopify.dev: Market-driven shipping feature preview, checked October 13, 2026
- Shopify Help Center: Shipping options by market, checked October 13, 2026
- Shopify Help Center: Understanding shipping options by market, checked October 13, 2026
- Shopify Help Center: Setting up shipping options for a market, checked October 13, 2026
- Shopify Help Center: Upgrading from shipping profiles to shipping options by market, checked October 13, 2026
- Shopify Help Center: Creating catalogs for markets, checked October 13, 2026
- Shopify Help Center: Creating a collection, checked October 13, 2026
- Shopify Help Center: Collection conditions, checked October 13, 2026
- Shopify Help Center: Creating custom metafield definitions, checked October 13, 2026
- Shopify.dev: Metafield data types, checked October 13, 2026
- Shopify Help Center: Shipping with USPS, checked October 13, 2026
- Shopify Help Center: Shipping with UPS in the United States, checked October 13, 2026
- Shopify Help Center: Shipping with FedEx, checked October 13, 2026
- Shopify Help Center: Shipping with DHL eCommerce, checked October 13, 2026
- Shopify Help Center: Shopify Flow, checked October 13, 2026
- Shopify Help Center: Creating a workflow in Flow, checked October 13, 2026
- Shopify Help Center: Understanding conditions in Flow, checked October 13, 2026
- Shopify Help Center: Flow conditions reference, checked October 13, 2026
- Shopify Help Center: Hold fulfillment order action, checked October 13, 2026
- Shopify Help Center: Add order tags action, checked October 13, 2026
- Shopify Help Center: Run code action, checked October 13, 2026
- Shopify Help Center: Purchase shipping label action, checked October 13, 2026
- Shopify Help Center: Marking your order as on hold, checked October 13, 2026
- Shopify Help Center: Creating draft orders, checked October 13, 2026
- Shopify.dev: MailingAddress object, checked October 13, 2026
- Shopify.dev: ShippingLine object, checked October 13, 2026
- Pirate Ship: Shipping hazardous materials, checked October 13, 2026
- Shippo: How to Ship HAZMAT with USPS, checked October 13, 2026
- Shippo: How to Ship HAZMAT with UPS, checked October 13, 2026
- Veeqo: Shipping dangerous goods, checked October 13, 2026
- Stamps.com: USPS hazmat label update, checked October 13, 2026
- ShipStation: What are Hazardous or Dangerous Goods?, checked October 13, 2026
- ShipStation: Hazmat shipping for ecommerce sellers, checked October 13, 2026
- EasyPost: Shipment options, checked October 13, 2026
- USPS Publication 52, 343 Flammable and Combustible Liquids, checked October 13, 2026
- USPS Publication 52, Packaging Instruction 3A: Flammable Liquids, checked October 13, 2026
- USPS Publication 52, Packaging Instruction 3B: Combustible Liquids, checked October 13, 2026
- USPS Publication 52, 338 Small Quantity, checked October 13, 2026
- USPS Publication 52, 612 U.S. Possessions and Territories, checked October 13, 2026
- USPS Publication 52, Appendix F: Alaska air-only routes, checked October 13, 2026
- USPS Notice 123: Price List, checked October 13, 2026
- USPS Postal Bulletin 22709: Hazmat Handling and Noncompliance Fees, checked October 13, 2026
- USPS Publication 28, Appendix B: State and possession abbreviations, checked October 13, 2026
- OSHA 1910.1200 Appendix D: Safety Data Sheets, checked October 13, 2026
- UPS: Hazardous Materials Service Definition, checked October 13, 2026
- UPS: Shipping Dangerous Goods Between the U.S. and Canada, checked October 13, 2026
- UPS Ground Saver Terms and Conditions, checked October 13, 2026
- FedEx: How to ship hazardous materials, checked October 13, 2026
- Stoq: Syncing preorders with third-party fulfillment services (secondary source), checked October 13, 2026
This guide is general information, not legal advice. Shopify’s settings and carrier rules change, so check the sources above before you change how you ship.
Last reviewed October 13, 2026 against the sources above.