Project portfolio Browse selected work

Shopify Plus: up to US$4,800 development credit

Guide

Shopify Duties and Import Taxes: From Product Origin to Landed-Cost Readiness

Published: Editorial review: 2026-08-30

An international order should not be understood as a product price alone. A buyer may encounter the product amount, tax, duty, shipping, and brokerage charges connected with the carrier or customs process. Landed cost is most useful as a set of boundaries: which amounts are displayed or collected at checkout, which amounts can still change during import, and who will reconcile a refund or discrepancy.

Shopify market, tax, currency, shipping, and checkout settings interact. Start with Shopify Markets setup, then test the path for each buyer market. This guide focuses on configuration, disclosure, testing, and recovery. It is not universal tax advice, and it does not reach country-specific registration conclusions. Shopify capabilities and regional requirements can change, so check the current admin settings and official documentation before acting.

1. Define landed cost and responsibility

Separate product price, tax, duty, and brokerage

Landed cost should not become a single number that hides every component. Product price answers what the buyer pays for the merchandise. Tax answers how a market rule is displayed or collected. Duty describes a possible import charge connected to product classification and origin. Brokerage may be handled separately by a carrier or customs process. Shopify's Duties and import taxes guidance explains that customs costs can include duties, import tax, and brokerage; HS codes and origin support estimates, while actual customs charges can differ.

Do not begin by entering a percentage and assuming the problem is solved. Begin with a cost map for every market. Record the currency used for the product amount, whether tax is included in the displayed price, whether duties are intended to be collected at checkout, where shipping appears, and how an amount that cannot be determined at checkout will be explained. This gives customer support, finance, logistics, and product-data owners the same boundaries when they review an order.

Cost componentQuestion to answerConfiguration or review record
Product priceWhich currency and market price does the buyer see, and is a market-level price setting involved?Market, currency, display behavior, and test-order amount
TaxIs tax included in the displayed price, and how is it represented at checkout?Tax display mode, applicable market, and observed checkout line item
DutyAre classification, origin, and market settings used to estimate or collect it?Product-data completeness, market setting, checkout line item, and carrier requirement
Import taxAt which step is responsibility assigned, and can the buyer see the explanation?Responsibility wording, buyer country, address, and order record
BrokerageCould a carrier or customs process handle this charge separately?Carrier discussion, shipping terms, exception path, and refund reconciliation

2. Choose markets and selling entities

Record where registration and collection questions begin

A market is not merely a language or currency switch. Shopify Markets groups audiences and supports market-specific customizations such as currency, language, pricing, product availability, domains, taxes, and shipping options. The customization model can also involve business entities. Before treating a market as ready for a buyer path, record the buyer country, checkout currency, shipping route, tax presentation, and the entity or team responsible for the collection question.

Keep two columns in the market worksheet: what the platform can display or configure, and what the merchant may need to register for or collect under local rules. The first column belongs to configuration and testing. The second needs local judgment and may involve a business entity or professional adviser. A setting can show a capability; it cannot by itself prove that a registration conclusion is correct. Shopify's market customization guidance describes the configurable areas. For the tax boundary in the same-language operating notes, see Shopify VAT and tax boundaries.

For each market, keep a short responsibility card. It should state how the buyer location is identified, whether a domain or selector contributes to matching, which catalog layer controls the product, where duties and taxes are inherited from, whether the shipping zone has a usable rate, and which role handles an exception. This is an operational map, not a tax opinion. Its purpose is to keep a configuration observation and a business judgment attached to the same order context.

3. Prepare HS codes

Treat classification as a product-data control

An HS code is not checkout copy and should not be a last-minute field added after a discrepancy appears. Together with origin, it supports duty and import-tax estimates, so it belongs in the product-data control process. Shopify's guidance for setting up duties and taxes for markets places HS codes, product origin, tax registrations, and collection responsibility in the same configuration area; the actual classification still needs a product- and market-specific review.

List the fields that need checking for each product and variant, and ask a person with appropriate classification knowledge to confirm the result. Similar product names do not prove that two products have the same classification. A provisional judgment should not silently become the answer for every market. Record the review date, the reasoning available to the team, and the markets that require another check. That gives a checkout discrepancy a clear starting point without claiming that a platform field settles a customs question.

Data checkPass conditionQuestion to escalate
HS codeEvery product or variant used for the estimate has a traceable classification valueThe product is ambiguous, multiple classifications are plausible, or market-specific judgment is needed
Product descriptionThe description supports classification review instead of relying only on marketing languageSpecification, material, use, or bundle structure is insufficient
Origin fieldThe value matches the catalog and supply facts and can be located at product or variant levelSupply changes, multiple origins, or conflicting records exist
Market scopeThe team knows which markets read the data and marks exceptionsMarket-level coverage, inheritance, or manual override is unclear
Change traceThe team can explain who changed the classification and which orders need reviewThe last reviewable product-data state cannot be reconstructed

4. Record country of origin

Keep origin data aligned with the catalog

Origin should have a reviewable relationship to the product catalog, variants, and actual shipping path. It is not the buyer's selected country and is not automatically the same as the warehouse location. It is product-origin information used in cross-border data and customs estimation. If one product is supplied from different locations, do not hide the distinction behind a vague value. Clarify which data level, market, and fulfillment route the estimate is meant to represent.

Put origin control in the catalog process instead of waiting for a checkout exception. For a new product, review its product data before opening the relevant market path. When a source of supply, bundle structure, or variant changes, review the HS-code and origin pairing again. If the team cannot determine the classification or origin, ask an appropriately qualified tax, trade, or customs professional and turn the conclusion into maintainable product data rather than leaving it only in an informal conversation.

During testing, combine buyer country, product variant, and shipping route. Check the product information used by the store, the line items shown at checkout, and the information expected by the carrier. Do not infer that every product and route is ready because one order displayed the expected estimate. State coverage by market, product type, and route.

5. Configure market duties and taxes

Review inheritance and display mode

Market settings can contain defaults, inherited values, and market-specific overrides. Shopify's adding or removing market customizations guidance explains that catalogs, currencies, domains and languages, duties and taxes, and entity settings can involve inheritance behavior. After changing a market, inspect the setting that actually applies instead of looking only at the parent default.

Separate tax display, tax-inclusive behavior, duty options, registration information, HS codes, origin, and collection responsibility during review. Shopify's duties and taxes setup for markets can be used as the configuration reference, but it does not replace professional tax advice. A market-level change should be followed by a check of the buyer's price, checkout line items, and shipping rate so a related control does not continue to operate under an old assumption.

Configuration areaWhat to inspect in the default or inherited valueMarket-level review
Tax displayWhether the default market brings an inclusive or exclusive presentationTest product page, cart, and checkout with the buyer country and address
Duties and import taxesWhether the target market inherits or overrides the relevant settingInspect the current market state and check HS code, origin, and responsibility
Registration informationWhich market or entity raises a registration questionRecord system fields separately from a professional conclusion
Catalog and currencyWhether the market customization overrides the default catalog or currencyReopen the buyer view with a selected product, variant, and currency
ExceptionsWhether a manual override still fits the shipping and checkout pathRetain the reason, test address, observed result, and recovery action

6. Decide whether checkout collection fits

Check carrier, DDP, and operational prerequisites

Collecting duties and import taxes at checkout is more than enabling a switch. Shopify's collecting duties and import taxes at checkout guidance identifies prerequisites such as complete HS-code and origin data and a carrier capable of supporting DDP. DDP also affects the coordination of shipping, customs, and cost handling, so the setting, transport term, and route belong in one test.

If a prerequisite is unclear, do not describe an estimate as a guaranteed amount. First verify that the product data is usable, the market has the intended setting, the carrier can handle the relevant DDP route, and checkout displays the intended line items. Only then decide which markets can use checkout collection. A market that does not meet the prerequisites needs clear responsibility language and a support path that the team can actually operate.

PrerequisiteAcceptance questionEvidence to retain
Product dataAre HS code and origin valid for the test product and variant?Product record, test variant, and review date
Market settingDoes the target market use the intended duty, tax, and collection configuration?Market state and inheritance or override explanation
Carrier capabilityCan the carrier support the required DDP handling?Carrier confirmation, route scope, and limitations
Shipping routeIs the buyer country in an active market and a rated shipping zone?Buyer address, zone, rate, and checkout result
Checkout line itemsCan the buyer distinguish product, tax, duty, and shipping amounts?Checkout capture, test order, and exception note

7. Make the promise visible

Show what is estimated and what can still vary

Buyers need a cost structure they can understand, not a precise-looking total without boundaries. Product price, tax, duty, and shipping should appear with clear names at the relevant step whenever the flow supports it. If a charge can only be confirmed during import or by the carrier, explain that it may change and state who will handle a discrepancy. Shopify's duties guidance notes that actual customs charges can differ, so copy should not promise that every order will have the same final result.

Use Shopify cross-border checkout as a path to inspect: start at the product page, record the market and currency, then move through address, shipping, and payment to see whether a charge changes its name or responsibility statement. Avoid absolute wording such as “there will never be an additional charge.” Do not turn one market's estimate into a universal promise.

Checkout wording, support scripts, order records, and refund instructions should use the same component names. When a buyer asks what was paid, the support agent should be able to point to the product, tax, duty, and shipping line items in the order context rather than introduce a second vocabulary. That consistency is a readiness control even when the customs outcome itself remains subject to variation.

8. Connect shipping and customs assumptions

Test the route, rate, and incoterm together

Duty configuration cannot be separated from shipping configuration. Use Shopify cross-border shipping zones to organize the zone and rate review. Shopify's guidance on shipping zones and markets states that the buyer country needs to be in an active market and in a shipping zone with rates for the buyer to select shipping at checkout.

Do not enter only a country name and stop after seeing a duty line. Use a complete address to trigger shipping-zone matching, then check the available rate, transport term, and duty-collection assumption as one route. If no valid rate exists, checkout should make the reason for the shipping failure clear; an unrelated rate should not be used to hide a zone gap.

Organize the test in three layers. First, confirm that the country is in the intended market. Second, confirm that the address reaches the intended zone and rate. Third, confirm that the carrier and DDP or other incoterm assumption fits that route. A route can be marked as operable only when all three layers are understood. A failure should go to the market, logistics, or product-data owner that can change the failing layer.

9. Reconcile tax-inclusive and local-currency views

Avoid mixing currency and tax errors

Local-currency display, tax-inclusive product pricing, and refund amounts are separate review areas. Shopify's pricing in local currencies guidance states that local-currency browsing, payment, and refunds depend on the store's payment and checkout configuration; automatic or manual rates, rounding, selectors, and testing matter. Dynamic tax-inclusive pricing can vary by region, so country eligibility and current settings need their own check.

Also separate store currency, market currency, and manual exchange rates. Shopify's currency conversion and exchange rates guidance distinguishes these controls. The currencies for markets guidance also points to conversion fees, rounding, refunds, chargebacks, and processor limitations. The same-language Shopify multi-currency guide can be used to keep local display and refund checks together. If an exchange difference is treated as a tax difference, reconciliation loses its boundary before the investigation begins.

Test scenarioCurrency checkTax checkRefund reconciliation
Product page to cartDo selector, market currency, and product amount agree?Is the product amount presented under the market's tax-inclusive logic?Record displayed amount and expected order amount
Address changes marketDoes the address trigger the intended market and currency?Does the tax line change according to the market rule?Confirm buyer country and currency remain in the order context
Payment submissionDoes payment support the currency and checkout configuration?Are tax and duty shown as distinct, explainable lines?Retain charged amount, order currency, and refund path
Rate or rounding changeIs the manual or automatic rate control clear?Do not describe rounding as a tax-rate changeCompare the original amount for refund and chargeback handling
Test exceptionIs the defect in currency, market matching, or checkout signals?Recheck tax display and eligibility separatelyLabel the specific line item in the support record

10. Handle refunds and customs recovery

Document what the merchant can and cannot reclaim

A refund review should not look only at the product amount. Separate product price, tax, duty, shipping, and brokerage by the party that collected them, whether the amount has already moved into an external customs or carrier process, and what the current process can handle. Shopify's duties and import taxes guidance identifies DDP, actual customs variance, and refund recovery as operational considerations, but it does not provide one recovery outcome for every country or carrier.

Write a review order for each refund reason. Confirm the buyer country, currency, address, product, and fee line items in the original order. Then check whether the shipment has been sent, entered customs, or reached a carrier process, and identify the collector for each amount. Finance, logistics, or a qualified adviser can then determine what can be processed. Support can promise a review and a response through the defined process, but should not promise that an import charge will certainly be recovered before it has been checked.

If an order is adjusted, retain the original checkout breakdown and the adjusted breakdown. Label the difference as product, tax, duty, shipping, brokerage, or currency-related. That makes the buyer conversation clearer and helps the team distinguish a data error, a market override, a carrier difference, or a local-rule question.

11. Build the exception and escalation path

Route classification and registration questions correctly

Different questions belong to different owners. HS codes, product descriptions, and origin pairings should first go to product-data owners and people with suitable classification knowledge. Registration, collection responsibility, and entity questions belong with a tax adviser or the person responsible for local obligations. DDP, customs documents, and route questions belong with logistics and the carrier. Checkout line items, address validation, payments, and refunds need ecommerce operations and payment owners.

Use problem types instead of one broad “tax issue” label. If the problem is only unclear wording, review checkout configuration and copy. If HS code or origin is uncertain, stop describing the estimate as a fixed amount and request professional review. If a country is outside both an active market and a rated shipping zone, correct the market or shipping configuration. If the carrier cannot support the expected DDP route, change the responsibility wording and reassess whether checkout collection fits.

Shopify settings help a merchant configure and observe platform behavior, but they do not replace professional tax advice. An escalation note should state the issue, buyer context, observed line items, temporary action, and condition for the next review. That is more useful than a broad conclusion that asks every team to guess what happened.

12. Launch with evidence and rollback

Freeze the last-known-good settings before expansion

Before adding a market, changing inheritance, changing currency, or switching duty collection, preserve a reviewable state: market selection, product and variant, HS code, origin, tax display, currency, shipping zone, rate, carrier assumption, and checkout line items. Run the same buyer country, address, and product through the test path and record expected and observed states. Keep failed results as well as successful captures, including the message and the owner responsible for the next decision.

If a new setting causes a problem with fee lines, shipping, or market matching, stop expanding the coverage, restore the most recent explainable configuration, and change one setting at a time. Shopify market customizations can involve inheritance and overrides, so the rollback review should identify whether the difference came from a default, a market override, product data, or a shipping rate. After restoration, run the same matrix again through product page, cart, address, shipping, payment, and refund review.

Tie the review cadence to business changes. Recheck product data when origin or supply routes change. Recheck DDP and route assumptions when a carrier or transport term changes. Recheck inheritance and checkout disclosure when a market changes. Recheck payment and refund behavior when currency configuration changes. Shopify capabilities and regional requirements change over time; reviewing the current admin state and official documentation keeps the landed-cost explanation aligned with the path buyers actually experience.

Frequently asked questions

Is landed cost the same as the buyer's final total?

Not necessarily. It can give the team a shared map for product price, tax, duty, shipping, and brokerage, but actual customs charges can differ and some brokerage charges may be handled separately by a carrier or customs process. Explain the amounts displayed or collected at checkout separately from amounts that may still be confirmed during import.

Can checkout collection start when either the HS code or origin is missing?

The missing field should not be treated as a minor omission. HS code and origin support the estimate, and checkout collection can also require complete product data and a carrier capable of DDP handling. Complete and review the product data, then test the target market, variant, address, and route. If classification is uncertain, ask an appropriately qualified professional to decide.

Does a DDP carrier guarantee that customs results will not change?

No. DDP is part of the transport and cost-responsibility arrangement, and carrier capability is one prerequisite for checkout collection, but Shopify's guidance still notes that actual customs charges can differ. Explain the estimate boundary and maintain a path for discrepancies, customs issues, and refund review.

Why test tax-inclusive pricing separately from local currency?

Tax inclusion and currency conversion use different controls. Regional eligibility, market currency, rates, rounding, payment, and refunds can all affect the amount a buyer sees. Confirm market and currency first, then separately test tax display, charged amount, and refund amount so an exchange difference is not mistaken for a tax defect.

Who should be contacted first when a refund involves import charges?

Start with the original order context: fee lines, buyer country, currency, address, and fulfillment status. Then route the question to finance, logistics, support, or a tax professional according to who collected the amount and where the shipment is in the customs process. Product price, tax, duty, shipping, and brokerage may have different collectors, so do not promise recovery before the review.