PageSourceSearch

https://thainexus.co.th/assets/Tools-BoaL9Pz2.js

js thainexus.co.th collected 2026-10-02 02:40:02 UTC 21,152 bytes, 2 lines download raw bytes

1import{u as Z,ar as de,r as s,j as e,e as D,f as E,A as Q,$ as B,as as me,at as K,au as pe,av as he,aw as xe,P as ge,Q as G,ax as be,U as fe,E as ye,F as Ne}from"./index-Dr-C1Rfi.js";import{m as J,C as je,V as Y}from"./CountrySelect-BHRGvo29.js";import{S as ve,a as we,b as _e,c as Ce,d as X}from"./select-B-fDNPEK.js";import{u as Se,I as ke}from"./InquiryAntiSpam-DpyzAckT.js";import{S as Le}from"./ShippingToolsCards-DqOrIQyP.js";import{t as Te}from"./translateEmbeddedFaqs-CLFsx5s4.js";import{O as Pe}from"./OpsPhotoFigure-CLdpJWpZ.js";import"./SearchableSelect-CiZT4j2h.js";import"./button-DoPfRTFE.js";import"./index-WjVUxOxw.js";import"./check-uO8KVdLs.js";import"./arrow-up-right-By4kf2UI.js";function m(a){const l=Number(String(a??"").trim().replace(",","."));return Number.isFinite(l)&&l>0?l:NaN}function Ee(){const a=Z(),[l]=de(),{companyWebsite:C,setCompanyWebsite:S,antiSpamFields:ee}=Se(),ae=t=>t==="pickup"?a("calculator.ui.pickup","Pick Up"):t==="dropoff"?a("calculator.ui.dropoff","Drop-off"):a("calculator.ui.pickup_dropoff","Pick Up & Drop-off"),te=t=>t.start_date&&t.end_date?`${t.start_date} - ${t.end_date}`:t.estimated_days?`${t.estimated_days} days`:"N/A",[x,se]=s.useState("private"),[g,re]=s.useState("parcel"),[c,I]=s.useState(()=>J(l.get("destination")||l.get("country"))||"United States"),[b,ie]=s.useState("2"),[f,le]=s.useState("30"),[y,oe]=s.useState("20"),[N,ce]=s.useState("15"),[k,p]=s.useState("idle"),[$,F]=s.useState([]),[z,j]=s.useState(""),v=s.useRef(null),H=s.useRef(!0),L=s.useRef(0),[r,w]=s.useState({businessName:"",firstName:"",lastName:"",email:"",message:""}),[q,A]=s.useState("idle"),[R,W]=s.useState(""),M=s.useMemo(()=>{const t=m(b)||0,o=m(f)||0,n=m(y)||0,u=m(N)||0,_=o>0&&n>0&&u>0?o*n*u/Y:0,P=Math.max(t,_);return{actual:t,volumetric:_,chargeable:P}},[b,f,y,N]);s.useEffect(()=>{var t;if(H.current){H.current=!1;return}(t=v.current)==null||t.abort(),v.current=null,L.current+=1,p("idle"),F([]),j("")},[x,g,c,b,f,y,N]),s.useEffect(()=>{const t=J(l.get("destination")||l.get("country"));t&&I(t)},[l]),s.useEffect(()=>()=>{var t;(t=v.current)==null||t.abort()},[]);const h="mt-1 w-full border border-border rounded-md px-3.5 py-3 text-base bg-white focus:outline-none focus:ring-2 focus:ring-accent",i="text-sm font-semibold text-primary",T={type:"number",min:"0.01",max:"100000",step:"any",required:!0,inputMode:"decimal",className:h},ne=async t=>{var O;t.preventDefault(),(O=v.current)==null||O.abort();const o=new AbortController;v.current=o;const n=++L.current;p("loading"),j(""),F([]);const u=m(b),_=m(f),P=m(y),V=m(N);if(!c||!Number.isFinite(u)||!Number.isFinite(_)||!Number.isFinite(P)||!Number.isFinite(V)){p("error"),j(a("calculator.ui.validation","Enter a destination and positive weight and dimensions."));return}try{const d=await K.getShippingQuotes({customer_type:x,shipment_type:g,destination:c,actual_weight_kg:u,length_cm:_,width_cm:P,height_cm:V},{signal:o.signal});if(n!==L.current||o.signal.aborted)return;const U=d.quotes||[];if(U.length===0){p("error"),j(a("calculator.ui.no_quotes","No shipping quotes are available for this destination."));return}F(U),p("done"),pe({destination:c,customer_type:x,shipment_type:g,quote_count:U.length})}catch(d){if(n!==L.current||o.signal.aborted||(d==null?void 0:d.name)==="AbortError")return;p("error"),j((d==null?void 0:d.message)||a("calculator.ui.load_error","Could not load shipping rates. Please try again or contact us."))}},ue=async t=>{t.preventDefault(),A("sending"),W("");try{await K.createInquiry({name:`${r.firstName} ${r.lastName}`.trim(),email:r.email,topic:"Business shipping pricing",message:[`Business: ${r.businessName}`,r.message,`Calculator context: ${x} / ${g} -> ${c}`].filter(Boolean).join(`
2`),source:"calculator-business",...ee}),A("done"),he({source:"calculator-business",topic:"Business shipping pricing"})}catch{xe({form_id:"calculator-business",error_type:"submit_failed"}),A("idle"),W(B(a("calculator.biz_send_error","Could not send. Email us at {email} or try again."),{email:E.email}))}};return e.jsxs("div",{className:"space-y-14",children:[e.jsxs("form",{onSubmit:ne,className:"border border-border rounded-lg bg-white p-6 sm:p-8 space-y-6",children:[e.jsx("p",{className:"text-sm text-foreground
2/80 border-l-2 border-accent pl-4",children:a("calculator.liability_note","Standard carrier liability is limited. For high-value items consider adding extra insurance for better protection.")}),e.jsx("p",{className:"font-semibold text-primary",children:a("calculator.live_eta_prompt","Use the calculator below to see your live price and ETA.")}),e.jsxs("p",{className:"text-sm text-foreground/75",children:[a("calculator.sea_freight_note","Shipping boxes or a container by sea?")," ",e.jsx(D,{to:"/fcl-vs-lcl-calculator",className:"text-primary font-semibold underline underline-offset-2",children:a("calculator.sea_freight_link","Use the FCL vs LCL volume tool")})," ",a("calculator.sea_freight_suffix","(LCL quoted on request).")]}),e.jsxs("fieldset",{children:[e.jsx("legend",{className:i,children:a("calculator.ui.rates_as","Get shipping rates as")}),e.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:[["private",a("calculator.ui.private","Private Person")],["business",a("calculator.ui.business","Business")]].map(([t,o])=>e.jsx("button",{type:"button",onClick:()=>se(t),className:`px-4 py-2.5 text-sm font-semibold rounded-md border transition-colors ${x===t?"bg-primary text-primary-foreground border-primary":"bg-white text-primary border-border hover:border-primary"}`,children:o},t))})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-5 min-w-0",children:[e.jsxs("div",{className:"block min-w-0",children:[e.jsx("label",{htmlFor:"shipping-calculator-shipment-type",className:i,children:a("calculator.ui.shipment_type","Shipment Type")}),e.jsxs(ve,{value:g,onValueChange:t=>re(t),children:[e.jsx(we,{id:"shipping-calculator-shipment-type",className:"mt-1 h-auto min-h-[48px] w-full min-w-0 rounded-md border border-border bg-white px-3.5 py-3 text-base text-primary shadow-none focus:ring-2 focus:ring-accent",children:e.jsx(_e,{})}),e.jsxs(Ce,{className:"z-[60] bg-white border-border",collisionPadding:12,children:[e.jsx(X,{value:"parcel",className:"text-base text-primary focus:bg-secondary focus:text-primary",children:"Parcel"}),e.jsx(X,{value:"document",className:"text-base text-primary focus:bg-secondary focus:text-primary",children:"Document"})]})]})]}),e.jsxs("div",{className:"block min-w-0",children:[e.jsx("label",{htmlFor:"shipping-calculator-destination",className:i,children:a("calculator.ui.destination","Destination")}),e.jsx(je,{id:"shipping-calculator-destination",value:c,onChange:I,required:!0,placeholder:a("calculator.ui.destination_placeholder","Select destination"),searchPlaceholder:a("calculator.ui.destination_search","Search countries..."),emptyText:a("calculator.ui.destination_empty","No country matches")})]})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-
25",children:[e.jsxs("label",{className:"block",children:[e.jsx("span",{className:i,children:a("calculator.ui.actual_weight","Actual Weight (kg)")}),e.jsx("input",{...T,value:b,onChange:t=>ie(t.target.value)})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:i,children:a("calculator.ui.length","Length (cm)")}),e.jsx("input",{...T,value:f,onChange:t=>le(t.target.value)})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:i,children:a("calculator.ui.width","Width (cm)")}),e.jsx("input",{...T,value:y,onChange:t=>oe(t.target.value)})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:i,children:a("calculator.ui.height","Height (cm)")}),e.jsx("input",{...T,value:N,onChange:t=>ce(t.target.value)})]})]}),e.jsxs("div",{className:"rounded-md bg-secondary/60 border border-border p-4",children:[e.jsx("p",{className:i,children:a("calculator.ui.volumetric","Volumetric Weight")}),e.jsxs("p",{className:"mt-1 font-mono text-2xl font-semibold text-primary",children:[M.volumetric.toFixed(2)," kg"]}),e.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["Chargeable weight = max(actual, volumetric). Volumetric divisor is"," ",Y,"."]})]}),e.jsx("button",{type:"submit",disabled:!c||k==="loading",className:"bg-accent text-accent-foreground font-semibold px-7 py-3.5 rounded-md hover:brightness-95 transition-all disabled:opacity-50 min-h-[48px]",children:k==="loading"?a("calculator.ui.calculating","Calculating..."):a("calculator.ui.calculate","Calculate Shipping")}),k==="error"&&z?e.jsxs("div",{className:"border border-destructive/40 rounded-md p-5 bg-destructive/5",role:"alert",children:[e.jsx("p",{className:"text-sm text-destructive",children:z}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-3",children:[e.jsxs("a",{href:E.appUrl,className:"inline-flex items-center gap-1.5 bg-primary text-primary-foreground font-semibold text-sm px-4 py-2.5 rounded-md hover:opacity-95",children:[a("calculator.get_exact_quote","Get exact quote")," ",e.jsx(Q,{className:"w-4 h-4"})]}),e.jsx(D,{to:"/contact",className:"inline-flex items-center border border-primary text-primary font-semibold text-sm px-4 py-2.5 rounded-md hover:bg-primary hover:text-primary-foreground transition-colors",children:a("calculator.ask_human","Ask a human")})]})]}):null,k==="done"&&$.length>0?e.jsxs("div",{className:"space-y-4",children:[e.jsxs("p",{className:"font-semibold text-primary",children:[B(a("calculator.chargeable_to","Chargeable weight to {destination}:"),{destination:c})," ",e.jsxs("span",{className:"font-mono",children:[M.chargeable.toFixed(2)," kg"]})]}),e.jsx("ul",{className:"space-y-3",children:$.map((t,o)=>e.jsx("li",{className:"border border-border rounded-md p-4 sm:p-5 bg-secondary/30",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start gap-4",children:[e.jsxs("div",{className:"shrink-0 w-28 h-12 flex items-center justify-center bg-white border border-border rounded-md px-2",children:[t.courier_logo?e.jsx("img",{src:t.courier_logo,alt:t.courier,className:"max-h-10 max-w-full object-contain",onError:n=>{n.currentTarget.style.display="none";const u=n.currentTarget.nextElementSibling;u instanceof HTMLElement&&(u.hidden=!1)}}):null,e.jsx("span",{className:"text-xs font-semibold text-primary text-center leading-tight",hidden:!!t.courier_logo,children:t.courier})]}),e.jsxs("div",{className:"flex-1 grid grid-cols-2 sm:grid-cols-3 gap-x-4 gap-y-3 text-sm",children:[e.jsxs("div",{className:"col-span-2 sm:col-span-1",children:[e.jsx("p",{className:"text-muted-foreground",children:a("calculator.col.service","Service Name")}),e.jsxs("p",{className:"font-semibold text-primary",children:[t.courier,t.shipment_type==="document"?e.jsx("span",{className:"ml-1.5 text-xs font-medium text-accent",children:a("calculator.doc_badge","Doc")}):null,t.shipment_type==="both"?e.jsx("span",{className:"ml-1.5 text-xs font-medium text-accent",children:a("calculator.parcel_doc_badge","Parcel & Doc")}):null]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground",children:a("calculator.col.delivery","Delivery Time")}),e.jsx("p",{className:"font-semibold text-primary",children:te(t)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground",children:a("calculator.col.pickup","Pickup")}),e.jsx("p",{className:"font-semibold text-primary",children:ae(t.pickup)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground",children:a("calculator.col.chargeable","Chargeable Weight")}),e.jsxs("p",{className:"font-semibold text-primary font-mono",children:[t.weight," kg"]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-muted-foreground",children:a("calculator.col.price","Price")}),t.request_price?e.jsx("a",{href:`mailto:${E.email}?subject=${encodeURIComponent(`Shipping quote request - ${c}`)}`,className:"font-semibold text-accent underline-offset-2 hover:underline",children:a("calculator.request_price","Request Price")}):e.jsxs("p",{className:"font-semibold text-primary font-mono text-base",children:[t.rate," THB"]})]})]})]})},`${t.courier}-${t.pickup}-${t.rate_value}-${t.shipment_type}-${o}`))}),e.jsxs("div",{className:"flex flex-wrap gap-3 pt-1",children:[e.jsxs("a",{href:E.appUrl,className:"inline-flex items-center gap-1.5 bg-primary text-primary-foreground font-semibold text-sm px-4 py-2.5 rounded-md hover:opacity-95",children:[a("calculator.book_app","Book in client app")," ",e.jsx(Q,{className:"w-4 h-4"})]}),e.jsx(D,{to:"/contact",className:"inline-flex items-center border border-primary text-primary font-semibold text-sm px-4 py-2.5 rounded-md hover:bg-primary hover:text-primary-foreground transition-colors",children:a("calculator.ask_human","Ask a human")})]})]}):null]}),e.jsxs("section",{className:"border border-border rounded-lg bg-white p-6 sm:p-8",children:[e.jsx("h2",{className:"text-2xl font-bold text-primary tracking-tight",children:a("calculator.biz_h2","Shipping for your business or online store?")}
2),e.jsx("p",{className:"mt-3 text-foreground/80 max-w-2xl",children:a("calculator.biz_p1","If you are sending packages regularly, whether you are an e-commerce brand, exporter, or logistics team, you do not need to pay standard rates. Thai Nexus offers business accounts with discounted pricing, dedicated support, and tools to streamline your shipping.")}),e.jsx("p",{className:"mt-3 text-foreground/80 max-w-2xl",children:a("calculator.biz_p2","Save more on every shipment and grow faster with a logistics partner that scales with you.")}),e.jsx("h3",{className:"mt-8 text-lg font-bold text-primary",children:a("calculator.biz_h3","Business Pricing for Shipping")}),q==="done"?e.jsx("p",{className:"mt-4 text-foreground/85",children:B(a("calculator.biz_thanks","Thanks. We will reply to {email} within one business day."),{email:r.email})}):e.jsxs("form",{onSubmit:ue,className:"relative mt-4 grid sm:grid-cols-2 gap-4",...me("calculator-business"),children:[e.jsx(ke,{value:C,onChange:S}),e.jsxs("label",{className:"block sm:col-span-2",children:[e.jsx("span",{className:i,children:a("calculator.ui.business_name","Business Name")}),e.jsx("input",{required:!0,value:r.businessName,onChange:t=>w({...r,businessName:t.target.value}),className:h})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:i,children:a("calculator.ui.first_name","First Name")}),e.jsx("input",{required:!0,value:r.firstName,onChange:t=>w({...r,firstName:t.target.value}),className:h,autoComplete:"given-name"})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:i,children:a("calculator.ui.last_name","Last Name")}),e.jsx("input",{required:!0,value:r.lastName,onChange:t=>w({...r,lastName:t.target.value}),className:h,autoComplete:"family-name"})]}),e.jsxs("label",{className:"block sm:col-span-2",children:[e.jsx("span",{className:i,children:a("calculator.ui.email","Email")}),e.jsx("input",{required:!0,type:"email",value:r.email,onChange:t=>w({...r,email:t.target.value}),className:h,autoComplete:"email"})]}),e.jsxs("label",{className:"block sm:col-span-2",children:[e.jsx("span",{className:i,children:a("calculator.ui.message","Message")}),e.jsx("textarea",{required:!0,rows:4,value:r.message,onChange:t=>w({...r,message:t.target.value}),className:h,placeholder:a("calculator.ui.message_placeholder","Monthly volume, destinations, and how you ship today")})]}),R?e.jsx("p",{className:"sm:col-span-2 text-sm text-destructive",children:R}):null,e.jsx("div",{className:"sm:col-span-2",children:e.jsx("button",{type:"submit",disabled:q==="sending",className:"bg-accent text-accent-foreground font-semibold px-7 py-3.5 rounded-md hover:brightness-95 disabled:opacity-60",children:q==="sending"?a("calculator.ui.sending","Sending..."):a("calculator.ui.submit","Submit Form")})})]})]})]})}const De=[{q:"Is the Thai Nexus shipping calculator for air or sea freight?",a:"This page is the express parcel calculator only: retail parcels and documents with live THB rates by weight and size. It is not for sea FCL, LCL or commercial air freight pallets. For boxes and pallets by sea, use the FCL vs LCL volume tool on this site. Commercial air cargo is quoted per shipment outside this calculator."},{q:"Does the express parcel calculator include FCL or LCL sea rates?",a:"No. Sea FCL indicative bands appear on lane pages and in the FCL vs LCL volume tool. LCL is quoted on request after CBM and commodity are known. Express results here cover courier and postal-style products only. Thai Nexus confirms sea modes on a separate freight quote."},{q:"What weight and dimensions does the parcel calculator need?",a:"Actual weight in kg plus length, width and height in cm for each carton. Chargeable weight is the greater of actual weight and volumetric weight (volume in cm3 divided by the carrier divisor, typically 5000 for express). Under-declaring size causes rebills. The calculator shows volumetric and chargeable weight before you book."},{q:"Does the calculator include duties-paid (DDP) rates to the USA, UK, EU, and Australia?",a:"Yes where the live rate sheet lists a DDP product for that country. Prime DDP c
2overs the United States, United Kingdom, Australia, and most of the EU. Flex DDP adds EU and EFTA coverage. Priority DDP is Canada and the United States. The quote must name DDP before you treat duty and tax as prepaid. If only DAP appears, destination charges are billed to the recipient. See the DAP vs DDP guide."},{q:"How do I compare DDP express rates for a specific country?",a:"Open this calculator with your destination selected, or add ?destination=United%20States (or United Kingdom, Australia, Germany) to the URL. Enter weight and size, then compare products whose names include DDP. For freight boxes and pallets use the lane page and FCL vs LCL tool, not this calculator."},{q:"How much does it cost to ship a parcel from Thailand?",a:"Use the live calculator on this page. Pick the country, enter kg and cm, and read the THB quote. The sample size used in teasers is business 0.5 kg, 10x10x10 cm. A 2 kg express parcel to Europe or the US typically runs THB 2,900 to 5,800 depending on service and destination. Australia parcels of 1 to 20 kg use the same air and sea quote; sea above 20 kg is THB 107 per kg (that sea band is on the Australia lane, not this express sheet). Rates move; the number on screen is the one to use."}];function Ve(){const a=Z(),l=s.useMemo(()=>Te(a,De,"calculator.faq"),[a]),C=a("calculator.h1","Express parcel calculator from Thailand"),S=a("calculator.meta.description","Live THB quotes for express parcels from Thailand. Enter kg and cm. Teaser sample: business 0.5 kg, 10x10x10 cm. A 2 kg parcel to Europe or the US typically runs THB 2,900 to 5,800. Not for sea FCL or LCL.");return e.jsxs("div",{className:"max-w-3xl mx-auto px-4 sm:px-6 py-12",children:[e.jsx(ge,{uiPageId:"calculator",title:a("calculator.meta.title","Shipping Calculator from Thailand | Live Parcel Rates in THB | Thai Nexus"),description:S,canonicalPath:"/shipping-calculator"}),e.jsx(G,{data:be({name:C,description:S,path:"/shipping-calculator",featureList:["Live express parcel rates from Thailand","Volumetric and chargeable weight","Private and business quotes","DDP duties-included quotes where the live sheet lists them"],about:"Express parcel and document shipping from Thailand"})}),e.jsx(G,{data:fe({name:a("calculator.howto.name","How to get an express parcel rate from Thailand"),description:a("calculator.howto.desc","Use the Thai Nexus express parcel calculator for air and courier parcels. Do not use it for sea FCL or LCL."),url:"/shipping-calculator",steps:[a("calculator.howto.1","Choose private person or business rates"),a("calculator.howto.2","Select destination country"),a("calculator.howto.3","Enter actual weight and package dimensions"),a("calculator.howto.4","Compare live express rates and ETA, then book or contact us")]})}),e.jsx(ye,{items:[{label:a("calculator.crumb","Express parcel calculator")}]}),e.jsx("p",{className:"font-mono text-xs uppercase tracking-widest text-accent mb-3",children:a("calculator.eyebrow","Air / express · parcels and documents")}),e.jsx("h1",{className:"text-4xl font-extrabold text-primary tracking-tight",children:C}),e.jsx("p",{className:"mt-4 text-lg text-foreground/80 max-w-2xl",children:a("calculator.intro","Live THB rates for express parcels and documents from Thailand. Enter destination, kg and cm. Teaser sample is business 0.5 kg, 10x10x10 cm. Not for sea containers or LCL - use the volume tool for that.")}),e.jsx(Pe,{photoKey:"packagingSupplies"}),e.jsx(Le,{className:"mt-8",highlight:"parcel"}),e.jsx("div",{className:"mt-10",children:e.jsx(Ee,{})}),e.jsxs("p",{className:"mt-8 text-sm text-foreground/75",children:[a("calculator.sea_freight_note","Shipping boxes or a container by sea?")," ",e.jsx(D,{to:"/fcl-vs-lcl-calculator",className:"text-primary font-semibold underline underline-offset-2",children:a("calculator.sea_freight_link","Use the FCL vs LCL volume tool")})," ",a("calculator.sea_freight_suffix","(LCL quoted on request).")]}),e.jsx(Ne,{items:l,title:a("calculator.faq_title","Parcel calculator questions"),className:"mt-12"})]})}export{Ve as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.