Selling across borders on Shopify: market prices, landed-cost DDP and HS codes for fashion brands in KNKTD OS

A duty bill at the door is a refused parcel. KNKTD OS prices every Shopify market, folds duty and import tax into the price for single-country markets, and puts the right HS code and declared value on every label.

· 8 min read

In short: KNKTD OS sets a price for every Shopify market, either as a percentage adjustment or as fixed prices per variant. For a single-country market, landed-cost DDP works out the duty and import tax on each product and folds them into the price, so the customer pays once at checkout and nothing at the door. HS codes, country of origin and the declared value then travel with every shipping label.

A brand that ships abroad answers the same questions for every order: what does this cost in their currency, who pays the duty, and what goes on the customs form. Answer the second one wrong and the customer meets a duty bill at the door, refuses the parcel, and you pay to ship it twice.

KNKTD OS answers all three from the same product records: the market price, the duty folded into it, and the customs data on the label.

One price per market

Prices per market live under WMS → Products → Price lists. The markets come from Shopify Markets, mirrored once Sync Shopify Markets is switched on; a market can also be created from KNKTD OS with Add new market.

Each market is priced in one of two ways:

  • An adjustment. Increase or decrease every price in the market by a percentage. Shopify applies it as a relative price list, and for a market with several countries, local currencies are converted after the adjustment.
  • Fixed prices. A set price per variant, for the products where a round local price matters more than a formula.

Prices reach Shopify only when Push price lists to Shopify is switched on, which it is not by default. Fixed prices already set in Shopify are imported first, so the first save does not overwrite work done there. After that, KNKTD OS is the source: a price changed directly in Shopify is replaced on the next push.

Duties paid at checkout: landed-cost DDP

DDP means delivered duty paid. The brand pays the import duty and tax, and the customer pays one price at checkout with nothing more to pay on delivery. That price has to include the duty, or the brand pays it out of margin.

On a market's pricing page (How this market gets priced), switching on Inclusive (DDP) pricing does the arithmetic per product:

  1. The market adjustment is applied to the store price, then converted to the market's currency.
  2. The landed-cost engine looks up a duty rate and an import tax rate for the route the product travels: where it is made, its HS code, and the destination country. Duty includes trade remedies such as the US Section 301 tariffs; tax means VAT, GST or HST.
  3. Duty and tax are worked out on the declared-value basis you choose, cost or retail, and added to both the price and the compare-at price.
  4. A 2% conversion fee is added where the currencies differ, and the result is rounded the way you choose: Shopify's rounding, none, .99, .95, whole units or the nearest 5.

Every landed price shows how it was built (Duties, Taxes, Conversion fee, Rounding) next to its cost, retail price and margin. Any landed price can be edited by hand.

DDP pricing needs a market with exactly one country, because one market price cannot carry two countries' duty rates.

When rates change

Rates are cached for about six months and refreshed automatically on 1 January and 1 July, or at any time with Refresh duty rates. The page shows the date the rates are from, and says plainly that duty and tax rates are estimates.

A saved landed price is fixed. If the base price changes later, the market price stays put until you save the market again, so a price on the storefront never moves without someone deciding it should. Products added afterwards get their landed price the next time the market is saved.

Switch off Shopify's duty collection

If Shopify is also set to collect duties at checkout, the customer pays the duty twice: once inside your DDP price and once on top. The save dialog reminds you to disable Shopify duties at checkout first. It is a setting in Shopify, so it is yours to switch off.

HS codes, from the right database

Duty starts with the HS code, the customs classification of each product. KNKTD OS ships with a database of about 6,900 codes, every chapter, heading and six-digit subheading, searchable by code or by description.

Suggest HS code with AI reads the product and proposes a code, choosing only from codes that exist in that database, so it cannot invent one. A low-confidence answer is marked Needs review, and applying a suggestion only fills the field: you still save it, and the screen tells you to verify it with your customs broker.

Six digits are international. The extra digits each country adds are set per country under HS codes by country/region, and can be sent to Shopify as Country HS codes alongside the Country of origin. Shopify merges these codes country by country and does not let an app delete one, so remove a wrong country code in Shopify itself.

Customs data on every label

When a cross-border label is bought, the customs declaration is built from the same records:

  • Item details: the description, the HS code for the destination country, the country of origin, and the manufacturer. A per-order override for one destination wins over the product's own code. Carrier limits are respected, such as Canada Post's 45-character description.
  • Declared value: the retail price, a percentage of retail, or the cost of goods, as you choose, with an optional cap per order. It is declared in the destination's currency, and a label is held back rather than declared in the wrong currency when an exchange rate is missing.
  • Incoterm: DDP, DDU or the carrier's default, set per account or per carrier rule, on the carriers that accept one through EasyPost.
  • Customer IDs: the customs IDs some countries require, such as China's resident ID, Korea's PCCC and Mexico's RFC, are asked for only on cross-border parcels, and stored encrypted.

Returns cross borders too. A return label is declared as returned goods, with the code the country expects: 9813 or 9814 for Canada, 9801 for the United States within three years of export, and a returned goods relief statement for the UK and the EU. More on returns and labels in the orders and fulfilment module.

Where the duty shows up later

Because the duty is calculated per product, it does not disappear once the price is set. The ads module takes landed duty off each product's margin before it works out the break-even ROAS for a campaign, so a product that sells mostly abroad is judged on what it actually earns there.

What it is not

The landed-cost engine gives estimates, not a customs ruling, and duty is applied to every unit even where a country's de minimis threshold would waive it, so prices err on the side of covering the duty. US sales tax is not part of the import calculation. Markets with several countries can use an adjustment or fixed prices, but not DDP pricing.

Pricing

Market prices, HS codes and customs data are included on every plan. Landed-cost DDP is an add-on at $5/month, included on the Unlimited plan. Plans start at $100 USD per month for two team members, with a 14-day free trial. See current pricing.

Bottom line

Selling abroad goes wrong in three places: the price, the duty and the paperwork. KNKTD OS prices each market from one rule, folds the duty into the price for a single-country market so the customer pays once, classifies each product from a real HS database, and puts the same data on every label and every return.

Frequently asked questions

What is landed-cost DDP pricing in KNKTD OS?

For a market with exactly one country, KNKTD OS looks up the duty and import tax rate for each product from its origin, HS code and destination, adds them to the price and compare-at price on the declared-value basis you choose, adds a 2% conversion fee where currencies differ, and rounds the result. The customer pays one price at checkout and nothing on delivery.

Do I need to change anything in Shopify for DDP pricing?

Yes. Turn off Shopify’s own duty collection at checkout first, otherwise the customer pays duty twice: once inside the DDP price and again on top. Prices reach Shopify only when Push price lists to Shopify is switched on, which is off by default.

How does KNKTD OS choose HS codes?

Codes come from a database of about 6,900 HS codes, searchable by code or description. Suggest HS code with AI proposes a code chosen only from that database and marks low-confidence answers Needs review. Applying it only fills the field; you save it, and should verify it with your customs broker. Country-specific digits are set per country.

Can a market with several countries use DDP pricing?

No. One market price cannot carry two countries’ duty rates, so DDP pricing needs a market with exactly one country. Multi-country markets are priced with a percentage adjustment or fixed prices instead.