{"id":35289,"date":"2023-03-09T15:37:40","date_gmt":"2023-03-09T05:37:40","guid":{"rendered":"https:\/\/ebaoguo.com\/shipping-from-taiwan-to-singapore\/"},"modified":"2026-07-22T09:28:39","modified_gmt":"2026-07-22T07:28:39","password":"","slug":"shipping-from-taiwan-to-singapore","status":"publish","type":"docs","link":"https:\/\/ebaoguo.com\/en\/kb\/shipping-from-taiwan-to-singapore\/","title":{"rendered":"Shipping from Taiwan to Singapore | Air Freight | NT$650\/kg \u00b7 4-6 Days"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1601584115197-04ecc0da31d7?w=1200&#038;auto=format&#038;fit=crop&#038;q=80\" alt=\"shipping from taiwan to singapore \u2014 Cargo ship loaded with shipping containers\" loading=\"eager\" \/><\/figure>\n\n\n\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>4\u20136 business days<\/strong><\/p>\n<p style=\"margin:6px 0\">\ud83d\udcc5 Updated\uff1a<time datetime=\"2026-05-12\">2026-05-12<\/time><\/p>\n<p style=\"margin:6px 0\">\ud83d\ude9a Carrier\uff1a<strong>Ebaoguo self-operated consolidated line<\/strong><\/p>\n<p style=\"margin:6px 0\">\ud83d\udec3 Customs\uff1a<strong>DDU \u2014 recipient pays any applicable duty at destination<\/strong><\/p>\n<\/div>\n\n\n\n<div style=\"font-size:13px;color:#6b7280;margin:14px 0 18px 0;letter-spacing:0.3px\"><strong style=\"color:#116ebf\">Ebaoguo.com<\/strong> \u00b7 Shipping Route Guide<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"quick-summary\">\ud83d\uddfa\ufe0f Quick Summary: Shipping from Taiwan to Singapore<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Shipping from Taiwan to Singapore<\/strong> via Ebaoguo uses a self-operated air consolidation line out of our Kaohsiung warehouse, with door-to-door delivery handled by a local Singapore courier on the receiving end. Transit runs 4\u20136 business days from dispatch, and billing is by whichever is heavier: actual weight or volumetric weight (L\u00d7W\u00d7H cm \u00f7 5000). Whether you&#8217;re an individual shopper forwarding a single purchase or a small business moving regular stock, this guide covers everything you need to know about <strong>taiwan to singapore shipping<\/strong> \u2014 rates, customs rules, prohibited items, and how to avoid the most common mistakes.<\/p>\n\n\n<div style=\"overflow-x:auto;margin:18px 0\"><table style=\"width:100%;border-collapse:collapse\"><thead><tr style=\"background:#dbeafe\"><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Dimension<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Detail<\/th><\/tr><\/thead><tbody><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Route<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Taiwan (Kaohsiung) \u2192 Singapore<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Service type<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Air consolidation (express)<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Transit time<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">4\u20136 business days door-to-door<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Dispatch days<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Mon \/ Wed \/ Thu<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Rate<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">NT$650 per kg (minimum 1 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">1 kg increment)<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Volumetric divisor<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">5000 (cm\u00b3 \u00f7 5000 = chargeable kg)<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Customs terms<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">DDU \u2014 recipient pays duty if assessed<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Payment currency<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">TWD or SGD<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Last-mile<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Singapore local courier<\/td><\/tr><\/tbody><\/table><\/div>\n\n\n<p class=\"wp-block-paragraph\">The rate is NT$650 per kilogram, billed in 1 kg increments (actual weight vs. volumetric weight \u2014 whichever is greater). If you&#8217;re shipping multiple parcels in one shipment, each parcel beyond the first adds NT$22 as a handling fee. Use the calculator below to get a live estimate before you pack.<\/p>\n\n\n    <div class=\"ebg-calc\" id=\"ebg-calc-47b81699-4d91-4a8e-a73b-773ccd1bdb0c\" data-config='{&quot;restBase&quot;:&quot;https:\\\/\\\/ebaoguo.com\\\/en\\\/wp-json\\\/ebg\\\/v1\\\/calc&quot;,&quot;storeId&quot;:5,&quot;originIso&quot;:&quot;tw&quot;,&quot;destIso&quot;:&quot;sg&quot;,&quot;originCid&quot;:214,&quot;destCid&quot;:196,&quot;language&quot;:&quot;en&quot;,&quot;apiLang&quot;:&quot;en&quot;,&quot;currencyId&quot;:7,&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> TW<\/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> SG<\/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=\"238859\"><\/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=\"Singapore\"><\/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<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"why-air-consolidation\">\u2708\ufe0f Why Air Consolidation for Taiwan to Singapore Shipping?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When comparing options for <strong>taiwan shipping to singapore<\/strong>, most shippers face a three-way choice: express couriers (DHL, FedEx, UPS), postal services (Chunghwa Post \/ EMS), or an air consolidation service like Ebaoguo. Each has a different cost-to-speed profile. Here&#8217;s how they stack up in practical terms.<\/p>\n\n\n<div style=\"overflow-x:auto;margin:18px 0\"><table style=\"width:100%;border-collapse:collapse\"><thead><tr style=\"background:#dbeafe\"><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Factor<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Express Courier (DHL\/FedEx)<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Postal \/ EMS<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Ebaoguo Air Consolidation<\/th><\/tr><\/thead><tbody><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Typical transit<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">2\u20134 business days<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">7\u201321 business days<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">4\u20136 business days<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Cost (approx. 2 kg parcel)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Check carrier site<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Check carrier site<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">~NT$870 (use calculator)<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Tracking<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Full real-time<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Basic milestones<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Full milestones<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Door-to-door<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Yes<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Yes<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Yes<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Consolidation (multi-parcel consolidation)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">No<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">No<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Yes \u2014 NT$22\/extra parcel<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Best for<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Urgent \/ high-value<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Budget \/ non-urgent<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Regular shoppers &amp; consolidation<\/td><\/tr><\/tbody><\/table><\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Don&#039;t rely on courier websites for current Taiwan\u2013Singapore rates<\/strong>\nDHL, FedEx, and EMS rates change frequently and vary by account type, surcharges, and fuel adjustments. We deliberately do not quote their prices here \u2014 use each carrier&#8217;s own calculator for a current figure. What we can say: for parcels in the 1\u20135 kg range, Ebaoguo&#8217;s consolidated air rate is typically more competitive than retail express courier pricing.\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">The consolidation advantage becomes especially clear when you&#8217;re buying from multiple Taiwanese sellers. Instead of paying minimum charges on three separate shipments, you combine everything into one dispatch \u2014 one minimum charge, NT$22 per additional parcel. For regular shoppers on platforms like Shopee Taiwan, Ruten, or Books.com.tw, this adds up quickly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Real-World Scenario: Consolidating 3 Parcels from Taiwan to Singapore<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Say you&#8217;ve ordered skincare from a Shopee Taiwan seller (0.4 kg), a book from Books.com.tw (0.3 kg), and a phone case from a small brand (0.1 kg). Combined actual weight: 0.8 kg. Volumetric weight depends on packaging \u2014 assume it comes in under 1 kg chargeable.<\/p>\n\n\n<div style=\"overflow-x:auto;margin:18px 0\"><table style=\"width:100%;border-collapse:collapse\"><thead><tr style=\"background:#dbeafe\"><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Cost element<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Amount<\/th><\/tr><\/thead><tbody><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">First parcel shipping (1 kg @ NT$650\/kg)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">NT$650<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Second parcel handling fee<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">NT$22<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Third parcel handling fee<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">NT$22<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Total estimated shipping<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">NT$694<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Equivalent if shipped separately (3\u00d7 NT$650 minimum)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">NT$1,950<\/td><\/tr><\/tbody><\/table><\/div>\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s a saving of NT$1,256 on a single consolidation. The more parcels you combine, the more the per-unit cost drops. This is the core value proposition of Taiwan to Singapore consolidation \u2014 and why it&#8217;s worth planning your purchases around dispatch days (Mon \/ Wed \/ Thu).<\/p>\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:\/\/ap.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\"><path d=\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"\/><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><path d=\"M16 10a4 4 0 0 1-8 0\"\/><\/svg><\/div><div style=\"font-size:15px;font-weight:600;color:#116ebf;margin-bottom:4px\">Proxy Shopping \u2192<\/div><div style=\"font-size:13px;color:#64748b;line-height:1.5\">Stores that don&#039;t ship overseas? We buy, pay, and receive on your behalf.<\/div><\/a><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><\/div><\/div>\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"official-rules\">\ud83d\udccb Official Rules: What Singapore Customs Actually Says<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before anything goes in a box, it&#8217;s worth knowing what Singapore&#8217;s regulatory framework looks like for inbound parcels. Singapore Customs administers import controls under the <strong>Customs Act (Cap. 70)<\/strong> and the <strong>Goods and Services Tax (GST) Act<\/strong>. Here are the rules that directly affect parcels shipped from Taiwan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GST Relief Threshold<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As of 1 January 2023, Singapore removed the GST import relief for low-value goods (previously SGD 400). All goods imported into Singapore \u2014 regardless of value \u2014 are now subject to 9% GST. This applies to air parcels, including consolidated shipments. The GST is assessed on the <strong>CIF value<\/strong> (cost + insurance + freight) of the goods.<\/p>\n\n\n<div class=\"ebg-callout ebg-callout--info\" style=\"background:#f8fafc;border-left:4px solid #64748b;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#64748b\"><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=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"\/><\/svg>\ufe0f Official Source<\/strong>\nSingapore Customs confirms the GST change on their official portal. See: <a href=\"https:\/\/www.customs.gov.sg\/businesses\/importing-goods\/import-procedures\/importing-by-postal-parcels-or-courier-services\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Singapore Customs \u2014 Importing by Postal Parcels or Courier Services<\/a>. The Inland Revenue Authority of Singapore (IRAS) also publishes GST guidance at <a href=\"https:\/\/www.iras.gov.sg\/taxes\/goods-services-tax-(gst)\/consumers\/gst-on-imported-low-value-goods\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">IRAS \u2014 GST on Imported Low-Value Goods<\/a>.\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">What the 9% GST Means in Practice<\/h3>\n<!-- \/h3 -->\n\n\n\n<p class=\"wp-block-paragraph\">Under DDU terms, if Singapore Customs assesses GST on your parcel, the last-mile courier will typically collect it before delivery. The GST is calculated on CIF value \u2014 meaning the declared goods value plus the shipping cost you paid. A few practical points:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Declare goods accurately. Under-declaration is a customs offence in Singapore and can result in seizure or fines.<\/li>\n<li>For personal-use parcels with a low declared value (e.g., NT$500 worth of skincare \u2248 SGD 21), GST at 9% would be approximately SGD 1.90 \u2014 often not collected on very small amounts, but this is at customs discretion.<\/li>\n<li>For higher-value items (electronics, branded goods), budget for GST from the start. A SGD 300 item would attract approximately SGD 27 in GST.<\/li>\n<li>Ebaoguo operates DDU \u2014 we do not pre-pay or guarantee GST on your behalf. If you want DDP (duty and tax paid) terms, contact us to discuss options for your shipment volume.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Prohibited and Controlled Items<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Singapore Customs maintains a list of prohibited and controlled goods. Some items require a licence or permit from a Competent Authority (CA) before they can be imported. Key categories relevant to parcel shippers include:<\/p>\n\n\n\n<div style=\"overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0\">\n<table style=\"border-collapse:collapse;width:100%;min-width:400px;font-size:14px\">\n<thead><tr>\n<th style=\"background:#116ebf;color:#fff;padding:10px 14px;text-align:left\">Category<\/th>\n<th style=\"background:#116ebf;color:#fff;padding:10px 14px;text-align:left\">Status<\/th>\n<th style=\"background:#116ebf;color:#fff;padding:10px 14px;text-align:left\">Notes<\/th>\n<\/tr><\/thead>\n<tbody>\n<tr style=\"background:#f8fafc\"><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Chewing gum<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Prohibited (general)<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Therapeutic gum allowed with HSA permit<\/td><\/tr>\n<tr><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Tobacco \/ cigarettes<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Controlled<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Duty + GST; strict quantity limits<\/td><\/tr>\n<tr style=\"background:#f8fafc\"><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Alcohol<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Controlled<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Excise duty applies; permit may be needed<\/td><\/tr>\n<tr><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Health supplements \/ TCM<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Controlled<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">HSA regulates; some require import licence<\/td><\/tr>\n<tr style=\"background:#f8fafc\"><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Lithium batteries (standalone)<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Restricted (air)<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">IATA DGR rules apply; loose cells often rejected<\/td><\/tr>\n<tr><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Cosmetics \/ skincare<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Generally allowed<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">HSA may inspect products with health claims<\/td><\/tr>\n<tr style=\"background:#f8fafc\"><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Electronics (personal use)<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Generally allowed<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Commercial quantities may trigger duty assessment<\/td><\/tr>\n<tr><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Traditional Chinese Medicine (TCM) products<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">Controlled<\/td><td style=\"padding:9px 14px;border-bottom:1px solid #e2e8f0\">HSA licence required for many patent medicines; herbal raw materials generally allowed in small quantities<\/td><\/tr>\n<tr style=\"background:#f8fafc\"><td style=\"padding:9px 14px\">Food items (packaged)<\/td><td style=\"padding:9px 14px\">Generally allowed<\/td><td style=\"padding:9px 14px\">SFA (Singapore Food Agency) may inspect; fresh produce has stricter rules<\/td><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n\n<div class=\"ebg-callout ebg-callout--legal\" style=\"background:#fefce8;border-left:4px solid #ca8a04;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#ca8a04\"><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 16l3-8 3 8\"\/><path d=\"M2 16l3-8 3 8\"\/><path d=\"M7 21h10\"\/><path d=\"M12 3v18\"\/><\/svg>\ufe0f Official Prohibited &amp; Controlled Goods List<\/strong>\nThe full list is maintained by Singapore Customs at <a href=\"https:\/\/www.customs.gov.sg\/businesses\/importing-goods\/controlled-and-prohibited-goods-for-import\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">customs.gov.sg \u2014 Controlled and Prohibited Goods for Import<\/a>. Always check this before shipping anything beyond standard consumer goods.\n<\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Common mistake: shipping TCM or health supplements without checking<\/strong>\nMany shippers assume that because a health supplement is freely sold in Taiwan, it can be freely imported into Singapore. This is not always the case. HSA regulates health products independently of Taiwan&#8217;s NHI or TFDA classifications. When in doubt, check the HSA product database before shipping.\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Taiwan Export Controls<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On the Taiwan side, the Bureau of Foreign Trade (BOFT) under the Ministry of Economic Affairs administers export controls. For most consumer goods shipped by individuals \u2014 clothing, electronics for personal use, books, cosmetics, food \u2014 there are no export licence requirements. However, a few categories warrant attention:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dual-use technology and semiconductors:<\/strong> Taiwan has strict export controls on advanced chips and related technology under the Strategic High-Tech Commodities (SHTC) list. Shipping commercial quantities of semiconductors or related components requires an export licence. Personal-use consumer electronics (phones, laptops) are not affected.<\/li>\n<li><strong>Cultural relics and antiques:<\/strong> Items classified as cultural heritage under Taiwan&#8217;s Cultural Heritage Preservation Act require approval from the Ministry of Culture before export.<\/li>\n<li><strong>Certain agricultural products:<\/strong> Fresh produce, seeds, and plant material require phytosanitary certificates from the Council of Agriculture. Ebaoguo does not handle fresh produce on this route.<\/li>\n<li><strong>Medicines and controlled substances:<\/strong> Prescription drugs and controlled substances require documentation from the Taiwan FDA (TFDA). Do not ship these without proper authorisation.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For standard consumer purchases \u2014 the vast majority of what our customers ship \u2014 Taiwan export controls are not a practical barrier. If you&#8217;re unsure about a specific item, contact us before booking.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"volumetric-weight\">\u2696\ufe0f Understanding Volumetric Weight: The Number That Catches Shippers Off Guard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most common sources of confusion for first-time users of <strong>Taiwan to Singapore consolidation<\/strong> services is the difference between actual weight and volumetric (dimensional) weight. Air freight is priced on whichever is greater \u2014 and for bulky, lightweight items, volumetric weight almost always wins.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The formula for this route: <strong>L (cm) \u00d7 W (cm) \u00d7 H (cm) \u00f7 5000 = chargeable kg<\/strong><\/p>\n\n\n<div style=\"overflow-x:auto;margin:18px 0\"><table style=\"width:100%;border-collapse:collapse\"><thead><tr style=\"background:#dbeafe\"><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Item example<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Actual weight<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Box dimensions<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Volumetric weight<\/th><th style=\"padding:10px 12px;text-align:left;border:1px solid #bfdbfe;font-weight:600\">Chargeable weight<\/th><\/tr><\/thead><tbody><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Skincare set (dense)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">1.2 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">20\u00d715\u00d710 cm<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">0.6 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">1.2 kg (actual wins)<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Pillow \/ cushion<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">0.5 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">50\u00d740\u00d720 cm<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">8.0 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">8.0 kg (volumetric wins)<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Shoes in box<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">0.8 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">35\u00d725\u00d715 cm<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">2.6 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">2.6 kg (volumetric wins)<\/td><\/tr><tr style=\"background:#f8fafc\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Books (stacked)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">3.0 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">30\u00d722\u00d715 cm<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">1.98 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">3.0 kg (actual wins)<\/td><\/tr><tr style=\"background:#fff\"><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">Jacket (folded tight)<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">0.6 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">40\u00d730\u00d710 cm<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">2.4 kg<\/td><td style=\"padding:8px 12px;border:1px solid #e2e8f0;font-size:14px\">2.4 kg (volumetric wins)<\/td><\/tr><\/tbody><\/table><\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Pack tight \u2014 it directly affects your shipping cost<\/strong>\nLoose packaging is the single biggest avoidable cost driver on air consolidation shipments. A jacket shipped in its original retail box (40\u00d730\u00d715 cm) has a volumetric weight of 3.6 kg. The same jacket compressed into a vacuum bag and packed in a 30\u00d720\u00d78 cm box has a volumetric weight of 0.96 kg \u2014 a difference of NT$686 on this route. Always remove excess packaging and use appropriately sized boxes.\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Use the calculator above to check your specific parcel dimensions before you finalise packaging. If you&#8217;re consolidating multiple items, measure each parcel individually \u2014 the system calculates chargeable weight per parcel, then sums them.<\/p>\n\n\n<h2 class=\"wp-block-heading\" id=\"contact\">Contact Us<\/h2><div style=\"background:#fef2f2;border-left:4px solid #ef4444;border-radius:6px;padding:14px 16px;margin:20px 0;font-size:14px\"><p style=\"margin:0 0 8px;font-weight:700;color:#b91c1c\">\ud83d\udeab Ebaoguo Prohibited Items<\/p><p style=\"margin:0;line-height:1.7\">The following items are <strong>not accepted on any Ebaoguo route<\/strong>: tobacco products (cigarettes, e-cigarettes, vaping devices, heated tobacco); narcotics; weapons; standalone lithium batteries; flammable\/explosive materials; counterfeit goods; cash. If unsure, <a href=\"https:\/\/wa.me\/message\/UIZ4LXUW4I5CB1\" rel=\"nofollow noopener\" target=\"_blank\">contact our team<\/a> before shipping.<\/p><\/div>\n<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>\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;re buying from time-sensitive sellers (e.g., flash sales, limited stock), factor in the dispatch schedule when placing orders. A parcel that arrives at our warehouse on Friday will typically wait until the following Monday dispatch. For genuinely urgent shipments, contact our team to discuss options.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"step-by-step\">\ud83d\ude80 How to Ship from Taiwan to Singapore with Ebaoguo: Step by Step<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The process for using Ebaoguo&#8217;s <strong>Taiwan to Singapore consolidation<\/strong> service is designed to be straightforward, whether you&#8217;re shipping one parcel or consolidating ten.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Register and get your Taiwan warehouse address.<\/strong> Create an account at Ebaoguo.com. You&#8217;ll receive a personal warehouse address in Kaohsiung to use as your delivery address when shopping from Taiwanese sellers.<\/li>\n<li><strong>Shop from any Taiwan seller.<\/strong> Use your Ebaoguo warehouse address as the shipping destination. This works with Shopee Taiwan, Ruten, Books.com.tw, brand websites, and any seller that ships domestically within Taiwan.<\/li>\n<li><strong>Parcels arrive at the warehouse.<\/strong> We receive, log, and photograph each parcel. You can view them in your account dashboard.<\/li>\n<li><strong>Submit a consolidation request.<\/strong> Select which parcels to combine into one shipment. Declare the contents and value for each item \u2014 accurate declaration is required.<\/li>\n<li><strong>Review the shipping estimate.<\/strong> The system calculates chargeable weight (actual vs. volumetric) and shows your total cost. Use the calculator above to cross-check.<\/li>\n<li><strong>Pay and confirm dispatch.<\/strong> Payment in TWD or SGD. Your shipment joins the next available dispatch (Mon \/ Wed \/ Thu).<\/li>\n<li><strong>Track your shipment.<\/strong> Full milestone tracking from Kaohsiung warehouse to Singapore last-mile delivery. Typical transit: 4\u20136 business days.<\/li>\n<li><strong>Receive at your Singapore address.<\/strong> Last-mile delivery by local Singapore courier. If GST is assessed by customs, the courier will collect before delivery under DDU terms.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"common-mistakes\">\u26a0\ufe0f Common Mistakes When Shipping from Taiwan to Singapore<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Based on the questions and issues we see most often from customers using our <strong>taiwan to singapore shipping<\/strong> service, here are the mistakes worth avoiding.<\/p>\n\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Mistake 1: Under-declaring goods value to avoid GST<\/strong>\nThis is a customs offence in Singapore. Singapore Customs cross-references declared values against market prices and can assess penalties, seize goods, or both. Declare the actual purchase price. The GST on a SGD 50 item is SGD 4.50 \u2014 not worth the risk of a customs violation on your record.\n<\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Mistake 2: Ignoring volumetric weight for bulky items<\/strong>\nPillows, stuffed toys, clothing in retail boxes, and similar items are almost always charged on volumetric weight, not actual weight. Always measure before shipping. See the volumetric weight section above.\n<\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Mistake 3: Shipping controlled items without checking<\/strong>\nHealth supplements, TCM products, and certain food items are controlled in Singapore. Don&#8217;t assume that because something is freely sold in Taiwan, it can be freely imported into Singapore. Check the HSA and Singapore Customs lists before shipping.\n<\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Mistake 4: Not accounting for dispatch days when timing is important<\/strong>\nIf you need a parcel in Singapore by a specific date, work backwards from the dispatch schedule (Mon \/ Wed \/ Thu) and add 4\u20136 business days transit. Don&#8217;t assume same-day or next-day dispatch.\n<\/div>\n\n<div class=\"ebg-callout ebg-callout--warning\" style=\"background:#fef2f2;border-left:4px solid #dc2626;padding:14px 18px;border-radius:0 8px 8px 0;margin:18px 0;line-height:1.7;font-size:14.5px\"><strong style=\"display:block;margin-bottom:6px;color:#dc2626\"><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>\ufe0f Mistake 5: Shipping standalone lithium batteries by air<\/strong>\nLoose lithium cells are rejected on air routes under IATA Dangerous Goods Regulations. Devices with batteries installed (phones, laptops) are generally acceptable for personal use quantities. Spare batteries must meet specific packaging and quantity requirements. When in doubt, contact us before shipping.\n<\/div>\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#116ebf\" id=\"faq\">\u2753 Frequently Asked Questions: Taiwan to Singapore Shipping<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Can I ship food from Taiwan to Singapore?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Packaged, commercially produced food items are generally allowed, subject to Singapore Food Agency (SFA) inspection. Fresh produce, raw meat, and dairy products face much stricter controls and are not handled on this route. Stick to sealed, commercially packaged items with clear ingredient labels.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What&#8217;s the maximum parcel size or weight?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There is no published single-parcel weight cap for standard shipments, but very heavy or oversized parcels (e.g., over 30 kg or with any single dimension over 100 cm) should be discussed with our team before booking. Air consolidation is optimised for parcels in the 0.5\u201315 kg range.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does Ebaoguo offer insurance for Taiwan to Singapore shipments?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Shipment protection options are available at booking. We recommend declaring accurate values and adding protection for high-value items. Contact our team for details on coverage terms.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">I&#8217;m in Singapore \u2014 can I use Ebaoguo to buy from Taiwan sellers who don&#8217;t ship internationally?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. This is one of the most common use cases for our service. You use your Ebaoguo Taiwan warehouse address as the delivery address when shopping, and we forward the parcel to Singapore. Many Taiwan sellers on Shopee Taiwan, Ruten, and brand websites only ship domestically within Taiwan \u2014 our warehouse address solves that.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How does DDU work if Singapore Customs assesses GST on my parcel?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Under DDU (Delivered Duty Unpaid) terms, Ebaoguo delivers the shipment to Singapore, but any customs duties or GST assessed by Singapore Customs are the recipient&#8217;s responsibility. In practice, the last-mile courier will contact you or collect the amount before completing delivery. This is standard for air consolidation services. If you want to pre-pay taxes (DDP terms), contact us to discuss options.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How long does Taiwan to Singapore shipping take?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Transit is 4\u20136 business days from the dispatch date at our Kaohsiung warehouse. Add 1\u20133 days for parcels to arrive at the warehouse from Taiwan sellers after your purchase. Total time from order placement to Singapore delivery is typically 7\u201314 calendar days for most shipments, assuming no customs holds.<\/p>\n\n\n    <div class=\"ebg-calc\" id=\"ebg-calc-58908a2b-516a-4aa8-9578-8e300e9774e0\" data-config='{&quot;restBase&quot;:&quot;https:\\\/\\\/ebaoguo.com\\\/en\\\/wp-json\\\/ebg\\\/v1\\\/calc&quot;,&quot;storeId&quot;:5,&quot;originIso&quot;:&quot;tw&quot;,&quot;destIso&quot;:&quot;sg&quot;,&quot;originCid&quot;:214,&quot;destCid&quot;:196,&quot;language&quot;:&quot;en&quot;,&quot;apiLang&quot;:&quot;en&quot;,&quot;currencyId&quot;:7,&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> TW<\/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> SG<\/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=\"238859\"><\/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=\"Singapore\"><\/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    \n\n<div class=\"ebg-disclaimer\" style=\"background:#fefce8;border:1px solid #fde047;border-left:4px solid #ca8a04;padding:14px 18px;border-radius:0 8px 8px 0;margin:24px 0;font-size:13.5px;line-height:1.7;color:#713f12\"><strong style=\"display:block;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\"><path d=\"M16 16l3-8 3 8\"\/><path d=\"M2 16l3-8 3 8\"\/><path d=\"M7 21h10\"\/><path d=\"M12 3v18\"\/><\/svg>\ufe0f Disclaimer<\/strong>This article reflects the <strong>Ebaoguo.com<\/strong> editorial team's interpretation of publicly available official information. <strong>It does not represent Ebaoguo's official position and does not constitute legal advice.<\/strong> Customs duty rates, thresholds, and prohibited-item lists are subject to the destination country's customs authority; actual inspection outcomes are decided by destination customs and Ebaoguo cannot guarantee outcomes. For important decisions, consult a licensed customs broker or the destination customs authority. See \"References\" at the end for source citations. Additionally, packaging may shrink or show minor dents during transit (especially by air) due to changes in air pressure at altitude; as long as the outer shipping box itself is undamaged, this is not considered transit damage, and neither Ebaoguo nor our carriers are liable for it \u2014 please consider this before shipping items that may be affected.<\/div>\n\n<div class=\"ebg-sources\" style=\"background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px 20px;margin:28px 0;font-size:13px\"><strong style=\"display:block;margin-bottom:10px;color:#475569\"><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=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\/><\/svg> References<\/strong><ul style=\"margin:0;padding-left:20px;line-height:1.8\"><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>\u23f1 Transit\uff1a4\u20136 business days \ud83d\udcc5 Updated\uff1a2026-05-12 \ud83d\ude9a Carrier\uff1aEbaoguo self-operated consolidated line \ud83d\udec3 Customs\uff1aDDU \u2014 recipient pays any applicable duty at [&hellip;]<\/p>\n","protected":false},"author":6,"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":[3020],"doc_tag":[],"class_list":["post-35289","docs","type-docs","status-publish","hentry","doc_category-shipping-from-taiwan-en"],"acf":[],"year_month":"2026-10","word_count":2557,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"","author_nicename":"","author_url":"https:\/\/ebaoguo.com\/en\/author\/"},"doc_category_info":[{"term_name":"Shipping from Taiwan","term_url":"https:\/\/ebaoguo.com\/en\/kb-category\/shipping-from-taiwan-en\/"}],"doc_tag_info":[],"spectra_custom_meta":{"_encloseme":["1"],"_wp_page_template":["default"],"_wpml_media_featured":["1"],"_wpml_media_duplicate":["1"],"_mi_skip_tracking":["0"],"mfn_header_template":["0"],"mfn_footer_template":["0"],"mfn-post-hide-content":["0"],"mfn-post-layout":["no-sidebar"],"mfn-post-sidebar":["0"],"mfn-post-sidebar2":["0"],"mfn-post-slider":["0"],"mfn-post-slider-layer":["0"],"mfn-post-full-width":["0"],"mfn-post-hide-title":["0"],"mfn-post-remove-padding":["0"],"mfn-post-intro":["a:1:{s:9:\"post-meta\";s:1:\"1\";}"],"_yoast_wpseo_focuskeywords":[""],"_yoast_wpseo_estimated-reading-time-minutes":["2"],"_yoast_wpseo_wordproof_timestamp":[""],"mfn-post-love":["0"],"_yoast_wpseo_primary_category":["2874"],"om_disable_all_campaigns":[""],"_aioseo_title":[null],"_aioseo_description":[null],"_aioseo_keywords":["a:0:{}"],"_aioseo_og_title":[""],"_aioseo_og_description":[""],"_aioseo_og_article_section":[""],"_aioseo_og_article_tags":["a:0:{}"],"_aioseo_twitter_title":[""],"_aioseo_twitter_description":[""],"mfn_single-post_template":["0"],"_uf_disable_surveys":[""],"mfn_popup_included":["0"],"_edit_lock":["1772510158:2"],"_edit_last":["2"],"_monsterinsights_skip_tracking":["0"],"_monsterinsights_sitenote_active":["0"],"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"],"_last_translation_edit_mode":["native-editor"],"_wpb_post_custom_layout":["default"],"_wpb_shortcodes_default_css":[".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:{}"],"_betterdocs_meta_views":["3460"],"_betterdocs_est_reading_text":[""],"_betterdocs_attachments":["a:0:{}"],"_betterdocs_related_articles":["a:0:{}"],"_wpb_vc_js_status":["true"],"_wpb_shortcodes_custom_css":[".vc_custom_1711613475073{background-color: #f4f4f4 !important;}.vc_custom_1711613828025{background-color: #f4f4f4 !important;}.vc_custom_1711613135146{padding-top: 25px !important;padding-right: 25px !important;padding-bottom: 25px !important;padding-left: 25px !important;}"],"_wpb_shortcodes_custom_css_updated":["1"],"rank_math_og_content_image":["a:2:{s:5:\"check\";s:32:\"2f5239adb51f15b9c2932714c12acd12\";s:6:\"images\";a:1:{i:0;s:79:\"https:\/\/ebaoguo.com\/wp-content\/uploads\/2026\/07\/wechat-cs-support-en-200x200.png\";}}"],"rank_math_seo_score":["24"],"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\";}"],"rank_math_primary_doc_category":["0"],"rank_math_primary_doc_tag":["0"],"_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"],"_wpb_vc_editor_type":["backend"],"rank_math_analytic_object_id":["230"],"astra-migrate-meta-layouts":["set"],"_uag_css_file_name":["uag-css-35289.css"],"_ebg_geo_score":["45"],"_ebg_geo_details":["a:10:{s:12:\"answer_first\";b:0;s:7:\"has_faq\";b:0;s:8:\"has_list\";b:1;s:9:\"ext_links\";i:8;s:9:\"int_links\";i:0;s:10:\"word_count\";i:2612;s:6:\"has_h2\";b:1;s:7:\"has_img\";b:1;s:8:\"rm_title\";b:0;s:7:\"rm_desc\";b:0;}"],"_ebg_geo_scored_at":["1783063889"],"rank_math_title":["Shipping from Taiwan to Singapore | Air Freight | Ebaoguo"],"rank_math_description":["Ship parcels from Taiwan to Singapore by air with Ebaoguo \u2014 consolidation, customs and GST guidance, and tracked door-to-door delivery in 4-6 days."],"rank_math_focus_keyword":["shipping from taiwan to singapore, taiwan to singapore shipping, ship parcel taiwan to singapore"],"_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:7:{i:0;s:10:\"core\/image\";i:1;s:9:\"core\/html\";i:2;s:12:\"core\/heading\";i:3;s:14:\"core\/paragraph\";i:4;s:9:\"core\/list\";i:5;s:12:\"core\/columns\";i:6;s:11:\"core\/column\";}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":"","author_link":"https:\/\/ebaoguo.com\/en\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"\u23f1 Transit\uff1a4\u20136 business days \ud83d\udcc5 Updated\uff1a2026-05-12 \ud83d\ude9a Carrier\uff1aEbaoguo self-operated consolidated line \ud83d\udec3 Customs\uff1aDDU \u2014 recipient pays any applicable duty at [&hellip;]","knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/docs\/35289","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/comments?post=35289"}],"version-history":[{"count":0,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/docs\/35289\/revisions"}],"wp:attachment":[{"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/media?parent=35289"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/doc_category?post=35289"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/ebaoguo.com\/en\/wp-json\/wp\/v2\/doc_tag?post=35289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}