international-shipping

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

International Shipping

国际货运

Overview

概述

International shipping requires more than just choosing a carrier — you need to handle customs declarations, duties and taxes (showing customers the landed cost at checkout prevents nasty surprises), HS code classification for each product, and screening for items that are prohibited in certain countries. Getting this wrong leads to packages stuck in customs, unexpected bills delivered to customers, and damaged brand reputation.
This skill walks through setting up international shipping on each major platform, including the right apps for duties/taxes and customs form generation.
国际货运不仅仅是选择承运商——你还需要处理海关申报、税费结算(在结账时向客户显示落地成本可避免意外纠纷)、每件商品的HS编码分类,以及筛查目标国家禁运的物品。处理不当会导致包裹滞留在海关、客户收到意外账单,进而损害品牌声誉。
本技能将指导你在各大主流平台上配置国际货运,包括适用于税费结算和海关表单生成的合适应用。

When to Use This Skill

适用场景

  • When expanding from domestic to international shipping and need to handle customs declarations
  • When offering Delivered Duty Paid (DDP) so customers see the full landed cost at checkout
  • When building a product catalog that needs HS codes for accurate tariff classification
  • When screening orders for restricted items before processing international shipments
  • When integrating with a customs broker or carrier (EasyPost, Shippo, Easyship, Flexport)
  • 从国内业务拓展至国际货运,需要处理海关申报时
  • 提供完税交货(DDP)服务,让客户在结账时看到完整落地成本时
  • 构建商品目录,需要为商品分配HS编码以实现准确关税分类时
  • 在处理国际货运前筛查订单中的禁运物品时
  • 与海关经纪商或承运商(EasyPost、Shippo、Easyship、Flexport)集成时

Core Instructions

核心操作指南

Step 1: Determine your platform and choose the right international shipping tools

步骤1:确定平台并选择合适的国际货运工具

PlatformRecommended ToolWhy
ShopifyShopify Markets + Zonos Duty & Tax or Global-eShopify Markets handles multi-currency and localized checkout; Zonos/Global-e add accurate DDP landed cost
WooCommerceWooCommerce Shipping + Easyship plugin or Zonos for WooCommerceEasyship provides multi-carrier rates including international; Zonos handles duties/taxes
BigCommerceBigCommerce Multi-Currency + Easyship or Avalara AvaTax Cross-BorderBuilt-in multi-currency handles pricing; Easyship/Avalara add duties estimation
Custom / HeadlessEasyPost or Shippo for labels + Zonos or Avalara for duties estimationUse carrier aggregators for labels; use a landed-cost API for duties/taxes
平台推荐工具推荐理由
ShopifyShopify Markets + Zonos Duty & Tax 或 Global-eShopify Markets 支持多币种和本地化结账;Zonos/Global-e 可提供准确的DDP落地成本计算
WooCommerceWooCommerce Shipping + Easyship插件 或 Zonos for WooCommerceEasyship 提供包含国际线路的多承运商报价;Zonos 负责税费结算
BigCommerceBigCommerce Multi-Currency + Easyship 或 Avalara AvaTax Cross-Border内置多币种功能处理定价;Easyship/Avalara 提供税费估算
自定义/无头电商EasyPost或Shippo(用于生成面单) + Zonos或Avalara(用于税费估算)使用承运商聚合工具生成面单;借助落地成本API计算税费

Step 2: Assign HS codes to all products

步骤2:为所有商品分配HS编码

HS (Harmonized System) codes are required on customs declarations for every international shipment. Missing codes cause customs delays.
HS(协调制度)编码是所有国际货运海关申报的必填项。缺失编码会导致海关清关延误。

Shopify

Shopify

  1. Go to Products → [Product] → Shipping
  2. Under "Customs information", enter the HS tariff code (6–10 digits) and Country/Region of origin
  3. For large catalogs: export your product CSV (Products → Export), fill in the
    Variant HS Code
    and
    Variant Origin Country
    columns in bulk, then re-import
Common HS codes for e-commerce:
  • 6109.10
    — Cotton T-shirts
  • 6109.90
    — Synthetic T-shirts
  • 6404.11
    — Athletic footwear
  • 8471.30
    — Laptops
  • 9503.00
    — Toys
  • 3304.99
    — Cosmetics
For HS code classification help, use:
  • Zonos Hello (free tool at zonos.com/hs-code) — paste a product description and get a suggested HS code
  • Avalara TariffFinder — free online tool for HS code lookup
  • Schedule B Search Engine (US Census Bureau) — authoritative for US exports
  1. 进入 Products → [对应商品] → Shipping
  2. 在“Customs information”下,填写 HS tariff code(6-10位)和 Country/Region of origin
  3. 针对大型商品目录:导出商品CSV文件(Products → Export),批量填写
    Variant HS Code
    Variant Origin Country
    列,然后重新导入
电商常见HS编码:
  • 6109.10
    — 棉质T恤
  • 6109.90
    — 合成纤维T恤
  • 6404.11
    — 运动鞋
  • 8471.30
    — 笔记本电脑
  • 9503.00
    — 玩具
  • 3304.99
    — 化妆品
如需HS编码分类帮助,可使用:
  • Zonos Hello(zonos.com/hs-code 免费工具)——粘贴商品描述即可获取建议HS编码
  • Avalara TariffFinder — 免费在线HS编码查询工具
  • Schedule B Search Engine(美国人口普查局)——美国出口权威查询工具

WooCommerce

WooCommerce

  1. Go to Products → [Product] → Shipping tab
  2. Most shipping plugins (ShipStation, Easyship) add custom HS code and country of origin fields here
  3. If your plugin doesn't add these fields, install WooCommerce Extra Product Options or use the Custom Fields metabox to store
    _hs_code
    and
    _country_of_origin
    per product
  1. 进入 Products → [对应商品] → Shipping tab
  2. 大多数货运插件(ShipStation、Easyship)会在此添加自定义HS编码和原产国字段
  3. 若插件未添加这些字段,可安装 WooCommerce Extra Product Options 或使用 Custom Fields 元框为每个商品存储
    _hs_code
    _country_of_origin
    信息

BigCommerce

BigCommerce

  1. Go to Products → [Product] → Shipping
  2. Enter the HS code in the "Harmonized System Code" field (visible on all plans)
  3. Enter Country of Origin in the "Country of Manufacture" field
  1. 进入 Products → [对应商品] → Shipping
  2. 在"Harmonized System Code"字段中填写HS编码(所有套餐均可见)
  3. 在"Country of Manufacture"字段中填写原产国

Step 3: Configure duties and taxes (DDP vs. DDU)

步骤3:配置税费结算(DDP vs DDU)

DDP (Delivered Duty Paid): Customer pays duties at checkout — best for conversion, no surprises. DDU (Delivered Duty Unpaid): Customer pays duties on delivery — creates friction and returns.
Always aim for DDP on key international markets.
DDP(完税交货): 客户在结账时支付税费——最利于转化,无意外纠纷。 DDU(未完税交货): 客户在收货时支付税费——会造成流程阻碍和退货。
核心国际市场建议优先采用DDP模式。

Shopify

Shopify

Using Shopify Markets (DDP):
  1. Go to Settings → Markets → International markets
  2. Enable each country you ship to and set the currency
  3. For duties: install Zonos Duty & Tax or Global-e from the App Store
  4. Zonos integrates with Shopify Markets checkout and shows the exact duty amount as a line item
  5. In Zonos settings, configure which markets to show DDP (collect duties at checkout) vs. DDU
Note: Shopify's built-in international shipping does NOT automatically calculate duties — you need Zonos or Global-e for that.
使用Shopify Markets(DDP模式):
  1. 进入 Settings → Markets → International markets
  2. 启用所有目标货运国家并设置对应币种
  3. 税费方面:从应用商店安装 Zonos Duty & TaxGlobal-e
  4. Zonos 与Shopify Markets结账流程集成,可将准确税费作为单独行项目展示
  5. 在Zonos设置中,配置哪些市场采用DDP(结账时收取税费)、哪些采用DDU
注意: Shopify内置国际货运功能无法自动计算税费——需借助Zonos或Global-e实现。

WooCommerce

WooCommerce

  1. Install the Easyship plugin from WordPress.org or easyship.com
  2. In Easyship settings, enable "Show duties and taxes at checkout"
  3. Easyship calculates duties based on destination country and your HS codes
  4. Customers see the duties estimate during checkout as a separate line item
Alternative for larger operations: Use the Zonos Checkout for WooCommerce plugin which guarantees the landed cost accuracy.
  1. 从WordPress.org或easyship.com安装 Easyship插件
  2. 在Easyship设置中,启用"Show duties and taxes at checkout"
  3. Easyship 根据目标国家和商品HS编码计算税费
  4. 客户在结账时可看到单独列出的税费估算
大型运营替代方案: 使用 Zonos Checkout for WooCommerce 插件,可保证落地成本的准确性。

BigCommerce

BigCommerce

  1. Install Avalara AvaTax Cross-Border from the BigCommerce App Marketplace
  2. Configure Avalara with your shipping origin address and enable cross-border tax calculation
  3. Avalara displays duties estimates on checkout; upgrade to their DDP product for guaranteed landed costs
  1. 从BigCommerce应用市场安装 Avalara AvaTax Cross-Border
  2. 配置Avalara并填写货运始发地址,启用跨境税费计算
  3. Avalara 在结账时显示税费估算;升级至其DDP产品可获得落地成本保障

Step 4: Set up international label creation with customs forms

步骤4:配置国际面单生成与海关表单

Carriers require customs declarations (CN22 for items under $400; CN23/commercial invoice for higher values) on every international package.
承运商要求所有国际包裹附带海关申报单(价值低于400美元使用CN22;更高价值使用CN23/商业发票)。

Shopify

Shopify

  • Shopify Shipping generates customs forms automatically when you buy labels for international orders
  • Go to Orders → [Order] → Fulfill items and Shopify shows the customs information form pre-filled from your product HS codes
  • Review and adjust the declared value if needed (use sale price, not a lowered value — declaring a lower value to avoid duties is illegal)
  • For high-volume operations: ShipStation (Shopify App Store) or Easyship generate customs forms in bulk and integrate with all major carriers (DHL, FedEx, UPS, USPS)
  • 购买国际订单面单时,Shopify Shipping会自动生成海关表单
  • 进入 Orders → [对应订单] → Fulfill items,Shopify会从商品HS编码中预填充海关信息表单
  • 如有需要可调整申报价值(使用售价,不得低报——低报价值避税属于违法行为)
  • 高销量运营场景:ShipStation(Shopify应用商店)或 Easyship 可批量生成海关表单,并与所有主流承运商(DHL、FedEx、UPS、USPS)集成

WooCommerce

WooCommerce

  • WooCommerce Shipping (powered by WooCommerce Shipping & Tax plugin) generates customs forms for USPS and DHL Express labels
  • Go to WooCommerce → Shipments → Create Label for an order — customs fields are auto-populated from product data
  • For full carrier coverage: use ShipStation or Easyship plugins which handle customs forms for all carriers
  • WooCommerce Shipping(由WooCommerce Shipping & Tax插件提供支持)可为USPS和DHL Express面单生成海关表单
  • 进入 WooCommerce → Shipments → Create Label 处理订单——海关字段会从商品数据中自动填充
  • 如需全承运商覆盖:使用 ShipStationEasyship 插件,它们可处理所有承运商的海关表单

BigCommerce

BigCommerce

  • ShipStation (BigCommerce App Marketplace) handles customs forms for all carriers and has BigCommerce order sync built in
  • Easyship (BigCommerce App Marketplace) also supports multi-carrier international labels with auto-generated customs forms
  • ShipStation(BigCommerce应用市场)可处理所有承运商的海关表单,并内置BigCommerce订单同步功能
  • Easyship(BigCommerce应用市场)同样支持多承运商国际面单,并自动生成海关表单

Step 5: Block restricted and prohibited items

步骤5:拦截禁运物品

Some products cannot ship to certain countries (firearms parts, alcohol, certain electronics).
部分商品无法运往特定国家(如枪支配件、酒精、特定电子产品)。

Shopify

Shopify

  1. Use Shopify Markets to set country availability per product:
    • Go to Products → [Product] → Sales channels
    • Disable specific markets for restricted products
  2. For a comprehensive restriction list: Install Fraud Filter or use Shopify Flow (Plus) to flag orders where a restricted product is shipping to a restricted country
  3. Apps like Geoipfy can redirect or block checkout for restricted country/product combinations
  1. 使用 Shopify Markets 按商品设置国家可售性:
    • 进入 Products → [对应商品] → Sales channels
    • 为禁运商品禁用特定市场
  2. 如需全面禁运列表:安装 Fraud Filter 或使用 Shopify Flow(Plus版)标记禁运商品发往禁运国家的订单
  3. Geoipfy等应用可针对禁运国家/商品组合进行重定向或拦截结账

WooCommerce

WooCommerce

  1. Use the WooCommerce Shipping Restrictions plugin to block specific products from shipping to specific countries
  2. Go to Products → [Product] → Shipping tab and set "Shipping restrictions" by country
  3. For order-level blocking: use WooCommerce's built-in "Restrict to countries" in WooCommerce → Settings → General → Selling location(s)
  1. 使用 WooCommerce Shipping Restrictions 插件拦截特定商品运往特定国家
  2. 进入 Products → [对应商品] → Shipping tab,设置按国家划分的"Shipping restrictions"
  3. 订单级拦截:在 WooCommerce → Settings → General → Selling location(s) 中使用WooCommerce内置的"Restrict to countries"

BigCommerce

BigCommerce

  1. Go to Products → [Product] → Shipping
  2. Set "Free Shipping" to disabled and use custom shipping rules to block certain destinations
  3. For comprehensive blocking: Use the ShipperHQ app which supports zone-based shipping restrictions
  1. 进入 Products → [对应商品] → Shipping
  2. 禁用"Free Shipping",并使用自定义货运规则拦截特定目的地
  3. 如需全面拦截:使用ShipperHQ应用,它支持基于区域的货运限制

Custom / Headless

自定义/无头电商

typescript
// Screen cart for restricted items before allowing checkout to proceed
async function screenForRestrictions(params: {
  orderLines: { productId: string; hsCode?: string }[];
  destinationCountry: string;
}): Promise<{ allowed: boolean; blockedItems: string[] }> {
  const blockedItems: string[] = [];

  // Common restrictions — seed these from a country-restrictions database
  const RESTRICTIONS: Record<string, string[]> = {
    AU: ['9305'],    // Firearm parts
    IN: ['2207'],    // Alcohol (requires import licence)
    CN: ['8517'],    // Consumer electronics require CCC certification
  };

  const countryRestrictions = RESTRICTIONS[params.destinationCountry] ?? [];

  for (const line of params.orderLines) {
    if (!line.hsCode) continue;
    const hsPrefixBlocked = countryRestrictions.some(prefix => line.hsCode!.startsWith(prefix));
    if (hsPrefixBlocked) {
      blockedItems.push(line.productId);
    }
  }

  return { allowed: blockedItems.length === 0, blockedItems };
}
typescript
// 结账前筛查购物车中的禁运物品
async function screenForRestrictions(params: {
  orderLines: { productId: string; hsCode?: string }[];
  destinationCountry: string;
}): Promise<{ allowed: boolean; blockedItems: string[] }> {
  const blockedItems: string[] = [];

  // 常见禁运规则——可从国家禁运数据库导入
  const RESTRICTIONS: Record<string, string[]> = {
    AU: ['9305'],    // 枪支配件
    IN: ['2207'],    // 酒精(需进口许可证)
    CN: ['8517'],    // 消费类电子产品需CCC认证
  };

  const countryRestrictions = RESTRICTIONS[params.destinationCountry] ?? [];

  for (const line of params.orderLines) {
    if (!line.hsCode) continue;
    const hsPrefixBlocked = countryRestrictions.some(prefix => line.hsCode!.startsWith(prefix));
    if (hsPrefixBlocked) {
      blockedItems.push(line.productId);
    }
  }

  return { allowed: blockedItems.length === 0, blockedItems };
}

Best Practices

最佳实践

  • Assign HS codes to every product before enabling international shipping — missing HS codes are the single most common cause of customs delays; use the Zonos or Avalara classification tools for bulk assignment
  • Always include a phone number in the ship-to address — most international carriers require a recipient phone number; make it required for all non-domestic shipping addresses
  • Offer DDP for your top 5 international markets — customers who see the full landed cost at checkout convert at significantly higher rates than those who receive a duty bill on delivery
  • Respect de minimis thresholds — orders below the de minimis value (US: $800, UK: £135, EU: €150, AU: AUD $1,000) are often duty-free; most DDP apps handle this automatically
  • Keep customs descriptions generic but accurate — "Cotton T-shirt" is better than a brand name for faster clearance; avoid anything that sounds like it requires special permits
  • Test with real international orders before scaling — send a test order to each new country and track it through customs before launching a marketing campaign there
  • 启用国际货运前为所有商品分配HS编码——缺失HS编码是海关清关延误最常见的原因;使用Zonos或Avalara分类工具批量分配
  • 收货地址中务必包含电话号码——大多数国际承运商要求提供收件人电话;将其设为所有非国内货运地址的必填项
  • 为Top5国际市场提供DDP服务——结账时看到完整落地成本的客户,转化率远高于收货时收到税费账单的客户
  • 尊重免税阈值——低于免税阈值的订单(美国:800美元,英国:135英镑,欧盟:150欧元,澳大利亚:1000澳元)通常免税;大多数DDP应用会自动处理此规则
  • 海关描述保持通用且准确——“棉质T恤”比品牌名更利于快速清关;避免使用听起来需要特殊许可的描述
  • 规模化前先测试真实国际订单——向每个新市场发送测试订单并跟踪清关流程,再启动营销活动

Common Pitfalls

常见问题与解决方案

ProblemSolution
Customs form not generated for international orderEnsure your shipping app has HS codes and country of origin on all product records; missing fields are the most common cause
Duties estimated at checkout differ from actual duties assessedUse a DDP provider (Zonos, Global-e) for guaranteed accuracy; label estimates as "estimated" when using DDU
Prohibited item detected after label is created and package is in transitScreen for restrictions at checkout, not at fulfillment; block checkout for restricted country/product combinations
Package returned for "customs information required"All international shipments need customs forms — even low-value ones; configure your shipping app to always include customs data for non-domestic destinations
问题解决方案
国际订单未生成海关表单确保货运应用中所有商品记录都包含HS编码和原产国信息;缺失字段是最常见原因
结账时估算的税费与实际征收税费不符使用DDP服务商(Zonos、Global-e)保障准确性;使用DDU时需标注为“估算值”
面单生成后、包裹运输途中才检测到禁运物品在结账阶段筛查禁运物品,而非履约阶段;拦截禁运国家/商品组合的结账请求
包裹因“需补充海关信息”被退回所有国际货运都需要海关表单——即使低价值包裹也不例外;配置货运应用为所有非国内目的地自动包含海关数据

Related Skills

相关技能

  • @order-fulfillment-workflow
  • @shipment-tracking
  • @shipping-rate-calculator
  • @same-day-delivery
  • @order-management-system
  • @order-fulfillment-workflow
  • @shipment-tracking
  • @shipping-rate-calculator
  • @same-day-delivery
  • @order-management-system