Shopify shipping rates by customer tag: a rates-flow condition. Tags load via Admin API at rate time. Guests have no tag. Carrier: Advanced, dev, or Plus.
2026-11-05

Shopify shipping rates by customer tag: a different checkout price

Retail pays $8. The account tagged `trade` should see $0 or a pallet rate. Native zones know countries and weight. They do not know your customer tags. Shopify shipping rates by customer tag is a condition on the visual rates flow in OO - Shipping Rates & Rules: same zone, different total when the logged-in customer carries that tag. Tags, collections, and metafields load through the Admin API at rate time — not from a spreadsheet you exported last week.

Listing 5 Nov 2026: Free. 0 reviews, launched 28 October 2026. Do not invent stars. Visual flow or AI draft. 40+ conditions, including customer tags. Combined rates. Hide/rename/reorder. Activity logs. Category: Customer-based.

Related: postal code and weight. This article is the person, not the parcel. Do not pitch another app; a tag on Shopify Customers is enough.

Standard zones cannot see `trade`

Shopify shipping rates per zone: flat, weight, price. Customer tags live on the profile. Guest checkout has no profile. The zone rate does not know this login is `trade`.

Carrier-calculated custom rates need Advanced Shopify or higher, a development store, Plus, or a shop where the carrier is already active. Without that: no custom carrier price. Delivery customization (hide/rename/reorder) runs on more plans. Lower plans get a plan banner in the app. Do not promise a custom $0 line on Basic.

The canvas: `Start when…`, condition cards, rate cards, save. AI may draft; you review before save. Combined rates merge zone rates into one checkout line. Logs: last 7 days, which zone/rate, why not.

Customer tag versus product tag

From listing and docs:

  • Customer tags — who is checking out. Trade versus retail.

  • Product tags — what sits in the cart. Hazmat, oversized, pickup-only SKU.

Both (plus collections and metafields) are fetched when the rate is requested. A tag you added five minutes ago should appear on the next checkout. A tag that exists only in Slack will not.

Consequence: a guest has no customer tag. Test as the trade buyer, logged in. Incognito without login is the retail branch, even if Admin shows `trade`.

Product tags still apply to a guest cart: the SKU owns the tag. Do not put both meanings on one card.

Do not invent OR/AND semantics the shipping docs did not write. Match spelling to Shopify (`trade` ≠ `trade `). Activity logs show whether the condition matched.

How shops miss the tagged price

A second Shopify zone “for trade”

Zones are destination, not a customer group. Two NL zones will not read the tag. The buyer in 4811 still shares retail’s zone.

Tagging the order after checkout

Too late. The rate already ran. Tag the customer in Customers before the test order.

Publishing an AI draft unread

The canvas can sketch “customer tag = trade”. Save without a guest fallback and retail disappears, or trade never matches. Review, then save.

Promising a custom rate on a plan without the carrier

Without Advanced/dev/Plus/an active carrier, OO does not return a carrier price. You can still hide or rename an existing method via delivery customization when the tag matches — that is chrome on methods already at checkout, not a new price.

None of that replaces: customer tagged, logged-in test, condition on the flow, fallback for untagged checkouts, logs open.

Worked example: `trade` at $0, everyone else $8

Shop “Crate & Counter”. Retail: fixed $8. Accounts tagged `trade`: fixed $0 (own freight) or a pallet staffel on cart weight. One app zone for the country. Two branches.

Rough flow:

  1. Attach the carrier to every Shopify shipping zone/market (if the plan allows).

  2. Retail rate card: fixed $8. Condition: customer is not tagged `trade` — or evaluate the trade branch first and leave retail as fallback. Follow canvas order; do not invent an evaluation rule. Test both paths.

  3. Trade rate card: fixed $0 (or weight tiers). Condition: customer tag `trade`.

  4. Optional product tag `hazmat`: a separate fee card, independent of the person.

  5. Save. Test checkout: guest = $8. Logged-in trade = $0. Logs: seven days, which card, why.

Typo `trae` in the condition: trade sees retail. The log says no-match. Fix the Admin tag or the string on the card. Do not duplicate the zone.

Hiding “DHL Express” for tag `pickup-only` can be delivery customization, even when custom rates are blocked on this plan. Different canvas.

Ship a tagged rate

Install OO - Shipping Rates & Rules. Free.

  1. Plan check: carrier rates yes or no. If no: hide/rename only.

  2. Tag in Shopify Customers, exact spelling. Product tags only for SKU logic.

  3. Zone + flow: `Start when…`, tag condition, two rate cards, fallback.

  4. Carrier on zones/markets. Test checkout, not a live trade account as the sandbox.

  5. Activity logs: match versus no-match. Guest versus login.

AI may draft the first cards. You click save. Combined rates only when two components must be one checkout line.

Wrap

Shopify shipping rates by customer tag is a condition, not a second zone. Tags arrive through the Admin API at rate time. Guests have no customer tag. Product tags are a different card. Custom prices: Advanced, development, or Plus (or an active carrier). Hide/rename on more plans. Logs for seven days.

Put `trade` on the flow in OO - Shipping Rates & Rules and test logged in before that buyer pays the same $8 as a guest.

online origins logo full

The Shopify Select partner for ambitious e-commerce businesses that want to grow!

linkedin online origins iconinstagram online origins icon

Reviews

5/5

Check on Google

Mail: info@onlineorigins.nl

Tel: 073 234 0612

KVK: 89825624

BTW: NL865123639B01

Bruistensingel 500,
5232 AH 's-Hertogenbosch
Cookies

© 2026 Online Origins