{"id":22633,"date":"2022-06-14T20:59:41","date_gmt":"2022-06-14T10:59:41","guid":{"rendered":"https:\/\/ebaoguo.com\/?p=22633"},"modified":"2026-07-22T09:28:39","modified_gmt":"2026-07-22T07:28:39","password":"","slug":"china-post-ems","status":"publish","type":"docs","link":"https:\/\/ebaoguo.com\/en\/kb\/china-post-ems\/","title":{"rendered":"China Post EMS"},"content":{"rendered":"\n<div class=\"ebg-quick-facts\" style=\"background:#f0f9ff;border-left:4px solid #116ebf;border-radius:6px;padding:16px 20px;margin:0 0 24px 0;font-size:15px;line-height:1.6\">\n<p style=\"margin:6px 0\">\u23f1 Transit\uff1a<strong>5\u20139 business days<\/strong><\/p>\n<p style=\"margin:6px 0\">\ud83d\udcc5 Updated\uff1a<time datetime=\"2026-05-09\">2026-05-09<\/time><\/p>\n<p style=\"margin:6px 0\">\ud83d\ude9a Carrier\uff1a<strong>China Post EMS (informational)<\/strong><\/p>\n<p style=\"margin:6px 0\">\ud83d\udec3 Customs\uff1a<strong>Not included \/ DDU (China Post EMS does not include duties)<\/strong><\/p>\n<\/div>\n\n\n<!-- ebg-byline --><div style=\"font-size:13px;color:#6b7280;margin:14px 0 18px 0;letter-spacing:0.3px\"><strong style=\"color:#116ebf\">Ebaoguo.com<\/strong><\/div>\n\n\n<h2 class=\"wp-block-heading\">Quick Navigation \u2014 China Post EMS \u4e2d\u56fd\u90ae\u653fEMS\u56fd\u9645\u5feb\u9012<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eff6ff;padding:20px 24px;border-left:4px solid #2563eb;margin-bottom:24px\">\n<p class=\"wp-block-paragraph\">\ud83d\udce6 <strong>Quick Summary:<\/strong> China Post EMS ships to 144+ countries via the Universal Postal Union network, with priority customs clearance. No fuel surcharge. No remote-area surcharge. Max weight: 20 kg per parcel. Volumetric weight formula: L\u00d7W\u00d7H\u00f75,000. Estimated transit: 5\u20139 business days. Max declared value to Australia: AUD $100.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Jump to: <a href=\"#what-is-ems\">What Is EMS?<\/a> | <a href=\"#weight\">Weight &amp; Pricing<\/a> | <a href=\"#transit\">Transit Times<\/a> | <a href=\"#customs\">Customs<\/a> | <a href=\"#prohibited\">Prohibited Items<\/a> | <a href=\"#how-to\">How to Ship<\/a> | <a href=\"#compare\">EMS vs Other Services<\/a> | <a href=\"#tracking\">Tracking Your EMS Parcel<\/a> | <a href=\"#faq\">FAQ<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-ems\">What Is China Post EMS? Routes, Transit Times &amp; Tracking<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">China Post EMS (Express Mail Service) is China Post&#8217;s international express mail service and a member of the Universal Postal Union (UPU) \u2014 the treaty organisation covering 192 countries. EMS receives priority customs clearance treatment at member countries&#8217; customs facilities, making it faster than standard postal services like China Post Air Parcel or ePacket.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ebaoguo uses China Post EMS as the default option for destinations not covered by direct consolidation routes (such as Australia, Malaysia, Singapore, Taiwan, and Hong Kong). For Africa, the Middle East, Eastern Europe, Latin America, and other less common destinations, EMS provides reliable, tracked coverage with the widest country reach available.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Priority customs clearance<\/strong> \u2014 faster processing in UPU member countries<\/li><li><strong>End-to-end tracking<\/strong> \u2014 from China dispatch to your doorstep<\/li><li><strong>No fuel surcharge<\/strong> \u2014 unlike DHL, FedEx, or UPS<\/li><li><strong>No remote area surcharge<\/strong> \u2014 quoted rate is the final rate<\/li><li><strong>144+ country coverage<\/strong> \u2014 broadest reach of any Ebaoguo service<\/li><li><strong>20 kg max per parcel<\/strong> \u2014 suitable for consolidated multi-item shipments<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"weight\">Weight Limits and Pricing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Maximum parcel weight: <strong>20 kg per parcel<\/strong> for most destinations. Shipments over 20 kg are split into multiple parcels, each charged separately.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Volumetric Weight Formula<\/h3>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#f3f4f6;padding:16px 20px;border-radius:8px;text-align:center;margin:16px 0\">\n<p class=\"wp-block-paragraph\"><strong>Volumetric Weight (kg) = Length (cm) \u00d7 Width (cm) \u00d7 Height (cm) \u00f7 5,000<\/strong><\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">You are charged on whichever is greater \u2014 actual weight or volumetric weight. <strong>Example:<\/strong> A 40\u00d730\u00d720 cm box = 4.8 kg volumetric. If actual weight is 3 kg, you pay for 4.8 kg (rounded up to 5.0 kg).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rounding rules:<\/strong> \u226410 kg \u2192 nearest 0.5 kg; &gt;10 kg \u2192 nearest 1 kg. Minimum chargeable weight: 1 kg.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Real-World Volumetric Weight Scenarios<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding volumetric weight matters most when you&#8217;re consolidating bulky, lightweight items \u2014 a common situation for overseas Chinese shoppers buying clothing, bedding, or kitchenware from Taobao or JD.com.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Item Example<\/th><th>Box Dimensions (cm)<\/th><th>Actual Weight<\/th><th>Volumetric Weight<\/th><th>Chargeable Weight<\/th><\/tr><\/thead><tbody><tr><td>2\u00d7 winter jackets<\/td><td>50\u00d740\u00d730<\/td><td>2.5 kg<\/td><td>12.0 kg<\/td><td>12 kg<\/td><\/tr><tr><td>Skincare set (6 items)<\/td><td>30\u00d725\u00d720<\/td><td>3.0 kg<\/td><td>3.0 kg<\/td><td>3.0 kg<\/td><\/tr><tr><td>Shoes (2 pairs)<\/td><td>40\u00d730\u00d725<\/td><td>2.8 kg<\/td><td>6.0 kg<\/td><td>6.0 kg<\/td><\/tr><tr><td>Books \/ stationery<\/td><td>35\u00d725\u00d715<\/td><td>4.5 kg<\/td><td>2.625 kg<\/td><td>4.5 kg<\/td><\/tr><tr><td>Bedding set<\/td><td>60\u00d750\u00d740<\/td><td>3.0 kg<\/td><td>24.0 kg \u2192 split into 2 parcels<\/td><td>12 kg \u00d7 2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"background:#fff7ed;border-left:4px solid #f97316;padding:12px 18px;margin:14px 0;border-radius:0 6px 6px 0\">\n<p style=\"margin:0;font-size:14px;line-height:1.7\">\u26a0\ufe0f <strong>Common mistake:<\/strong> Shoppers often assume they&#8217;ll pay for actual weight. Bulky items like pillows, coats, or foam packaging can push volumetric weight 3\u20134\u00d7 higher than actual weight. Always request free reboxing in your Ebaoguo dashboard before submitting \u2014 removing excess seller packaging routinely saves 1\u20133 kg of chargeable weight.<\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Use the calculator below to get an accurate EMS shipping estimate for your specific parcel dimensions and destination.<\/p>\n\n\n    <div class=\"ebg-calc\" id=\"ebg-calc-4bf52241-a670-4c1c-8498-316cf2e371ee\" data-config='{&quot;restBase&quot;:&quot;https:\\\/\\\/ebaoguo.com\\\/en\\\/wp-json\\\/ebg\\\/v1\\\/calc&quot;,&quot;storeId&quot;:2,&quot;originIso&quot;:&quot;cn&quot;,&quot;destIso&quot;:&quot;au&quot;,&quot;originCid&quot;:44,&quot;destCid&quot;:13,&quot;language&quot;:&quot;en&quot;,&quot;apiLang&quot;:&quot;en&quot;,&quot;currencyId&quot;:55,&quot;pcRequired&quot;:true,&quot;i18n&quot;:{&quot;pc_unfound&quot;:&quot;&lt;svg width=\\&quot;18\\&quot; height=\\&quot;18\\&quot; viewBox=\\&quot;0 0 24 24\\&quot; fill=\\&quot;none\\&quot; stroke=\\&quot;currentColor\\&quot; stroke-width=\\&quot;2\\&quot; stroke-linecap=\\&quot;round\\&quot; stroke-linejoin=\\&quot;round\\&quot; style=\\&quot;display:inline-block;vertical-align:-3px;margin-right:6px\\&quot;&gt;&lt;path d=\\&quot;M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\\&quot;\\\/&gt;&lt;line x1=\\&quot;12\\&quot; y1=\\&quot;9\\&quot; x2=\\&quot;12\\&quot; y2=\\&quot;13\\&quot;\\\/&gt;&lt;line x1=\\&quot;12\\&quot; y1=\\&quot;17\\&quot; x2=\\&quot;12.01\\&quot; y2=\\&quot;17\\&quot;\\\/&gt;&lt;\\\/svg&gt;\\ufe0f Postcode not recognised \\u2014 please pick State \\\/ Region manually&quot;,&quot;pc_missing_state&quot;:&quot;Please select State \\\/ Region&quot;,&quot;select_state&quot;:&quot;\\u2014 Select \\u2014&quot;,&quot;custom_size&quot;:&quot;Custom size&quot;}}'>\n        <div class=\"ebg-calc__header\">\n            <div class=\"ebg-calc__route\">\n                <span class=\"ebg-calc__chip\" data-role=\"origin\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M16.5 9.4l-9-5.19M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"\/><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"\/><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"\/><\/svg> CN<\/span>\n                <span class=\"ebg-calc__arrow\">\u2192<\/span>\n                <span class=\"ebg-calc__chip\" data-role=\"dest\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg> AU<\/span>\n            <\/div>\n        <\/div>\n\n                <div class=\"ebg-calc__section ebg-calc__grid\">\n            <label><span>Postcode (optional)<\/span><input type=\"text\" data-role=\"postcode\" placeholder=\"3000\"><\/label>\n            <label><span>State \/ Region<\/span><select data-role=\"state\"><option value=\"\">Loading\u2026<\/option><\/select><\/label>\n            <label><span>Suburb \/ City<\/span><input type=\"text\" data-role=\"suburb\" placeholder=\"Melbourne\"><\/label>\n            <label><span>Declared value<\/span><input type=\"number\" min=\"0\" step=\"1\" data-role=\"declare\" value=\"100\"><\/label>\n        <\/div>\n\n        <div class=\"ebg-calc__pc-hint\" data-role=\"pc-hint\" style=\"display:none;font-size:12px;color:#b45309;margin:-8px 0 6px 4px\"><\/div>\n\n        <div class=\"ebg-calc__section\">\n            <div class=\"ebg-calc__label\">Package Type<\/div>\n            <div class=\"ebg-calc__tags\" data-role=\"tags\"><\/div>\n        <\/div>\n\n        <div class=\"ebg-calc__section ebg-calc__grid\" data-role=\"dims-grid\">\n            <label><span>Weight (kg)<\/span><input type=\"number\" min=\"0.1\" step=\"0.1\" data-role=\"weight\" value=\"2\"><\/label>\n            <label><span>Length (cm)<\/span><input type=\"number\" min=\"1\" step=\"1\" data-role=\"length\" value=\"25\"><\/label>\n            <label><span>Width (cm)<\/span><input type=\"number\" min=\"1\" step=\"1\" data-role=\"width\" value=\"20\"><\/label>\n            <label><span>Height (cm)<\/span><input type=\"number\" min=\"1\" step=\"1\" data-role=\"height\" value=\"15\"><\/label>\n        <\/div>\n        <div class=\"ebg-calc__dim-presets-wrap\">\n            <span class=\"ebg-calc__dim-presets-label\">Size reference:<\/span>\n            <div data-role=\"dim-presets\" class=\"ebg-calc__dim-presets\"><\/div>\n        <\/div>\n\n\n        <div class=\"ebg-calc__actions\">\n            <button type=\"button\" class=\"ebg-calc__submit\" data-role=\"submit\">Calculate now<\/button>\n        <\/div>\n\n        <div class=\"ebg-calc__status\" data-role=\"status\"><\/div>\n        <!-- Fee transparency notice \u2014 always visible above results -->\n        <details class=\"ebg-calc__transparency\" style=\"margin:14px 0;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:0\">\n          <summary style=\"cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600;color:#116ebf;list-style:none\">\n            <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"\/><\/svg> Fee Transparency \u2014 No Hidden Costs <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg>\n          <\/summary>\n          <div style=\"padding:0 14px 14px;font-size:12.5px;line-height:1.7;color:#374151\">\n            <strong>All quotes include:<\/strong>\n            <ul style=\"margin:6px 0 10px 18px;padding:0\">\n              <li>Shipping rate (by chargeable weight)<\/li>\n              <li>Handling \/ warehouse intake \/ fumigation fees (if applicable)<\/li>\n              <li>Pickup fee (if you choose home pickup)<\/li>\n              <li>Extra service fees, commission, fuel surcharges<\/li>\n              <li>Destination customs duty \/ VAT \/ GST (only on DDP self-operated lines marked \"included\")<\/li>\n            <\/ul>\n            <strong style=\"color:#dc2626\">NOT included (recipient pays):<\/strong>\n            <ul style=\"margin:6px 0 10px 18px;padding:0\">\n              <li>Import duty + GST\/VAT on non-DDP routes \u2014 destination customs collects from recipient<\/li>\n              <li>Insurance (optional, ~5% of declared value; shown at bottom of each card)<\/li>\n              <li>Customs inspection \/ return \/ storage detention fees in exceptional cases<\/li>\n            <\/ul>\n            <strong>Weight & size limits:<\/strong>\n            Each carrier has different limits \u2014 exceeding triggers automatic rate-tier switch (e.g. \"above 20kg\" rate). Each quote card shows that carrier's max weight, max length, and length+girth limits at the bottom.          <\/div>\n        <\/details>\n\n        <div class=\"ebg-calc__results\" data-role=\"results\"><\/div>\n    <\/div>\n        <style>\n    .ebg-calc{font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;max-width:880px;margin:24px auto;border:1px solid #e5e7eb;border-radius:12px;padding:20px;background:#fff;color:#1f2937;}\n    .ebg-calc__header{display:flex;justify-content:center;margin-bottom:16px;}\n    .ebg-calc__route{display:inline-flex;align-items:center;gap:10px;background:#f3f4f6;border-radius:999px;padding:8px 16px;font-weight:600;}\n    .ebg-calc__arrow{color:#9ca3af;}\n    .ebg-calc__section{margin:16px 0;}\n    .ebg-calc__label{font-weight:600;margin-bottom:8px;font-size:14px;color:#374151;}\n    \/* Item-attribute cards \u2014 black-line icon style *\/\n    .ebg-calc__tags{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;margin-top:8px;}\n    .ebg-calc__tag{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:14px 8px 10px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;font-size:13px;text-align:center;transition:border-color .15s, background .15s, transform .1s;line-height:1.3;min-height:78px;}\n    .ebg-calc__tag:hover{border-color:#2563eb;background:#f8faff;}\n    .ebg-calc__tag.is-active{border-color:#2563eb;background:#eff6ff;}\n    .ebg-calc__tag.is-active .ebg-calc__tag-name{color:#1d4ed8;font-weight:600;}\n    .ebg-calc__tag-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:#111827;}\n    .ebg-calc__tag-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}\n    .ebg-calc__tag.is-active .ebg-calc__tag-icon{color:#2563eb;}\n    .ebg-calc__tag-name{display:block;color:#374151;font-weight:500;}\n    .ebg-calc__tags-loading{padding:12px;color:#6b7280;font-size:13px;text-align:center;}\n    \/* Size-reference preset cards *\/\n    .ebg-calc__dim-presets-wrap{margin-top:12px;padding:14px;background:#fafafa;border-radius:10px;border:1px dashed #e5e7eb;}\n    .ebg-calc__dim-presets-label{display:block;font-size:13px;color:#6b7280;font-weight:500;margin-bottom:10px;}\n    .ebg-calc__dim-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;}\n    .ebg-calc__dim-preset{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;padding:12px 8px;border:1.5px solid #e5e7eb;border-radius:10px;background:#fff;cursor:pointer;font-size:13px;color:#374151;line-height:1.3;transition:border-color .15s, background .15s;min-height:78px;font-family:inherit;}\n    .ebg-calc__dim-preset:hover{border-color:#2563eb;background:#f8faff;}\n    .ebg-calc__dim-preset.is-active{border-color:#2563eb;background:#eff6ff;}\n    .ebg-calc__dim-preset.is-active .ebg-calc__dim-preset-name{color:#1d4ed8;font-weight:600;}\n    .ebg-calc__dim-preset-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:28px;color:#111827;}\n    .ebg-calc__dim-preset-icon svg{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}\n    .ebg-calc__dim-preset.is-active .ebg-calc__dim-preset-icon{color:#2563eb;}\n    .ebg-calc__dim-preset-name{font-weight:500;}\n    .ebg-calc__dim-preset-weight{font-size:11px;color:#9ca3af;font-weight:500;}\n    .ebg-calc__dim-preset.is-active .ebg-calc__dim-preset-weight{color:#3b82f6;}\n    .ebg-calc__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;}\n    .ebg-calc__grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#374151;font-weight:500;}\n    .ebg-calc__grid input,.ebg-calc__grid select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:15px;line-height:1.4;height:42px;min-height:42px;box-sizing:border-box;background:#fff;color:#111827;}\n    .ebg-calc__grid input:focus,.ebg-calc__grid select:focus{outline:none;border-color:#3b82f6;}\n    .ebg-calc__actions{text-align:center;margin:18px 0 8px;}\n    .ebg-calc__submit{background:#2563eb;color:#fff;border:0;border-radius:8px;padding:12px 32px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s;}\n    .ebg-calc__submit:hover{background:#1d4ed8;}\n    .ebg-calc__submit:disabled{opacity:.5;cursor:wait;}\n    .ebg-calc__status{margin:10px 0;padding:10px;border-radius:6px;font-size:14px;display:none;}\n    .ebg-calc__status.is-error{background:#fef2f2;color:#991b1b;display:block;}\n    .ebg-calc__status.is-info{background:#eff6ff;color:#1e40af;display:block;}\n    .ebg-calc__results{display:flex;flex-direction:column;gap:12px;margin-top:8px;}\n    .ebg-calc__card{border:1px solid #e5e7eb;border-radius:10px;padding:14px;display:grid;grid-template-columns:60px 1fr auto;gap:12px;align-items:center;}\n    .ebg-calc__card-v2{border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;background:#fff;}\n    .ebg-calc__card-v2.is-disabled{opacity:.55}\n    .ebg-calc__card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;}\n    .ebg-calc__card-head-left{display:flex;gap:12px;align-items:flex-start;flex:1;min-width:0}\n    .ebg-calc__card-total{text-align:right;flex-shrink:0}\n    .ebg-calc__card-total-label{font-size:11px;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}\n    .ebg-calc__card-total-amount{font-size:22px;font-weight:800;color:#1d4ed8;white-space:nowrap;line-height:1.2;margin-top:2px}\n    .ebg-calc__breakdown{margin-top:10px;padding-top:10px;border-top:1px dashed #e5e7eb;display:flex;flex-direction:column;gap:5px}\n    .ebg-calc__bd-row{display:flex;justify-content:space-between;font-size:13px;color:#475569}\n    .ebg-calc__bd-row span:last-child{font-weight:600;color:#0f172a}\n    @media(max-width:540px){.ebg-calc__card-v2{padding:12px}.ebg-calc__card-head{flex-direction:column;align-items:stretch}.ebg-calc__card-total{text-align:left}.ebg-calc__card-total-amount{font-size:20px}}\n    .ebg-calc__card.is-disabled{opacity:.55;}\n    .ebg-calc__card img{max-width:60px;max-height:40px;object-fit:contain;}\n    .ebg-calc__card-title{font-weight:600;font-size:15px;margin-bottom:4px;}\n    .ebg-calc__card-meta{font-size:12px;color:#6b7280;display:flex;flex-wrap:wrap;gap:8px;}\n    .ebg-calc__card-price{font-size:20px;font-weight:700;color:#1d4ed8;text-align:right;white-space:nowrap;}\n    .ebg-calc__card-warn{font-size:12px;color:#b45309;margin-top:4px;}\n    @media (max-width:540px){\n        .ebg-calc__card{grid-template-columns:1fr;text-align:center;}\n        .ebg-calc__card img{margin:0 auto;}\n        .ebg-calc__card-price{text-align:center;}\n    }\n    @media (max-width:420px){\n        .ebg-calc__grid{grid-template-columns:1fr;}\n        .ebg-calc__grid input,.ebg-calc__grid select{font-size:16px;}\n        .ebg-calc__submit{width:100%;padding:14px 20px;}\n    }\n    <\/style>\n    <script>\n    (function(){\n        var TAG_DEFAULTS = {\n            '\u5065\u5eb7\u8425\u517b\u54c1':{w:2,l:25,W:20,h:15},\n            '\u5065\u5eb7\u71df\u990a\u54c1':{w:2,l:25,W:20,h:15},\n            '\u7cbe\u6cb9':{w:1.5,l:25,W:20,h:12},\n            '\u98df\u54c1':{w:4,l:35,W:25,h:18},\n            '\u666e\u901a\u6d17\u62a4\u7528\u54c1':{w:1.5,l:25,W:20,h:12},\n            '\u666e\u901a\u6d17\u8b77\u7528\u54c1':{w:1.5,l:25,W:20,h:12},\n            '\u8863\u5e3d\u978b\u5305':{w:3,l:40,W:30,h:15},\n            '\u7535\u5b50\u4ea7\u54c1\uff08\u4e0d\u542b\u7535\u6c60\uff09':{w:1,l:30,W:20,h:10},\n            '\u7535\u5b50\u4ea7\u54c1\uff08\u542b\u7535\u6c60\uff09':{w:1,l:30,W:20,h:10},\n            '\u7f50\u88c5\u5976\u7c89':{w:5,l:30,W:25,h:25},\n            '\u888b\u88c5\u5976\u7c89':{w:5,l:30,W:25,h:15},\n            '\u6587\u4ef6\u4e66\u7c4d\u6742\u5fd7':{w:1,l:30,W:22,h:5},\n            '\u8461\u8404\u9152':{w:6,l:35,W:25,h:30},\n            '\u8fd0\u52a8\u6237\u5916\u7528\u54c1':{w:5,l:50,W:35,h:20},\n            '\u73e0\u5b9d\u624b\u8868':{w:0.5,l:20,W:15,h:8},\n            '\u9ad8\u503c\u6d17\u62a4\u7528\u54c1':{w:2,l:25,W:20,h:12},\n            '\u6d77\u9c9c\u5e72\u8d27':{w:3,l:30,W:25,h:15},\n            '\u7f50\u5934\u7c7b\u98df\u54c1':{w:5,l:30,W:25,h:18}\n        };\n        var TAG_EMOJI = {\n            '\u5065\u5eb7\u8425\u517b\u54c1':'\\u{1F48A}','\u5065\u5eb7\u71df\u990a\u54c1':'\\u{1F48A}',\n            '\u7cbe\u6cb9':'\\u{1F33F}',\n            '\u98df\u54c1':'\\u{1F36B}',\n            '\u666e\u901a\u6d17\u62a4\u7528\u54c1':'\\u{1F9F4}','\u666e\u901a\u6d17\u8b77\u7528\u54c1':'\\u{1F9F4}',\n            '\u9ad8\u503c\u6d17\u62a4\u7528\u54c1':'\\u{1F9F4}',\n            '\u8863\u5e3d\u978b\u5305':'\\u{1F455}',\n            '\u7535\u5b50\u4ea7\u54c1\uff08\u4e0d\u542b\u7535\u6c60\uff09':'\\u{1F4F1}','\u7535\u5b50\u4ea7\u54c1\uff08\u542b\u7535\u6c60\uff09':'\\u{1F50B}',\n            '\u7f50\u88c5\u5976\u7c89':'\\u{1F37C}','\u888b\u88c5\u5976\u7c89':'\\u{1F37C}',\n            '\u6587\u4ef6\u4e66\u7c4d\u6742\u5fd7':'\\u{1F4DA}',\n            '\u8461\u8404\u9152':'\\u{1F377}',\n            '\u8fd0\u52a8\u6237\u5916\u7528\u54c1':'\\u{26BD}',\n            '\u73e0\u5b9d\u624b\u8868':'\\u{1F48E}',\n            '\u6d77\u9c9c\u5e72\u8d27':'\\u{1F990}',\n            '\u7f50\u5934\u7c7b\u98df\u54c1':'\\u{1F96B}',\n            '\u6e05\u6d01\u7528\u54c1(\u542b\u9152\u7cbe)':'\\u{1F9FC}',\n            '\u5de5\u5177':'\\u{1F527}',\n            '\u6c7d\u8f66\u914d\u4ef6':'\\u{1F697}',\n            '\u5371\u9669\u54c1':'\\u{2622}',\n            '\u5904\u65b9\u836f':'\\u{1F489}',\n            '\u7eaf\u7535\u6c60':'\\u{1F50B}',\n            '\u7c89\u672b':'\\u{1F9C2}'\n        };\n        var HIDE_TAGS = {'\u8fdd\u7981\u54c1':1,'\u5371\u9669\u54c1':1,'\u6613\u71c3\u6613\u7206\u6807\u5fd7':1,'\u654f\u611f\u7269\u54c1':1,'\u7eaf\u7535\u6c60':1,'\u5904\u65b9\u836f':1,'\u661f\u94fe':1,'\u7eaa\u5ff5\u5e01':1,'\u54c1\u724c':1,'\u4e00\u7ebf\u5962\u4f88\u54c1\u724c':1,'UGG':1,'\u4e2a\u4eba\u884c\u674e':1,'\u7f8a\u6bdb\u88ab':1};\n        var TAG_NORM = {\n            \"\u666e\u8d27\": \"General Goods\",\n            \"\u666e\u8d27CN\": \"General Goods\",\n            \"\u666e\u8ca8\": \"General Goods\",\n            \"\u666e\u8ca8CN\": \"General Goods\",\n            \"general\": \"General Goods\",\n            \"general cn\": \"General Goods\",\n            \"general item\": \"General Goods\",\n            \"domestic\": \"General Goods\",\n            \"\u9632\u75ab\u7269\u8d44\": \"Anti-epidemic Supplies\",\n            \"\u9632\u75ab\u7269\u8cc7\": \"Anti-epidemic Supplies\",\n            \"anti-epidemic materials\": \"Anti-epidemic Supplies\",\n            \"\u670d\u9970\": \"Clothing, Shoes & Bags\",\n            \"\u670d\u98fe\": \"Clothing, Shoes & Bags\",\n            \"\u670d\u88c5\u978b\u5e3d\": \"Clothing, Shoes & Bags\",\n            \"\u8863\u5e3d\u978b\u5305\": \"Clothing, Shoes & Bags\",\n            \"\u670d\u88dd\u548c\u7d21\u7e54\u54c1\": \"Clothing, Shoes & Bags\",\n            \"\u670d\u88c5\u548c\u7eba\u7ec7\u54c1\": \"Clothing, Shoes & Bags\",\n            \"apparel\": \"Clothing, Shoes & Bags\",\n            \"apparel & accessories\": \"Clothing, Shoes & Bags\",\n            \"apparel and textiles\": \"Clothing, Shoes & Bags\",\n            \"clothings&bag&shoes\": \"Clothing, Shoes & Bags\",\n            \"\u978b\u5b50\": \"Shoes\",\n            \"shoes\": \"Shoes\",\n            \"\u661f\u94fe\": \"Starlink\",\n            \"\u661f\u93c8\": \"Starlink\",\n            \"starlink\": \"Starlink\",\n            \"\u4fdd\u5065\u54c1\": \"Health Supplements\",\n            \"\u5065\u5eb7\u8425\u517b\u54c1\": \"Health Supplements\",\n            \"\u5065\u5eb7\u71df\u990a\u54c1\": \"Health Supplements\",\n            \"\u5065\u5eb7\u548c\u7f8e\u5bb9\u4ea7\u54c1\": \"Health Supplements\",\n            \"\u5065\u5eb7\u548c\u7f8e\u5bb9\u7522\u54c1\": \"Health Supplements\",\n            \"health & nutrition products\": \"Health Supplements\",\n            \"health and beauty products\": \"Health Supplements\",\n            \"supplement\": \"Health Supplements\",\n            \"suplements and vitamins\": \"Health Supplements\",\n            \"supplements and vitamins\": \"Health Supplements\",\n            \"\u62a4\u80a4\u54c1\": \"Skincare & Cosmetics\",\n            \"\u8b77\u819a\u54c1\": \"Skincare & Cosmetics\",\n            \"\u5316\u5986\u54c1\": \"Skincare & Cosmetics\",\n            \"\u5316\u599d\u54c1\": \"Skincare & Cosmetics\",\n            \"\u5316\u5986\u62a4\u80a4\u54c1\": \"Skincare & Cosmetics\",\n            \"\u5316\u599d\u8b77\u819a\u54c1\": \"Skincare & Cosmetics\",\n            \"\u7f8e\u5bb9\u62a4\u80a4\u54c1\": \"Skincare & Cosmetics\",\n            \"\u7f8e\u5bb9\u8b77\u819a\u54c1\": \"Skincare & Cosmetics\",\n            \"skin care\": \"Skincare & Cosmetics\",\n            \"skin care products\": \"Skincare & Cosmetics\",\n            \"beauty & skincare products\": \"Skincare & Cosmetics\",\n            \"cosmetics and skin care products\": \"Skincare & Cosmetics\",\n            \"\u666e\u901a\u6d17\u62a4\u7528\u54c1\": \"Personal Care\",\n            \"\u666e\u901a\u6d17\u8b77\u7528\u54c1\": \"Personal Care\",\n            \"normal toiletries\": \"Personal Care\",\n            \"\u9ad8\u503c\u6d17\u62a4\u7528\u54c1\": \"Premium Personal Care\",\n            \"\u9ad8\u503c\u6d17\u8b77\u7528\u54c1\": \"Premium Personal Care\",\n            \"high value toiletries\": \"Premium Personal Care\",\n            \"\u6587\u4ef6\": \"Documents\",\n            \"document\": \"Documents\",\n            \"doc\": \"Documents\",\n            \"\u4e66\": \"Books & Magazines\",\n            \"\u66f8\": \"Books & Magazines\",\n            \"\u4e66\u7c4d\u6742\u5fd7\": \"Books & Magazines\",\n            \"\u66f8\u7c4d\u96dc\u8a8c\": \"Books & Magazines\",\n            \"books & magazines\": \"Books & Magazines\",\n            \"doc&books & magazines\": \"Books & Magazines\",\n            \"\u4e66\u7c4d\u548c\u6587\u5177\": \"Books & Stationery\",\n            \"\u66f8\u7c4d\u548c\u6587\u5177\": \"Books & Stationery\",\n            \"\u6587\u5177\": \"Books & Stationery\",\n            \"stationery\": \"Books & Stationery\",\n            \"books and stationery\": \"Books & Stationery\",\n            \"\u827a\u672f\u54c1\u548c\u5531\u7247\": \"Artwork & CD\",\n            \"\u85dd\u8853\u54c1\u548c\u5531\u7247\": \"Artwork & CD\",\n            \"artwork & cd\": \"Artwork & CD\",\n            \"cd\u3001dvd\": \"Artwork & CD\",\n            \"CD\u3001DVD\": \"Artwork & CD\",\n            \"cd\": \"Artwork & CD\",\n            \"\u6db2\u4f53\": \"Liquid\",\n            \"\u6db2\u9ad4\": \"Liquid\",\n            \"liquid\": \"Liquid\",\n            \"\u6db2\u4f53(\u4e0d\u8d85\u8fc7500ml)\": \"Liquid (\u2264500ml)\",\n            \"\u6db2\u9ad4(\u4e0d\u8d85\u904e500ml)\": \"Liquid (\u2264500ml)\",\n            \"liquid (not exceeding 500ml)\": \"Liquid (\u2264500ml)\",\n            \"\u6db2\u4f53(\u8d85\u8fc7500ml)\": \"Liquid (>500ml)\",\n            \"\u6db2\u9ad4(\u8d85\u904e500ml)\": \"Liquid (>500ml)\",\n            \"liquid (more than 500ml)\": \"Liquid (>500ml)\",\n            \"\u7cbe\u6cb9\": \"Essential Oils\",\n            \"essential oil\": \"Essential Oils\",\n            \"essential oils\": \"Essential Oils\",\n            \"\u98df\u54c1\": \"Food\",\n            \"food\": \"Food\",\n            \"\u98df\u54c1\u548c\u996e\u6599\": \"Food & Beverages\",\n            \"\u98df\u54c1\u548c\u98f2\u6599\": \"Food & Beverages\",\n            \"food and beverages\": \"Food & Beverages\",\n            \"foods and snacks\": \"Food & Beverages\",\n            \"\u7535\u6c60\u4ef6\": \"With Batteries\",\n            \"\u96fb\u6c60\u4ef6\": \"With Batteries\",\n            \"\u542b\u7535\u6c60\": \"With Batteries\",\n            \"\u542b\u96fb\u6c60\": \"With Batteries\",\n            \"batteries included\": \"With Batteries\",\n            \"battery\": \"With Batteries\",\n            \"\u7eaf\u7535\u6c60\": \"Pure Battery\",\n            \"\u7d14\u96fb\u6c60\": \"Pure Battery\",\n            \"pure battery\": \"Pure Battery\",\n            \"\u5145\u7535\u5b9d\": \"Power Bank\",\n            \"\u5145\u96fb\u5bf6\": \"Power Bank\",\n            \"power bank\": \"Power Bank\",\n            \"\u6237\u5916\u7535\u6e90\": \"Power Station\",\n            \"\u6236\u5916\u96fb\u6e90\": \"Power Station\",\n            \"power station\": \"Power Station\",\n            \"\u9ad8\u4ef7\u5962\u4f88\u54c1\u724c\": \"Luxury Brands\",\n            \"\u9ad8\u50f9\u5962\u4f88\u54c1\u724c\": \"Luxury Brands\",\n            \"\u4e00\u7ebf\u5962\u4f88\u54c1\u724c\": \"Luxury Brands\",\n            \"\u4e00\u7dda\u5962\u4f88\u54c1\u724c\": \"Luxury Brands\",\n            \"luxury brand\": \"Luxury Brands\",\n            \"first-tier luxury brands\": \"Luxury Brands\",\n            \"\u54c1\u724c\": \"Branded Items\",\n            \"branded items\": \"Branded Items\",\n            \"famous brand\": \"Branded Items\",\n            \"\u54c1\u724c\u5305\u5305\uff08\u542b\u4eff\u724c\uff09\": \"Branded Items\",\n            \"brand handbags (including replicas)\": \"Branded Items\",\n            \"\u5c0f\u578b\u7535\u5668\uff08\u4e0d\u542b\u7535\u6c60\uff09\": \"Small Appliances (no battery)\",\n            \"\u5c0f\u578b\u96fb\u5668\uff08\u4e0d\u542b\u96fb\u6c60\uff09\": \"Small Appliances (no battery)\",\n            \"appliances (without batteries)\": \"Small Appliances (no battery)\",\n            \"\u71d5\u7a9d\": \"Bird's Nest\",\n            \"\u71d5\u7aa9\": \"Bird's Nest\",\n            \"bird's nest\": \"Bird's Nest\",\n            \"\u73a9\u5177\": \"Toys & Games\",\n            \"\u73a9\u5177\u4e0e\u6e38\u620f\": \"Toys & Games\",\n            \"\u73a9\u5177\u548c\u6e38\u620f\": \"Toys & Games\",\n            \"\u73a9\u5177\u8207\u904a\u6232\": \"Toys & Games\",\n            \"\u73a9\u5177\u548c\u904a\u6232\": \"Toys & Games\",\n            \"toys\": \"Toys & Games\",\n            \"toys & games\": \"Toys & Games\",\n            \"toys and games\": \"Toys & Games\",\n            \"\u4e00\u822c\u836f\u7269\": \"Medicine\",\n            \"\u4e00\u822c\u85e5\u7269\": \"Medicine\",\n            \"\u836f\u54c1\": \"Medicine\",\n            \"\u85e5\u54c1\": \"Medicine\",\n            \"medicine\": \"Medicine\",\n            \"\u5904\u65b9\u836f\": \"Prescription Medicine\",\n            \"\u8655\u65b9\u85e5\": \"Prescription Medicine\",\n            \"prescription\": \"Prescription Medicine\",\n            \"\u5916\u7528\u836f\u818f\": \"Topical Ointment\",\n            \"\u5916\u7528\u85e5\u818f\": \"Topical Ointment\",\n            \"topical ointment\": \"Topical Ointment\",\n            \"\u65e5\u5e38\u7528\u54c1\": \"Daily Necessities\",\n            \"\u65e5\u7528\u54c1\": \"Daily Necessities\",\n            \"daily necessities\": \"Daily Necessities\",\n            \"\u7c89\u672b\": \"Powder\",\n            \"powder\": \"Powder\",\n            \"\u7c89\u672b\u6216\u6676\u4f53\": \"Powder or Crystal\",\n            \"\u7c89\u672b\u6216\u6676\u9ad4\": \"Powder or Crystal\",\n            \"powder or crystal\": \"Powder or Crystal\",\n            \"\u6c7d\u8f66\u914d\u4ef6\": \"Automotive Parts\",\n            \"\u6c7d\u8eca\u914d\u4ef6\": \"Automotive Parts\",\n            \"\u6c7d\u8f66\u7528\u54c1\": \"Automotive Parts\",\n            \"\u6c7d\u8eca\u7528\u54c1\": \"Automotive Parts\",\n            \"car accessories\": \"Automotive Parts\",\n            \"automotive products\": \"Automotive Parts\",\n            \"\u8fdd\u7981\u54c1\": \"Prohibited Items\",\n            \"\u9055\u7981\u54c1\": \"Prohibited Items\",\n            \"prohibited\": \"Prohibited Items\",\n            \"prohibited items\": \"Prohibited Items\",\n            \"\u654f\u611f\u8d27\": \"Sensitive Goods\",\n            \"\u654f\u611f\u8ca8\": \"Sensitive Goods\",\n            \"\u654f\u611f\u7269\u54c1\": \"Sensitive Goods\",\n            \"sensitive\": \"Sensitive Goods\",\n            \"sensitive item\": \"Sensitive Goods\",\n            \"\u5371\u9669\u54c1\": \"Dangerous Goods\",\n            \"\u5371\u96aa\u54c1\": \"Dangerous Goods\",\n            \"dangerous good\": \"Dangerous Goods\",\n            \"\u542b\u78c1\": \"Magnetic\",\n            \"magnetic\": \"Magnetic\",\n            \"\u5f03\u4ef6\": \"Abandoned Items\",\n            \"\u68c4\u4ef6\": \"Abandoned Items\",\n            \"abandon items\": \"Abandoned Items\",\n            \"\u624b\u673a\": \"Mobile Phone\",\n            \"\u624b\u6a5f\": \"Mobile Phone\",\n            \"cell phone\": \"Mobile Phone\",\n            \"\u624b\u8868\": \"Watch\",\n            \"\u624b\u9336\": \"Watch\",\n            \"watch\": \"Watch\",\n            \"\u73e0\u5b9d\u624b\u8868\": \"Jewellery & Watches\",\n            \"\u73e0\u5bf6\u624b\u9336\": \"Jewellery & Watches\",\n            \"jewelry & watches\": \"Jewellery & Watches\",\n            \"\u6258\u76d8\": \"Pallet\",\n            \"\u6258\u76e4\": \"Pallet\",\n            \"pallet\": \"Pallet\",\n            \"\u4e2a\u4eba\u884c\u674e\": \"Personal Belongings\",\n            \"\u500b\u4eba\u884c\u674e\": \"Personal Belongings\",\n            \"\u4e2a\u4eba\u884c\u674e\u7bb1\": \"Personal Belongings\",\n            \"\u500b\u4eba\u884c\u674e\u7bb1\": \"Personal Belongings\",\n            \"personal belongings\": \"Personal Belongings\",\n            \"\u6210\u4eba\u7528\u54c1\": \"Adult Products\",\n            \"adult products\": \"Adult Products\",\n            \"\u5ba0\u7269\u7528\u54c1\": \"Pet Supplies\",\n            \"\u5bf5\u7269\u7528\u54c1\": \"Pet Supplies\",\n            \"pet supplies\": \"Pet Supplies\",\n            \"\u5bb6\u5c45\u4e0e\u53a8\u623f\": \"Home & Kitchen\",\n            \"\u5bb6\u5c45\u8207\u5eda\u623f\": \"Home & Kitchen\",\n            \"home & kitchen\": \"Home & Kitchen\",\n            \"\u5bb6\u7528\u7535\u5668\": \"Home Appliances\",\n            \"\u5bb6\u7528\u96fb\u5668\": \"Home Appliances\",\n            \"\u54c1\u724c\u5bb6\u7535\": \"Home Appliances\",\n            \"\u54c1\u724c\u5bb6\u96fb\": \"Home Appliances\",\n            \"home appliances\": \"Home Appliances\",\n            \"\u7535\u52a8\u8f66\": \"Electric Bike\",\n            \"\u96fb\u52d5\u8eca\": \"Electric Bike\",\n            \"electric bike\": \"Electric Bike\",\n            \"\u7535\u5b50\u4ea7\u54c1\": \"Electronics\",\n            \"\u96fb\u5b50\u7522\u54c1\": \"Electronics\",\n            \"electronics\": \"Electronics\",\n            \"electronic products\": \"Electronics\",\n            \"\u7535\u5b50\u4ea7\u54c1(\u4e0d\u542b\u7535\u6c60)\": \"Electronics (no battery)\",\n            \"\u7535\u5b50\u4ea7\u54c1\uff08\u4e0d\u542b\u7535\u6c60\uff09\": \"Electronics (no battery)\",\n            \"\u96fb\u5b50\u7522\u54c1\uff08\u4e0d\u542b\u96fb\u6c60\uff09\": \"Electronics (no battery)\",\n            \"electronic product (without battery)\": \"Electronics (no battery)\",\n            \"electronic product (no-battery)\": \"Electronics (no battery)\",\n            \"electronic products (without batteries)\": \"Electronics (no battery)\",\n            \"\u7535\u5b50\u4ea7\u54c1\uff08\u542b\u7535\u6c60\uff09\": \"Electronics (with battery)\",\n            \"\u96fb\u5b50\u7522\u54c1\uff08\u542b\u96fb\u6c60\uff09\": \"Electronics (with battery)\",\n            \"electronic product (with battery)\": \"Electronics (with battery)\",\n            \"\u7535\u5b50\u70df\": \"E-cigarette\",\n            \"\u96fb\u5b50\u83f8\": \"E-cigarette\",\n            \"e-cigarette\": \"E-cigarette\",\n            \"\u70df\u5f39\": \"Vape Pods\",\n            \"\u83f8\u5f48\": \"Vape Pods\",\n            \"smoke bomb\": \"Vape Pods\",\n            \"\u9999\u70df\": \"Cigarettes\",\n            \"\u9999\u83f8\": \"Cigarettes\",\n            \"cigarette\": \"Cigarettes\",\n            \"\u7eaa\u5ff5\u5e01\": \"Commemorative Coins\",\n            \"\u7d00\u5ff5\u5e63\": \"Commemorative Coins\",\n            \"commemorative coins\": \"Commemorative Coins\",\n            \"\u7f8a\u6bdb\u88ab\": \"Wool Quilts\",\n            \"wool quilts\": \"Wool Quilts\",\n            \"\u6d77\u9c9c\u5e72\u8d27\": \"Dried Seafood\",\n            \"\u6d77\u9bae\u4e7e\u8ca8\": \"Dried Seafood\",\n            \"dried seafood\": \"Dried Seafood\",\n            \"\u7f50\u5934\u7c7b\u98df\u54c1\": \"Canned Food\",\n            \"\u7f50\u982d\u985e\u98df\u54c1\": \"Canned Food\",\n            \"canned food\": \"Canned Food\",\n            \"\u7f50\u88c5\u5976\u7c89\": \"Canned Milk Powder\",\n            \"\u7f50\u88dd\u5976\u7c89\": \"Canned Milk Powder\",\n            \"canned milk powder\": \"Canned Milk Powder\",\n            \"\u888b\u88c5\u5976\u7c89\": \"Bagged Milk Powder\",\n            \"\u888b\u88dd\u5976\u7c89\": \"Bagged Milk Powder\",\n            \"bagged milk powder\": \"Bagged Milk Powder\",\n            \"\u5976\u7c89\": \"Milk Powder\",\n            \"milk powder\": \"Milk Powder\",\n            \"\u6bcd\u5a74\u7528\u54c1\": \"Maternity & Baby\",\n            \"\u6bcd\u5b30\u7528\u54c1\": \"Maternity & Baby\",\n            \"maternity & baby supplies\": \"Maternity & Baby\",\n            \"\u8fd0\u52a8\u6237\u5916\u7528\u54c1\": \"Sports & Outdoor\",\n            \"\u904b\u52d5\u6236\u5916\u7528\u54c1\": \"Sports & Outdoor\",\n            \"\u8fd0\u52a8\u548c\u6237\u5916\u7528\u54c1\": \"Sports & Outdoor\",\n            \"\u904b\u52d5\u548c\u6236\u5916\u7528\u54c1\": \"Sports & Outdoor\",\n            \"sports & outdoor goods\": \"Sports & Outdoor\",\n            \"sports and outdoor equipment\": \"Sports & Outdoor\",\n            \"\u5de5\u5177\": \"Tools\",\n            \"tools\": \"Tools\",\n            \"\u7af9\u6728\u7269\u54c1\": \"Wood & Bamboo\",\n            \"solid wood\": \"Wood & Bamboo\",\n            \"wood\": \"Wood & Bamboo\",\n            \"\u8336\u53f6\": \"Tea\",\n            \"\u8336\u8449\": \"Tea\",\n            \"tea\": \"Tea\",\n            \"\u8461\u8404\u9152\": \"Wine\",\n            \"wine\": \"Wine\",\n            \"\u9152\": \"Liquor\",\n            \"liquor\": \"Liquor\",\n            \"\u9690\u5f62\u773c\u955c\": \"Contact Lenses\",\n            \"\u96b1\u5f62\u773c\u93e1\": \"Contact Lenses\",\n            \"contact lenses\": \"Contact Lenses\",\n            \"\u6e05\u6d01\u7528\u54c1(\u542b\u9152\u7cbe)\": \"Cleaning Products (alcohol)\",\n            \"\u6e05\u6f54\u7528\u54c1(\u542b\u9152\u7cbe)\": \"Cleaning Products (alcohol)\",\n            \"disinfectant\": \"Cleaning Products (alcohol)\",\n            \"\u6613\u71c3\u6613\u7206\u6807\u5fd7\": \"Flammable Sign\",\n            \"\u6613\u71c3\u6613\u7206\u6a19\u8a8c\": \"Flammable Sign\",\n            \"flammable sign\": \"Flammable Sign\",\n            \"ugg\": \"UGG\",\n            \"\u5176\u4ed6\": \"Others\",\n            \"others\": \"Others\"\n        };\n        function normTagEN(raw, isEn){\n            if(!isEn) return raw;\n            var s=(raw==null?'':String(raw)).replace(\/\\s+\/g,' ').trim();\n            return TAG_NORM[s] || TAG_NORM[s.toLowerCase()] || s;\n        }\n\n        function $(root, sel){return root.querySelector(sel);}\n        function $$(root, sel){return root.querySelectorAll(sel);}\n\n        \/\/ Phase 1b (2026-09-25)\uff1a\u62a5\u4ef7 API \u56de\u8c03\u540e\u5e7f\u64ad DOM \u4e8b\u4ef6 ebg:quote\uff0c\u7531 ebg-analytics.php \u8f6c\u6210 GA4\n        \/\/ quote_success \/ quote_failed\u3002\u53ea\u63cf\u8ff0\u771f\u5b9e API \u7ed3\u679c\uff0c\u4e0d\u6539\u4efb\u4f55\u8ba1\u7b97\u903b\u8f91\uff1b\u51fa\u9519\u9759\u9ed8\u3002\n        function ebgQuoteEvent(el, cfg, status, list, payload, code){\n            try {\n                var tag = el.querySelector('.ebg-calc__tag.is-active');\n                var o = String(cfg.originIso || '').toUpperCase(), d = String(cfg.destIso || '').toUpperCase();\n                var det = { quote_source: 'ebg_calc', origin: o, destination: d, route: o + '_' + d,\n                            package_type: tag ? tag.textContent.trim().slice(0, 30) : '',\n                            quote_result_status: status, api_code: code || 0, page_path: location.pathname };\n                var w = 0; ((payload && payload.package) || []).forEach(function(pk){ w += (parseFloat(pk.weight) || 0) * (parseInt(pk.qty, 10) || 1); });\n                if (w > 0) det.weight_kg = Math.round(w * 100) \/ 100;\n                if (status === 'success' && list && list.length) {\n                    var ests = list.map(function(i){ return parseFloat(i.estimation); }).filter(function(x){ return !isNaN(x); });\n                    det.options_count = list.length;\n                    if (ests.length) det.estimation_total = Math.min.apply(null, ests);\n                    det.currency = String(list[0].currency_name || '');\n                }\n                document.dispatchEvent(new CustomEvent('ebg:quote', { detail: det }));\n            } catch (e) {}\n        }\n\n        function init(el){\n            var cfg;\n            try { cfg = JSON.parse(el.getAttribute('data-config')); } catch(e){ return; }\n            var state = { tagId: null, tags: [], states: [] };\n            var status = $(el,'[data-role=\"status\"]');\n            var results = $(el,'[data-role=\"results\"]');\n\n            function setStatus(msg, kind){\n                status.className = 'ebg-calc__status' + (kind?(' is-'+kind):'');\n                status.textContent = msg || '';\n            }\n\n            function fetchJSON(path, opts){\n                opts = opts || {};\n                opts.headers = opts.headers || {};\n                \/\/ No X-WP-Nonce here on purpose -- see comment at cfg.restBase above.\n                if (opts.body && typeof opts.body !== 'string') {\n                    opts.headers['Content-Type'] = 'application\/json';\n                    opts.body = JSON.stringify(opts.body);\n                }\n                return fetch(cfg.restBase + path, opts).then(function(r){ return r.json(); });\n            }\n\n            function loadTags(){\n                \/\/ Black-line SVG icon set (heroicons-style outline). Mapped per category.\n                \/\/ Default: generic package icon\n                var ICON_PACKAGE = '<svg viewBox=\"0 0 24 24\"><path d=\"M3.27 6.96 12 12.01l8.73-5.05M12 22.08V12\"\/><path d=\"M20.5 7.27 12 2.27l-8.5 5 0 9.46 8.5 5 8.5-5z\"\/><\/svg>';\n                var ICON_PILL = '<svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"9\" width=\"18\" height=\"6\" rx=\"3\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"15\"\/><\/svg>';\n                var ICON_BOTTLE = '<svg viewBox=\"0 0 24 24\"><path d=\"M9 2h6M10 2v3a3 3 0 0 0-2 3v12a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2V8a3 3 0 0 0-2-3V2\"\/><\/svg>';\n                var ICON_FORK = '<svg viewBox=\"0 0 24 24\"><path d=\"M7 2v6a3 3 0 0 0 3 3v11M7 2v6M17 2v20\"\/><\/svg>';\n                var ICON_SHIRT = '<svg viewBox=\"0 0 24 24\"><path d=\"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z\"\/><\/svg>';\n                var ICON_LAPTOP = '<svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"12\" rx=\"2\"\/><line x1=\"2\" y1=\"20\" x2=\"22\" y2=\"20\"\/><\/svg>';\n                var ICON_BATTERY = '<svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"18\" height=\"10\" rx=\"2\"\/><line x1=\"22\" y1=\"11\" x2=\"22\" y2=\"13\"\/><line x1=\"6\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg>';\n                var ICON_BABY_BOTTLE = '<svg viewBox=\"0 0 24 24\"><path d=\"M9 2h6M10 4v2M14 4v2\"\/><rect x=\"7\" y=\"6\" width=\"10\" height=\"16\" rx=\"2\"\/><line x1=\"7\" y1=\"11\" x2=\"17\" y2=\"11\"\/><\/svg>';\n                var ICON_BOOK = '<svg viewBox=\"0 0 24 24\"><path d=\"M4 4a2 2 0 0 1 2-2h12v18H6a2 2 0 0 0-2 2V4z\"\/><line x1=\"8\" y1=\"7\" x2=\"14\" y2=\"7\"\/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg>';\n                var ICON_SPARKLE = '<svg viewBox=\"0 0 24 24\"><path d=\"M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1M16.3 7.7l2.1-2.1\"\/><\/svg>';\n                var ICON_WINE = '<svg viewBox=\"0 0 24 24\"><path d=\"M8 3h8l-1 7a3 3 0 0 1-6 0L8 3zM12 13v8M8 21h8\"\/><\/svg>';\n                var ICON_GEM = '<svg viewBox=\"0 0 24 24\"><path d=\"m6 3 6 18 6-18M3 9l9 12M21 9l-9 12M3 9h18\"\/><\/svg>';\n                var ICON_SUITCASE = '<svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"7\" width=\"18\" height=\"14\" rx=\"2\"\/><path d=\"M9 7V4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v3\"\/><line x1=\"3\" y1=\"13\" x2=\"21\" y2=\"13\"\/><\/svg>';\n                var ICON_TOOL = '<svg viewBox=\"0 0 24 24\"><path d=\"M14.7 6.3a4 4 0 1 0 5 5L21 12l-3-3 1.5-1.5L17 5l-2.3 1.3zM3 21l8-8\"\/><\/svg>';\n                var ICON_WARNING = '<svg viewBox=\"0 0 24 24\"><path d=\"m12 3 10 18H2L12 3zM12 10v5M12 18v.5\"\/><\/svg>';\n                var ICON_PROHIBIT = '<svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><line x1=\"5.5\" y1=\"5.5\" x2=\"18.5\" y2=\"18.5\"\/><\/svg>';\n                var ICON_COIN = '<svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M9 9a3 3 0 0 1 6 0c0 1.5-1 2-2 2.5s-2 1-2 2.5\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"17\"\/><\/svg>';\n                var ICON_ANTENNA = '<svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"20\" r=\"2\"\/><path d=\"M12 18V8M8 5l4-3 4 3M5 9l7-5 7 5\"\/><\/svg>';\n                var ICON_BOOT = '<svg viewBox=\"0 0 24 24\"><path d=\"M4 5h7a2 2 0 0 1 2 2v6h6a3 3 0 0 1 3 3v3H4V5z\"\/><line x1=\"13\" y1=\"11\" x2=\"19\" y2=\"11\"\/><\/svg>';\n                var ICON_POWDER = '<svg viewBox=\"0 0 24 24\"><path d=\"M6 8h12l-2 13a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2L6 8zM6 8V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v3\"\/><\/svg>';\n                var ICON_BLANKET = '<svg viewBox=\"0 0 24 24\"><path d=\"M3 6c5-2 13-2 18 0v12c-5-2-13-2-18 0V6zM7 9v6M12 8v8M17 9v6\"\/><\/svg>';\n                var ICON_FLAME = '<svg viewBox=\"0 0 24 24\"><path d=\"M12 3c0 4-5 5-5 10a5 5 0 0 0 10 0c0-3-2-4-2-7 0 1-1 2-3 2 1-2 0-4 0-5z\"\/><\/svg>';\n                var ICON_BAG = '<svg viewBox=\"0 0 24 24\"><path d=\"M5 7h14l-1 14H6L5 7zM9 7V5a3 3 0 0 1 6 0v2\"\/><\/svg>';\n                var ICON_TAG = '<svg viewBox=\"0 0 24 24\"><path d=\"M20 12 12 4H4v8l8 8 8-8z\"\/><circle cx=\"8\" cy=\"8\" r=\"1.5\"\/><\/svg>';\n                var ICON_CAR = '<svg viewBox=\"0 0 24 24\"><path d=\"M5 17H3v-5l3-5h12l3 5v5h-2\"\/><circle cx=\"7\" cy=\"17\" r=\"2\"\/><circle cx=\"17\" cy=\"17\" r=\"2\"\/><\/svg>';\n                var ICON_FISH = '<svg viewBox=\"0 0 24 24\"><path d=\"M3 12c4-5 10-6 14-3l4-3-2 6 2 6-4-3c-4 3-10 2-14-3z\"\/><circle cx=\"9\" cy=\"11\" r=\"1\"\/><\/svg>';\n                var ICON_CAN = '<svg viewBox=\"0 0 24 24\"><ellipse cx=\"12\" cy=\"5\" rx=\"7\" ry=\"2\"\/><path d=\"M5 5v14c0 1 3 2 7 2s7-1 7-2V5\"\/><\/svg>';\n                var ICON_SOFA = '<svg viewBox=\"0 0 24 24\"><path d=\"M3 11v4a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-4M3 11V8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3M3 11h18M5 17v3M19 17v3\"\/><\/svg>';\n                var ICON_ROBOT = '<svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"8\" width=\"16\" height=\"12\" rx=\"2\"\/><circle cx=\"9\" cy=\"14\" r=\"1\"\/><circle cx=\"15\" cy=\"14\" r=\"1\"\/><path d=\"M12 4v4M9 4h6\"\/><\/svg>';\n                var ICON_LUNCHBOX = '<svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"8\" width=\"18\" height=\"13\" rx=\"2\"\/><path d=\"M8 8V5a4 4 0 0 1 8 0v3M3 14h18\"\/><\/svg>';\n\n                var ICON = {\n                    5:ICON_PILL, 71:ICON_BOTTLE, 4:ICON_FORK, 7:ICON_BOTTLE, 18:ICON_SHIRT,\n                    22:ICON_LAPTOP, 8:ICON_BATTERY, 25:ICON_WARNING, 13:ICON_BABY_BOTTLE, 259:ICON_BABY_BOTTLE,\n                    30:ICON_BOOK, 9:ICON_SPARKLE, 23:ICON_WINE, 20:ICON_PACKAGE, 21:ICON_GEM,\n                    10:ICON_FISH, 12:ICON_CAN, 28:ICON_BOTTLE, 102:ICON_TOOL, 26:ICON_CAR,\n                    14:ICON_PACKAGE, 19:ICON_POWDER, 123:ICON_PILL, 172:ICON_SUITCASE, 127:ICON_BLANKET,\n                    11:ICON_BAG, 73:ICON_WARNING, 15:ICON_PROHIBIT, 128:ICON_BATTERY, 24:ICON_TAG,\n                    65:ICON_COIN, 141:ICON_ANTENNA, 187:ICON_BOOT, 29:ICON_FLAME, 36:ICON_LUNCHBOX,\n                    76:ICON_SOFA, 96:ICON_ROBOT\n                };\n\n                var tagsRoot = $(el,'[data-role=\"tags\"]');\n                tagsRoot.innerHTML = '<div class=\"ebg-calc__tags-loading\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M6 2h12v6l-6 4 6 4v6H6v-6l6-4-6-4z\"\/><\/svg> \u52a0\u8f7d\u4e2d\u2026<\/div>';\n\n                function showTagError(msg){\n                    tagsRoot.innerHTML = '<div class=\"ebg-calc__tags-loading\" style=\"color:#ef4444;padding:14px;text-align:center\"><div style=\"margin-bottom:8px\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg> ' + msg + '<\/div><button type=\"button\" data-role=\"retry-tags\" style=\"padding:8px 16px;background:#116ebf;color:#fff;border:0;border-radius:6px;cursor:pointer;font-size:13px\">\u70b9\u51fb\u91cd\u8bd5 \/ Retry<\/button><\/div>';\n                    var rt = $(el,'[data-role=\"retry-tags\"]');\n                    if (rt) rt.addEventListener('click', function(){ loadTags(); });\n                }\n                fetchJSON('\/tags?store_id=' + cfg.storeId + '&language=' + (cfg.apiLang || 'cn')).then(function(res){\n                    var tags = (res && res.data && res.data.length) ? res.data : [];\n                    if (!tags.length) {\n                        showTagError((res && res.msg) ? ('API: ' + res.msg) : '\u65e0\u6cd5\u52a0\u8f7d\u7269\u54c1\u7c7b\u578b \/ Cannot load item categories');\n                        return;\n                    }\n                    tagsRoot.innerHTML = '';\n                    state.allApiTags = tags;\n                    tags.forEach(function(t){\n                        var card = document.createElement('div');\n                        card.className = 'ebg-calc__tag';\n                        card.setAttribute('data-tagid', t.tags_id);\n                        card.setAttribute('data-tagname', t.name);\n                        card.setAttribute('role', 'button');\n                        card.setAttribute('tabindex', '0');\n                        var icon = ICON[t.tags_id] || ICON_PACKAGE;\n                        var dispName = normTagEN(t.name, cfg.apiLang === 'en');\n                        card.innerHTML = '<span class=\"ebg-calc__tag-icon\">' + icon + '<\/span>' +\n                                         '<span class=\"ebg-calc__tag-name\">' + escHtml(dispName) + '<\/span>';\n                        card.addEventListener('click', function(){ selectTag(t); });\n                        card.addEventListener('keydown', function(e){\n                            if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); selectTag(t); }\n                        });\n                        tagsRoot.appendChild(card);\n                    });\n                    renderDimPresets();\n                }).catch(function(err){\n                    showTagError('\u7f51\u7edc\u9519\u8bef Network error: ' + (err && err.message ? err.message : 'unknown'));\n                });\n            }\n\n            function renderDimPresets(){\n                var presetRoot = $(el,'[data-role=\"dim-presets\"]');\n                if (!presetRoot) return;\n                var isEn = cfg.apiLang === 'en';\n                \/\/ Box-outline SVG icons \u2014 sized to suggest the package volume visually\n                var SIZE_ICONS = {\n                    tiny:    '<svg viewBox=\"0 0 32 24\" width=\"32\" height=\"24\"><rect x=\"11\" y=\"9\" width=\"10\" height=\"9\" rx=\"1\"\/><\/svg>',\n                    small:   '<svg viewBox=\"0 0 32 24\" width=\"32\" height=\"24\"><rect x=\"9\" y=\"6\" width=\"14\" height=\"12\" rx=\"1\"\/><\/svg>',\n                    shoe:    '<svg viewBox=\"0 0 32 24\" width=\"32\" height=\"24\"><rect x=\"5\" y=\"9\" width=\"22\" height=\"9\" rx=\"1\"\/><\/svg>',\n                    medium:  '<svg viewBox=\"0 0 32 24\" width=\"32\" height=\"24\"><rect x=\"7\" y=\"4\" width=\"18\" height=\"16\" rx=\"1\"\/><\/svg>',\n                    large:   '<svg viewBox=\"0 0 32 24\" width=\"32\" height=\"24\"><rect x=\"4\" y=\"2\" width=\"24\" height=\"20\" rx=\"1\"\/><\/svg>',\n                    luggage: '<svg viewBox=\"0 0 32 24\" width=\"32\" height=\"24\"><rect x=\"6\" y=\"5\" width=\"20\" height=\"16\" rx=\"2\"\/><path d=\"M13 5V3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2\"\/><line x1=\"6\" y1=\"12\" x2=\"26\" y2=\"12\"\/><\/svg>',\n                };\n                var SIZES = [\n                    {k:'tiny',    n: isEn?'Tiny':'\u8ff7\u4f60',     w:0.3,  l:12,  W:8,   h:6},\n                    {k:'small',   n: isEn?'Small':'\u5c0f\u76d2',    w:1.5,  l:25,  W:20,  h:15},\n                    {k:'shoe',    n: isEn?'Shoe':'\u978b\u76d2',     w:2,    l:32,  W:22,  h:12},\n                    {k:'medium',  n: isEn?'Medium':'\u4e2d\u7bb1',   w:6,    l:40,  W:30,  h:25},\n                    {k:'large',   n: isEn?'Large':'\u5927\u7bb1',    w:15,   l:60,  W:45,  h:40},\n                    {k:'luggage', n: isEn?'Luggage':'\u884c\u674e\u7bb1', w:20,   l:65,  W:45,  h:30}\n                ];\n                presetRoot.innerHTML = '';\n                SIZES.forEach(function(p){\n                    var btn = document.createElement('button');\n                    btn.type = 'button';\n                    btn.className = 'ebg-calc__dim-preset';\n                    btn.innerHTML = '<span class=\"ebg-calc__dim-preset-icon\">' + (SIZE_ICONS[p.k] || '') + '<\/span>' +\n                                    '<span class=\"ebg-calc__dim-preset-name\">' + p.n + '<\/span>' +\n                                    '<span class=\"ebg-calc__dim-preset-weight\">' + p.w + ' kg<\/span>';\n                    btn.addEventListener('click', function(){\n                        $(el,'[data-role=\"weight\"]').value = p.w;\n                        $(el,'[data-role=\"length\"]').value = p.l;\n                        $(el,'[data-role=\"width\"]').value = p.W;\n                        $(el,'[data-role=\"height\"]').value = p.h;\n                        $$(el,'.ebg-calc__dim-preset').forEach(function(b){ b.classList.remove('is-active'); });\n                        btn.classList.add('is-active');\n                    });\n                    presetRoot.appendChild(btn);\n                });\n            }\n\n            function selectTag(t){\n                state.tagId = t.tags_id;\n                state.tagName = t.name;\n                $$(el,'.ebg-calc__tag').forEach(function(n){\n                    n.classList.toggle('is-active', n.getAttribute('data-tagname') === t.name);\n                });\n            }\n\n            function loadStates(){\n                fetchJSON('\/states?country_id=' + cfg.destCid).then(function(res){\n                    var sel = $(el,'[data-role=\"state\"]');\n                    sel.innerHTML = '';\n                    if (!res || res.code !== 200 || !res.data || !res.data.length) {\n                        var o = document.createElement('option');\n                        o.value = ''; o.textContent = '\u2014';\n                        sel.appendChild(o);\n                        return;\n                    }\n                    state.states = res.data;\n                    var ph = document.createElement('option');\n                    ph.value = ''; ph.textContent = (cfg.i18n && cfg.i18n.select_state) ? cfg.i18n.select_state : '\u2014 Select \u2014';\n                    sel.appendChild(ph);\n                    res.data.forEach(function(s){\n                        var o = document.createElement('option');\n                        o.value = s.id; o.textContent = s.name;\n                        sel.appendChild(o);\n                    });\n                });\n            }\n\n            function calculate(){\n                var weight = parseFloat($(el,'[data-role=\"weight\"]').value);\n                var length = parseFloat($(el,'[data-role=\"length\"]').value);\n                var width  = parseFloat($(el,'[data-role=\"width\"]').value);\n                var height = parseFloat($(el,'[data-role=\"height\"]').value);\n                var postcode = $(el,'[data-role=\"postcode\"]').value.trim();\n                var stateId  = $(el,'[data-role=\"state\"]').value;\n                var suburb   = $(el,'[data-role=\"suburb\"]').value.trim();\n                var declare  = parseFloat($(el,'[data-role=\"declare\"]').value) || 0;\n\n                if (!state.tagId) { setStatus('Please select a package category.', 'error'); return; }\n                if (!weight || !length || !width || !height) { setStatus('Please fill in weight and dimensions.', 'error'); return; }\n                \/\/ postcode no longer blocks submit \u2014 many lanes (AusPost etc.) compute rates from state alone\n                if (!stateId) { setStatus((cfg.i18n && cfg.i18n.pc_missing_state) || 'Please select a state\/region.', 'error'); return; }\n\n                var payload = {\n                    area: '0',\n                    country_id: cfg.destCid,\n                    country_id_from: cfg.originCid,\n                    store_id: cfg.storeId,\n                    language: cfg.apiLang || 'cn',  \/\/ api expects cn\/tw\/en, NOT zh\/zh-Hant (causes 500)\n                    declare_value: declare || '',   \/\/ empty string when 0, matches cal payload\n                    currency_id: cfg.currencyId || 3,  \/\/ warehouse default currency (3=AUD, 4=MYR, 55=CNY, etc.)\n                    weight_unit: 'kg',\n                    length_unit: 'cm',\n                    postcode: postcode,\n                    state: stateId,\n                    suburb: suburb,\n                    package: [{\n                        qty: 1,\n                        weight: weight,\n                        length: length,\n                        width: width,\n                        height: height,\n                        tags_ids: state.tagId\n                    }]\n                };\n\n                var btn = $(el,'[data-role=\"submit\"]');\n                btn.disabled = true;\n                setStatus('Calculating\u2026', 'info');\n                results.innerHTML = '';\n\n                fetchJSON('\/quote', { method: 'POST', body: payload }).then(function(res){\n                    btn.disabled = false;\n                    if (!res) { setStatus('Network error. Please try again.', 'error'); ebgQuoteEvent(el, cfg, 'network', [], payload, 0); return; }\n                    if (res.code !== 200) { setStatus(res.msg || 'Calculation failed.', 'error'); ebgQuoteEvent(el, cfg, 'error', [], payload, res.code); return; }\n                    var list = res.data || [];\n                    if (!list.length) { setStatus('No shipping options available for this route.', 'info'); ebgQuoteEvent(el, cfg, 'empty', [], payload, 200); return; }\n                    setStatus('');\n                    renderResults(list);\n                    ebgQuoteEvent(el, cfg, 'success', list, payload, 200);   \/\/ Phase 1b\uff1a\u771f\u5b9e\u62a5\u4ef7 API \u6210\u529f\u56de\u8c03 \u2192 quote_success\n                }).catch(function(){\n                    btn.disabled = false;\n                    setStatus('Cannot reach calculator. Please try again later or visit cal.ebaoguo.com.', 'error');\n                    ebgQuoteEvent(el, cfg, 'network', [], payload, 0);\n                });\n            }\n\n            function renderResults(list){\n                var isEnLang = (cfg.apiLang === 'en');\n                var RL = (function(L){\n                    var d={\n                      en:{ship:'Shipping',pickup:'Pickup',handling:'Handling',warehouse:'Warehouse',fumigation:'Fumigation',extrasvc:'Extra Service',surcharge:'Surcharge',tax:'Tax Fee',commission:'Commission',billing:'Billing',total:'Total',dutytax:'Duty & Tax',estduty:'Est. Import Duty',esttax:'Est. Import Tax',taxnotes:'Tax Notes',recipient:'payable by recipient',limits:'Limits',maxwt:'Max weight',maxlen:'Max length',girth:'Length+girth \\u2264',maxdeclare:'Max declared',insurance:'Insurance',insOpt:'Optional insurance',insFree:'free basic cover',insMin:'min charge',volWarn:'Billed by volumetric weight',volWarnDesc:'This package is bulky for its weight, so the quote uses volumetric weight'},\n                      cn:{ship:'\\u8fd0\\u8d39',pickup:'\\u4e0a\\u95e8\\u53d6\\u4ef6\\u8d39',handling:'\\u5904\\u7406\\u8d39',warehouse:'\\u5165\\u4ed3\/\\u64cd\\u4f5c\\u8d39',fumigation:'\\u7194\\u84b8\\u8d39',extrasvc:'\\u9644\\u52a0\\u670d\\u52a1\\u8d39',surcharge:'\\u989d\\u5916\\u8d39\\u7528',tax:'\\u7a0e\\u8d39',commission:'\\u4f63\\u91d1',billing:'\\u8ba1\\u8d39',total:'\\u5408\\u8ba1',dutytax:'\\u5173\\u7a0e\/\\u7a0e\\u8d39',estduty:'\\u9884\\u4f30\\u8fdb\\u53e3\\u5173\\u7a0e',esttax:'\\u9884\\u4f30\\u8fdb\\u53e3\\u7a0e',taxnotes:'\\u5173\\u7a0e\\u8bf4\\u660e',recipient:'\\u6536\\u4ef6\\u4eba\\u4ed8',limits:'\\u9650\\u5236',maxwt:'\\u5355\\u4ef6\\u6700\\u91cd',maxlen:'\\u6700\\u957f\\u8fb9',girth:'\\u957f+\\u56f4 \\u2264',maxdeclare:'\\u7533\\u62a5\\u4e0a\\u9650',insurance:'\\u4fdd\\u9669',insOpt:'\\u53ef\\u9009\\u4fdd\\u9669',insFree:'\\u514d\\u8d39\\u57fa\\u7840\\u4fdd\\u969c',insMin:'\\u8d77\\u6295',volWarn:'\\u672c\\u6b21\\u6309\\u4f53\\u79ef\\u91cd\\u8ba1\\u8d39',volWarnDesc:'\\u5305\\u88f9\\u4f53\\u79ef\\u76f8\\u5bf9\\u91cd\\u91cf\\u8f83\\u5927\\uff0c\\u56e0\\u6b64\\u62a5\\u4ef7\\u6309\\u4f53\\u79ef\\u91cd\\u8ba1\\u7b97'},\n                      tw:{ship:'\\u904b\\u8cbb',pickup:'\\u4e0a\\u9580\\u53d6\\u4ef6\\u8cbb',handling:'\\u8655\\u7406\\u8cbb',warehouse:'\\u5165\\u5009\/\\u64cd\\u4f5c\\u8cbb',fumigation:'\\u71fb\\u84b8\\u8cbb',extrasvc:'\\u9644\\u52a0\\u670d\\u52d9\\u8cbb',surcharge:'\\u984d\\u5916\\u8cbb\\u7528',tax:'\\u7a05\\u8cbb',commission:'\\u4f63\\u91d1',billing:'\\u8a08\\u8cbb',total:'\\u5408\\u8a08',dutytax:'\\u95dc\\u7a05\/\\u7a05\\u8cbb',estduty:'\\u9810\\u4f30\\u9032\\u53e3\\u95dc\\u7a05',esttax:'\\u9810\\u4f30\\u9032\\u53e3\\u7a05',taxnotes:'\\u95dc\\u7a05\\u8aaa\\u660e',recipient:'\\u6536\\u4ef6\\u4eba\\u4ed8',limits:'\\u9650\\u5236',maxwt:'\\u55ae\\u4ef6\\u6700\\u91cd',maxlen:'\\u6700\\u9577\\u908a',girth:'\\u9577+\\u570d \\u2264',maxdeclare:'\\u7533\\u5831\\u4e0a\\u9650',insurance:'\\u4fdd\\u96aa',insOpt:'\\u53ef\\u9078\\u4fdd\\u96aa',insFree:'\\u514d\\u8cbb\\u57fa\\u790e\\u4fdd\\u969c',insMin:'\\u8d77\\u6295',volWarn:'\\u672c\\u6b21\\u6309\\u9ad4\\u7a4d\\u91cd\\u8a08\\u8cbb',volWarnDesc:'\\u5305\\u88f9\\u9ad4\\u7a4d\\u76f8\\u5c0d\\u91cd\\u91cf\\u8f03\\u5927\\uff0c\\u56e0\\u6b64\\u5831\\u50f9\\u6309\\u9ad4\\u7a4d\\u91cd\\u8a08\\u7b97'}\n                    };\n                    return d[L]||d.cn;\n                })(cfg.apiLang);\n                function feeName(apiName, fallback){ if(apiName){ if(isEnLang && \/[\\u4e00-\\u9fff]\/.test(apiName)) return fallback; return apiName; } return fallback; }\n                results.innerHTML = '';\n                list.forEach(function(item){\n                    var card = document.createElement('div');\n                    card.className = 'ebg-calc__card-v2' + (item.unableSelect ? ' is-disabled' : '');\n                    var logo = item.logo ? '<img decoding=\"async\" src=\"'+escAttr(item.logo)+'\" alt=\"\" style=\"max-width:60px;max-height:40px;object-fit:contain\">' : '';\n                    var meta = [];\n                    if (item.duration) meta.push('\\u{1F69A} '+escHtml(item.duration));\n                    if (item.dispatch_date) meta.push('\\u{1F4C5} '+escHtml(item.dispatch_date));\n                    if (item.transport_type) meta.push(escHtml(item.transport_type));\n                    if (item.weight_calc_type_text) meta.push(RL.billing+': '+escHtml(item.weight_calc_type_text));\n                    var warn = '';\n                    if (item.unableSelect && item.unableSelectReason) warn = '<div class=\"ebg-calc__card-warn\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg> '+escHtml(item.unableSelectReason)+'<\/div>';\n\n                    \/\/ ========== TRANSPARENT FEE BREAKDOWN (all API fields, nothing hidden) ==========\n                    var currency = item.currency_name || '';\n                    var rows = [];\n\n                    \/\/ 1. Shipping subtotal\n                    var subtotal = item.estimation_sub || (item.parcel_cost && item.parcel_cost[0] ? item.parcel_cost[0].chargeable_cost : null);\n                    if (subtotal) rows.push({label:RL.ship, amount: subtotal});\n\n                    \/\/ 2. Pickup cost (\u4e0a\u95e8\u53d6\u4ef6\u8d39)\n                    if (item.pickup_cost && parseFloat(item.pickup_cost) > 0) {\n                      rows.push({label:RL.pickup, amount: item.pickup_cost});\n                    }\n\n                    \/\/ 3. Fulfillment \/ Handling fee\n                    if (item.fullfillment_fee && parseFloat(item.fullfillment_fee) > 0) {\n                      var ff = item.fullfillment_fee_detail && item.fullfillment_fee_detail[0];\n                      var ffName = feeName(ff && ff.name, RL.handling);\n                      rows.push({label: ffName, amount: item.fullfillment_fee});\n                    }\n\n                    \/\/ 4. Warehouse handling fee (\u5165\u4ed3\u8d39)\n                    if (item.warehouse_handling_fee && parseFloat(item.warehouse_handling_fee) > 0) {\n                      var wh = item.warehouse_handling_fee_detail && item.warehouse_handling_fee_detail[0];\n                      var whName = feeName(wh && wh.name, RL.warehouse);\n                      rows.push({label: whName, amount: item.warehouse_handling_fee});\n                    }\n\n                    \/\/ 5. Fumigation fee\n                    if (item.fumigation_fee && parseFloat(item.fumigation_fee) > 0) {\n                      rows.push({label:RL.fumigation, amount: item.fumigation_fee});\n                    }\n\n                    \/\/ 6. Parcel extra service fee\n                    if (item.parcelExtraServiceFee && parseFloat(item.parcelExtraServiceFee) > 0) {\n                      rows.push({label:RL.extrasvc, amount: item.parcelExtraServiceFee});\n                    }\n\n                    \/\/ 7. Extra fee (route-specific surcharges \u2014 was previously hidden!)\n                    if (item.extra_fee && parseFloat(item.extra_fee) > 0) {\n                      var ef = item.extra_fee_detail && item.extra_fee_detail[0];\n                      var efName = feeName(ef && ef.name, RL.surcharge);\n                      rows.push({label: efName, amount: item.extra_fee});\n                    }\n                    \/\/ Also handle if extra_fee_detail has multiple entries\n                    if (item.extra_fee_detail && item.extra_fee_detail.length > 1) {\n                      for (var ei = 1; ei < item.extra_fee_detail.length; ei++) {\n                        var ed = item.extra_fee_detail[ei];\n                        if (ed && ed.amount && parseFloat(ed.amount) > 0) {\n                          rows.push({label: feeName(ed.name, RL.surcharge), amount: ed.amount});\n                        }\n                      }\n                    }\n\n                    \/\/ 8. Tax fee (independent of include_tax_note \u2014 was hidden!)\n                    if (item.tax_fee && parseFloat(item.tax_fee) > 0) {\n                      var tf = item.tax_fee_detail && item.tax_fee_detail[0];\n                      var tfName = feeName(tf && tf.name, RL.tax);\n                      rows.push({label: tfName, amount: item.tax_fee});\n                    }\n\n                    \/\/ 9. Commission (was hidden!)\n                    if (item.commission && parseFloat(item.commission) > 0) {\n                      rows.push({label:RL.commission, amount: item.commission});\n                    }\n\n                    \/\/ ========== TAX\/CUSTOMS notes (informational, not summed into total) ==========\n                    var taxNote = item.include_tax_note || '';\n                    var taxRows = [];\n                    if (taxNote) {\n                      var taxColor = (taxNote.indexOf('\u5305\u542b') >= 0 || taxNote.indexOf('Inc') >= 0) ? '#16a34a' : '#dc2626';\n                      taxRows.push({label:RL.dutytax, value: taxNote, color: taxColor});\n                    }\n                    \/\/ Estimated import duty (was hidden!)\n                    if (item.estimated_import_duty && parseFloat(item.estimated_import_duty) > 0) {\n                      taxRows.push({label:RL.estduty, value: currency + ' ' + item.estimated_import_duty + ' (' + RL.recipient + ')', color: '#dc2626'});\n                    }\n                    if (item.estimated_import_tax && parseFloat(item.estimated_import_tax) > 0) {\n                      taxRows.push({label:RL.esttax, value: currency + ' ' + item.estimated_import_tax + ' (' + RL.recipient + ')', color: '#dc2626'});\n                    }\n                    if (item.estimated_import_duty_tax_description) {\n                      taxRows.push({label:RL.taxnotes, value: item.estimated_import_duty_tax_description, color: '#6b7280'});\n                    }\n\n                    \/\/ ========== COURIER LIMITS (so users know constraints upfront) ==========\n                    var limitInfo = '';\n                    if (item.courier_limit) {\n                      var cl = item.courier_limit;\n                      var limits = [];\n                      if (cl.maximum_weight && parseFloat(cl.maximum_weight) > 0) limits.push(RL.maxwt + ' ' + cl.maximum_weight + 'kg');\n                      if (cl.maximum_length && parseFloat(cl.maximum_length) > 0) limits.push(RL.maxlen + ' ' + cl.maximum_length + 'cm');\n                      if (cl.girth && parseFloat(cl.girth) > 0) limits.push(RL.girth + ' ' + cl.girth + 'cm');\n                      if (cl.max_declare_amount && parseFloat(cl.max_declare_amount) > 0) limits.push(RL.maxdeclare + ' ' + currency + ' ' + cl.max_declare_amount);\n                      if (limits.length) {\n                        limitInfo = '<div class=\"ebg-calc__bd-row\" style=\"color:#6b7280;font-size:12px;border-top:1px dashed #e5e7eb;padding-top:6px;margin-top:6px\"><span><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M21.3 8.7c-.4-.4-1-.4-1.4 0L13 15.5l-4.5-4.5 6.8-6.9c.4-.4.4-1 0-1.4-.4-.4-1-.4-1.4 0L8 9.6 4.4 6c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4l14 14c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4l-3.5-3.5 6.9-6.9c.4-.4.4-1 0-1.4z\"\/><\/svg> ' + RL.limits + '<\/span><span>' + escHtml(limits.join(' \u00b7 ')) + '<\/span><\/div>';\n                      }\n                    }\n\n                    \/\/ ========== INSURANCE NOTICE (so users know they CAN insure) ==========\n                    var insInfo = '';\n                    if (item.insurance_percentage && parseFloat(item.insurance_percentage) > 0) {\n                      var insText = RL.insOpt + ' ' + item.insurance_percentage + '% (max ' + currency + ' ' + (item.max_insurance || '?') + ')';\n                      if (item.free_insurance && parseFloat(item.free_insurance) > 0) {\n                        insText += ' \u00b7 ' + RL.insFree + ' ' + currency + ' ' + item.free_insurance;\n                      }\n                      if (item.min_insurance_charge && parseFloat(item.min_insurance_charge) > 0) {\n                        insText += ' \u00b7 ' + RL.insMin + ' ' + currency + ' ' + item.min_insurance_charge;\n                      }\n                      insInfo = '<div class=\"ebg-calc__bd-row\" style=\"color:#0369a1;font-size:12px\"><span><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg> ' + RL.insurance + '<\/span><span>' + escHtml(insText) + '<\/span><\/div>';\n                    }\n\n                    \/\/ ========== VOLUMETRIC WEIGHT EXPLANATION (surface this prominently \u2014 a bulky-but-\n                    \/\/ light package can jump from a few dollars to a much higher quote once volumetric\n                    \/\/ weight becomes the billing basis, and without an explanation this reads as a price\n                    \/\/ error rather than a real dimensional-weight rule; driven entirely by what the API\n                    \/\/ actually decided (v_weight > dead_weight AND weight === v_weight), not a hardcoded\n                    \/\/ per-route threshold, so it's correct for every carrier\/route this widget serves) ==\n                    var volInfo = '';\n                    if (item.v_weight && item.dead_weight) {\n                      var vW = parseFloat(item.v_weight), dW = parseFloat(item.dead_weight), chargeW = parseFloat(item.weight);\n                      if (vW > dW && chargeW === vW) {\n                        volInfo = '<div class=\"ebg-calc__card-warn\" style=\"background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;padding:8px 10px;margin-top:6px;color:#9a3412\">' +\n                          '<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:5px\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"\/><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"\/><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"\/><\/svg>' +\n                          '<strong>' + RL.volWarn + '<\/strong>' +\n                          '<div style=\"font-weight:400;margin-top:2px\">' + RL.volWarnDesc + ' (' + dW + 'kg \u2192 ' + vW + 'kg)<\/div>' +\n                          '<\/div>';\n                      }\n                    }\n\n                    \/\/ ========== Build breakdown HTML ==========\n                    var bdHtml = '';\n                    rows.forEach(function(r){\n                      bdHtml += '<div class=\"ebg-calc__bd-row\"><span>' + escHtml(r.label) + '<\/span><span>' + escHtml(currency) + ' ' + escHtml(r.amount) + '<\/span><\/div>';\n                    });\n                    taxRows.forEach(function(t){\n                      bdHtml += '<div class=\"ebg-calc__bd-row\" style=\"color:' + t.color + ';font-size:13px\"><span>' + escHtml(t.label) + '<\/span><span>' + escHtml(t.value) + '<\/span><\/div>';\n                    });\n                    if (limitInfo) bdHtml += limitInfo;\n                    if (insInfo) bdHtml += insInfo;\n\n                    card.innerHTML =\n                      '<div class=\"ebg-calc__card-head\">' +\n                        '<div class=\"ebg-calc__card-head-left\">' + logo +\n                          '<div><div class=\"ebg-calc__card-title\">'+escHtml(item.name||'')+'<\/div>' +\n                          '<div class=\"ebg-calc__card-meta\">'+meta.join(' \u00b7 ')+'<\/div>' +\n                          warn + volInfo + '<\/div>' +\n                        '<\/div>' +\n                        '<div class=\"ebg-calc__card-total\"><div class=\"ebg-calc__card-total-label\">'+RL.total+'<\/div><div class=\"ebg-calc__card-total-amount\">'+escHtml(currency)+' '+escHtml(item.estimation||'-')+'<\/div><\/div>' +\n                      '<\/div>' +\n                      (bdHtml ? '<div class=\"ebg-calc__breakdown\">'+bdHtml+'<\/div>' : '');\n                    results.appendChild(card);\n                });\n            }\n\n            function escHtml(s){ return String(s==null?'':s).replace(\/[&<>\"']\/g, function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];}); }\n            function escAttr(s){ return escHtml(s); }\n\n            $(el,'[data-role=\"submit\"]').addEventListener('click', calculate);\n            loadTags();\n            loadStates();\n\n            \/\/ Postcode \u2192 auto state + suburb suggestion (debounced)\n            var pcInput = $(el,'[data-role=\"postcode\"]');\n            var subInput = $(el,'[data-role=\"suburb\"]');\n            var stateSel = $(el,'[data-role=\"state\"]');\n            var pcTimer = null;\n            var pcHint = $(el,'[data-role=\"pc-hint\"]');\n            function lookupPostcode(){\n                var pc = (pcInput.value || '').trim();\n                if (pc.length < 3) { if (pcHint) pcHint.style.display = 'none'; return; }\n                fetchJSON('\/postcode?country_id=' + cfg.destCid + '&postcode=' + encodeURIComponent(pc)).then(function(res){\n                    if (!res || res.code !== 200 || !res.data || !res.data.length) {\n                        \/\/ Postcode not in API DB \u2014 show hint user can still pick state manually\n                        if (pcHint) {\n                            pcHint.textContent = (cfg.i18n && cfg.i18n.pc_unfound) || 'Postcode not recognised \u2014 please pick State manually';\n                            pcHint.style.display = 'block';\n                        }\n                        return;\n                    }\n                    if (pcHint) pcHint.style.display = 'none';\n                    var first = res.data[0];\n                    \/\/ Set state by state_id\n                    if (first.state_id && stateSel) {\n                        for (var i = 0; i < stateSel.options.length; i++) {\n                            if (String(stateSel.options[i].value) === String(first.state_id)) {\n                                stateSel.value = String(first.state_id);\n                                break;\n                            }\n                        }\n                    }\n                    \/\/ Auto-fill suburb if empty\n                    if (subInput && !subInput.value && first.name) {\n                        subInput.value = first.name;\n                    }\n                });\n            }\n            if (pcInput) {\n                pcInput.addEventListener('input', function(){\n                    clearTimeout(pcTimer);\n                    pcTimer = setTimeout(lookupPostcode, 400);\n                });\n                pcInput.addEventListener('blur', lookupPostcode);\n            }\n        }\n\n        \/\/ Expose init for dynamically-injected calcs (e.g. ebg_calc_universal)\n        window.__ebgCalcInitFn = function(el){ if (!el.__ebgInit) { el.__ebgInit = true; init(el); } };\n\n        function lazyInit(){\n            var nodes = document.querySelectorAll('.ebg-calc');\n            if (!('IntersectionObserver' in window)) {\n                \/\/ Fallback: init immediately on old browsers\n                nodes.forEach(function(el){ if (!el.__ebgInit) { el.__ebgInit = true; init(el); } });\n                return;\n            }\n            var io = new IntersectionObserver(function(entries){\n                entries.forEach(function(e){\n                    if (e.isIntersecting && !e.target.__ebgInit) {\n                        e.target.__ebgInit = true;\n                        init(e.target);\n                        io.unobserve(e.target);\n                    }\n                });\n            }, { rootMargin: '200px 0px' });\n            nodes.forEach(function(el){ io.observe(el); });\n        }\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', lazyInit);\n        } else {\n            lazyInit();\n        }\n    })();\n    <\/script>\n    \n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"transit\">China Post EMS Transit Times by Destination<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">EMS transit times vary by destination country, local customs processing speed and public holidays. The reference times below assume normal conditions and are counted from the day the Ebaoguo warehouse dispatches your parcel \u2014 not the day it arrives at the warehouse.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Destination<\/th><th>Estimated Transit<\/th><th>Final Mile Carrier<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>Malaysia \u9a6c\u6765\u897f\u4e9a<\/td><td>5\u20137 business days<\/td><td>Pos Malaysia<\/td><td>Air freight direct<\/td><\/tr><tr><td>Singapore \u65b0\u52a0\u5761<\/td><td>5\u20137 business days<\/td><td>SingPost<\/td><td>Air freight direct<\/td><\/tr><tr><td>Taiwan \u53f0\u6e7e<\/td><td>5\u20137 business days<\/td><td>Chunghwa Post<\/td><td>Air freight direct<\/td><\/tr><tr><td>Hong Kong \u9999\u6e2f<\/td><td>3\u20135 business days<\/td><td>Hongkong Post<\/td><td>Air freight direct<\/td><\/tr><tr><td>Australia \u6fb3\u5927\u5229\u4e9a<\/td><td>7\u201310 business days<\/td><td>Australia Post<\/td><td>GST applies; AUD $100 declared value cap<\/td><\/tr><tr><td>United Kingdom \u82f1\u56fd<\/td><td>7\u201312 business days<\/td><td>Royal Mail<\/td><td>Post-Brexit customs checks may add 1\u20133 days<\/td><\/tr><tr><td>United States \u7f8e\u56fd<\/td><td>7\u201312 business days<\/td><td>USPS<\/td><td>CBP clearance; de minimis USD $800<\/td><\/tr><tr><td>Canada \u52a0\u62ff\u5927<\/td><td>8\u201314 business days<\/td><td>Canada Post<\/td><td>CBSA clearance<\/td><\/tr><tr><td>Germany \u5fb7\u56fd<\/td><td>7\u201312 business days<\/td><td>Deutsche Post \/ DHL<\/td><td>EU customs; VAT applies from \u20ac0<\/td><\/tr><tr><td>France \u6cd5\u56fd<\/td><td>7\u201312 business days<\/td><td>La Poste<\/td><td>EU customs; VAT applies from \u20ac0<\/td><\/tr><tr><td>Japan \u65e5\u672c<\/td><td>5\u20138 business days<\/td><td>Japan Post<\/td><td>Air freight direct<\/td><\/tr><tr><td>South Korea \u97e9\u56fd<\/td><td>5\u20138 business days<\/td><td>Korea Post<\/td><td>Air freight direct<\/td><\/tr><tr><td>Middle East \u4e2d\u4e1c<\/td><td>8\u201314 business days<\/td><td>Local postal operator<\/td><td>Varies significantly by country<\/td><\/tr><tr><td>Africa \u975e\u6d32<\/td><td>10\u201320 business days<\/td><td>Local postal operator<\/td><td>Customs clearance times vary widely<\/td><\/tr><tr><td>Latin America \u62c9\u4e01\u7f8e\u6d32<\/td><td>10\u201318 business days<\/td><td>Local postal operator<\/td><td>Brazil customs can add 5\u201315 days<\/td><\/tr><tr><td>Other destinations<\/td><td>5\u20139 business days*<\/td><td>Local postal operator<\/td><td>Varies by country<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>*Estimates under normal conditions. Actual delivery depends on destination customs processing, local post, and public holidays. Transit time starts from warehouse dispatch date, not parcel receipt date. Chinese public holidays (Golden Week, Spring Festival) and peak shopping seasons (11.11, 12.12) can add 3\u20137 days to dispatch times.<\/em><\/p>\n\n\n\n<div style=\"background:#fff7ed;border-left:4px solid #f97316;padding:12px 18px;margin:14px 0;border-radius:0 6px 6px 0\">\n<p style=\"margin:0;font-size:14px;line-height:1.7\">\u26a0\ufe0f <strong>Common mistake:<\/strong> Many customers count transit time from the day their parcel arrives at the Ebaoguo warehouse. Transit time begins only after your shipment is dispatched \u2014 which happens after you submit the shipping order and payment is confirmed. During peak periods (Spring Festival, 11.11), allow an extra 3\u20135 business days for warehouse processing before dispatch.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tracking\">China Post EMS Tracking \u2014 \u4e2d\u56fd\u90ae\u653fEMS\u5feb\u9012\u67e5\u8be2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">China Post EMS tracking covers the full journey, with milestone updates from pickup in China through to delivery in the destination country. Every EMS parcel has a 13-character tracking number starting with &#8220;E&#8221; and ending with &#8220;CN&#8221;, for example <strong>EX123456789CN<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where to Track Your EMS Parcel<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Ebaoguo dashboard<\/strong> \u2014 the easiest option; tracking updates are pulled automatically once your shipment is dispatched<\/li><li><strong>China Post official site<\/strong> \u2014 <a href=\"https:\/\/www.ems.com.cn\" rel=\"nofollow noopener\" target=\"_blank\">ems.com.cn<\/a> for China-side tracking events<\/li><li><strong>17track.net<\/strong> \u2014 aggregates both China Post and destination postal carrier events in one view<\/li><li><strong>Destination postal carrier<\/strong> \u2014 once the parcel clears customs and is handed to the local carrier (e.g., Australia Post, Royal Mail, USPS), tracking continues on their platform using the same EMS number<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Understanding EMS Tracking Status Messages<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Tracking Status<\/th><th>What It Means<\/th><th>Typical Duration at This Stage<\/th><\/tr><\/thead><tbody><tr><td>Accepted \/ \u5df2\u6536\u5bc4<\/td><td>Parcel received at China Post facility<\/td><td>Same day as dispatch<\/td><\/tr><tr><td>Departed from outward OE \/ \u79bb\u5f00\u51fa\u53e3\u4e92\u6362\u5c40<\/td><td>Left China&#8217;s international sorting hub (usually Shanghai or Beijing)<\/td><td>1\u20132 days after acceptance<\/td><\/tr><tr><td>Arrived at inward OE \/ \u5230\u8fbe\u8fdb\u53e3\u4e92\u6362\u5c40<\/td><td>Arrived at destination country&#8217;s postal gateway<\/td><td>2\u20135 days after departure<\/td><\/tr><tr><td>Customs clearance \/ \u6d77\u5173\u67e5\u9a8c<\/td><td>Under review by destination customs authority<\/td><td>1\u20135 days (varies widely)<\/td><\/tr><tr><td>Delivered \/ \u6295\u9012\u6210\u529f<\/td><td>Successfully delivered to recipient<\/td><td>1\u20133 days after customs release<\/td><\/tr><tr><td>No update for 7+ days<\/td><td>Usually in transit between hubs or held at customs \u2014 not lost<\/td><td>Contact Ebaoguo support after 14 days<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"background:#fff7ed;border-left:4px solid #f97316;padding:12px 18px;margin:14px 0;border-radius:0 6px 6px 0\">\n<p style=\"margin:0;font-size:14px;line-height:1.7\">\u26a0\ufe0f <strong>Common mistake:<\/strong> A tracking number that shows no updates for 3\u20135 days after &#8220;Departed from outward OE&#8221; is normal \u2014 the parcel is in international transit and tracking events only appear when it reaches the next scan point. Do not assume the parcel is lost until at least 20 business days have passed for standard destinations.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"customs\">Customs Declaration and Duties<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ebaoguo handles customs documentation as part of the EMS process. <strong>Accurate declaration is essential<\/strong> \u2014 misdeclaring value, quantity, or item description can cause delays, fines, seizure, or additional duties.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Australia:<\/strong> Maximum declared value AUD $100 per parcel. GST (10%) applies to all imported goods; formal declaration required for goods AUD $1,000+<\/li><li><strong>Malaysia:<\/strong> Import duties may apply above MYR 500 threshold; rates vary by category<\/li><li><strong>United Kingdom:<\/strong> VAT (20%) applies to all imports; customs duty applies above GBP \u00a3135<\/li><li><strong>European Union:<\/strong> VAT applies from \u20ac0 since July 2021 (IOSS reform); duty applies above \u20ac150<\/li><li><strong>United States:<\/strong> De minimis threshold USD $800; most personal-use parcels below this clear without duty<\/li><li><strong>Canada:<\/strong> De minimis CAD $20 for taxes; CAD $150 for duties \u2014 most parcels will attract GST\/HST<\/li><li><strong>Other destinations:<\/strong> Check your destination country&#8217;s customs authority for current thresholds<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">EMS does not include duty and tax payment at destination. The recipient is responsible for any border charges. This is a DDU (Delivered Duty Unpaid) service.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Customs Declaration Tips for Overseas Chinese Shoppers<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Always declare the actual purchase price, not a lower &#8220;gift&#8221; value \u2014 customs authorities cross-reference declared values against market prices and EMS parcel contents<\/li><li>Use specific item descriptions (e.g., &#8220;women&#8217;s cotton jacket&#8221; not &#8220;clothing&#8221;) \u2014 vague descriptions increase the chance of customs inspection<\/li><li>Split high-value orders across multiple shipments if the total exceeds your destination&#8217;s duty-free threshold \u2014 Ebaoguo&#8217;s consolidation service makes this straightforward<\/li><li>Keep your original purchase receipts; some customs authorities (especially Australia, UK) may request proof of value<\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"compare\">China Post EMS vs Other Shipping Services \u2014 \u7ebf\u8def\u5bf9\u6bd4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Choosing between EMS and other carriers depends on your destination, parcel weight, budget, and how urgently you need delivery. Here&#8217;s how China Post EMS compares to the other services available through Ebaoguo.<\/p>\n\n\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Feature<\/th><th>China Post EMS<\/th><th>Express Carriers (DHL\/FedEx)<\/th><th>Ebaoguo Direct Routes (AU\/MY\/SG)<\/th><\/tr><\/thead><tbody><tr><td>Country coverage<\/td><td>144+ countries \u2705<\/td><td>220+ countries \u2705<\/td><td>Selected destinations only<\/td><\/tr><tr><td>Typical transit<\/td><td>5\u201314 business days<\/td><td>3\u20137 business days<\/td><td>5\u201310 business days<\/td><\/tr><tr><td>Fuel surcharge<\/td><td>None \u2705<\/td><td>Yes (varies)<\/td><td>None \u2705<\/td><\/tr><tr><td>Remote area surcharge<\/td><td>None \u2705<\/td><td>Yes (varies)<\/td><td>None \u2705<\/td><\/tr><tr><td>Max weight per parcel<\/td><td>20 kg<\/td><td>70 kg (DHL) \/ 68 kg (FedEx)<\/td><td>Varies by route<\/td><\/tr><tr><td>Volumetric divisor<\/td><td>5,000<\/td><td>5,000<\/td><td>Varies by route<\/td><\/tr><tr><td>Customs clearance<\/td><td>DDU \u2014 recipient pays duties<\/td><td>DDU or DDP options<\/td><td>DDU<\/td><\/tr><tr><td>Tracking quality<\/td><td>Good (UPU network)<\/td><td>Excellent (real-time)<\/td><td>Good<\/td><\/tr><tr><td>Best for<\/td><td>Rare destinations, budget-conscious, no surcharge zones<\/td><td>Urgent shipments, high-value goods<\/td><td>Core diaspora destinations<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Carrier prices change frequently. Use the Ebaoguo calculator above for current rates \u2014 we never publish third-party carrier prices directly as they vary by route, weight, and surcharge period.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prohibited\">Prohibited Items<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Standalone lithium batteries (in-device batteries may be accepted \u2014 confirm before shipping)<\/li><li>Flammable liquids, gases, explosives, oxidising substances<\/li><li>Narcotics, psychotropic substances, and controlled drugs<\/li><li>Counterfeit goods and intellectual property infringements<\/li><li>Currency, negotiable instruments, and precious metals above declared thresholds<\/li><li>Perishable food items (unless specifically approved for the destination country)<\/li><li>Items prohibited by the destination country&#8217;s import regulations<\/li><li>Tobacco products (cigarettes, e-cigarettes, vaping devices, heated tobacco)<\/li><\/ul>\n\n\n\n<div style=\"background:#fff7ed;border-left:4px solid #f97316;padding:12px 18px;margin:14px 0;border-radius:0 6px 6px 0\">\n<p style=\"margin:0;font-size:14px;line-height:1.7\">\u26a0\ufe0f <strong>Common mistake:<\/strong> Power banks and devices with built-in lithium batteries are frequently flagged. If you&#8217;re shipping electronics, confirm battery type and capacity with Ebaoguo support before submitting your shipment order. Parcels containing undeclared batteries may be held, returned, or destroyed at the carrier&#8217;s discretion \u2014 with no refund of shipping fees.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-to\">How to Ship via China Post EMS with Ebaoguo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ebaoguo acts as your China-based consolidation warehouse. You shop from any Chinese retailer, have items delivered to your Ebaoguo warehouse address, and then ship everything together via EMS in one parcel \u2014 saving on per-parcel shipping costs.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Register<\/strong> \u2014 create a free Ebaoguo account and get your personal China warehouse address<\/li><li><strong>Shop<\/strong> \u2014 buy from Taobao, JD.com, Pinduoduo, or any Chinese retailer; use your Ebaoguo warehouse address as the delivery address<\/li><li><strong>Consolidate<\/strong> \u2014 once all items arrive, request consolidation in your dashboard; optionally request reboxing to reduce volumetric weight<\/li><li><strong>Select EMS<\/strong> \u2014 choose China Post EMS as your shipping method; use the calculator to confirm the estimated cost<\/li><li><strong>Declare<\/strong> \u2014 fill in accurate customs declaration details for each item<\/li><li><strong>Pay and dispatch<\/strong> \u2014 confirm payment; Ebaoguo dispatches your parcel within 1\u20132 business days<\/li><li><strong>Track<\/strong> \u2014 monitor your EMS tracking number in the Ebaoguo dashboard or on 17track.net<\/li><\/ol>\n\n\n<div class=\"ebg-cross-sell\" style=\"margin:28px 0\"><div style=\"font-size:13px;color:#64748b;margin-bottom:10px;font-weight:600\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><path d=\"M9 18h6v2H9z\"\/><path d=\"M12 2a7 7 0 0 0-4 12.74V17h8v-2.26A7 7 0 0 0 12 2z\"\/><\/svg> You might also like<\/div><div style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px\"><a href=\"https:\/\/pickup.ebaoguo.com\" target=\"_blank\" rel=\"noopener\" style=\"display:block;padding:16px 18px;background:#fff;border:1px solid #c8dff5;border-radius:8px;text-decoration:none;color:inherit;transition:all .2s\"><div style=\"font-size:24px;margin-bottom:6px\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><rect x=\"1\" y=\"3\" width=\"15\" height=\"13\"\/><polygon points=\"16 8 20 8 23 11 23 16 16 16 16 8\"\/><circle cx=\"5.5\" cy=\"18.5\" r=\"2.5\"\/><circle cx=\"18.5\" cy=\"18.5\" r=\"2.5\"\/><\/svg><\/div><div style=\"font-size:15px;font-weight:600;color:#116ebf;margin-bottom:4px\">Home Pickup \u2192<\/div><div style=\"font-size:13px;color:#64748b;line-height:1.5\">AU \/ NZ \/ MY door pickup, 10+ carrier price comparison, no monthly fees.<\/div><\/a><a href=\"https:\/\/storage.ebaoguo.com\" target=\"_blank\" rel=\"noopener\" style=\"display:block;padding:16px 18px;background:#fff;border:1px solid #c8dff5;border-radius:8px;text-decoration:none;color:inherit;transition:all .2s\"><div style=\"font-size:24px;margin-bottom:6px\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:inline-block;vertical-align:-3px;margin-right:6px\"><rect x=\"6\" y=\"6\" width=\"12\" height=\"14\" rx=\"2\"\/><line x1=\"10\" y1=\"6\" x2=\"10\" y2=\"3\"\/><line x1=\"14\" y1=\"6\" x2=\"14\" y2=\"3\"\/><\/svg><\/div><div style=\"font-size:15px;font-weight:600;color:#116ebf;margin-bottom:4px\">Luggage Storage &amp; Resale \u2192<\/div><div style=\"font-size:13px;color:#64748b;line-height:1.5\">Store luggage \/ resell items before returning home; 6-angle photo intake, transparent.<\/div><\/a><\/div><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">Frequently Asked Questions \u2014 China Post EMS FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What is the difference between China Post EMS and regular international small packets?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">China Post EMS is a priority postal express service with priority customs clearance, so it is faster than China Post Air Parcel and ePacket. EMS offers full tracking and accepts parcels up to 20 kg, which suits heavier or more urgent shipments. Regular international small packets are cheaper but slower (typically 15\u201345 days) with fewer tracking milestones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How long does China Post EMS take to Australia?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Under normal conditions, EMS to Australia takes 7\u201310 business days from the Ebaoguo warehouse dispatch date. Final-mile delivery is handled by Australia Post. Allow extra time during Chinese public holidays and peak shopping seasons (11.11, Chinese New Year).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I track my China Post EMS parcel in English?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Your Ebaoguo dashboard shows tracking updates in English. You can also use 17track.net, which aggregates China Post and destination carrier events in English. The official China Post EMS site (ems.com.cn) supports English tracking as well.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What does &#8220;Arrived at inward OE&#8221; mean on EMS tracking?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;Inward OE&#8221; (Office of Exchange) means your parcel has arrived at the destination country&#8217;s international postal gateway and is awaiting customs clearance. This is a normal, expected status \u2014 it does not mean there is a problem. Customs processing typically takes 1\u20135 business days depending on the country.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does China Post EMS include import duties?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. EMS is a DDU (Delivered Duty Unpaid) service. Any import duties, VAT, or GST charged by the destination country&#8217;s customs authority are the recipient&#8217;s responsibility. Ebaoguo will assist with accurate customs documentation, but cannot pay duties on your behalf.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">My EMS tracking hasn&#8217;t updated in a week \u2014 is my parcel lost?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Probably not. Tracking gaps of 5\u201310 days are common during international transit, particularly between the &#8220;Departed from outward OE&#8221; and &#8220;Arrived at inward OE&#8221; events. If there is no update after 20 business days, contact Ebaoguo support and we will initiate an inquiry with China Post.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use EMS for very heavy parcels?<\/h3>\n\n\n\n\n\n<div class=\"ebg-cn-warehouse-policy\" style=\"background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;padding:18px 20px;margin:20px 0\"><p class=\"wp-block-paragraph\" style=\"margin:0 0 12px;font-weight:700;font-size:15px;color:#1e40af\">\ud83c\udfed China Warehouse Policy<\/p><ul style=\"margin:0;padding-left:20px;font-size:14px;line-height:1.9;color:#374151\"><li>\ud83d\udcc5 <strong>Free storage: 60 days<\/strong> (\u00a51\/parcel\/day charged after the free period)<\/li><li>\u26a0\ufe0f <strong>Unclaimed parcels cleared after 45 days<\/strong><\/li><li>\ud83d\udce6 <strong>Free consolidation: up to 30 packages per waybill<\/strong><\/li><li>\ud83d\udcb0 <strong>Excess handling fee:<\/strong> if a waybill exceeds 30 packages, fee = <code>total packages \u00d7 \u00a51<\/code> (e.g. 40 packages \u2192 40 \u00d7 \u00a51 = \u00a540)<\/li><\/ul><\/div>\n\n<h2 class=\"wp-block-heading\" id=\"contact\">Contact Us<\/h2><div class=\"wp-block-columns is-not-stacked-on-mobile ebg-contact-4col ebg-contact-grid is-layout-flex wp-container-core-columns-is-layout-eee0efca wp-block-columns-is-layout-flex\"><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p style=\"text-align:center;margin:0 0 4px;font-weight:700;font-size:14px;color:#374151\">WeChat<\/p><p style=\"text-align:center;margin:0 0 10px;font-size:12px;color:#6b7280\">Scan to add<\/p><figure class=\"wp-block-image size-medium\" style=\"margin:0 auto;text-align:center\"><a href=\"https:\/\/work.weixin.qq.com\/kfid\/kfcd0d94a1ce38bfcd3\" target=\"_blank\" rel=\"noopener nofollow\"><img decoding=\"async\" src=\"https:\/\/ebaoguo.com\/wp-content\/uploads\/2026\/07\/wechat-cs-support-en-200x200.png\" alt=\"WeChat QR code\" style=\"max-width:140px;width:100%;height:auto;margin:0 auto\" \/><\/a><\/figure><\/div><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p style=\"text-align:center;margin:0 0 4px;font-weight:700;font-size:14px\"><a href=\"https:\/\/line.me\/ti\/p\/@ebaoguo\" target=\"_blank\" rel=\"noopener nofollow\" style=\"color:#116ebf;text-decoration:none\">LINE<\/a><\/p><p style=\"text-align:center;margin:0 0 10px;font-size:12px;color:#6b7280\">Click to add<\/p><figure class=\"wp-block-image size-medium\" style=\"margin:0 auto;text-align:center\"><a href=\"https:\/\/line.me\/ti\/p\/@ebaoguo\" target=\"_blank\" rel=\"noopener nofollow\"><img decoding=\"async\" src=\"https:\/\/ebaoguo.com\/wp-content\/uploads\/2022\/06\/ebaoguo_line-300x300.jpg\" alt=\"LINE QR\" style=\"max-width:140px;width:100%;height:auto;margin:0 auto\" \/><\/a><\/figure><\/div><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p style=\"text-align:center;margin:0 0 4px;font-weight:700;font-size:14px\"><a href=\"https:\/\/wa.me\/message\/UIZ4LXUW4I5CB1\" target=\"_blank\" rel=\"noopener nofollow\" style=\"color:#116ebf;text-decoration:none\">WhatsApp<\/a><\/p><p style=\"text-align:center;margin:0 0 10px;font-size:12px;color:#6b7280\">Click to chat<\/p><figure class=\"wp-block-image size-medium\" style=\"margin:0 auto;text-align:center\"><a href=\"https:\/\/wa.me\/message\/UIZ4LXUW4I5CB1\" target=\"_blank\" rel=\"noopener nofollow\"><img decoding=\"async\" src=\"https:\/\/ebaoguo.com\/wp-content\/uploads\/2021\/04\/IMG_20240916_015013-300x300.png\" alt=\"WhatsApp QR\" style=\"max-width:140px;width:100%;height:auto;margin:0 auto\" \/><\/a><\/figure><\/div><div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><p style=\"text-align:center;margin:0 0 4px;font-weight:700;font-size:14px;color:#374151\">WeChat Mini App<\/p><p style=\"text-align:center;margin:0 0 10px;font-size:12px;color:#6b7280\">Scan to open<\/p><figure class=\"wp-block-image size-medium\" style=\"margin:0 auto;text-align:center\"><img decoding=\"async\" src=\"https:\/\/ebaoguo.com\/wp-content\/uploads\/2022\/06\/mini.jpg\" alt=\"WeChat Mini App QR\" style=\"max-width:140px;width:100%;height:auto;margin:0 auto\" \/><\/figure><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>\u23f1 Transit\uff1a5\u20139 business days \ud83d\udcc5 Updated\uff1a2026-05-09 \ud83d\ude9a Carrier\uff1aChina Post EMS (informational) \ud83d\udec3 Customs\uff1aNot included \/ DDU (China Post EMS does [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"no-sidebar","site-content-layout":"plain-container","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"doc_category":[3018],"doc_tag":[],"class_list":["post-22633","docs","type-docs","status-publish","hentry","doc_category-shipping-from-china-mainland-en"],"acf":[],"year_month":"2026-10","word_count":2020,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"admin","author_nicename":"admin-2","author_url":"https:\/\/ebaoguo.com\/en\/author\/admin-2\/"},"doc_category_info":[{"term_name":"Shipping from China Mainland","term_url":"https:\/\/ebaoguo.com\/en\/kb-category\/shipping-from-china-mainland-en\/"}],"doc_tag_info":[],"spectra_custom_meta":{"_wpml_word_count":["{\"total\":0,\"to_translate\":{\"zh-hans\":181,\"zh-hant\":181,\"en\":181}}"],"_edit_last":["11"],"_wp_page_template":["default"],"mfn-post-hide-image":["0"],"the_grid_item_custom_link_target":["_self"],"the_grid_item_col":["1"],"the_grid_item_row":["1"],"the_grid_item_content_color":["dark"],"the_grid_item_overlay_color":["light"],"the_grid_item_video_ratio":["4:3"],"the_grid_item_youtube_ratio":["4:3"],"the_grid_item_vimeo_ratio":["4:3"],"the_grid_item_wistia_ratio":["4:3"],"_yoast_wpseo_keywordsynonyms":[""],"_last_translation_edit_mode":["native-editor"],"_edit_lock":["1773965602:11"],"_wpb_shortcodes_custom_css":[".vc_custom_1591872576052{padding: 25px !important;background-color: #f4f4f4 !important;}.vc_custom_1591872576052{padding: 25px !important;background-color: #ffffff !important;}.vc_custom_1657773993138{background-color: #f4f4f4 !important;padding: 25px !important;}.vc_custom_1591872562505{padding: 25px !important;background-color: #f4f4f4 !important;}.vc_custom_1591872364804{padding: 25px !important;background-color: #f4f4f4 !important;}.vc_custom_1591872576052{padding: 25px !important;background-color: #fff3f3 !important;}.vc_custom_1632793117622{background-color: #f4f4f4 !important;padding: 25px !important;}"],"mfn-post-hide-content":["0"],"mfn-post-slider":["0"],"mfn-post-slider-layer":["0"],"mfn-post-hide-title":["0"],"mfn-post-remove-padding":["0"],"_wpml_media_featured":["1"],"_wpml_media_duplicate":["1"],"mfn-post-sidebar":["0"],"mfn-post-sidebar2":["0"],"mfn-post-intro":["a:1:{s:9:\"post-meta\";s:1:\"1\";}"],"mfn-post-love":["0"],"mfn-meta-seo-og-image":["https:\/\/ebaoguo.com\/wp-content\/uploads\/2021\/03\/CN-WD_F.png"],"_yoast_wpseo_focuskeywords":["[]"],"_yoast_wpseo_estimated-reading-time-minutes":["12"],"mfn-post-layout":["no-sidebar"],"mfn-post-full-width":["0"],"_mi_skip_tracking":["0"],"mfn-page-local-style":["{\"custom\":[],\"global\":[],\"tablet\":[],\"mobile\":[],\"fonts\":[]}"],"_yoast_wpseo_content_score":["30"],"_encloseme":["1"],"mfn_header_template":["0"],"mfn_footer_template":["0"],"_yoast_wpseo_wordproof_timestamp":[""],"_wpb_shortcodes_custom_css_updated":["1"],"_wpb_shortcodes_default_css":[".vc_do_custom_heading{margin-bottom:0.625rem;margin-top:0;}.vc_do_toggle{margin-bottom:22px;}.vc_do_message{padding-top:1em;padding-bottom:1em;padding-right:1em;padding-left:4em;margin-bottom:22px;}.vc_do_custom_heading{margin-bottom:0.625rem;margin-top:0;}.vc_do_custom_heading{margin-bottom:0.625rem;margin-top:0;}.vc_do_btn{margin-bottom:22px;}.vc_do_custom_heading{margin-bottom:0.625rem;margin-top:0;}.vc_do_message{padding-top:1em;padding-bottom:1em;padding-right:1em;padding-left:4em;margin-bottom:22px;}.vc_do_custom_heading{margin-bottom:0.625rem;margin-top:0;}.vc_do_toggle{margin-bottom:22px;}.vc_do_toggle{margin-bottom:22px;}.vc_do_toggle{margin-bottom:22px;}.vc_do_toggle{margin-bottom:22px;}.vc_do_toggle{margin-bottom:22px;}.vc_do_toggle{margin-bottom:22px;}.vc_do_toggle{margin-bottom:22px;}.vc_do_custom_heading{margin-bottom:0.625rem;margin-top:0;}.vc_do_message{padding-top:1em;padding-bottom:1em;padding-right:1em;padding-left:4em;margin-bottom:22px;}.vc_do_message{padding-top:1em;padding-bottom:1em;padding-right:1em;padding-left:4em;margin-bottom:22px;}.vc_do_btn{margin-bottom:22px;}"],"_wpb_shortcodes_default_css_updated":["1"],"_betterdocs_reusable_block_ids":["a:0:{}"],"_yoast_wpseo_primary_category":["2788"],"_betterdocs_meta_views":["4370"],"_betterdocs_est_reading_text":[""],"_betterdocs_attachments":["a:0:{}"],"_betterdocs_related_articles":["a:0:{}"],"_aioseo_title":[null],"_aioseo_description":[null],"_aioseo_keywords":["a:0:{}"],"_aioseo_og_title":[null],"_aioseo_og_description":[null],"_aioseo_og_article_section":[null],"_aioseo_og_article_tags":["a:0:{}"],"_aioseo_twitter_title":[null],"_aioseo_twitter_description":[null],"_astra_content_layout_flag":["disabled"],"site-post-title":["disabled"],"ast-title-bar-display":["disabled"],"ast-featured-img":["disabled"],"site-content-layout":["plain-container"],"site-sidebar-layout":["no-sidebar"],"theme-transparent-header-meta":["default"],"ast-site-content-layout":["default"],"site-content-style":["default"],"site-sidebar-style":["default"],"rank_math_seo_score":["77"],"rank_math_contentai_score":["a:5:{s:8:\"keywords\";s:5:\"74.51\";s:9:\"wordCount\";s:1:\"0\";s:9:\"linkCount\";s:1:\"0\";s:12:\"headingCount\";s:1:\"0\";s:10:\"mediaCount\";s:1:\"0\";}"],"_wpb_vc_js_status":["true"],"_wpb_vc_editor_type":["classic"],"_wpb_post_custom_layout":["default"],"rank_math_analytic_object_id":["402"],"rank_math_title":["China Post EMS International Express\uff5cShip to 144+ Countries\uff5cEbaoguo"],"rank_math_description":["Ebaoguo offers China Post EMS international shipping to 144+ countries worldwide \u2014 ideal when our standard consolidation routes don't cover your destination. Standard goods, door-to-door delivery, strong customs clearance, no fuel or remote area surcharges. Register now."],"rank_math_focus_keyword":["China Post EMS,EMS international express,China Post international parcel,EMS forwarding,China direct mail overseas,ship from China internationally,Taobao global consolidation,China Post overseas shipping,EMS shipping rates,China Post prohibited items,EMS transit time,Ebaoguo EMS,China Post shipping rules,international parcel China,China direct mail,EMS customs clearance,global forwarding China,ship from China worldwide,EMS delivery time,international shipping from China"],"rank_math_internal_links_processed":["1"],"astra-migrate-meta-layouts":["set"],"rank_math_og_content_image":["a:2:{s:5:\"check\";s:32:\"9923fe4e03e1817469cf05e7eeae5826\";s:6:\"images\";a:1:{i:0;s:79:\"https:\/\/ebaoguo.com\/wp-content\/uploads\/2026\/07\/wechat-cs-support-en-200x200.png\";}}"],"_uag_css_file_name":["uag-css-22633.css"],"_ebg_geo_score":["75"],"_ebg_geo_details":["a:10:{s:12:\"answer_first\";b:1;s:7:\"has_faq\";b:0;s:8:\"has_list\";b:1;s:9:\"ext_links\";i:5;s:9:\"int_links\";i:0;s:10:\"word_count\";i:2467;s:6:\"has_h2\";b:1;s:7:\"has_img\";b:1;s:8:\"rm_title\";b:1;s:7:\"rm_desc\";b:1;}"],"_ebg_geo_scored_at":["1783063892"],"_uag_page_assets":["a:9:{s:3:\"css\";s:260:\".uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media(max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media(max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}\";s:2:\"js\";s:0:\"\";s:18:\"current_block_list\";a:10:{i:0;s:9:\"core\/html\";i:1;s:12:\"core\/heading\";i:2;s:10:\"core\/group\";i:3;s:14:\"core\/paragraph\";i:4;s:14:\"core\/separator\";i:5;s:9:\"core\/list\";i:6;s:10:\"core\/table\";i:7;s:12:\"core\/columns\";i:8;s:11:\"core\/column\";i:9;s:10:\"core\/image\";}s:8:\"uag_flag\";b:0;s:11:\"uag_version\";s:10:\"1790918205\";s:6:\"gfonts\";a:0:{}s:10:\"gfonts_url\";s:0:\"\";s:12:\"gfonts_files\";a:0:{}s:14:\"uag_faq_layout\";b:0;}"]},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"ctl_avatar":false,"1536x1536":false,"2048x2048":false,"betterdocs-category-thumb":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/ebaoguo.com\/en\/author\/admin-2\/"},"uagb_comment_info":0,"uagb_excerpt":"\u23f1 Transit\uff1a5\u20139 business days \ud83d\udcc5 Updated\uff1a2026-05-09 \ud83d\ude9a Carrier\uff1aChina Post EMS (informational) \ud83d\udec3 Customs\uff1aNot included \/ DDU (China Post EMS does [&hellip;]","knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/docs\/22633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/comments?post=22633"}],"version-history":[{"count":0,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/docs\/22633\/revisions"}],"wp:attachment":[{"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/media?parent=22633"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/doc_category?post=22633"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/doc_tag?post=22633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}