[{"data":1,"prerenderedAt":7349},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Fget-live-shipping-rates-with-shippo":314,"no-guide:get-live-shipping-rates-with-shippo":59,"article:\u002Fhelp\u002Farticles\u002Fget-live-shipping-rates-with-shippo":7092,"story:contact":7110,"help:tree:55aecd54-8815-45eb-a35e-667dbacf5546":7296,"_apollo:default":7348},{"name":4,"created_at":5,"published_at":6,"updated_at":7,"id":8,"uuid":9,"content":10,"slug":57,"full_slug":58,"sort_by_date":59,"position":60,"tag_list":61,"is_startpage":24,"parent_id":62,"meta_data":59,"group_id":63,"first_published_at":64,"release_id":59,"lang":65,"path":59,"alternates":66,"default_full_slug":59,"translated_slugs":59},"Help Center Header","2024-08-09T18:06:34.939Z","2024-10-21T21:58:39.217Z","2024-10-21T21:58:39.232Z",10082752,"3e9b88f7-c163-4657-a2f2-62532d600fad",{"_uid":11,"link":12,"badge":16,"items":17,"title":13,"buttons":50,"new_tab":24,"submenu":51,"alignment":13,"component":52,"badge_link":53,"top_menu_items":56},"e5645a1a-f991-40e8-8d67-e40ebc082b5a",{"id":13,"url":13,"linktype":14,"fieldtype":15,"cached_url":13},"","story","multilink","Help Center",[18,27,34,39,44],{"_uid":19,"link":20,"title":23,"new_tab":24,"submenu":25,"component":26},"5cbe2861-1f49-4166-97da-a4dddd8105e3",{"id":21,"url":13,"linktype":14,"fieldtype":15,"cached_url":22},"4c0a2d99-ec30-4579-8ef1-6bf5564d4839","help\u002Fcategories\u002F","Articles",false,[],"header___item",{"_uid":28,"link":29,"title":32,"new_tab":33,"component":26},"1c8edeb5-b9e9-4cb8-b1c6-c1f292f7d7cd",{"id":13,"url":30,"linktype":31,"fieldtype":15,"cached_url":30},"https:\u002F\u002Fwiki.foxycart.com\u002F","url","Documentation",true,{"_uid":35,"link":36,"title":38,"new_tab":33,"component":26},"8d7df70e-f087-4da0-b616-6f0e9a5af35c",{"id":13,"url":37,"linktype":31,"fieldtype":15,"cached_url":37},"https:\u002F\u002Fapi.foxycart.com\u002F","API Documentation",{"_uid":40,"link":41,"title":43,"new_tab":33,"component":26},"f76e7944-23d5-4652-87e4-cdae79272762",{"id":13,"url":42,"linktype":31,"fieldtype":15,"cached_url":42},"https:\u002F\u002Fstatus.foxy.io\u002F","System Status",{"_uid":45,"link":46,"title":49,"new_tab":24,"component":26},"0de16771-4c84-466c-a1da-d8568113c71f",{"id":47,"url":13,"linktype":14,"fieldtype":15,"cached_url":48},"01e4e370-f9b9-45af-8fa9-f15540699b0d","contact","Contact Us",[],[],"header",{"id":54,"url":13,"linktype":14,"fieldtype":15,"cached_url":55},"4a679eb7-662d-4ea4-a976-5a2acbf0b663","help\u002F",[],"help-header","navigation\u002Fhelp-header",null,20,[],10082747,"71b81c2e-5e09-48a1-a397-a3c72fcd344a","2022-09-21T14:50:25.655Z","default",[],{"name":68,"created_at":69,"published_at":70,"updated_at":71,"id":72,"uuid":73,"content":74,"slug":243,"full_slug":244,"sort_by_date":59,"position":245,"tag_list":246,"is_startpage":24,"parent_id":62,"meta_data":59,"group_id":247,"first_published_at":248,"release_id":59,"lang":65,"path":59,"alternates":249,"default_full_slug":59,"translated_slugs":59},"Default Footer","2024-08-09T18:06:59.024Z","2025-09-04T06:24:46.223Z","2025-09-04T06:24:46.241Z",10082753,"e59e67ac-248a-482f-84a1-53d4f318186a",{"_uid":75,"about":76,"logos":77,"socials":82,"sections":108,"component":225,"cta_title":226,"bottom_links":227,"cta_subtitle":241,"cta_button_link":242,"cta_button_text":183},"830983f5-c4c4-43c8-b150-86a5e3fa6dc8","Foxy’s hosted cart & payment page allow you to sell anything, using your existing website or platform.",[78],{"id":79,"alt":13,"name":13,"focus":13,"title":13,"filename":80,"copyright":13,"fieldtype":81},14760,"https:\u002F\u002Fa-us.storyblok.com\u002Ff\u002F1001040\u002Fx\u002F3b030847ec\u002Fb-corp.svg","asset",[83,90,96,102],{"_uid":84,"icon":85,"link":86,"name":88,"component":89},"faf0a618-ea94-42ea-9182-03be18c43216","fa-facebook",{"id":13,"url":87,"linktype":31,"fieldtype":15,"cached_url":87},"https:\u002F\u002Fwww.facebook.com\u002Ffoxycart","Facebook","footer___social",{"_uid":91,"icon":92,"link":93,"name":95,"component":89},"14309c18-7e79-423e-b375-34555bac0811","fa-instagram",{"id":13,"url":94,"linktype":31,"fieldtype":15,"cached_url":94},"https:\u002F\u002Fwww.instagram.com\u002Ffoxy_io","Instagram",{"_uid":97,"icon":98,"link":99,"name":101,"component":89},"8f7fe7cf-0dd3-4596-8334-226ea466716a","fa-linkedin",{"id":13,"url":100,"linktype":31,"fieldtype":15,"cached_url":100},"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Ffoxycart.com","LinkedIn",{"_uid":103,"icon":104,"link":105,"name":107,"component":89},"90a675b4-dd97-40b5-be09-00a87223d4c5","fa-youtube",{"id":13,"url":106,"linktype":31,"fieldtype":15,"cached_url":106},"https:\u002F\u002Fwww.youtube.com\u002Fuser\u002Ffoxycart","Youtube",[109,139,184,206],{"_uid":110,"name":111,"items":112,"component":138},"82849945-282f-488c-b18d-a8d2252f514a","Company",[113,120,126,132],{"_uid":114,"link":115,"title":118,"new_tab":24,"component":119},"1f699ab1-938b-4d9d-9825-aabcbe6f57fe",{"id":116,"url":13,"linktype":14,"fieldtype":15,"cached_url":117},"63634293-a749-4226-9439-9f38ee6dcda0","about-us","About Us","footer___menu_items",{"_uid":121,"link":122,"title":125,"new_tab":24,"component":119},"b26b00f1-a0e7-4be2-8ab3-428b8cc841f8",{"id":123,"url":13,"linktype":14,"fieldtype":15,"cached_url":124},"26cb7c55-faed-4a77-a291-1552d4111b3e","how-foxy-works","How Foxy Works",{"_uid":127,"link":128,"title":131,"new_tab":24,"component":119},"b40c68a0-1ceb-4226-9515-6176534f61fe",{"id":129,"url":13,"linktype":14,"fieldtype":15,"cached_url":130},"dc6657d7-7f4f-4c0d-b781-e971b038ee26","for-good","Foxy For Good",{"_uid":133,"link":134,"title":137,"new_tab":24,"component":119},"3ad0c134-bef9-4fff-b891-e09f16109036",{"id":135,"url":13,"linktype":14,"fieldtype":15,"cached_url":136},"23cae210-baf4-4588-9862-d09f4f52ccd2","brand-assets","Brand Assets","footer___section",{"_uid":140,"name":141,"items":142,"component":138},"a6805fa8-ac60-47f1-b8f0-f27aded0afbe","Product",[143,149,155,161,167,173,179],{"_uid":144,"link":145,"title":148,"new_tab":24,"component":119},"b39c8a4e-2383-486f-b76a-11fbb15d8134",{"id":146,"url":13,"linktype":14,"fieldtype":15,"cached_url":147},"bb04690f-fe98-4ce6-80be-05b950f2364f","features\u002F","Features",{"_uid":150,"link":151,"title":154,"new_tab":24,"component":119},"64f8a41f-c181-433d-bc0a-fc94e71ecbf6",{"id":152,"url":13,"linktype":14,"fieldtype":15,"cached_url":153},"c450c58d-761d-48c0-a9af-0b064611689b","pricing","Pricing",{"_uid":156,"link":157,"title":160,"new_tab":24,"component":119},"6e0b287f-fd8c-4146-9e0e-0ab0b5c9ce3c",{"id":158,"url":13,"linktype":14,"fieldtype":15,"cached_url":159},"fab20ad9-e76a-4947-b709-3a6fdfa88028","blog\u002Fcategories\u002Fproduct-updates","Product Updates",{"_uid":162,"link":163,"title":166,"new_tab":24,"component":119},"47e5a074-a6b5-4f1c-8c2f-89a2ae9f83eb",{"id":164,"url":13,"linktype":14,"fieldtype":15,"cached_url":165},"d2c83612-d611-47f3-a3b4-ca7fe08540b8","changelogs\u002F","Changelogs",{"_uid":168,"link":169,"title":172,"new_tab":24,"component":119},"b5c08774-542f-4ffd-b357-c94d674488b9",{"id":170,"url":13,"linktype":14,"fieldtype":15,"cached_url":171},"08876121-0df3-4ed9-aa11-902b3e41cd02","whats-next","What's Next",{"_uid":174,"link":175,"title":178,"new_tab":24,"component":119},"9c2704ed-6d9f-43e1-9e67-c8d91c083288",{"id":176,"url":13,"linktype":14,"fieldtype":15,"cached_url":177},"056a7857-b18f-4025-8f97-91a38fc19bc8","compare\u002F","Compare",{"_uid":180,"link":181,"title":183,"new_tab":24,"component":119},"5f2db35b-674b-406a-8fa7-d246633af9fe",{"id":13,"url":182,"linktype":31,"fieldtype":15,"cached_url":182},"https:\u002F\u002Fadmin.foxy.io\u002Fsign-up","Try Foxy Free",{"_uid":185,"name":186,"items":187,"component":138},"63fa1f29-4252-4640-9922-fe310e69e54a","Security",[188,194,200],{"_uid":189,"link":190,"title":193,"new_tab":24,"component":119},"1158ddb6-9eb0-466f-8eb6-7ca2ae66c8b8",{"id":191,"url":13,"linktype":14,"fieldtype":15,"cached_url":192},"1f58fb2c-8681-4742-b6e8-09999beae9f6","security-contact","Security Contact",{"_uid":195,"link":196,"title":199,"new_tab":24,"component":119},"9a79c54a-6022-4dfd-854b-766f5e4703ba",{"id":197,"url":13,"linktype":14,"fieldtype":15,"cached_url":198},"55cbfcc3-425a-4261-8037-54e919851d2d","pci","PCI Compliance",{"_uid":201,"link":202,"title":205,"new_tab":24,"component":119},"0b85f5b6-9534-4071-b323-b39d053dd4d7",{"id":203,"url":13,"linktype":14,"fieldtype":15,"cached_url":204},"c3ac0fe3-83e2-4879-afbd-d4c83e1590df","help\u002Farticles\u002Four-official-domains-public-code","Domains & Codebases",{"_uid":207,"name":208,"items":209,"component":138},"998ded67-d107-49f4-8154-ca6be51671ec","Support",[210,213,216,219,222],{"_uid":211,"link":212,"title":16,"new_tab":24,"component":119},"594ffd35-3049-4004-bb08-0db568ebd819",{"id":54,"url":13,"linktype":14,"fieldtype":15,"cached_url":55},{"_uid":214,"link":215,"title":32,"new_tab":33,"component":119},"0a1a55ab-a985-4f9d-8b42-26da714d0c1c",{"id":13,"url":30,"linktype":31,"fieldtype":15,"cached_url":30},{"_uid":217,"link":218,"title":38,"new_tab":33,"component":119},"61e0b7c8-aadf-419b-a339-b3ccabc65bf4",{"id":13,"url":37,"linktype":31,"fieldtype":15,"cached_url":37},{"_uid":220,"link":221,"title":43,"new_tab":33,"component":119},"fd67a89e-1c54-4d31-94b5-64be999062d6",{"id":13,"url":42,"linktype":31,"fieldtype":15,"cached_url":42},{"_uid":223,"link":224,"title":49,"new_tab":24,"component":119},"231a6f71-e996-4ad4-b033-d4d5542f34f0",{"id":47,"url":13,"linktype":14,"fieldtype":15,"cached_url":48},"footer","Get started with our *unlimited free trial*.",[228,235],{"_uid":229,"link":230,"text":233,"component":234},"f0b77210-2632-45a2-8436-e57cad84d01a",{"id":231,"url":13,"linktype":14,"fieldtype":15,"cached_url":232},"60ba16a2-c1f4-485f-b978-8d2eeeafbf5a","terms-of-service","Terms of Service","footer___bottom_links",{"_uid":236,"link":237,"text":240,"component":234},"4bd497b0-993f-4b4d-a5b7-8a49c7c8fec9",{"id":238,"url":13,"linktype":14,"fieldtype":15,"cached_url":239},"332302b9-1d18-4016-b9c8-9b33c72d782b","privacy-policy","Privacy Policy","No credit card required.",{"id":13,"url":182,"linktype":31,"fieldtype":15,"cached_url":182},"default-footer","navigation\u002Fdefault-footer",50,[],"11006268-07f9-41e9-96f3-c51fb723399d","2022-09-21T20:39:02.357Z",[],{"name":251,"created_at":252,"published_at":253,"updated_at":254,"id":255,"uuid":256,"content":257,"slug":279,"full_slug":282,"sort_by_date":59,"position":283,"tag_list":284,"is_startpage":24,"parent_id":62,"meta_data":59,"group_id":285,"first_published_at":286,"release_id":59,"lang":65,"path":59,"alternates":287,"default_full_slug":59,"translated_slugs":59},"Search","2024-10-21T22:08:54.973Z","2025-05-26T09:17:25.790Z","2025-05-26T09:17:25.804Z",13592003,"14cbc359-9ac1-4a7a-a8de-ad4ac8ef26d4",{"_uid":258,"name":251,"indices":259,"summary":13,"component":279,"primary_image":280},"5e4a56e8-76f1-4790-b3a7-70f1be97d042",[260,265,269,274],{"key":261,"_uid":262,"icon":13,"name":263,"component":264},"all","c12a3210-7323-4273-8217-5215e52efe84","All","index",{"key":266,"_uid":267,"icon":268,"name":23,"component":264},"help_center_article","5acff080-95e4-44d3-8dcf-1b19720af382","fa-file-alt",{"key":270,"_uid":271,"icon":272,"name":273,"component":264},"help_center_guide","b8fbc206-c083-471e-a1f0-0ebeb90a669d","fa-book","Guides",{"key":275,"_uid":276,"icon":277,"name":278,"component":264},"blog_post","23419e83-2e56-4c4c-8a05-9fd1b3c9a9bd","fa-file-image","Blog Posts","search",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":281},{},"navigation\u002Fsearch",60,[],"11e1fd31-95cd-4fc9-b736-8b8910663e6c","2024-10-21T23:17:05.904Z",[],{"name":23,"created_at":289,"published_at":290,"updated_at":291,"id":292,"uuid":21,"content":293,"slug":307,"full_slug":22,"sort_by_date":59,"position":308,"tag_list":309,"is_startpage":33,"parent_id":310,"meta_data":59,"group_id":311,"first_published_at":312,"release_id":59,"lang":65,"path":59,"alternates":313,"default_full_slug":59,"translated_slugs":59},"2022-09-19T14:42:29.685Z","2024-07-30T18:17:22.506Z","2024-07-30T18:17:22.525Z",2660,{"_uid":294,"icon":13,"name":23,"guides":295,"pinned":24,"summary":296,"category":13,"component":297,"blog_posts":298,"content_hub":24,"icon_custom":299,"case_studies":300,"faq_sections":301,"help_articles":302,"featured_guides":303,"mailbox_category":13,"featured_articles":304,"featured_blog_posts":305,"featured_case_studies":306},"d6dae89a-907a-4bf7-82de-fe2ba875ee6e",[],"Get your questions answered with our browsable knowledge base.","help_center_category",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"filename":13,"copyright":59,"fieldtype":81},[],[],[],[],[],[],[],"categories",530,[],2658,"19ebcdd2-027f-47f5-9a5b-a8992c959578","2022-09-19T16:24:39.219Z",[],{"name":315,"created_at":316,"published_at":317,"updated_at":318,"id":319,"uuid":320,"content":321,"slug":7086,"full_slug":7087,"sort_by_date":59,"position":7088,"tag_list":7089,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":7090,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":7091,"default_full_slug":59,"translated_slugs":59},"Get Live Shipping Rates with Shippo","2026-06-08T17:48:25.276Z","2026-06-24T15:27:13.188Z","2026-06-24T15:27:13.211Z",185349346469428,"55aecd54-8815-45eb-a35e-667dbacf5546",{"_uid":322,"body":323,"name":315,"image":501,"pinned":24,"summary":503,"category":504,"component":266,"related_articles":505},"a82e30cf-65f2-4336-bd35-8a2ad8c5f2bc",{"type":324,"content":325},"doc",[326,334,340,345,350,386,391,396,402,407,468,473,487],{"type":327,"attrs":328,"content":330},"heading",{"level":329,"textAlign":59},2,[331],{"text":332,"type":333},"Overview","text",{"type":335,"attrs":336,"content":337},"paragraph",{"textAlign":59},[338],{"text":339,"type":333},"Shippo connects to more than 40 carriers through a single API. If you need rates from carriers that Foxy does not natively support (USPS, UPS, FedEx), you can fetch them from your Shippo account using Foxy's Custom Shipping Code feature. This article shows you the code to connect to Shippo and how to install it on your store.",{"type":327,"attrs":341,"content":342},{"level":329,"textAlign":59},[343],{"text":344,"type":333},"Before You Start",{"type":335,"attrs":346,"content":347},{"textAlign":59},[348],{"text":349,"type":333},"You will need:",{"type":351,"content":352},"bullet_list",[353,361,379],{"type":354,"content":355},"list_item",[356],{"type":335,"attrs":357,"content":358},{"textAlign":59},[359],{"text":360,"type":333},"A Shippo account with a live API key (Shippo dashboard, under Settings > API).",{"type":354,"content":362},[363],{"type":335,"attrs":364,"content":365},{"textAlign":59},[366,368,377],{"text":367,"type":333},"Custom Shipping Code enabled on your store. See ",{"text":369,"type":333,"marks":370},"Add Custom Shipping Code",[371],{"type":372,"attrs":373},"link",{"href":374,"uuid":375,"anchor":59,"target":376,"linktype":14},"\u002Fhelp\u002Farticles\u002Fadd-custom-shipping-code","bfd72855-b922-47e8-bd7d-5d43162103db","_self",{"text":378,"type":333}," for how to turn it on.",{"type":354,"content":380},[381],{"type":335,"attrs":382,"content":383},{"textAlign":59},[384],{"text":385,"type":333},"At least one product category set to a delivery type of \"Shipped using live shipping rates\", so the custom code runs for it. See [Shipping and Categories].",{"type":327,"attrs":387,"content":388},{"level":329,"textAlign":59},[389],{"text":390,"type":333},"The Shipping Code",{"type":335,"attrs":392,"content":393},{"textAlign":59},[394],{"text":395,"type":333},"This code reads the customer's shipment details from the cart payload, asks Shippo to create a shipment, then adds every rate Shippo returns to the cart.",{"type":397,"attrs":398,"content":399},"code_block",{"class":59},[400],{"text":401,"type":333},"let myshippo = require('shippo')('YOUR_SHIPPO_LIVE_API_KEY');\n\nlet shipment = cart['_embedded']['fx:shipment'];\n\nlet addressFrom  = {\n    'state': shipment['origin_region'],\n    'zip': shipment['origin_postal_code'],\n    'country': shipment['origin_country']\n};\n\nlet addressTo = {\n    'name': shipment['first_name'] + \" \" + shipment['last_name'],\n    'company': shipment['company'],\n    'street1': shipment['address1'],\n    'city': shipment['city'],\n    'state': shipment['region'],\n    'zip': shipment['postal_code'],\n    'country': shipment['country'],\n    'is_residential': shipment['is_residential']\n};\n\nlet parcel = {\n    'length': '5',\n    'width': '5',\n    'height': '5',\n    'distance_unit': 'in',\n    'weight': shipment['total_weight'],\n    'mass_unit': 'lb',\n};\n\ntry {\n    let myshipment = await myshippo.shipment.create({\n        \"address_from\": addressFrom,\n        \"address_to\": addressTo,\n        \"parcels\": [parcel],\n        \"async\": false\n    });\n\n    let rate_options = await myshippo.shipment.rates(myshipment.object_id);\n\n    for (var i = 0; i \u003C rate_options.results.length; i++) {\n        rates.add((10000+i), rate_options.results[i]['amount'], rate_options.results[i]['provider'], rate_options.results[i]['servicelevel']['name']);\n    }\n} catch (e) {\n    console.log(e);\n    rates.error(\"Sorry, we're unable to get shipping rates at this time. Please try again, or contact us to finalize your order\");\n}",{"type":327,"attrs":403,"content":404},{"level":329,"textAlign":59},[405],{"text":406,"type":333},"Install the Integration",{"type":408,"attrs":409,"content":411},"ordered_list",{"order":410},1,[412,419,426,433,440,454,461],{"type":354,"content":413},[414],{"type":335,"attrs":415,"content":416},{"textAlign":59},[417],{"text":418,"type":333},"In the Foxy admin (admin.foxy.io), open the shipping settings for your store, scroll to Custom Shipping Code, and enable \"use custom code\".",{"type":354,"content":420},[421],{"type":335,"attrs":422,"content":423},{"textAlign":59},[424],{"text":425,"type":333},"In the code editor that appears, paste the code above. Do not save it yet.",{"type":354,"content":427},[428],{"type":335,"attrs":429,"content":430},{"textAlign":59},[431],{"text":432,"type":333},"In a new tab, log in to your Shippo account and go to Settings, then API.",{"type":354,"content":434},[435],{"type":335,"attrs":436,"content":437},{"textAlign":59},[438],{"text":439,"type":333},"Under Tokens, click \"Generate Token\" beneath Live Tokens.",{"type":354,"content":441},[442],{"type":335,"attrs":443,"content":444},{"textAlign":59},[445,447,452],{"text":446,"type":333},"Copy the generated API key, then replace ",{"text":448,"type":333,"marks":449},"YOUR_SHIPPO_LIVE_API_KEY",[450],{"type":451},"code",{"text":453,"type":333}," in the code with it.",{"type":354,"content":455},[456],{"type":335,"attrs":457,"content":458},{"textAlign":59},[459],{"text":460,"type":333},"Save your settings. The custom shipping code runs in a separate system, so wait roughly 15 to 20 seconds, then refresh the page. If the save was successful, you will see your code again after refreshing.",{"type":354,"content":462},[463],{"type":335,"attrs":464,"content":465},{"textAlign":59},[466],{"text":467,"type":333},"Test it. Add a product from a live rate shippable category to your cart, then enter a shipping address on the cart or checkout. You should see rates returning from your Shippo account.",{"type":327,"attrs":469,"content":470},{"level":329,"textAlign":59},[471],{"text":472,"type":333},"Customize the Integration",{"type":335,"attrs":474,"content":475},{"textAlign":59},[476,478,485],{"text":477,"type":333},"This is a basic setup. It returns every rate from Shippo and uses default values for the parcel (a 5 by 5 by 5 inch box). Shippo provides optional extras in their API that you can use to extend the request. See the Shippo documentation on rate requests, and the ",{"text":479,"type":333,"marks":480},"Custom Shipping Code API Reference",[481],{"type":372,"attrs":482},{"href":483,"uuid":484,"anchor":59,"target":376,"linktype":14},"\u002Fhelp\u002Farticles\u002Fcustom-shipping-code-api-reference","7b057a6e-5277-42ef-8c0e-946e72139991",{"text":486,"type":333}," to filter, rename, or reprice the returned rates.",{"type":335,"attrs":488,"content":489},{"textAlign":59},[490,492,499],{"text":491,"type":333},"Note that rates returned from custom shipping code are not currency converted by Foxy. If your store uses a currency other than USD, set or convert the rate values to the cart's currency yourself. See ",{"text":493,"type":333,"marks":494},"Shipping Currency Conversion",[495],{"type":372,"attrs":496},{"href":497,"uuid":498,"anchor":59,"target":376,"linktype":14},"\u002Fhelp\u002Farticles\u002Fshipping-currency-conversion","7c7777a7-e9ec-4bec-8321-501eb979d2d7",{"text":500,"type":333},".",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":502},{},"Connect your Shippo account to your Foxy store with the Custom Shipping Code feature to fetch live rates from Shippo's supported carriers at checkout.","621d64cc-1acf-415b-9dd9-0492d1a683bf",[506,5280,5753],{"name":507,"created_at":508,"published_at":509,"updated_at":510,"id":511,"uuid":512,"content":513,"slug":5273,"full_slug":5274,"sort_by_date":59,"position":5275,"tag_list":5276,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":5277,"first_published_at":5278,"release_id":59,"lang":65,"path":59,"alternates":5279,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},"Custom Shipping Code Overview","2026-05-27T21:02:51.076Z","2026-06-03T20:57:52.434Z","2026-06-03T20:57:52.448Z",181150396796756,"cec1151a-658b-481b-a38e-734203e38360",{"_uid":514,"body":515,"name":507,"image":760,"pinned":24,"summary":762,"category":504,"component":266,"related_articles":763},"e6c68309-9708-4ad7-aad1-c60e94e17334",{"type":324,"content":516},[517,521,526,531,536,541,557,562,584,589,594,599,623,628,700,705,720,725,730,735],{"type":327,"attrs":518,"content":519},{"level":329,"textAlign":59},[520],{"text":332,"type":333},{"type":335,"attrs":522,"content":523},{"textAlign":59},[524],{"text":525,"type":333},"Custom Shipping Code lets you enter JavaScript directly into your store's Foxy admin to control shipping rates. The code runs server side (Node.js) after all carrier rates and custom endpoint results have been collected, giving you the ability to add new rates, modify prices, rename services, hide or show rates, and return errors — all without hosting your own server.",{"type":327,"attrs":527,"content":528},{"level":329,"textAlign":59},[529],{"text":530,"type":333},"How to enable",{"type":335,"attrs":532,"content":533},{"textAlign":59},[534],{"text":535,"type":333},"In your store's Shipping page, click Custom Shipping Code in the Shipping methods list, paste your code into the editor, and click Create, then Save. For a full walkthrough with each step, see [Add Custom Shipping Code].",{"type":335,"attrs":537,"content":538},{"textAlign":59},[539],{"text":540,"type":333},"Two things to set up alongside your code:",{"type":351,"content":542},[543,550],{"type":354,"content":544},[545],{"type":335,"attrs":546,"content":547},{"textAlign":59},[548],{"text":549,"type":333},"Enable \"Prevent shipping rate tampering\" (recommended) unless you have legacy browser side JavaScript that modifies rates.",{"type":354,"content":551},[552],{"type":335,"attrs":553,"content":554},{"textAlign":59},[555],{"text":556,"type":333},"Make sure any categories that should use custom code have their delivery type set to \"Shipped using live shipping rates\" with a default weight configured.",{"type":327,"attrs":558,"content":559},{"level":329,"textAlign":59},[560],{"text":561,"type":333},"Runtime environment",{"type":335,"attrs":563,"content":564},{"textAlign":59},[565,567,571,573,577,579,582],{"text":566,"type":333},"Your code runs in a Node.js environment (server side, UTC timezone) with access to a set of pre installed Node modules. The code is isolated per store. ",{"text":568,"type":333,"marks":569},"async",[570],{"type":451},{"text":572,"type":333},"\u002F",{"text":574,"type":333,"marks":575},"await",[576],{"type":451},{"text":578,"type":333}," is supported for making external requests (for example, to query a third party API like Shippo). Note: the code editor's validation may show warnings on lines containing ",{"text":574,"type":333,"marks":580},[581],{"type":451},{"text":583,"type":333},"; you can safely ignore these.",{"type":335,"attrs":585,"content":586},{"textAlign":59},[587],{"text":588,"type":333},"When you update your code, Foxy redeploys it behind the scenes. The Node.js version may be updated during redeployment, so avoid relying on version specific behavior.",{"type":327,"attrs":590,"content":591},{"level":329,"textAlign":59},[592],{"text":593,"type":333},"Available globals",{"type":335,"attrs":595,"content":596},{"textAlign":59},[597],{"text":598,"type":333},"Two objects are available in your code environment:",{"type":351,"content":600},[601,612],{"type":354,"content":602},[603],{"type":335,"attrs":604,"content":605},{"textAlign":59},[606,610],{"text":607,"type":333,"marks":608},"rates",[609],{"type":451},{"text":611,"type":333}," — the rates collection, pre populated with any rates returned from carriers or the custom endpoint. This is the entry point to the Shipping API. See the [Custom Shipping Code API Reference] for the full method list.",{"type":354,"content":613},[614],{"type":335,"attrs":615,"content":616},{"textAlign":59},[617,621],{"text":618,"type":333,"marks":619},"cart",[620],{"type":451},{"text":622,"type":333}," — the same payload object that the Custom Shipping Endpoint receives. See the [Shipping Payload Reference] for the full structure.",{"type":335,"attrs":624,"content":625},{"textAlign":59},[626],{"text":627,"type":333},"A few Node modules are also available Node:",{"type":351,"content":629},[630,650,667,684],{"type":354,"content":631},[632],{"type":335,"attrs":633,"content":634},{"textAlign":59},[635,642,644,648],{"text":636,"type":333,"marks":637},"node-fetch",[638],{"type":372,"attrs":639},{"href":640,"uuid":59,"anchor":59,"target":641,"linktype":31},"https:\u002F\u002Fgithub.com\u002Fnode-fetch\u002Fnode-fetch","_blank",{"text":643,"type":333}," (available as ",{"text":645,"type":333,"marks":646},"fetch",[647],{"type":451},{"text":649,"type":333},")",{"type":354,"content":651},[652],{"type":335,"attrs":653,"content":654},{"textAlign":59},[655,661,662,666],{"text":656,"type":333,"marks":657},"Foxy SDK",[658],{"type":372,"attrs":659},{"href":660,"uuid":59,"anchor":59,"target":641,"linktype":31},"https:\u002F\u002Fsdk.foxy.dev\u002F",{"text":643,"type":333},{"text":663,"type":333,"marks":664},"FoxySDK",[665],{"type":451},{"text":649,"type":333},{"type":354,"content":668},[669],{"type":335,"attrs":670,"content":671},{"textAlign":59},[672,678,679,683],{"text":673,"type":333,"marks":674},"Shippo",[675],{"type":372,"attrs":676},{"href":677,"uuid":59,"anchor":59,"target":641,"linktype":31},"https:\u002F\u002Fgithub.com\u002Fgoshippo\u002Fshippo-node-client",{"text":643,"type":333},{"text":680,"type":333,"marks":681},"shippo",[682],{"type":451},{"text":649,"type":333},{"type":354,"content":685},[686],{"type":335,"attrs":687,"content":688},{"textAlign":59},[689,695,696,699],{"text":690,"type":333,"marks":691},"xml2js",[692],{"type":372,"attrs":693},{"href":694,"uuid":59,"anchor":59,"target":641,"linktype":31},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fxml2js",{"text":643,"type":333},{"text":690,"type":333,"marks":697},[698],{"type":451},{"text":649,"type":333},{"type":327,"attrs":701,"content":702},{"level":329,"textAlign":59},[703],{"text":704,"type":333},"Examples",{"type":335,"attrs":706,"content":707},{"textAlign":59},[708,710,713,715,718],{"text":709,"type":333},"Here's a quick example to show how the ",{"text":607,"type":333,"marks":711},[712],{"type":451},{"text":714,"type":333}," and ",{"text":618,"type":333,"marks":716},[717],{"type":451},{"text":719,"type":333}," objects work together. This adds two rates and makes the standard option free when the cart total hits $40:",{"type":397,"attrs":721,"content":722},{"class":59},[723],{"text":724,"type":333},"rates.add(10001, 5, 'FoxyPost', 'Standard');\nrates.add(10002, 15, 'FoxyPost', 'Express');\n\nif (cart['_embedded']['fx:shipment']['total_item_price'] >= 40) {\n  rates.filter(10001).price(0).service('Free Shipping');\n}",{"type":335,"attrs":726,"content":727},{"textAlign":59},[728],{"text":729,"type":333},"For many more ready to use examples (tiered rates, weight based pricing, coupon triggered free shipping, country tiers, label cleanup, and more), see [Custom Shipping Code Examples].",{"type":327,"attrs":731,"content":732},{"level":329,"textAlign":59},[733],{"text":734,"type":333},"Migrating from legacy footer snippets",{"type":335,"attrs":736,"content":737},{"textAlign":59},[738,740,744,746,750,752,758],{"text":739,"type":333},"If your store currently uses the older ",{"text":741,"type":333,"marks":742},"FC.customFlatRates",[743],{"type":451},{"text":745,"type":333}," or ",{"text":747,"type":333,"marks":748},"FC.customLiveShipping",[749],{"type":451},{"text":751,"type":333}," browser side snippets, migrating to Custom Shipping Code is recommended. The legacy snippets don't work with subscription renewals (which run server side) and aren't compatible with shipping rate signing. See the ",{"text":753,"type":333,"marks":754},"migration guide on the wiki",[755],{"type":372,"attrs":756},{"href":757,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Fwiki.foxycart.com\u002Fv\u002F2.0\u002Fshipping\u002Fcustom_code\u002Fmigrating",{"text":759,"type":333}," for a function by function mapping.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":761},{},"Write JavaScript in the Foxy admin to add, modify, or remove shipping rates.",[764,1362,1947],{"name":479,"created_at":765,"published_at":766,"updated_at":767,"id":768,"uuid":484,"content":769,"slug":1355,"full_slug":1356,"sort_by_date":59,"position":1357,"tag_list":1358,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":1360,"first_published_at":766,"release_id":59,"lang":65,"path":59,"alternates":1361,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},"2026-05-27T21:07:12.138Z","2026-05-28T21:09:22.488Z","2026-05-28T21:09:22.506Z",181151466090383,{"_uid":770,"body":771,"name":479,"image":1351,"pinned":24,"summary":1353,"category":504,"component":266,"related_articles":1354},"120eab7d-575a-47fe-aafe-8ed6fd5b6420",{"type":324,"content":772},[773,777,787,792,799,821,826,837,842,849,854,913,918,923,930,951,956,961,970,979,984,989,996,1001,1104,1109,1114,1123,1132,1143,1148,1153,1158,1165,1209,1214,1219,1226,1231,1236,1246,1314,1319,1328,1337,1342],{"type":327,"attrs":774,"content":775},{"level":329,"textAlign":59},[776],{"text":332,"type":333},{"type":335,"attrs":778,"content":779},{"textAlign":59},[780,782,785],{"text":781,"type":333},"The ",{"text":607,"type":333,"marks":783},[784],{"type":451},{"text":786,"type":333}," object is the primary interface for manipulating shipping rates in Custom Shipping Code. It's pre populated with any rates returned from carriers or the custom endpoint, and all methods are chainable (unless they return a value).",{"type":327,"attrs":788,"content":789},{"level":329,"textAlign":59},[790],{"text":791,"type":333},"Adding rates",{"type":335,"attrs":793,"content":794},{"textAlign":59},[795],{"text":796,"type":333,"marks":797},"rates.add(id, price, method, service_name)",[798],{"type":451},{"type":335,"attrs":800,"content":801},{"textAlign":59},[802,804,808,810,814,815,819],{"text":803,"type":333},"Adds a new rate. ",{"text":805,"type":333,"marks":806},"id",[807],{"type":451},{"text":809,"type":333}," must be 10000 or higher (if you pass a lower number, 10000 is added automatically). At least one of ",{"text":811,"type":333,"marks":812},"method",[813],{"type":451},{"text":745,"type":333},{"text":816,"type":333,"marks":817},"service_name",[818],{"type":451},{"text":820,"type":333}," is required. Pass an empty string for the one you don't need.",{"type":397,"attrs":822,"content":823},{"class":59},[824],{"text":825,"type":333},"rates.add(10001, 5.99, 'FoxyPost', 'Standard');\nrates.add(10002, 0, '', 'Free Shipping');",{"type":335,"attrs":827,"content":828},{"textAlign":59},[829,831,835],{"text":830,"type":333},"Custom rates added with ",{"text":832,"type":333,"marks":833},"rates.add()",[834],{"type":451},{"text":836,"type":333}," do not automatically include handling fees or flat rates from other categories. Use the handling\u002Fflat rate helpers (below) if you need to include them.",{"type":327,"attrs":838,"content":839},{"level":329,"textAlign":59},[840],{"text":841,"type":333},"Filtering rates",{"type":335,"attrs":843,"content":844},{"textAlign":59},[845],{"text":846,"type":333,"marks":847},"rates.filter(selector)",[848],{"type":451},{"type":335,"attrs":850,"content":851},{"textAlign":59},[852],{"text":853,"type":333},"Returns a new Rates object containing only matching rates. The original collection is not modified. The selector can be:",{"type":351,"content":855},[856,874,895],{"type":354,"content":857},[858],{"type":335,"attrs":859,"content":860},{"textAlign":59},[861,863,868,870],{"text":862,"type":333},"A ",{"text":864,"type":333,"marks":865},"number",[866],{"type":867},"bold",{"text":869,"type":333}," — matches by ",{"text":871,"type":333,"marks":872},"service_id",[873],{"type":451},{"type":354,"content":875},[876],{"type":335,"attrs":877,"content":878},{"textAlign":59},[879,880,884,886,889,890,893],{"text":862,"type":333},{"text":881,"type":333,"marks":882},"string",[883],{"type":867},{"text":885,"type":333}," — matches against ",{"text":811,"type":333,"marks":887},[888],{"type":451},{"text":714,"type":333},{"text":816,"type":333,"marks":891},[892],{"type":451},{"text":894,"type":333}," (case insensitive)",{"type":354,"content":896},[897],{"type":335,"attrs":898,"content":899},{"textAlign":59},[900,902,906,908,911],{"text":901,"type":333},"An ",{"text":903,"type":333,"marks":904},"array of numbers",[905],{"type":867},{"text":907,"type":333}," — matches multiple ",{"text":871,"type":333,"marks":909},[910],{"type":451},{"text":912,"type":333}," values",{"type":397,"attrs":914,"content":915},{"class":59},[916],{"text":917,"type":333},"rates.filter(10001).price(0);\nrates.filter('fedex').hide();\nrates.filter([10001, 10002]).price('+5');",{"type":327,"attrs":919,"content":920},{"level":329,"textAlign":59},[921],{"text":922,"type":333},"Checking if rates exist",{"type":335,"attrs":924,"content":925},{"textAlign":59},[926],{"text":927,"type":333,"marks":928},"rates.exists([selector])",[929],{"type":451},{"type":335,"attrs":931,"content":932},{"textAlign":59},[933,935,939,941,944,946,950],{"text":934,"type":333},"Returns ",{"text":936,"type":333,"marks":937},"true",[938],{"type":451},{"text":940,"type":333}," if rates exist. If a selector is provided, returns ",{"text":936,"type":333,"marks":942},[943],{"type":451},{"text":945,"type":333}," only if matching rates exist. Selector works the same as ",{"text":947,"type":333,"marks":948},"filter()",[949],{"type":451},{"text":500,"type":333},{"type":397,"attrs":952,"content":953},{"class":59},[954],{"text":955,"type":333},"if (!rates.exists()) {\n  rates.add(10001, 15, '', 'Fallback Rate');\n}",{"type":327,"attrs":957,"content":958},{"level":329,"textAlign":59},[959],{"text":960,"type":333},"Showing and hiding rates",{"type":335,"attrs":962,"content":963},{"textAlign":59},[964,968],{"text":965,"type":333,"marks":966},"rates.hide()",[967],{"type":451},{"text":969,"type":333}," — hides the matched rates from the customer. Hidden rates remain in the collection and can still be filtered or shown later.",{"type":335,"attrs":971,"content":972},{"textAlign":59},[973,977],{"text":974,"type":333,"marks":975},"rates.show()",[976],{"type":451},{"text":978,"type":333}," — makes previously hidden rates visible again.",{"type":397,"attrs":980,"content":981},{"class":59},[982],{"text":983,"type":333},"rates.filter('usps').hide();\nrates.filter(10001).show();",{"type":327,"attrs":985,"content":986},{"level":329,"textAlign":59},[987],{"text":988,"type":333},"Modifying prices",{"type":335,"attrs":990,"content":991},{"textAlign":59},[992],{"text":993,"type":333,"marks":994},"rates.price(modifier)",[995],{"type":451},{"type":335,"attrs":997,"content":998},{"textAlign":59},[999],{"text":1000,"type":333},"Sets or adjusts the price of matched rates. The modifier can be:",{"type":351,"content":1002},[1003,1014],{"type":354,"content":1004},[1005],{"type":335,"attrs":1006,"content":1007},{"textAlign":59},[1008,1009,1012],{"text":862,"type":333},{"text":864,"type":333,"marks":1010},[1011],{"type":867},{"text":1013,"type":333}," — sets the price to that exact value",{"type":354,"content":1015},[1016,1025],{"type":335,"attrs":1017,"content":1018},{"textAlign":59},[1019,1020,1023],{"text":862,"type":333},{"text":881,"type":333,"marks":1021},[1022],{"type":867},{"text":1024,"type":333}," with an operator prefix:",{"type":351,"content":1026},[1027,1038,1049,1060,1071,1082,1093],{"type":354,"content":1028},[1029],{"type":335,"attrs":1030,"content":1031},{"textAlign":59},[1032,1036],{"text":1033,"type":333,"marks":1034},"'+5'",[1035],{"type":451},{"text":1037,"type":333}," — adds 5 to the current price",{"type":354,"content":1039},[1040],{"type":335,"attrs":1041,"content":1042},{"textAlign":59},[1043,1047],{"text":1044,"type":333,"marks":1045},"'-5'",[1046],{"type":451},{"text":1048,"type":333}," — subtracts 5",{"type":354,"content":1050},[1051],{"type":335,"attrs":1052,"content":1053},{"textAlign":59},[1054,1058],{"text":1055,"type":333,"marks":1056},"'*2'",[1057],{"type":451},{"text":1059,"type":333}," — multiplies by 2",{"type":354,"content":1061},[1062],{"type":335,"attrs":1063,"content":1064},{"textAlign":59},[1065,1069],{"text":1066,"type":333,"marks":1067},"'\u002F2'",[1068],{"type":451},{"text":1070,"type":333}," — divides by 2",{"type":354,"content":1072},[1073],{"type":335,"attrs":1074,"content":1075},{"textAlign":59},[1076,1080],{"text":1077,"type":333,"marks":1078},"'=15'",[1079],{"type":451},{"text":1081,"type":333}," — sets to exactly 15 (same as passing a number)",{"type":354,"content":1083},[1084],{"type":335,"attrs":1085,"content":1086},{"textAlign":59},[1087,1091],{"text":1088,"type":333,"marks":1089},"'+20%'",[1090],{"type":451},{"text":1092,"type":333}," — adds 20% of the current price",{"type":354,"content":1094},[1095],{"type":335,"attrs":1096,"content":1097},{"textAlign":59},[1098,1102],{"text":1099,"type":333,"marks":1100},"'-20%'",[1101],{"type":451},{"text":1103,"type":333}," — subtracts 20% of the current price",{"type":397,"attrs":1105,"content":1106},{"class":59},[1107],{"text":1108,"type":333},"rates.filter('usps').price('+2.50');\nrates.filter(10001).price(0);\nrates.filter('fedex').price('-10%');",{"type":327,"attrs":1110,"content":1111},{"level":329,"textAlign":59},[1112],{"text":1113,"type":333},"Modifying labels",{"type":335,"attrs":1115,"content":1116},{"textAlign":59},[1117,1121],{"text":1118,"type":333,"marks":1119},"rates.method(string)",[1120],{"type":451},{"text":1122,"type":333}," — sets the carrier\u002Fmethod name for matched rates.",{"type":335,"attrs":1124,"content":1125},{"textAlign":59},[1126,1130],{"text":1127,"type":333,"marks":1128},"rates.service(string)",[1129],{"type":451},{"text":1131,"type":333}," — sets the service name for matched rates.",{"type":335,"attrs":1133,"content":1134},{"textAlign":59},[1135,1137,1141],{"text":1136,"type":333},"When called without an argument inside an ",{"text":1138,"type":333,"marks":1139},".each()",[1140],{"type":451},{"text":1142,"type":333}," callback, these return the current value.",{"type":397,"attrs":1144,"content":1145},{"class":59},[1146],{"text":1147,"type":333},"rates.filter('usps').method('US Postal Service');\nrates.filter(10001).service('Economy');",{"type":335,"attrs":1149,"content":1150},{"textAlign":59},[1151],{"text":1152,"type":333},"Note: HTML in method or service strings is not currently supported.",{"type":327,"attrs":1154,"content":1155},{"level":329,"textAlign":59},[1156],{"text":1157,"type":333},"Iterating over rates",{"type":335,"attrs":1159,"content":1160},{"textAlign":59},[1161],{"text":1162,"type":333,"marks":1163},"rates.each(fn)",[1164],{"type":451},{"type":335,"attrs":1166,"content":1167},{"textAlign":59},[1168,1170,1174,1176,1180,1182,1186,1188,1192,1193,1197,1198,1202,1204,1208],{"text":1169,"type":333},"Calls ",{"text":1171,"type":333,"marks":1172},"fn",[1173],{"type":451},{"text":1175,"type":333}," for each matched rate. Inside the callback, ",{"text":1177,"type":333,"marks":1178},"this",[1179],{"type":451},{"text":1181,"type":333}," refers to the individual rate and exposes ",{"text":1183,"type":333,"marks":1184},".price()",[1185],{"type":451},{"text":1187,"type":333},", ",{"text":1189,"type":333,"marks":1190},".method()",[1191],{"type":451},{"text":1187,"type":333},{"text":1194,"type":333,"marks":1195},".service()",[1196],{"type":451},{"text":1187,"type":333},{"text":1199,"type":333,"marks":1200},".hide()",[1201],{"type":451},{"text":1203,"type":333},", and ",{"text":1205,"type":333,"marks":1206},".show()",[1207],{"type":451},{"text":500,"type":333},{"type":397,"attrs":1210,"content":1211},{"class":59},[1212],{"text":1213,"type":333},"rates.filter('fedex').each(function() {\n  this.service(this.service() + ' (Signature Required)');\n});",{"type":327,"attrs":1215,"content":1216},{"level":329,"textAlign":59},[1217],{"text":1218,"type":333},"Sorting",{"type":335,"attrs":1220,"content":1221},{"textAlign":59},[1222],{"text":1223,"type":333,"marks":1224},"rates.sort()",[1225],{"type":451},{"type":335,"attrs":1227,"content":1228},{"textAlign":59},[1229],{"text":1230,"type":333},"Sorts matched rates by price (ascending). Note that Foxy always re sorts rates ascending for display regardless of your code's ordering, so this is mainly useful if you need sorted iteration.",{"type":327,"attrs":1232,"content":1233},{"level":329,"textAlign":59},[1234],{"text":1235,"type":333},"Handling fees and flat rates",{"type":335,"attrs":1237,"content":1238},{"textAlign":59},[1239,1241,1244],{"text":1240,"type":333},"Custom rates added via ",{"text":832,"type":333,"marks":1242},[1243],{"type":451},{"text":1245,"type":333}," do not automatically include handling fees or flat rates from other categories in the cart. These helpers let you add or remove them:",{"type":351,"content":1247},[1248,1259,1270,1281,1292,1303],{"type":354,"content":1249},[1250],{"type":335,"attrs":1251,"content":1252},{"textAlign":59},[1253,1257],{"text":1254,"type":333,"marks":1255},"rates.addHandling()",[1256],{"type":451},{"text":1258,"type":333}," — adds handling fees from other categories to matched rates",{"type":354,"content":1260},[1261],{"type":335,"attrs":1262,"content":1263},{"textAlign":59},[1264,1268],{"text":1265,"type":333,"marks":1266},"rates.addFlatRate()",[1267],{"type":451},{"text":1269,"type":333}," — adds flat rate fees from other categories",{"type":354,"content":1271},[1272],{"type":335,"attrs":1273,"content":1274},{"textAlign":59},[1275,1279],{"text":1276,"type":333,"marks":1277},"rates.addHandlingAndFlatRate()",[1278],{"type":451},{"text":1280,"type":333}," — adds both",{"type":354,"content":1282},[1283],{"type":335,"attrs":1284,"content":1285},{"textAlign":59},[1286,1290],{"text":1287,"type":333,"marks":1288},"rates.removeHandling()",[1289],{"type":451},{"text":1291,"type":333}," — removes handling fees from matched rates",{"type":354,"content":1293},[1294],{"type":335,"attrs":1295,"content":1296},{"textAlign":59},[1297,1301],{"text":1298,"type":333,"marks":1299},"rates.removeFlatRate()",[1300],{"type":451},{"text":1302,"type":333}," — removes flat rate fees",{"type":354,"content":1304},[1305],{"type":335,"attrs":1306,"content":1307},{"textAlign":59},[1308,1312],{"text":1309,"type":333,"marks":1310},"rates.removeHandlingAndFlatRate()",[1311],{"type":451},{"text":1313,"type":333}," — removes both",{"type":327,"attrs":1315,"content":1316},{"level":329,"textAlign":59},[1317],{"text":1318,"type":333},"Errors and resets",{"type":335,"attrs":1320,"content":1321},{"textAlign":59},[1322,1326],{"text":1323,"type":333,"marks":1324},"rates.error(message)",[1325],{"type":451},{"text":1327,"type":333}," — sets an error message. If set, the error is displayed to the customer instead of any rates (error takes precedence).",{"type":335,"attrs":1329,"content":1330},{"textAlign":59},[1331,1335],{"text":1332,"type":333,"marks":1333},"rates.reset()",[1334],{"type":451},{"text":1336,"type":333}," — clears all rates and any error message.",{"type":327,"attrs":1338,"content":1339},{"level":329,"textAlign":59},[1340],{"text":1341,"type":333},"The cart object",{"type":335,"attrs":1343,"content":1344},{"textAlign":59},[1345,1346,1349],{"text":781,"type":333},{"text":618,"type":333,"marks":1347},[1348],{"type":451},{"text":1350,"type":333}," object available in Custom Shipping Code contains the same payload sent to the Custom Shipping Endpoint. See the [Shipping Payload Reference] for the full structure, field descriptions, and common access patterns.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":1352},{},"Complete reference for the rates JavaScript API available in Custom Shipping Code feature of the Foxy Admin.",[],"custom-shipping-code-api-reference","help\u002Farticles\u002Fcustom-shipping-code-api-reference",-1900,[],2659,"e7481619-f7c8-4d46-9be9-42733b938287",[],{"name":1363,"created_at":1364,"published_at":1365,"updated_at":1366,"id":1367,"uuid":1368,"content":1369,"slug":1941,"full_slug":1942,"sort_by_date":59,"position":1943,"tag_list":1944,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":1945,"first_published_at":1365,"release_id":59,"lang":65,"path":59,"alternates":1946,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},"Custom Shipping Code Examples","2026-05-27T21:14:35.518Z","2026-05-28T21:09:22.251Z","2026-05-28T21:09:22.283Z",181153282191296,"a8aa795a-3152-491a-91cc-b68c9674decd",{"_uid":1370,"body":1371,"name":1363,"image":1937,"pinned":24,"summary":1939,"category":504,"component":266,"related_articles":1940},"29e6a3ad-6b16-495f-b857-e0ecff0546bb",{"type":324,"content":1372},[1373,1377,1382,1397,1402,1407,1412,1417,1422,1426,1431,1436,1441,1446,1451,1456,1461,1466,1471,1476,1487,1492,1497,1502,1507,1512,1517,1522,1527,1532,1536,1541,1546,1551,1556,1561,1566,1571,1576,1581,1586,1591,1596,1601,1606,1611,1616,1621,1626,1631,1636,1641,1646,1651,1656,1661,1666,1671,1676,1681,1686,1691,1696,1701,1706,1711,1716,1721,1726,1731,1736,1741,1746,1751,1756,1761,1766,1771,1776,1781,1786,1791,1796,1801,1806,1811,1816,1821,1826,1831,1836,1841,1852,1857,1862,1867,1872,1877,1882,1887,1898,1903,1908,1917,1922,1927,1932],{"type":327,"attrs":1374,"content":1375},{"level":329,"textAlign":59},[1376],{"text":332,"type":333},{"type":335,"attrs":1378,"content":1379},{"textAlign":59},[1380],{"text":1381,"type":333},"These examples cover the most common shipping scenarios you can implement with Custom Shipping Code. Each one is self contained and can be pasted directly into the code editor in your Foxy admin. Combine and adapt them to fit your store's needs.",{"type":335,"attrs":1383,"content":1384},{"textAlign":59},[1385,1387,1390,1392,1395],{"text":1386,"type":333},"All examples use the two globals available in Custom Shipping Code: ",{"text":607,"type":333,"marks":1388},[1389],{"type":451},{"text":1391,"type":333}," (the shipping rates collection) and ",{"text":618,"type":333,"marks":1393},[1394],{"type":451},{"text":1396,"type":333}," (the cart payload). For the full API reference, see [Custom Shipping Code API Reference]. For the complete payload structure, see [Shipping Payload Reference].",{"type":327,"attrs":1398,"content":1399},{"level":329,"textAlign":59},[1400],{"text":1401,"type":333},"Add a fallback rate",{"type":335,"attrs":1403,"content":1404},{"textAlign":59},[1405],{"text":1406,"type":333},"If no carriers return rates (for example, because of a network issue or unsupported destination), you can add a fallback so customers always have at least one option:",{"type":397,"attrs":1408,"content":1409},{"class":59},[1410],{"text":1411,"type":333},"if (!rates.exists()) {\n  rates.add(10001, 15, '', 'Standard Shipping');\n}",{"type":327,"attrs":1413,"content":1414},{"level":329,"textAlign":59},[1415],{"text":1416,"type":333},"Free shipping above a cart total",{"type":335,"attrs":1418,"content":1419},{"textAlign":59},[1420],{"text":1421,"type":333},"Add standard and express options, then make standard free when the cart subtotal reaches a threshold:",{"type":397,"attrs":1423,"content":1424},{"class":59},[1425],{"text":724,"type":333},{"type":327,"attrs":1427,"content":1428},{"level":329,"textAlign":59},[1429],{"text":1430,"type":333},"Tiered rates by cart total",{"type":335,"attrs":1432,"content":1433},{"textAlign":59},[1434],{"text":1435,"type":333},"Set different price points based on how much the customer is spending:",{"type":397,"attrs":1437,"content":1438},{"class":59},[1439],{"text":1440,"type":333},"const total = cart['_embedded']['fx:shipment']['total_item_price'];\nrates.add(10001, 75, 'FoxyPost', 'Standard');\n\nif (total \u003C= 200)       rates.filter(10001).price(0).service('Customer Pickup');\nelse if (total \u003C= 500)  rates.filter(10001).price(75);\nelse if (total \u003C= 1000) rates.filter(10001).price(150);\nelse                    rates.filter(10001).price(300);",{"type":327,"attrs":1442,"content":1443},{"level":329,"textAlign":59},[1444],{"text":1445,"type":333},"Adjust rates by weight",{"type":335,"attrs":1447,"content":1448},{"textAlign":59},[1449],{"text":1450,"type":333},"Change prices when the total weight exceeds a threshold:",{"type":397,"attrs":1452,"content":1453},{"class":59},[1454],{"text":1455,"type":333},"rates.add(10001, 5, 'FoxyPost', 'Standard');\nrates.add(10002, 9.45, 'FoxyPost', 'Priority');\nrates.add(10003, 10, 'FoxyPost', 'Express (Next Day)');\n\nif (cart['_embedded']['fx:shipment']['total_weight'] > 10) {\n  rates.filter(10001).price(6);\n  rates.filter(10002).price(10);\n  rates.filter(10003).price(11.99);\n}",{"type":327,"attrs":1457,"content":1458},{"level":329,"textAlign":59},[1459],{"text":1460,"type":333},"Hide a rate by item count",{"type":335,"attrs":1462,"content":1463},{"textAlign":59},[1464],{"text":1465,"type":333},"Remove an option when there are too many items (for example, disabling express for large orders):",{"type":397,"attrs":1467,"content":1468},{"class":59},[1469],{"text":1470,"type":333},"rates.add(10001, 5, 'FoxyPost', 'Standard');\nrates.add(10002, 9.45, 'FoxyPost', 'Priority');\nrates.add(10003, 10, 'FoxyPost', 'Express (Next Day)');\n\nif (cart['_embedded']['fx:shipment']['item_count'] > 5) {\n  rates.filter(10003).hide();\n}",{"type":327,"attrs":1472,"content":1473},{"level":329,"textAlign":59},[1474],{"text":1475,"type":333},"Free shipping with a coupon code",{"type":335,"attrs":1477,"content":1478},{"textAlign":59},[1479,1481,1485],{"text":1480,"type":333},"Check for a specific coupon code (or any code ending in ",{"text":1482,"type":333,"marks":1483},"-fs",[1484],{"type":451},{"text":1486,"type":333},") and replace all rates with a free option:",{"type":397,"attrs":1488,"content":1489},{"class":59},[1490],{"text":1491,"type":333},"const discounts = cart['_embedded']['fx:discounts'];\nfor (const d in discounts) {\n  const code = discounts[d]['code'];\n  if (code === 'freeshipping' || code.match(\u002F-fs$\u002Fi)) {\n    rates.hide();\n    rates.add(11000, 0, '', 'Free Shipping');\n  }\n}",{"type":327,"attrs":1493,"content":1494},{"level":329,"textAlign":59},[1495],{"text":1496,"type":333},"Country based tiered rates",{"type":335,"attrs":1498,"content":1499},{"textAlign":59},[1500],{"text":1501,"type":333},"Group countries into tiers and set a different rate for each:",{"type":397,"attrs":1503,"content":1504},{"class":59},[1505],{"text":1506,"type":333},"const tier1 = ['GB'];\nconst tier2 = ['AL','AD','AT','BE','BG','CH','CZ','DE','DK','EE','ES','FI','FR','GR','HU','HR','IE','IS','IT','LT','LU','LV','NL','NO','PL','PT','RO','SE','SI','SK'];\n\nconst country = cart['_embedded']['fx:shipment']['country'];\n\nif (tier1.includes(country))      rates.add(10001, 10, 'FoxyPost', 'Standard');\nelse if (tier2.includes(country)) rates.add(10002, 20, 'FoxyPost', 'International');\nelse                               rates.add(10003, 30, 'FoxyPost', 'International');",{"type":327,"attrs":1508,"content":1509},{"level":329,"textAlign":59},[1510],{"text":1511,"type":333},"Replace international rates with a flat rate",{"type":335,"attrs":1513,"content":1514},{"textAlign":59},[1515],{"text":1516,"type":333},"Hide all carrier rates for non domestic shipments and show a single custom rate instead:",{"type":397,"attrs":1518,"content":1519},{"class":59},[1520],{"text":1521,"type":333},"if (cart['_embedded']['fx:shipment']['country'] !== 'US') {\n  rates.hide();\n  rates.add(10001, 25, 'FoxyPost', 'Standard');\n}",{"type":327,"attrs":1523,"content":1524},{"level":329,"textAlign":59},[1525],{"text":1526,"type":333},"Modify carrier rate labels",{"type":335,"attrs":1528,"content":1529},{"textAlign":59},[1530],{"text":1531,"type":333},"Append text to all rates from a specific carrier (useful for adding notes like \"Signature Required\"):",{"type":397,"attrs":1533,"content":1534},{"class":59},[1535],{"text":1213,"type":333},{"type":327,"attrs":1537,"content":1538},{"level":329,"textAlign":59},[1539],{"text":1540,"type":333},"Add a surcharge to all rates",{"type":335,"attrs":1542,"content":1543},{"textAlign":59},[1544],{"text":1545,"type":333},"Apply a flat handling surcharge on top of whatever rates are already present:",{"type":397,"attrs":1547,"content":1548},{"class":59},[1549],{"text":1550,"type":333},"rates.price('+3.50');",{"type":335,"attrs":1552,"content":1553},{"textAlign":59},[1554],{"text":1555,"type":333},"Or a percentage:",{"type":397,"attrs":1557,"content":1558},{"class":59},[1559],{"text":1560,"type":333},"rates.price('+15%');",{"type":327,"attrs":1562,"content":1563},{"level":329,"textAlign":59},[1564],{"text":1565,"type":333},"Only show rates from one carrier",{"type":335,"attrs":1567,"content":1568},{"textAlign":59},[1569],{"text":1570,"type":333},"If you have multiple carriers enabled but want to limit what the customer sees based on a condition:",{"type":397,"attrs":1572,"content":1573},{"class":59},[1574],{"text":1575,"type":333},"if (cart['_embedded']['fx:shipment']['country'] === 'US') {\n  rates.filter('fedex').hide();\n} else {\n  rates.filter('usps').hide();\n}",{"type":327,"attrs":1577,"content":1578},{"level":329,"textAlign":59},[1579],{"text":1580,"type":333},"Block shipping to specific countries",{"type":335,"attrs":1582,"content":1583},{"textAlign":59},[1584],{"text":1585,"type":333},"Return an error instead of rates for unsupported destinations:",{"type":397,"attrs":1587,"content":1588},{"class":59},[1589],{"text":1590,"type":333},"const blocked = ['CU', 'IR', 'KP', 'SY'];\nconst country = cart['_embedded']['fx:shipment']['country'];\n\nif (blocked.includes(country)) {\n  rates.error('Sorry, we are unable to ship to your country.');\n}",{"type":327,"attrs":1592,"content":1593},{"level":329,"textAlign":59},[1594],{"text":1595,"type":333},"Category specific surcharges",{"type":335,"attrs":1597,"content":1598},{"textAlign":59},[1599],{"text":1600,"type":333},"Check what categories are in the cart and adjust rates accordingly. Each item has an embedded category code:",{"type":397,"attrs":1602,"content":1603},{"class":59},[1604],{"text":1605,"type":333},"const items = cart['_embedded']['fx:items'];\nconst country = cart['_embedded']['fx:shipment']['country'];\n\nconst hasFragile = items.some(item => item['_embedded']['fx:item_category']['code'] === 'fragile');\nconst hasOversized = items.some(item => item['_embedded']['fx:item_category']['code'] === 'oversized');\n\nlet baseRate = 7.99;\nif (hasFragile) baseRate += 5;\nif (hasOversized) baseRate += 10;\n\nrates.add(10001, baseRate, 'Shipping', 'Standard');\n\n\u002F\u002F Only offer express for non oversized domestic orders\nif (!hasOversized && country === 'US') {\n  rates.add(10002, baseRate + 8, 'Shipping', 'Express');\n}",{"type":327,"attrs":1607,"content":1608},{"level":329,"textAlign":59},[1609],{"text":1610,"type":333},"Weight based tiered pricing with international markup",{"type":335,"attrs":1612,"content":1613},{"textAlign":59},[1614],{"text":1615,"type":333},"Combine weight tiers with a multiplier for international shipments:",{"type":397,"attrs":1617,"content":1618},{"class":59},[1619],{"text":1620,"type":333},"const totalWeight = cart['_embedded']['fx:shipment']['total_weight'];\nconst country = cart['_embedded']['fx:shipment']['country'];\n\nlet standardPrice = 5;\nlet expressPrice = 12;\n\nif (totalWeight > 20) {\n  standardPrice = 15;\n  expressPrice = 30;\n} else if (totalWeight > 10) {\n  standardPrice = 10;\n  expressPrice = 20;\n} else if (totalWeight > 5) {\n  standardPrice = 7.50;\n  expressPrice = 15;\n}\n\n\u002F\u002F Double the price for international\nif (country !== 'US') {\n  standardPrice *= 2;\n  expressPrice *= 2;\n}\n\nrates.add(10001, standardPrice, 'Shipping', 'Standard');\nrates.add(10002, expressPrice, 'Shipping', 'Express');",{"type":327,"attrs":1622,"content":1623},{"level":329,"textAlign":59},[1624],{"text":1625,"type":333},"Per item pricing (base + additional items)",{"type":335,"attrs":1627,"content":1628},{"textAlign":59},[1629],{"text":1630,"type":333},"Charge a base rate for the first item plus a smaller amount for each additional item:",{"type":397,"attrs":1632,"content":1633},{"class":59},[1634],{"text":1635,"type":333},"const shipment = cart['_embedded']['fx:shipment'];\nconst itemCount = shipment['item_count'];\nconst country = shipment['country'];\n\nif (country === 'US') {\n  const standardCost = 10 + ((itemCount - 1) * 0.50);\n  const expressCost = 12 + ((itemCount - 1) * 1.50);\n  rates.add(10001, standardCost, 'FoxyPost', 'Standard');\n  rates.add(10002, expressCost, 'FoxyPost', 'Express');\n} else {\n  const intlCost = 15 + ((itemCount - 1) * 2);\n  rates.add(10003, intlCost, 'FoxyPost', 'International');\n}",{"type":327,"attrs":1637,"content":1638},{"level":329,"textAlign":59},[1639],{"text":1640,"type":333},"Per product shipping cost via item options",{"type":335,"attrs":1642,"content":1643},{"textAlign":59},[1644],{"text":1645,"type":333},"If products carry their own shipping cost as a hidden item option named \"shipping,\" sum them up:",{"type":397,"attrs":1647,"content":1648},{"class":59},[1649],{"text":1650,"type":333},"let productShipping = 0;\nconst items = cart['_embedded']['fx:items'];\n\nfor (const item of items) {\n  if (item['_embedded'] && item['_embedded']['fx:item_options']) {\n    for (const option of item['_embedded']['fx:item_options']) {\n      if (option['name'] === 'shipping' && !isNaN(parseFloat(option['value']))) {\n        productShipping += parseFloat(option['value']) * item['quantity'];\n      }\n    }\n  }\n}\n\nif (productShipping > 0) {\n  if (rates.exists()) {\n    rates.price('+' + productShipping);\n  } else {\n    rates.add(10001, productShipping, '', 'Standard Shipping');\n  }\n}",{"type":327,"attrs":1652,"content":1653},{"level":329,"textAlign":59},[1654],{"text":1655,"type":333},"Category based shipping lookup table",{"type":335,"attrs":1657,"content":1658},{"textAlign":59},[1659],{"text":1660,"type":333},"Map each category to a per item shipping cost:",{"type":397,"attrs":1662,"content":1663},{"class":59},[1664],{"text":1665,"type":333},"const categoryRates = {\n  'business-cards': 20,\n  'letterheads': 35,\n  'envelopes': 35,\n  'banners': 15,\n  't-shirts': 25,\n};\n\nlet shipping = 0;\nfor (const item of cart['_embedded']['fx:items']) {\n  const categoryCode = item['_embedded']['fx:item_category']['code'];\n  if (categoryRates[categoryCode]) {\n    shipping += item['quantity'] * categoryRates[categoryCode];\n  }\n}\n\nif (shipping > 0) {\n  rates.add(10001, shipping, '', 'Standard Shipping');\n} else {\n  rates.error(\"Sorry, we're unable to calculate shipping. Please contact us.\");\n}",{"type":327,"attrs":1667,"content":1668},{"level":329,"textAlign":59},[1669],{"text":1670,"type":333},"Free shipping for a specific category",{"type":335,"attrs":1672,"content":1673},{"textAlign":59},[1674],{"text":1675,"type":333},"Check if all items belong to a promotional category and offer free shipping:",{"type":397,"attrs":1677,"content":1678},{"class":59},[1679],{"text":1680,"type":333},"const items = cart['_embedded']['fx:items'];\nconst country = cart['_embedded']['fx:shipment']['country'];\n\nconst allPromo = items.every(item => item['_embedded']['fx:item_category']['code'] === 'promo');\n\nif (allPromo && country === 'US') {\n  rates.hide();\n  rates.add(10001, 0, '', 'Free Promotional Shipping');\n} else {\n  if (!rates.exists()) {\n    rates.add(10001, 7.99, 'Shipping', 'Standard');\n  }\n}",{"type":327,"attrs":1682,"content":1683},{"level":329,"textAlign":59},[1684],{"text":1685,"type":333},"Free domestic shipping, paid international",{"type":335,"attrs":1687,"content":1688},{"textAlign":59},[1689],{"text":1690,"type":333},"Combine a domestic free shipping threshold with separate international rates:",{"type":397,"attrs":1692,"content":1693},{"class":59},[1694],{"text":1695,"type":333},"const country = cart['_embedded']['fx:shipment']['country'];\nconst totalPrice = cart['_embedded']['fx:shipment']['total_item_price'];\n\nif (country === 'US') {\n  if (totalPrice >= 50) {\n    rates.add(10001, 0, '', 'Free Shipping');\n  } else {\n    rates.add(10001, 5.99, 'Shipping', 'Standard');\n  }\n  rates.add(10002, 14.99, 'Shipping', 'Express');\n} else {\n  rates.add(10003, 19.99, 'Shipping', 'International Standard');\n  rates.add(10004, 34.99, 'Shipping', 'International Express');\n}",{"type":327,"attrs":1697,"content":1698},{"level":329,"textAlign":59},[1699],{"text":1700,"type":333},"Percentage markup on carrier rates",{"type":335,"attrs":1702,"content":1703},{"textAlign":59},[1704],{"text":1705,"type":333},"Apply a markup to rates from a specific carrier:",{"type":397,"attrs":1707,"content":1708},{"class":59},[1709],{"text":1710,"type":333},"\u002F\u002F 15% markup on all USPS rates\nrates.filter('USPS').price('*1.15');\n\n\u002F\u002F Flat $3 surcharge on FedEx only\nrates.filter('FedEx').price('+3');",{"type":327,"attrs":1712,"content":1713},{"level":329,"textAlign":59},[1714],{"text":1715,"type":333},"Discount specific carrier services",{"type":397,"attrs":1717,"content":1718},{"class":59},[1719],{"text":1720,"type":333},"\u002F\u002F 20% discount on ground shipping\nrates.filter('Ground').price('*0.8');\n\n\u002F\u002F Subtract $2 from Priority Mail\nrates.filter('USPS Priority').price('-2');",{"type":327,"attrs":1722,"content":1723},{"level":329,"textAlign":59},[1724],{"text":1725,"type":333},"Hide specific carrier services",{"type":397,"attrs":1727,"content":1728},{"class":59},[1729],{"text":1730,"type":333},"\u002F\u002F Hide all FedEx rates\nrates.filter('FedEx').hide();\n\n\u002F\u002F Hide express and overnight options\nrates.filter('Express').hide();\nrates.filter('Overnight').hide();",{"type":327,"attrs":1732,"content":1733},{"level":329,"textAlign":59},[1734],{"text":1735,"type":333},"Hide expensive rates by price",{"type":335,"attrs":1737,"content":1738},{"textAlign":59},[1739],{"text":1740,"type":333},"Filter out any rate above a threshold:",{"type":397,"attrs":1742,"content":1743},{"class":59},[1744],{"text":1745,"type":333},"rates.filter('FedEx').each(function() {\n  if (this.price() > 100) {\n    this.hide();\n  }\n});",{"type":327,"attrs":1747,"content":1748},{"level":329,"textAlign":59},[1749],{"text":1750,"type":333},"Hide rates by state or region",{"type":335,"attrs":1752,"content":1753},{"textAlign":59},[1754],{"text":1755,"type":333},"Restrict certain shipping methods based on the customer's state or region. This example hides express and overnight options for non contiguous US states, but the same pattern works for any region based rule:",{"type":397,"attrs":1757,"content":1758},{"class":59},[1759],{"text":1760,"type":333},"const contiguous = [\n  'AL','AZ','AR','CA','CO','CT','DE','FL','GA','ID','IL','IN','IA','KS',\n  'KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ',\n  'NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT',\n  'VT','VA','WA','WV','WI','WY','DC'\n];\n\nconst country = cart['_embedded']['fx:shipment']['country'];\nconst region = cart['_embedded']['fx:shipment']['region'];\n\nif (country === 'US' && !contiguous.includes(region)) {\n  rates.filter('Express').hide();\n  rates.filter('Overnight').hide();\n}",{"type":327,"attrs":1762,"content":1763},{"level":329,"textAlign":59},[1764],{"text":1765,"type":333},"Restrict shipping methods by category",{"type":335,"attrs":1767,"content":1768},{"textAlign":59},[1769],{"text":1770,"type":333},"If certain product categories require specific shipping methods (for example, perishable items that must ship express), hide the methods that don't apply:",{"type":397,"attrs":1772,"content":1773},{"class":59},[1774],{"text":1775,"type":333},"const items = cart['_embedded']['fx:items'];\nconst hasPerishable = items.some(item =>\n  item['_embedded']['fx:item_category']['code'] === 'perishable'\n);\n\nif (hasPerishable) {\n  rates.filter('Ground').hide();\n  rates.filter('Standard').hide();\n\n  if (!rates.exists('Express')) {\n    rates.add(10001, 24.99, 'Express Shipping', 'Required for Perishable Items');\n  }\n}",{"type":327,"attrs":1777,"content":1778},{"level":329,"textAlign":59},[1779],{"text":1780,"type":333},"Restrict shipping methods by item option",{"type":335,"attrs":1782,"content":1783},{"textAlign":59},[1784],{"text":1785,"type":333},"If products carry an option flag (for example, a \"type\" option set to \"hazmat\"), restrict which shipping methods are available:",{"type":397,"attrs":1787,"content":1788},{"class":59},[1789],{"text":1790,"type":333},"let hasHazmat = false;\nfor (const item of cart['_embedded']['fx:items']) {\n  for (const option of (item['_embedded']['fx:item_options'] || [])) {\n    if (option['name'] === 'type' && option['value'].toLowerCase() === 'hazmat') {\n      hasHazmat = true;\n    }\n  }\n}\n\nif (hasHazmat) {\n  rates.hide();\n  rates.filter('Ground').show();\n  rates.filter('Home Delivery').show();\n}",{"type":327,"attrs":1792,"content":1793},{"level":329,"textAlign":59},[1794],{"text":1795,"type":333},"Click and collect \u002F in store pickup",{"type":335,"attrs":1797,"content":1798},{"textAlign":59},[1799],{"text":1800,"type":333},"Always offer pickup, plus delivery with a free threshold:",{"type":397,"attrs":1802,"content":1803},{"class":59},[1804],{"text":1805,"type":333},"rates.add(10001, 0, '', 'Pickup From Store');\n\nconst totalPrice = cart['_embedded']['fx:shipment']['total_item_price'];\nif (totalPrice >= 50) {\n  rates.add(10002, 0, '', 'Free Delivery');\n} else {\n  rates.add(10002, 7.99, '', 'Standard Delivery');\n}",{"type":327,"attrs":1807,"content":1808},{"level":329,"textAlign":59},[1809],{"text":1810,"type":333},"Postal code zone based local delivery",{"type":335,"attrs":1812,"content":1813},{"textAlign":59},[1814],{"text":1815,"type":333},"Define ZIP code zones for free, paid, or pickup only delivery:",{"type":397,"attrs":1817,"content":1818},{"class":59},[1819],{"text":1820,"type":333},"const postalCode = Number(cart['_embedded']['fx:shipment']['postal_code']);\nconst country = cart['_embedded']['fx:shipment']['country'];\n\nconst localDeliveryZips = [80001, 80002, 80003, 80004, 80005];\nconst extendedDeliveryZips = [80023, 80026, 80027, 80301, 80302];\n\nif (country === 'US') {\n  if (localDeliveryZips.includes(postalCode)) {\n    rates.add(10001, 0, '', 'Free Local Delivery');\n  }\n  if (extendedDeliveryZips.includes(postalCode)) {\n    rates.add(10002, 5, '', 'Extended Delivery');\n  }\n  \u002F\u002F Always offer pickup\n  rates.add(10003, 0, '', 'In Store Pickup');\n}",{"type":327,"attrs":1822,"content":1823},{"level":329,"textAlign":59},[1824],{"text":1825,"type":333},"Local delivery by postal code prefix",{"type":335,"attrs":1827,"content":1828},{"textAlign":59},[1829],{"text":1830,"type":333},"Use the first few characters of the postal code to define local delivery zones. This works for any country with alphanumeric postal codes (Canada, UK, etc.):",{"type":397,"attrs":1832,"content":1833},{"class":59},[1834],{"text":1835,"type":333},"const freeDeliveryPrefixes = ['L5H', 'L4T', 'L4W', 'L4X', 'L4Y', 'L4Z', 'L5A', 'L5B'];\nconst postcode = cart['_embedded']['fx:shipment']['postal_code'].toUpperCase().substring(0, 3);\nconst orderTotal = cart['_embedded']['fx:shipment']['total_item_price'];\n\nif (freeDeliveryPrefixes.includes(postcode) && orderTotal > 200) {\n  rates.add(10001, 0, '', 'Free Local Delivery');\n}",{"type":327,"attrs":1837,"content":1838},{"level":329,"textAlign":59},[1839],{"text":1840,"type":333},"Adjust rates based on a custom field",{"type":335,"attrs":1842,"content":1843},{"textAlign":59},[1844,1846,1850],{"text":1845,"type":333},"Read a custom checkout field (added with ",{"text":1847,"type":333,"marks":1848},"data-fc-shipping-custom-field",[1849],{"type":451},{"text":1851,"type":333},") and modify rates accordingly. This example adds shipping insurance as a percentage of the cart total when the customer checks a box:",{"type":397,"attrs":1853,"content":1854},{"class":59},[1855],{"text":1856,"type":333},"const cartTotal = cart['_embedded']['fx:shipment']['total_item_price'];\nlet addInsurance = false;\n\nfor (const field of (cart['_embedded']['fx:custom_fields'] || [])) {\n  if (field['name'] === 'add_insurance') {\n    addInsurance = true;\n  }\n}\n\nif (addInsurance) {\n  const insuranceAmount = cartTotal * 0.01;\n  rates.each(function() {\n    this.price('+' + insuranceAmount)\n        .service(this.service() + ' (incl. insurance)');\n  });\n}",{"type":327,"attrs":1858,"content":1859},{"level":329,"textAlign":59},[1860],{"text":1861,"type":333},"Paid shipping upgrade alongside free shipping",{"type":335,"attrs":1863,"content":1864},{"textAlign":59},[1865],{"text":1866,"type":333},"Offer a free base option while keeping a paid upgrade available (for example, a signature required variant at just the surcharge price):",{"type":397,"attrs":1868,"content":1869},{"class":59},[1870],{"text":1871,"type":333},"const country = cart['_embedded']['fx:shipment']['country'];\nconst totalPrice = cart['_embedded']['fx:shipment']['total_item_price'];\n\nif (rates.exists('UPS Ground')) {\n  const upsPrice = rates.filter('UPS Ground').price();\n  rates.add(10002, upsPrice + 5.50, 'UPS', 'Ground with Signature Required');\n}\nif (rates.exists('FedEx Home Delivery')) {\n  const fedexPrice = rates.filter('FedEx Home Delivery').price();\n  rates.add(10001, fedexPrice + 6.70, 'FedEx', 'Home Delivery with Signature Required');\n}\n\nif (totalPrice >= 200 && country === 'US') {\n  rates.hide();\n  rates.add(11000, 0, '', 'Free Shipping');\n  rates.filter(10002).price(5.50).show();\n  rates.filter(10001).price(6.70).show();\n}",{"type":327,"attrs":1873,"content":1874},{"level":329,"textAlign":59},[1875],{"text":1876,"type":333},"Require a custom quote for heavy orders",{"type":397,"attrs":1878,"content":1879},{"class":59},[1880],{"text":1881,"type":333},"const totalWeight = cart['_embedded']['fx:shipment']['total_weight'];\n\nif (totalWeight > 50) {\n  rates.error('Orders over 50kg require a custom shipping quote. Please contact us.');\n}",{"type":327,"attrs":1883,"content":1884},{"level":329,"textAlign":59},[1885],{"text":1886,"type":333},"Distance based shipping with Google Maps",{"type":335,"attrs":1888,"content":1889},{"textAlign":59},[1890,1892,1896],{"text":1891,"type":333},"Use ",{"text":1893,"type":333,"marks":1894},"await request()",[1895],{"type":451},{"text":1897,"type":333}," to call the Google Maps Distance Matrix API and set rates based on distance from your store:",{"type":397,"attrs":1899,"content":1900},{"class":59},[1901],{"text":1902,"type":333},"const google_maps_api_key = 'YOUR_API_KEY';\nconst origin_address = '123 Main St, City, STATE, Country, 12345';\nconst unit_type = 'imperial'; \u002F\u002F 'metric' or 'imperial'\n\nconst shipment = cart['_embedded']['fx:shipment'];\nlet address1 = '';\nfor (const c of (cart['_embedded']['fx:custom_fields'] || [])) {\n  if (c['name'] === 'shipping_address1') {\n    address1 = c['value'];\n    break;\n  }\n}\n\nconst customer_address = [address1, shipment['city'], shipment['region'],\n    shipment['country'], shipment['postal_code']].join(', ');\n\nconst maps_url = 'https:\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fdistancematrix\u002Fjson'\n    + '?origins=' + encodeURIComponent(origin_address)\n    + '&destinations=' + encodeURIComponent(customer_address)\n    + '&units=' + unit_type\n    + '&key=' + google_maps_api_key;\n\nlet distance = -1;\nawait request(maps_url, function(error, response, body) {\n  const payload = JSON.parse(body);\n  if (response && response.statusCode === 200\n      && payload.status === 'OK'\n      && payload.rows[0].elements[0].status === 'OK') {\n    distance = payload.rows[0].elements[0].distance.value;\n    distance = (unit_type === 'metric') ? distance \u002F 1000 : distance \u002F 1609.34;\n  }\n});\n\nif (distance > 60) {\n  rates.error('Sorry, you are too far away for delivery.');\n} else if (distance > -1) {\n  let shipping = 0;\n  if (distance > 25) shipping = 5;\n  if (distance > 40) shipping = 10;\n  rates.add(10001, shipping, '', 'Local Delivery');\n\n  if (shipment['total_item_price'] >= 150) {\n    rates.filter(10001).price(0).service('Free Delivery');\n  }\n} else {\n  rates.error(\"Sorry, we're unable to calculate delivery to your address.\");\n}\n\nrates.add(10000, 0, '', 'Pickup From Store');",{"type":327,"attrs":1904,"content":1905},{"level":329,"textAlign":59},[1906],{"text":1907,"type":333},"External carrier API (EasyPost)",{"type":335,"attrs":1909,"content":1910},{"textAlign":59},[1911,1912,1915],{"text":1891,"type":333},{"text":1893,"type":333,"marks":1913},[1914],{"type":451},{"text":1916,"type":333}," to get multi carrier rates from EasyPost:",{"type":397,"attrs":1918,"content":1919},{"class":59},[1920],{"text":1921,"type":333},"const easypostApiKey = 'YOUR_EASYPOST_KEY';\nconst shipment = cart['_embedded']['fx:shipment'];\n\nconst shipmentData =\n  'shipment[to_address][name]=' + shipment['first_name'] + ' ' + shipment['last_name'] +\n  '&shipment[to_address][street1]=' + shipment['address1'] +\n  '&shipment[to_address][city]=' + shipment['city'] +\n  '&shipment[to_address][state]=' + shipment['region'] +\n  '&shipment[to_address][zip]=' + shipment['postal_code'] +\n  '&shipment[to_address][country]=' + shipment['country'] +\n  '&shipment[from_address][state]=' + shipment['origin_region'] +\n  '&shipment[from_address][zip]=' + shipment['origin_postal_code'] +\n  '&shipment[from_address][country]=' + shipment['origin_country'] +\n  '&shipment[parcel][length]=5&shipment[parcel][width]=5&shipment[parcel][height]=5' +\n  '&shipment[parcel][weight]=' + (shipment['total_weight'] * 16); \u002F\u002F lbs to oz\n\ntry {\n  await request({\n    url: 'https:\u002F\u002Fapi.easypost.com\u002Fv2\u002Fshipments',\n    method: 'POST',\n    body: shipmentData,\n    auth: { 'user': easypostApiKey }\n  }, function(error, response, body) {\n    const payload = JSON.parse(body);\n    for (let i = 0; i \u003C payload.rates.length; i++) {\n      rates.add(10000 + i, payload.rates[i]['rate'],\n          payload.rates[i]['carrier'], payload.rates[i]['service']);\n    }\n  });\n} catch (e) {\n  rates.error(\"Sorry, we're unable to get shipping rates. Please try again or contact us.\");\n}",{"type":327,"attrs":1923,"content":1924},{"level":329,"textAlign":59},[1925],{"text":1926,"type":333},"Full combined example",{"type":335,"attrs":1928,"content":1929},{"textAlign":59},[1930],{"text":1931,"type":333},"A more complete example that ties multiple patterns together (carrier markup, free shipping by coupon and threshold, non contiguous US restrictions, and fallback rates):",{"type":397,"attrs":1933,"content":1934},{"class":59},[1935],{"text":1936,"type":333},"const shipment = cart['_embedded']['fx:shipment'];\nconst country = shipment['country'];\nconst region = shipment['region'];\nconst totalPrice = shipment['total_item_price'];\nconst discounts = cart['_embedded']['fx:discounts'] || [];\n\nconst contiguous = [\n  'AL','AZ','AR','CA','CO','CT','DE','FL','GA','ID','IL','IN','IA','KS',\n  'KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ',\n  'NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT',\n  'VT','VA','WA','WV','WI','WY','DC'\n];\n\nconst hasFreeShipCoupon = discounts.some(d =>\n  d['code'] === 'freeshipping' || d['code'].endsWith('-fs')\n);\n\n\u002F\u002F Apply 10% markup to carrier rates and clean up labels\nif (rates.exists()) {\n  rates.price('*1.10');\n\n  if (country === 'US' && !contiguous.includes(region)) {\n    rates.filter('Overnight').hide();\n    rates.filter('Express').hide();\n  }\n}\n\n\u002F\u002F Free shipping logic\nif (hasFreeShipCoupon && country === 'US') {\n  rates.hide();\n  rates.add(10001, 0, '', 'Free Shipping (Coupon)');\n} else if (country === 'US' && totalPrice >= 75) {\n  rates.add(10001, 0, '', 'Free Standard Shipping');\n}\n\n\u002F\u002F Fallback if no rates at all\nif (!rates.exists()) {\n  if (country === 'US') {\n    rates.add(10090, 7.99, 'Shipping', 'Standard');\n    rates.add(10091, 14.99, 'Shipping', 'Express');\n  } else if (country === 'CA' || country === 'MX') {\n    rates.add(10092, 14.99, 'Shipping', 'North America Standard');\n  } else {\n    rates.add(10093, 24.99, 'Shipping', 'International Standard');\n  }\n}",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":1938},{},"Ready to use code snippets to get started with your Custom Shipping Code.",[],"custom-shipping-code-examples","help\u002Farticles\u002Fcustom-shipping-code-examples",-1910,[],"cd513ab9-1f04-453c-8401-4df4e3694d3e",[],{"name":1948,"created_at":1949,"published_at":1950,"updated_at":1951,"id":1952,"uuid":1953,"content":1954,"slug":5266,"full_slug":5267,"sort_by_date":59,"position":5268,"tag_list":5269,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":5270,"first_published_at":5271,"release_id":59,"lang":65,"path":59,"alternates":5272,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},"Shipping Payload Reference","2026-05-27T21:34:12.304Z","2026-06-03T20:57:52.179Z","2026-06-03T20:57:52.212Z",181158102302665,"e1c530e9-f90b-4e2b-8bee-9cffc70c9e68",{"_uid":1955,"body":1956,"name":1948,"image":5262,"pinned":24,"summary":5264,"category":13,"component":266,"related_articles":5265},"a3a9f7e0-05e1-4ba7-a9c5-38dc4150f073",{"type":324,"content":1957},[1958,1962,1980,1985,1990,1995,2006,2901,2912,2916,2926,2932,3225,3230,3308,3313,3431,3436,3631,3636,3694,3699,3704,3709,3719,3724,3880,3885,3963,3968,4026,4031,4069,4074,4192,4197,4295,4300,4396,4401,4412,4770,4775,4786,4903,4907,4912,4917,4947,4958,4962,4967,4972,4977,4996,5000,5005,5010,5020,5025,5035,5207,5236,5241,5246,5257],{"type":327,"attrs":1959,"content":1960},{"level":329,"textAlign":59},[1961],{"text":332,"type":333},{"type":335,"attrs":1963,"content":1964},{"textAlign":59},[1965,1967,1973,1975,1978],{"text":1966,"type":333},"Both Custom Shipping Code and Custom Shipping Endpoint receive the same JSON payload representing the current cart. In ",{"text":1968,"type":333,"marks":1969},"Custom Shipping Code,",[1970],{"type":372,"attrs":1971},{"href":1972,"uuid":512,"anchor":59,"target":376,"linktype":14},"\u002Fhelp\u002Farticles\u002Fcustom-shipping-code-overview",{"text":1974,"type":333}," it's available as the ",{"text":618,"type":333,"marks":1976},[1977],{"type":451},{"text":1979,"type":333}," global variable. For the Custom Shipping Endpoint, it's the POST body sent to your URL.",{"type":335,"attrs":1981,"content":1982},{"textAlign":59},[1983],{"text":1984,"type":333},"The payload includes everything about the current cart: items, the shipping address and store origin, totals, applied discounts, custom fields, and customer data. It follows the structure of Foxy's Hypermedia API cart resource.",{"type":335,"attrs":1986,"content":1987},{"textAlign":59},[1988],{"text":1989,"type":333},"Below is a reference of every section. ",{"type":327,"attrs":1991,"content":1992},{"level":329,"textAlign":59},[1993],{"text":1994,"type":333},"Top level fields",{"type":335,"attrs":1996,"content":1997},{"textAlign":59},[1998,2000,2004],{"text":1999,"type":333},"All fields at the root of the payload. The ",{"text":2001,"type":333,"marks":2002},"_embedded",[2003],{"type":451},{"text":2005,"type":333}," object containing the resources (shipment, items, discounts, etc.) is documented in the sections that follow.",{"type":2007,"content":2008},"table",[2009,2029,2061,2091,2111,2136,2156,2176,2196,2216,2236,2256,2276,2296,2316,2336,2356,2376,2396,2416,2436,2456,2476,2496,2516,2536,2556,2576,2596,2616,2636,2656,2676,2696,2716,2736,2756,2776,2796,2816,2841,2861,2881],{"type":2010,"content":2011},"tableRow",[2012,2021],{"type":2013,"attrs":2014,"content":2015},"tableHeader",{"colspan":410,"rowspan":410,"colwidth":59},[2016],{"type":335,"attrs":2017,"content":2018},{"textAlign":59},[2019],{"text":2020,"type":333},"Field",{"type":2013,"attrs":2022,"content":2023},{"colspan":410,"rowspan":410,"colwidth":59},[2024],{"type":335,"attrs":2025,"content":2026},{"textAlign":59},[2027],{"text":2028,"type":333},"Description",{"type":2010,"content":2030},[2031,2042],{"type":2032,"attrs":2033,"content":2034},"tableCell",{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2035],{"type":335,"attrs":2036,"content":2037},{"textAlign":59},[2038],{"text":2039,"type":333,"marks":2040},"currency_code",[2041],{"type":451},{"type":2032,"attrs":2043,"content":2044},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2045],{"type":335,"attrs":2046,"content":2047},{"textAlign":59},[2048,2050,2054,2055,2059],{"text":2049,"type":333},"Cart currency code (e.g., ",{"text":2051,"type":333,"marks":2052},"USD",[2053],{"type":451},{"text":1187,"type":333},{"text":2056,"type":333,"marks":2057},"EUR",[2058],{"type":451},{"text":2060,"type":333},"). Custom rates must be in this currency.",{"type":2010,"content":2062},[2063,2073],{"type":2032,"attrs":2064,"content":2065},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2066],{"type":335,"attrs":2067,"content":2068},{"textAlign":59},[2069],{"text":2070,"type":333,"marks":2071},"currency_symbol",[2072],{"type":451},{"type":2032,"attrs":2074,"content":2075},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2076],{"type":335,"attrs":2077,"content":2078},{"textAlign":59},[2079,2081,2085,2086,2090],{"text":2080,"type":333},"Display symbol (e.g., ",{"text":2082,"type":333,"marks":2083},"$",[2084],{"type":451},{"text":1187,"type":333},{"text":2087,"type":333,"marks":2088},"€",[2089],{"type":451},{"text":649,"type":333},{"type":2010,"content":2092},[2093,2103],{"type":2032,"attrs":2094,"content":2095},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2096],{"type":335,"attrs":2097,"content":2098},{"textAlign":59},[2099],{"text":2100,"type":333,"marks":2101},"language",[2102],{"type":451},{"type":2032,"attrs":2104,"content":2105},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2106],{"type":335,"attrs":2107,"content":2108},{"textAlign":59},[2109],{"text":2110,"type":333},"Language code for the cart session",{"type":2010,"content":2112},[2113,2123],{"type":2032,"attrs":2114,"content":2115},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2116],{"type":335,"attrs":2117,"content":2118},{"textAlign":59},[2119],{"text":2120,"type":333,"marks":2121},"locale_code",[2122],{"type":451},{"type":2032,"attrs":2124,"content":2125},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2126],{"type":335,"attrs":2127,"content":2128},{"textAlign":59},[2129,2131,2135],{"text":2130,"type":333},"Locale for number\u002Fdate formatting (e.g., ",{"text":2132,"type":333,"marks":2133},"en_US",[2134],{"type":451},{"text":649,"type":333},{"type":2010,"content":2137},[2138,2148],{"type":2032,"attrs":2139,"content":2140},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2141],{"type":335,"attrs":2142,"content":2143},{"textAlign":59},[2144],{"text":2145,"type":333,"marks":2146},"total_item_price",[2147],{"type":451},{"type":2032,"attrs":2149,"content":2150},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2151],{"type":335,"attrs":2152,"content":2153},{"textAlign":59},[2154],{"text":2155,"type":333},"Subtotal of all items (before shipping and taxes)",{"type":2010,"content":2157},[2158,2168],{"type":2032,"attrs":2159,"content":2160},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2161],{"type":335,"attrs":2162,"content":2163},{"textAlign":59},[2164],{"text":2165,"type":333,"marks":2166},"total_tax",[2167],{"type":451},{"type":2032,"attrs":2169,"content":2170},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2171],{"type":335,"attrs":2172,"content":2173},{"textAlign":59},[2174],{"text":2175,"type":333},"Total tax amount",{"type":2010,"content":2177},[2178,2188],{"type":2032,"attrs":2179,"content":2180},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2181],{"type":335,"attrs":2182,"content":2183},{"textAlign":59},[2184],{"text":2185,"type":333,"marks":2186},"total_shipping",[2187],{"type":451},{"type":2032,"attrs":2189,"content":2190},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2191],{"type":335,"attrs":2192,"content":2193},{"textAlign":59},[2194],{"text":2195,"type":333},"Total shipping amount",{"type":2010,"content":2197},[2198,2208],{"type":2032,"attrs":2199,"content":2200},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2201],{"type":335,"attrs":2202,"content":2203},{"textAlign":59},[2204],{"text":2205,"type":333,"marks":2206},"total_order",[2207],{"type":451},{"type":2032,"attrs":2209,"content":2210},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2211],{"type":335,"attrs":2212,"content":2213},{"textAlign":59},[2214],{"text":2215,"type":333},"Grand total (items + tax + shipping)",{"type":2010,"content":2217},[2218,2228],{"type":2032,"attrs":2219,"content":2220},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2221],{"type":335,"attrs":2222,"content":2223},{"textAlign":59},[2224],{"text":2225,"type":333,"marks":2226},"total_discount",[2227],{"type":451},{"type":2032,"attrs":2229,"content":2230},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2231],{"type":335,"attrs":2232,"content":2233},{"textAlign":59},[2234],{"text":2235,"type":333},"Total discount amount from coupons",{"type":2010,"content":2237},[2238,2248],{"type":2032,"attrs":2239,"content":2240},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2241],{"type":335,"attrs":2242,"content":2243},{"textAlign":59},[2244],{"text":2245,"type":333,"marks":2246},"total_future_shipping",[2247],{"type":451},{"type":2032,"attrs":2249,"content":2250},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2251],{"type":335,"attrs":2252,"content":2253},{"textAlign":59},[2254],{"text":2255,"type":333},"Future shipping for subscription items",{"type":2010,"content":2257},[2258,2268],{"type":2032,"attrs":2259,"content":2260},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2261],{"type":335,"attrs":2262,"content":2263},{"textAlign":59},[2264],{"text":2265,"type":333,"marks":2266},"total_future_item_price",[2267],{"type":451},{"type":2032,"attrs":2269,"content":2270},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2271],{"type":335,"attrs":2272,"content":2273},{"textAlign":59},[2274],{"text":2275,"type":333},"Future item price for subscription items",{"type":2010,"content":2277},[2278,2288],{"type":2032,"attrs":2279,"content":2280},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2281],{"type":335,"attrs":2282,"content":2283},{"textAlign":59},[2284],{"text":2285,"type":333,"marks":2286},"billing_first_name",[2287],{"type":451},{"type":2032,"attrs":2289,"content":2290},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2291],{"type":335,"attrs":2292,"content":2293},{"textAlign":59},[2294],{"text":2295,"type":333},"Billing first name",{"type":2010,"content":2297},[2298,2308],{"type":2032,"attrs":2299,"content":2300},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2301],{"type":335,"attrs":2302,"content":2303},{"textAlign":59},[2304],{"text":2305,"type":333,"marks":2306},"billing_last_name",[2307],{"type":451},{"type":2032,"attrs":2309,"content":2310},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2311],{"type":335,"attrs":2312,"content":2313},{"textAlign":59},[2314],{"text":2315,"type":333},"Billing last name",{"type":2010,"content":2317},[2318,2328],{"type":2032,"attrs":2319,"content":2320},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2321],{"type":335,"attrs":2322,"content":2323},{"textAlign":59},[2324],{"text":2325,"type":333,"marks":2326},"billing_company",[2327],{"type":451},{"type":2032,"attrs":2329,"content":2330},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2331],{"type":335,"attrs":2332,"content":2333},{"textAlign":59},[2334],{"text":2335,"type":333},"Billing company",{"type":2010,"content":2337},[2338,2348],{"type":2032,"attrs":2339,"content":2340},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2341],{"type":335,"attrs":2342,"content":2343},{"textAlign":59},[2344],{"text":2345,"type":333,"marks":2346},"billing_address1",[2347],{"type":451},{"type":2032,"attrs":2349,"content":2350},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2351],{"type":335,"attrs":2352,"content":2353},{"textAlign":59},[2354],{"text":2355,"type":333},"Billing street address line 1",{"type":2010,"content":2357},[2358,2368],{"type":2032,"attrs":2359,"content":2360},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2361],{"type":335,"attrs":2362,"content":2363},{"textAlign":59},[2364],{"text":2365,"type":333,"marks":2366},"billing_address2",[2367],{"type":451},{"type":2032,"attrs":2369,"content":2370},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2371],{"type":335,"attrs":2372,"content":2373},{"textAlign":59},[2374],{"text":2375,"type":333},"Billing street address line 2",{"type":2010,"content":2377},[2378,2388],{"type":2032,"attrs":2379,"content":2380},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2381],{"type":335,"attrs":2382,"content":2383},{"textAlign":59},[2384],{"text":2385,"type":333,"marks":2386},"billing_city",[2387],{"type":451},{"type":2032,"attrs":2389,"content":2390},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2391],{"type":335,"attrs":2392,"content":2393},{"textAlign":59},[2394],{"text":2395,"type":333},"Billing city",{"type":2010,"content":2397},[2398,2408],{"type":2032,"attrs":2399,"content":2400},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2401],{"type":335,"attrs":2402,"content":2403},{"textAlign":59},[2404],{"text":2405,"type":333,"marks":2406},"billing_state",[2407],{"type":451},{"type":2032,"attrs":2409,"content":2410},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2411],{"type":335,"attrs":2412,"content":2413},{"textAlign":59},[2414],{"text":2415,"type":333},"Billing state\u002Fprovince",{"type":2010,"content":2417},[2418,2428],{"type":2032,"attrs":2419,"content":2420},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2421],{"type":335,"attrs":2422,"content":2423},{"textAlign":59},[2424],{"text":2425,"type":333,"marks":2426},"billing_postal_code",[2427],{"type":451},{"type":2032,"attrs":2429,"content":2430},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2431],{"type":335,"attrs":2432,"content":2433},{"textAlign":59},[2434],{"text":2435,"type":333},"Billing ZIP\u002Fpostal code",{"type":2010,"content":2437},[2438,2448],{"type":2032,"attrs":2439,"content":2440},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2441],{"type":335,"attrs":2442,"content":2443},{"textAlign":59},[2444],{"text":2445,"type":333,"marks":2446},"billing_country",[2447],{"type":451},{"type":2032,"attrs":2449,"content":2450},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2451],{"type":335,"attrs":2452,"content":2453},{"textAlign":59},[2454],{"text":2455,"type":333},"Billing country code",{"type":2010,"content":2457},[2458,2468],{"type":2032,"attrs":2459,"content":2460},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2461],{"type":335,"attrs":2462,"content":2463},{"textAlign":59},[2464],{"text":2465,"type":333,"marks":2466},"billing_phone",[2467],{"type":451},{"type":2032,"attrs":2469,"content":2470},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2471],{"type":335,"attrs":2472,"content":2473},{"textAlign":59},[2474],{"text":2475,"type":333},"Billing phone number",{"type":2010,"content":2477},[2478,2488],{"type":2032,"attrs":2479,"content":2480},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2481],{"type":335,"attrs":2482,"content":2483},{"textAlign":59},[2484],{"text":2485,"type":333,"marks":2486},"shipping_first_name",[2487],{"type":451},{"type":2032,"attrs":2489,"content":2490},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2491],{"type":335,"attrs":2492,"content":2493},{"textAlign":59},[2494],{"text":2495,"type":333},"Shipping first name",{"type":2010,"content":2497},[2498,2508],{"type":2032,"attrs":2499,"content":2500},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2501],{"type":335,"attrs":2502,"content":2503},{"textAlign":59},[2504],{"text":2505,"type":333,"marks":2506},"shipping_last_name",[2507],{"type":451},{"type":2032,"attrs":2509,"content":2510},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2511],{"type":335,"attrs":2512,"content":2513},{"textAlign":59},[2514],{"text":2515,"type":333},"Shipping last name",{"type":2010,"content":2517},[2518,2528],{"type":2032,"attrs":2519,"content":2520},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2521],{"type":335,"attrs":2522,"content":2523},{"textAlign":59},[2524],{"text":2525,"type":333,"marks":2526},"shipping_company",[2527],{"type":451},{"type":2032,"attrs":2529,"content":2530},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2531],{"type":335,"attrs":2532,"content":2533},{"textAlign":59},[2534],{"text":2535,"type":333},"Shipping company",{"type":2010,"content":2537},[2538,2548],{"type":2032,"attrs":2539,"content":2540},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2541],{"type":335,"attrs":2542,"content":2543},{"textAlign":59},[2544],{"text":2545,"type":333,"marks":2546},"shipping_address1",[2547],{"type":451},{"type":2032,"attrs":2549,"content":2550},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2551],{"type":335,"attrs":2552,"content":2553},{"textAlign":59},[2554],{"text":2555,"type":333},"Shipping street address line 1",{"type":2010,"content":2557},[2558,2568],{"type":2032,"attrs":2559,"content":2560},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2561],{"type":335,"attrs":2562,"content":2563},{"textAlign":59},[2564],{"text":2565,"type":333,"marks":2566},"shipping_address2",[2567],{"type":451},{"type":2032,"attrs":2569,"content":2570},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2571],{"type":335,"attrs":2572,"content":2573},{"textAlign":59},[2574],{"text":2575,"type":333},"Shipping street address line 2",{"type":2010,"content":2577},[2578,2588],{"type":2032,"attrs":2579,"content":2580},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2581],{"type":335,"attrs":2582,"content":2583},{"textAlign":59},[2584],{"text":2585,"type":333,"marks":2586},"shipping_city",[2587],{"type":451},{"type":2032,"attrs":2589,"content":2590},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2591],{"type":335,"attrs":2592,"content":2593},{"textAlign":59},[2594],{"text":2595,"type":333},"Shipping city",{"type":2010,"content":2597},[2598,2608],{"type":2032,"attrs":2599,"content":2600},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2601],{"type":335,"attrs":2602,"content":2603},{"textAlign":59},[2604],{"text":2605,"type":333,"marks":2606},"shipping_state",[2607],{"type":451},{"type":2032,"attrs":2609,"content":2610},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2611],{"type":335,"attrs":2612,"content":2613},{"textAlign":59},[2614],{"text":2615,"type":333},"Shipping state\u002Fprovince",{"type":2010,"content":2617},[2618,2628],{"type":2032,"attrs":2619,"content":2620},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2621],{"type":335,"attrs":2622,"content":2623},{"textAlign":59},[2624],{"text":2625,"type":333,"marks":2626},"shipping_postal_code",[2627],{"type":451},{"type":2032,"attrs":2629,"content":2630},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2631],{"type":335,"attrs":2632,"content":2633},{"textAlign":59},[2634],{"text":2635,"type":333},"Shipping ZIP\u002Fpostal code",{"type":2010,"content":2637},[2638,2648],{"type":2032,"attrs":2639,"content":2640},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2641],{"type":335,"attrs":2642,"content":2643},{"textAlign":59},[2644],{"text":2645,"type":333,"marks":2646},"shipping_country",[2647],{"type":451},{"type":2032,"attrs":2649,"content":2650},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2651],{"type":335,"attrs":2652,"content":2653},{"textAlign":59},[2654],{"text":2655,"type":333},"Shipping country code",{"type":2010,"content":2657},[2658,2668],{"type":2032,"attrs":2659,"content":2660},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2661],{"type":335,"attrs":2662,"content":2663},{"textAlign":59},[2664],{"text":2665,"type":333,"marks":2666},"shipping_phone",[2667],{"type":451},{"type":2032,"attrs":2669,"content":2670},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2671],{"type":335,"attrs":2672,"content":2673},{"textAlign":59},[2674],{"text":2675,"type":333},"Shipping phone number",{"type":2010,"content":2677},[2678,2688],{"type":2032,"attrs":2679,"content":2680},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2681],{"type":335,"attrs":2682,"content":2683},{"textAlign":59},[2684],{"text":2685,"type":333,"marks":2686},"customer_email",[2687],{"type":451},{"type":2032,"attrs":2689,"content":2690},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2691],{"type":335,"attrs":2692,"content":2693},{"textAlign":59},[2694],{"text":2695,"type":333},"Customer's email address",{"type":2010,"content":2697},[2698,2708],{"type":2032,"attrs":2699,"content":2700},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2701],{"type":335,"attrs":2702,"content":2703},{"textAlign":59},[2704],{"text":2705,"type":333,"marks":2706},"customer_ip",[2707],{"type":451},{"type":2032,"attrs":2709,"content":2710},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2711],{"type":335,"attrs":2712,"content":2713},{"textAlign":59},[2714],{"text":2715,"type":333},"Customer's IP address",{"type":2010,"content":2717},[2718,2728],{"type":2032,"attrs":2719,"content":2720},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2721],{"type":335,"attrs":2722,"content":2723},{"textAlign":59},[2724],{"text":2725,"type":333,"marks":2726},"ip_country",[2727],{"type":451},{"type":2032,"attrs":2729,"content":2730},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2731],{"type":335,"attrs":2732,"content":2733},{"textAlign":59},[2734],{"text":2735,"type":333},"Country name derived from IP",{"type":2010,"content":2737},[2738,2748],{"type":2032,"attrs":2739,"content":2740},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2741],{"type":335,"attrs":2742,"content":2743},{"textAlign":59},[2744],{"text":2745,"type":333,"marks":2746},"use_customer_shipping_address",[2747],{"type":451},{"type":2032,"attrs":2749,"content":2750},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2751],{"type":335,"attrs":2752,"content":2753},{"textAlign":59},[2754],{"text":2755,"type":333},"Boolean: whether the customer is using a saved shipping address",{"type":2010,"content":2757},[2758,2768],{"type":2032,"attrs":2759,"content":2760},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2761],{"type":335,"attrs":2762,"content":2763},{"textAlign":59},[2764],{"text":2765,"type":333,"marks":2766},"template_set_uri",[2767],{"type":451},{"type":2032,"attrs":2769,"content":2770},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2771],{"type":335,"attrs":2772,"content":2773},{"textAlign":59},[2774],{"text":2775,"type":333},"URI of the template set applied to this cart",{"type":2010,"content":2777},[2778,2788],{"type":2032,"attrs":2779,"content":2780},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2781],{"type":335,"attrs":2782,"content":2783},{"textAlign":59},[2784],{"text":2785,"type":333,"marks":2786},"customer_uri",[2787],{"type":451},{"type":2032,"attrs":2789,"content":2790},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2791],{"type":335,"attrs":2792,"content":2793},{"textAlign":59},[2794],{"text":2795,"type":333},"URI of the customer resource",{"type":2010,"content":2797},[2798,2808],{"type":2032,"attrs":2799,"content":2800},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2801],{"type":335,"attrs":2802,"content":2803},{"textAlign":59},[2804],{"text":2805,"type":333,"marks":2806},"payment_method_uri",[2807],{"type":451},{"type":2032,"attrs":2809,"content":2810},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2811],{"type":335,"attrs":2812,"content":2813},{"textAlign":59},[2814],{"text":2815,"type":333},"URI of the payment method",{"type":2010,"content":2817},[2818,2828],{"type":2032,"attrs":2819,"content":2820},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2821],{"type":335,"attrs":2822,"content":2823},{"textAlign":59},[2824],{"text":2825,"type":333,"marks":2826},"session_name",[2827],{"type":451},{"type":2032,"attrs":2829,"content":2830},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2831],{"type":335,"attrs":2832,"content":2833},{"textAlign":59},[2834,2836,2840],{"text":2835,"type":333},"Session cookie name (e.g., ",{"text":2837,"type":333,"marks":2838},"fcsid",[2839],{"type":451},{"text":649,"type":333},{"type":2010,"content":2842},[2843,2853],{"type":2032,"attrs":2844,"content":2845},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2846],{"type":335,"attrs":2847,"content":2848},{"textAlign":59},[2849],{"text":2850,"type":333,"marks":2851},"session_id",[2852],{"type":451},{"type":2032,"attrs":2854,"content":2855},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2856],{"type":335,"attrs":2857,"content":2858},{"textAlign":59},[2859],{"text":2860,"type":333},"Session ID string",{"type":2010,"content":2862},[2863,2873],{"type":2032,"attrs":2864,"content":2865},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2866],{"type":335,"attrs":2867,"content":2868},{"textAlign":59},[2869],{"text":2870,"type":333,"marks":2871},"date_created",[2872],{"type":451},{"type":2032,"attrs":2874,"content":2875},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2876],{"type":335,"attrs":2877,"content":2878},{"textAlign":59},[2879],{"text":2880,"type":333},"Cart creation timestamp",{"type":2010,"content":2882},[2883,2893],{"type":2032,"attrs":2884,"content":2885},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2886],{"type":335,"attrs":2887,"content":2888},{"textAlign":59},[2889],{"text":2890,"type":333,"marks":2891},"date_modified",[2892],{"type":451},{"type":2032,"attrs":2894,"content":2895},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2896],{"type":335,"attrs":2897,"content":2898},{"textAlign":59},[2899],{"text":2900,"type":333},"Cart last modified timestamp",{"type":335,"attrs":2902,"content":2903},{"textAlign":59},[2904,2906,2910],{"text":2905,"type":333},"For shipping logic, the ",{"text":2907,"type":333,"marks":2908},"fx:shipment",[2909],{"type":451},{"text":2911,"type":333}," embedded resource (below) is generally more useful than the top level shipping fields because it also includes the store's origin address, package details, and shipment totals.",{"type":327,"attrs":2913,"content":2914},{"level":329,"textAlign":59},[2915],{"text":2907,"type":333},{"type":335,"attrs":2917,"content":2918},{"textAlign":59},[2919,2920,2924],{"text":781,"type":333},{"text":2921,"type":333,"marks":2922},"_embedded[\"fx:shipment\"]",[2923],{"type":451},{"text":2925,"type":333}," object is where you'll spend most of your time. It contains the customer's shipping address, the store's origin address, package details, and rolled up totals for the shipment.",{"type":327,"attrs":2927,"content":2929},{"level":2928,"textAlign":59},3,[2930],{"text":2931,"type":333},"Customer shipping address",{"type":2007,"content":2933},[2934,2950,2970,2990,3010,3030,3050,3070,3090,3110,3130,3150,3170,3205],{"type":2010,"content":2935},[2936,2943],{"type":2013,"attrs":2937,"content":2938},{"colspan":410,"rowspan":410,"colwidth":59},[2939],{"type":335,"attrs":2940,"content":2941},{"textAlign":59},[2942],{"text":2020,"type":333},{"type":2013,"attrs":2944,"content":2945},{"colspan":410,"rowspan":410,"colwidth":59},[2946],{"type":335,"attrs":2947,"content":2948},{"textAlign":59},[2949],{"text":2028,"type":333},{"type":2010,"content":2951},[2952,2962],{"type":2032,"attrs":2953,"content":2954},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2955],{"type":335,"attrs":2956,"content":2957},{"textAlign":59},[2958],{"text":2959,"type":333,"marks":2960},"first_name",[2961],{"type":451},{"type":2032,"attrs":2963,"content":2964},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2965],{"type":335,"attrs":2966,"content":2967},{"textAlign":59},[2968],{"text":2969,"type":333},"Customer's first name",{"type":2010,"content":2971},[2972,2982],{"type":2032,"attrs":2973,"content":2974},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2975],{"type":335,"attrs":2976,"content":2977},{"textAlign":59},[2978],{"text":2979,"type":333,"marks":2980},"last_name",[2981],{"type":451},{"type":2032,"attrs":2983,"content":2984},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2985],{"type":335,"attrs":2986,"content":2987},{"textAlign":59},[2988],{"text":2989,"type":333},"Customer's last name",{"type":2010,"content":2991},[2992,3002],{"type":2032,"attrs":2993,"content":2994},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[2995],{"type":335,"attrs":2996,"content":2997},{"textAlign":59},[2998],{"text":2999,"type":333,"marks":3000},"company",[3001],{"type":451},{"type":2032,"attrs":3003,"content":3004},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3005],{"type":335,"attrs":3006,"content":3007},{"textAlign":59},[3008],{"text":3009,"type":333},"Company name (empty string if not provided)",{"type":2010,"content":3011},[3012,3022],{"type":2032,"attrs":3013,"content":3014},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3015],{"type":335,"attrs":3016,"content":3017},{"textAlign":59},[3018],{"text":3019,"type":333,"marks":3020},"email",[3021],{"type":451},{"type":2032,"attrs":3023,"content":3024},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3025],{"type":335,"attrs":3026,"content":3027},{"textAlign":59},[3028],{"text":3029,"type":333},"Customer's email",{"type":2010,"content":3031},[3032,3042],{"type":2032,"attrs":3033,"content":3034},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3035],{"type":335,"attrs":3036,"content":3037},{"textAlign":59},[3038],{"text":3039,"type":333,"marks":3040},"customer_id",[3041],{"type":451},{"type":2032,"attrs":3043,"content":3044},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3045],{"type":335,"attrs":3046,"content":3047},{"textAlign":59},[3048],{"text":3049,"type":333},"Customer ID",{"type":2010,"content":3051},[3052,3062],{"type":2032,"attrs":3053,"content":3054},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3055],{"type":335,"attrs":3056,"content":3057},{"textAlign":59},[3058],{"text":3059,"type":333,"marks":3060},"address_name",[3061],{"type":451},{"type":2032,"attrs":3063,"content":3064},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3065],{"type":335,"attrs":3066,"content":3067},{"textAlign":59},[3068],{"text":3069,"type":333},"Named address label (if using saved addresses)",{"type":2010,"content":3071},[3072,3082],{"type":2032,"attrs":3073,"content":3074},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3075],{"type":335,"attrs":3076,"content":3077},{"textAlign":59},[3078],{"text":3079,"type":333,"marks":3080},"address1",[3081],{"type":451},{"type":2032,"attrs":3083,"content":3084},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3085],{"type":335,"attrs":3086,"content":3087},{"textAlign":59},[3088],{"text":3089,"type":333},"Street address line 1",{"type":2010,"content":3091},[3092,3102],{"type":2032,"attrs":3093,"content":3094},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3095],{"type":335,"attrs":3096,"content":3097},{"textAlign":59},[3098],{"text":3099,"type":333,"marks":3100},"address2",[3101],{"type":451},{"type":2032,"attrs":3103,"content":3104},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3105],{"type":335,"attrs":3106,"content":3107},{"textAlign":59},[3108],{"text":3109,"type":333},"Street address line 2",{"type":2010,"content":3111},[3112,3122],{"type":2032,"attrs":3113,"content":3114},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3115],{"type":335,"attrs":3116,"content":3117},{"textAlign":59},[3118],{"text":3119,"type":333,"marks":3120},"city",[3121],{"type":451},{"type":2032,"attrs":3123,"content":3124},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3125],{"type":335,"attrs":3126,"content":3127},{"textAlign":59},[3128],{"text":3129,"type":333},"City",{"type":2010,"content":3131},[3132,3142],{"type":2032,"attrs":3133,"content":3134},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3135],{"type":335,"attrs":3136,"content":3137},{"textAlign":59},[3138],{"text":3139,"type":333,"marks":3140},"region",[3141],{"type":451},{"type":2032,"attrs":3143,"content":3144},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3145],{"type":335,"attrs":3146,"content":3147},{"textAlign":59},[3148],{"text":3149,"type":333},"State, province, or region code",{"type":2010,"content":3151},[3152,3162],{"type":2032,"attrs":3153,"content":3154},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3155],{"type":335,"attrs":3156,"content":3157},{"textAlign":59},[3158],{"text":3159,"type":333,"marks":3160},"postal_code",[3161],{"type":451},{"type":2032,"attrs":3163,"content":3164},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3165],{"type":335,"attrs":3166,"content":3167},{"textAlign":59},[3168],{"text":3169,"type":333},"ZIP or postal code",{"type":2010,"content":3171},[3172,3182],{"type":2032,"attrs":3173,"content":3174},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3175],{"type":335,"attrs":3176,"content":3177},{"textAlign":59},[3178],{"text":3179,"type":333,"marks":3180},"country",[3181],{"type":451},{"type":2032,"attrs":3183,"content":3184},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3185],{"type":335,"attrs":3186,"content":3187},{"textAlign":59},[3188,3190,3194,3195,3199,3200,3204],{"text":3189,"type":333},"Two letter country code (e.g., ",{"text":3191,"type":333,"marks":3192},"US",[3193],{"type":451},{"text":1187,"type":333},{"text":3196,"type":333,"marks":3197},"GB",[3198],{"type":451},{"text":1187,"type":333},{"text":3201,"type":333,"marks":3202},"CA",[3203],{"type":451},{"text":649,"type":333},{"type":2010,"content":3206},[3207,3217],{"type":2032,"attrs":3208,"content":3209},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3210],{"type":335,"attrs":3211,"content":3212},{"textAlign":59},[3213],{"text":3214,"type":333,"marks":3215},"is_residential",[3216],{"type":451},{"type":2032,"attrs":3218,"content":3219},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3220],{"type":335,"attrs":3221,"content":3222},{"textAlign":59},[3223],{"text":3224,"type":333},"Boolean: whether the address is classified as residential",{"type":327,"attrs":3226,"content":3227},{"level":2928,"textAlign":59},[3228],{"text":3229,"type":333},"Origin address",{"type":2007,"content":3231},[3232,3248,3268,3288],{"type":2010,"content":3233},[3234,3241],{"type":2013,"attrs":3235,"content":3236},{"colspan":410,"rowspan":410,"colwidth":59},[3237],{"type":335,"attrs":3238,"content":3239},{"textAlign":59},[3240],{"text":2020,"type":333},{"type":2013,"attrs":3242,"content":3243},{"colspan":410,"rowspan":410,"colwidth":59},[3244],{"type":335,"attrs":3245,"content":3246},{"textAlign":59},[3247],{"text":2028,"type":333},{"type":2010,"content":3249},[3250,3260],{"type":2032,"attrs":3251,"content":3252},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3253],{"type":335,"attrs":3254,"content":3255},{"textAlign":59},[3256],{"text":3257,"type":333,"marks":3258},"origin_region",[3259],{"type":451},{"type":2032,"attrs":3261,"content":3262},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3263],{"type":335,"attrs":3264,"content":3265},{"textAlign":59},[3266],{"text":3267,"type":333},"Store's origin state\u002Fprovince",{"type":2010,"content":3269},[3270,3280],{"type":2032,"attrs":3271,"content":3272},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3273],{"type":335,"attrs":3274,"content":3275},{"textAlign":59},[3276],{"text":3277,"type":333,"marks":3278},"origin_postal_code",[3279],{"type":451},{"type":2032,"attrs":3281,"content":3282},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3283],{"type":335,"attrs":3284,"content":3285},{"textAlign":59},[3286],{"text":3287,"type":333},"Store's origin ZIP\u002Fpostal code",{"type":2010,"content":3289},[3290,3300],{"type":2032,"attrs":3291,"content":3292},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3293],{"type":335,"attrs":3294,"content":3295},{"textAlign":59},[3296],{"text":3297,"type":333,"marks":3298},"origin_country",[3299],{"type":451},{"type":2032,"attrs":3301,"content":3302},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3303],{"type":335,"attrs":3304,"content":3305},{"textAlign":59},[3306],{"text":3307,"type":333},"Store's origin country code",{"type":327,"attrs":3309,"content":3310},{"level":2928,"textAlign":59},[3311],{"text":3312,"type":333},"Package details",{"type":2007,"content":3314},[3315,3331,3351,3371,3391,3411],{"type":2010,"content":3316},[3317,3324],{"type":2013,"attrs":3318,"content":3319},{"colspan":410,"rowspan":410,"colwidth":59},[3320],{"type":335,"attrs":3321,"content":3322},{"textAlign":59},[3323],{"text":2020,"type":333},{"type":2013,"attrs":3325,"content":3326},{"colspan":410,"rowspan":410,"colwidth":59},[3327],{"type":335,"attrs":3328,"content":3329},{"textAlign":59},[3330],{"text":2028,"type":333},{"type":2010,"content":3332},[3333,3343],{"type":2032,"attrs":3334,"content":3335},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3336],{"type":335,"attrs":3337,"content":3338},{"textAlign":59},[3339],{"text":3340,"type":333,"marks":3341},"package_count",[3342],{"type":451},{"type":2032,"attrs":3344,"content":3345},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3346],{"type":335,"attrs":3347,"content":3348},{"textAlign":59},[3349],{"text":3350,"type":333},"Number of packages (based on max package weight setting)",{"type":2010,"content":3352},[3353,3363],{"type":2032,"attrs":3354,"content":3355},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3356],{"type":335,"attrs":3357,"content":3358},{"textAlign":59},[3359],{"text":3360,"type":333,"marks":3361},"package_weight",[3362],{"type":451},{"type":2032,"attrs":3364,"content":3365},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3366],{"type":335,"attrs":3367,"content":3368},{"textAlign":59},[3369],{"text":3370,"type":333},"Per package weight",{"type":2010,"content":3372},[3373,3383],{"type":2032,"attrs":3374,"content":3375},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3376],{"type":335,"attrs":3377,"content":3378},{"textAlign":59},[3379],{"text":3380,"type":333,"marks":3381},"package_length",[3382],{"type":451},{"type":2032,"attrs":3384,"content":3385},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3386],{"type":335,"attrs":3387,"content":3388},{"textAlign":59},[3389],{"text":3390,"type":333},"Package length",{"type":2010,"content":3392},[3393,3403],{"type":2032,"attrs":3394,"content":3395},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3396],{"type":335,"attrs":3397,"content":3398},{"textAlign":59},[3399],{"text":3400,"type":333,"marks":3401},"package_width",[3402],{"type":451},{"type":2032,"attrs":3404,"content":3405},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3406],{"type":335,"attrs":3407,"content":3408},{"textAlign":59},[3409],{"text":3410,"type":333},"Package width",{"type":2010,"content":3412},[3413,3423],{"type":2032,"attrs":3414,"content":3415},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3416],{"type":335,"attrs":3417,"content":3418},{"textAlign":59},[3419],{"text":3420,"type":333,"marks":3421},"package_height",[3422],{"type":451},{"type":2032,"attrs":3424,"content":3425},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3426],{"type":335,"attrs":3427,"content":3428},{"textAlign":59},[3429],{"text":3430,"type":333},"Package height",{"type":327,"attrs":3432,"content":3433},{"level":2928,"textAlign":59},[3434],{"text":3435,"type":333},"Shipment totals",{"type":2007,"content":3437},[3438,3454,3474,3494,3513,3533,3553,3573,3592,3611],{"type":2010,"content":3439},[3440,3447],{"type":2013,"attrs":3441,"content":3442},{"colspan":410,"rowspan":410,"colwidth":59},[3443],{"type":335,"attrs":3444,"content":3445},{"textAlign":59},[3446],{"text":2020,"type":333},{"type":2013,"attrs":3448,"content":3449},{"colspan":410,"rowspan":410,"colwidth":59},[3450],{"type":335,"attrs":3451,"content":3452},{"textAlign":59},[3453],{"text":2028,"type":333},{"type":2010,"content":3455},[3456,3466],{"type":2032,"attrs":3457,"content":3458},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3459],{"type":335,"attrs":3460,"content":3461},{"textAlign":59},[3462],{"text":3463,"type":333,"marks":3464},"item_count",[3465],{"type":451},{"type":2032,"attrs":3467,"content":3468},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3469],{"type":335,"attrs":3470,"content":3471},{"textAlign":59},[3472],{"text":3473,"type":333},"Total number of items in the cart",{"type":2010,"content":3475},[3476,3486],{"type":2032,"attrs":3477,"content":3478},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3479],{"type":335,"attrs":3480,"content":3481},{"textAlign":59},[3482],{"text":3483,"type":333,"marks":3484},"total_weight",[3485],{"type":451},{"type":2032,"attrs":3487,"content":3488},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3489],{"type":335,"attrs":3490,"content":3491},{"textAlign":59},[3492],{"text":3493,"type":333},"Combined weight of all items",{"type":2010,"content":3495},[3496,3505],{"type":2032,"attrs":3497,"content":3498},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3499],{"type":335,"attrs":3500,"content":3501},{"textAlign":59},[3502],{"text":2145,"type":333,"marks":3503},[3504],{"type":451},{"type":2032,"attrs":3506,"content":3507},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3508],{"type":335,"attrs":3509,"content":3510},{"textAlign":59},[3511],{"text":3512,"type":333},"Subtotal (item prices before shipping and taxes)",{"type":2010,"content":3514},[3515,3525],{"type":2032,"attrs":3516,"content":3517},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3518],{"type":335,"attrs":3519,"content":3520},{"textAlign":59},[3521],{"text":3522,"type":333,"marks":3523},"total_customs_value",[3524],{"type":451},{"type":2032,"attrs":3526,"content":3527},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3528],{"type":335,"attrs":3529,"content":3530},{"textAlign":59},[3531],{"text":3532,"type":333},"Total customs value for international shipments",{"type":2010,"content":3534},[3535,3545],{"type":2032,"attrs":3536,"content":3537},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3538],{"type":335,"attrs":3539,"content":3540},{"textAlign":59},[3541],{"text":3542,"type":333,"marks":3543},"total_handling_fee",[3544],{"type":451},{"type":2032,"attrs":3546,"content":3547},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3548],{"type":335,"attrs":3549,"content":3550},{"textAlign":59},[3551],{"text":3552,"type":333},"Total handling fees from all categories",{"type":2010,"content":3554},[3555,3565],{"type":2032,"attrs":3556,"content":3557},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3558],{"type":335,"attrs":3559,"content":3560},{"textAlign":59},[3561],{"text":3562,"type":333,"marks":3563},"total_flat_rate_shipping",[3564],{"type":451},{"type":2032,"attrs":3566,"content":3567},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3568],{"type":335,"attrs":3569,"content":3570},{"textAlign":59},[3571],{"text":3572,"type":333},"Total flat rate shipping from all categories",{"type":2010,"content":3574},[3575,3584],{"type":2032,"attrs":3576,"content":3577},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3578],{"type":335,"attrs":3579,"content":3580},{"textAlign":59},[3581],{"text":2165,"type":333,"marks":3582},[3583],{"type":451},{"type":2032,"attrs":3585,"content":3586},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3587],{"type":335,"attrs":3588,"content":3589},{"textAlign":59},[3590],{"text":3591,"type":333},"Total tax",{"type":2010,"content":3593},[3594,3603],{"type":2032,"attrs":3595,"content":3596},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3597],{"type":335,"attrs":3598,"content":3599},{"textAlign":59},[3600],{"text":2185,"type":333,"marks":3601},[3602],{"type":451},{"type":2032,"attrs":3604,"content":3605},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3606],{"type":335,"attrs":3607,"content":3608},{"textAlign":59},[3609],{"text":3610,"type":333},"Total shipping (may be 0 when your code runs, since rates haven't been selected yet)",{"type":2010,"content":3612},[3613,3623],{"type":2032,"attrs":3614,"content":3615},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3616],{"type":335,"attrs":3617,"content":3618},{"textAlign":59},[3619],{"text":3620,"type":333,"marks":3621},"total_price",[3622],{"type":451},{"type":2032,"attrs":3624,"content":3625},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3626],{"type":335,"attrs":3627,"content":3628},{"textAlign":59},[3629],{"text":3630,"type":333},"Grand total",{"type":327,"attrs":3632,"content":3633},{"level":2928,"textAlign":59},[3634],{"text":3635,"type":333},"Shipping service",{"type":2007,"content":3637},[3638,3654,3674],{"type":2010,"content":3639},[3640,3647],{"type":2013,"attrs":3641,"content":3642},{"colspan":410,"rowspan":410,"colwidth":59},[3643],{"type":335,"attrs":3644,"content":3645},{"textAlign":59},[3646],{"text":2020,"type":333},{"type":2013,"attrs":3648,"content":3649},{"colspan":410,"rowspan":410,"colwidth":59},[3650],{"type":335,"attrs":3651,"content":3652},{"textAlign":59},[3653],{"text":2028,"type":333},{"type":2010,"content":3655},[3656,3666],{"type":2032,"attrs":3657,"content":3658},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3659],{"type":335,"attrs":3660,"content":3661},{"textAlign":59},[3662],{"text":3663,"type":333,"marks":3664},"shipping_service_id",[3665],{"type":451},{"type":2032,"attrs":3667,"content":3668},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3669],{"type":335,"attrs":3670,"content":3671},{"textAlign":59},[3672],{"text":3673,"type":333},"ID of the currently selected shipping service (0 if none)",{"type":2010,"content":3675},[3676,3686],{"type":2032,"attrs":3677,"content":3678},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3679],{"type":335,"attrs":3680,"content":3681},{"textAlign":59},[3682],{"text":3683,"type":333,"marks":3684},"shipping_service_description",[3685],{"type":451},{"type":2032,"attrs":3687,"content":3688},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3689],{"type":335,"attrs":3690,"content":3691},{"textAlign":59},[3692],{"text":3693,"type":333},"Description of the selected service (empty if none)",{"type":327,"attrs":3695,"content":3696},{"level":2928,"textAlign":59},[3697],{"text":3698,"type":333},"Accessing in Custom Shipping Code",{"type":397,"attrs":3700,"content":3701},{"class":59},[3702],{"text":3703,"type":333},"const shipment = cart['_embedded']['fx:shipment'];\nconst country = shipment['country'];\nconst region = shipment['region'];\nconst postalCode = shipment['postal_code'];\nconst weight = shipment['total_weight'];\nconst subtotal = shipment['total_item_price'];\nconst itemCount = shipment['item_count'];\nconst isResidential = shipment['is_residential'];\nconst originCountry = shipment['origin_country'];",{"type":327,"attrs":3705,"content":3706},{"level":329,"textAlign":59},[3707],{"text":3708,"type":333},"fx:items",{"type":335,"attrs":3710,"content":3711},{"textAlign":59},[3712,3713,3717],{"text":781,"type":333},{"text":3714,"type":333,"marks":3715},"_embedded[\"fx:items\"]",[3716],{"type":451},{"text":3718,"type":333}," array contains each item in the cart. Each item includes its own embedded category and options.",{"type":327,"attrs":3720,"content":3721},{"level":2928,"textAlign":59},[3722],{"text":3723,"type":333},"Core item fields",{"type":2007,"content":3725},[3726,3742,3762,3781,3801,3821,3841,3860],{"type":2010,"content":3727},[3728,3735],{"type":2013,"attrs":3729,"content":3730},{"colspan":410,"rowspan":410,"colwidth":59},[3731],{"type":335,"attrs":3732,"content":3733},{"textAlign":59},[3734],{"text":2020,"type":333},{"type":2013,"attrs":3736,"content":3737},{"colspan":410,"rowspan":410,"colwidth":59},[3738],{"type":335,"attrs":3739,"content":3740},{"textAlign":59},[3741],{"text":2028,"type":333},{"type":2010,"content":3743},[3744,3754],{"type":2032,"attrs":3745,"content":3746},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3747],{"type":335,"attrs":3748,"content":3749},{"textAlign":59},[3750],{"text":3751,"type":333,"marks":3752},"name",[3753],{"type":451},{"type":2032,"attrs":3755,"content":3756},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3757],{"type":335,"attrs":3758,"content":3759},{"textAlign":59},[3760],{"text":3761,"type":333},"Product name",{"type":2010,"content":3763},[3764,3773],{"type":2032,"attrs":3765,"content":3766},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3767],{"type":335,"attrs":3768,"content":3769},{"textAlign":59},[3770],{"text":451,"type":333,"marks":3771},[3772],{"type":451},{"type":2032,"attrs":3774,"content":3775},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3776],{"type":335,"attrs":3777,"content":3778},{"textAlign":59},[3779],{"text":3780,"type":333},"Product code\u002FSKU",{"type":2010,"content":3782},[3783,3793],{"type":2032,"attrs":3784,"content":3785},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3786],{"type":335,"attrs":3787,"content":3788},{"textAlign":59},[3789],{"text":3790,"type":333,"marks":3791},"price",[3792],{"type":451},{"type":2032,"attrs":3794,"content":3795},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3796],{"type":335,"attrs":3797,"content":3798},{"textAlign":59},[3799],{"text":3800,"type":333},"Unit price",{"type":2010,"content":3802},[3803,3813],{"type":2032,"attrs":3804,"content":3805},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3806],{"type":335,"attrs":3807,"content":3808},{"textAlign":59},[3809],{"text":3810,"type":333,"marks":3811},"quantity",[3812],{"type":451},{"type":2032,"attrs":3814,"content":3815},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3816],{"type":335,"attrs":3817,"content":3818},{"textAlign":59},[3819],{"text":3820,"type":333},"Quantity in the cart",{"type":2010,"content":3822},[3823,3833],{"type":2032,"attrs":3824,"content":3825},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3826],{"type":335,"attrs":3827,"content":3828},{"textAlign":59},[3829],{"text":3830,"type":333,"marks":3831},"weight",[3832],{"type":451},{"type":2032,"attrs":3834,"content":3835},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3836],{"type":335,"attrs":3837,"content":3838},{"textAlign":59},[3839],{"text":3840,"type":333},"Unit weight",{"type":2010,"content":3842},[3843,3852],{"type":2032,"attrs":3844,"content":3845},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3846],{"type":335,"attrs":3847,"content":3848},{"textAlign":59},[3849],{"text":31,"type":333,"marks":3850},[3851],{"type":451},{"type":2032,"attrs":3853,"content":3854},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3855],{"type":335,"attrs":3856,"content":3857},{"textAlign":59},[3858],{"text":3859,"type":333},"Product URL",{"type":2010,"content":3861},[3862,3872],{"type":2032,"attrs":3863,"content":3864},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3865],{"type":335,"attrs":3866,"content":3867},{"textAlign":59},[3868],{"text":3869,"type":333,"marks":3870},"image",[3871],{"type":451},{"type":2032,"attrs":3873,"content":3874},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3875],{"type":335,"attrs":3876,"content":3877},{"textAlign":59},[3878],{"text":3879,"type":333},"Product image URL",{"type":327,"attrs":3881,"content":3882},{"level":2928,"textAlign":59},[3883],{"text":3884,"type":333},"Dimensions",{"type":2007,"content":3886},[3887,3903,3923,3943],{"type":2010,"content":3888},[3889,3896],{"type":2013,"attrs":3890,"content":3891},{"colspan":410,"rowspan":410,"colwidth":59},[3892],{"type":335,"attrs":3893,"content":3894},{"textAlign":59},[3895],{"text":2020,"type":333},{"type":2013,"attrs":3897,"content":3898},{"colspan":410,"rowspan":410,"colwidth":59},[3899],{"type":335,"attrs":3900,"content":3901},{"textAlign":59},[3902],{"text":2028,"type":333},{"type":2010,"content":3904},[3905,3915],{"type":2032,"attrs":3906,"content":3907},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3908],{"type":335,"attrs":3909,"content":3910},{"textAlign":59},[3911],{"text":3912,"type":333,"marks":3913},"length",[3914],{"type":451},{"type":2032,"attrs":3916,"content":3917},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3918],{"type":335,"attrs":3919,"content":3920},{"textAlign":59},[3921],{"text":3922,"type":333},"Item length (0 if not set)",{"type":2010,"content":3924},[3925,3935],{"type":2032,"attrs":3926,"content":3927},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3928],{"type":335,"attrs":3929,"content":3930},{"textAlign":59},[3931],{"text":3932,"type":333,"marks":3933},"width",[3934],{"type":451},{"type":2032,"attrs":3936,"content":3937},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3938],{"type":335,"attrs":3939,"content":3940},{"textAlign":59},[3941],{"text":3942,"type":333},"Item width (0 if not set)",{"type":2010,"content":3944},[3945,3955],{"type":2032,"attrs":3946,"content":3947},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3948],{"type":335,"attrs":3949,"content":3950},{"textAlign":59},[3951],{"text":3952,"type":333,"marks":3953},"height",[3954],{"type":451},{"type":2032,"attrs":3956,"content":3957},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3958],{"type":335,"attrs":3959,"content":3960},{"textAlign":59},[3961],{"text":3962,"type":333},"Item height (0 if not set)",{"type":327,"attrs":3964,"content":3965},{"level":2928,"textAlign":59},[3966],{"text":3967,"type":333},"Quantity limits",{"type":2007,"content":3969},[3970,3986,4006],{"type":2010,"content":3971},[3972,3979],{"type":2013,"attrs":3973,"content":3974},{"colspan":410,"rowspan":410,"colwidth":59},[3975],{"type":335,"attrs":3976,"content":3977},{"textAlign":59},[3978],{"text":2020,"type":333},{"type":2013,"attrs":3980,"content":3981},{"colspan":410,"rowspan":410,"colwidth":59},[3982],{"type":335,"attrs":3983,"content":3984},{"textAlign":59},[3985],{"text":2028,"type":333},{"type":2010,"content":3987},[3988,3998],{"type":2032,"attrs":3989,"content":3990},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[3991],{"type":335,"attrs":3992,"content":3993},{"textAlign":59},[3994],{"text":3995,"type":333,"marks":3996},"quantity_min",[3997],{"type":451},{"type":2032,"attrs":3999,"content":4000},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4001],{"type":335,"attrs":4002,"content":4003},{"textAlign":59},[4004],{"text":4005,"type":333},"Minimum allowed quantity (0 = no minimum)",{"type":2010,"content":4007},[4008,4018],{"type":2032,"attrs":4009,"content":4010},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4011],{"type":335,"attrs":4012,"content":4013},{"textAlign":59},[4014],{"text":4015,"type":333,"marks":4016},"quantity_max",[4017],{"type":451},{"type":2032,"attrs":4019,"content":4020},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4021],{"type":335,"attrs":4022,"content":4023},{"textAlign":59},[4024],{"text":4025,"type":333},"Maximum allowed quantity (0 = no maximum)",{"type":327,"attrs":4027,"content":4028},{"level":2928,"textAlign":59},[4029],{"text":4030,"type":333},"Shipping",{"type":2007,"content":4032},[4033,4049],{"type":2010,"content":4034},[4035,4042],{"type":2013,"attrs":4036,"content":4037},{"colspan":410,"rowspan":410,"colwidth":59},[4038],{"type":335,"attrs":4039,"content":4040},{"textAlign":59},[4041],{"text":2020,"type":333},{"type":2013,"attrs":4043,"content":4044},{"colspan":410,"rowspan":410,"colwidth":59},[4045],{"type":335,"attrs":4046,"content":4047},{"textAlign":59},[4048],{"text":2028,"type":333},{"type":2010,"content":4050},[4051,4061],{"type":2032,"attrs":4052,"content":4053},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4054],{"type":335,"attrs":4055,"content":4056},{"textAlign":59},[4057],{"text":4058,"type":333,"marks":4059},"shipto",[4060],{"type":451},{"type":2032,"attrs":4062,"content":4063},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4064],{"type":335,"attrs":4065,"content":4066},{"textAlign":59},[4067],{"text":4068,"type":333},"Ship to address name (for multi ship orders)",{"type":327,"attrs":4070,"content":4071},{"level":2928,"textAlign":59},[4072],{"text":4073,"type":333},"Subscription fields",{"type":2007,"content":4075},[4076,4092,4112,4132,4152,4172],{"type":2010,"content":4077},[4078,4085],{"type":2013,"attrs":4079,"content":4080},{"colspan":410,"rowspan":410,"colwidth":59},[4081],{"type":335,"attrs":4082,"content":4083},{"textAlign":59},[4084],{"text":2020,"type":333},{"type":2013,"attrs":4086,"content":4087},{"colspan":410,"rowspan":410,"colwidth":59},[4088],{"type":335,"attrs":4089,"content":4090},{"textAlign":59},[4091],{"text":2028,"type":333},{"type":2010,"content":4093},[4094,4104],{"type":2032,"attrs":4095,"content":4096},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4097],{"type":335,"attrs":4098,"content":4099},{"textAlign":59},[4100],{"text":4101,"type":333,"marks":4102},"subscription_frequency",[4103],{"type":451},{"type":2032,"attrs":4105,"content":4106},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4107],{"type":335,"attrs":4108,"content":4109},{"textAlign":59},[4110],{"text":4111,"type":333},"Subscription frequency string (empty if not a subscription)",{"type":2010,"content":4113},[4114,4124],{"type":2032,"attrs":4115,"content":4116},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4117],{"type":335,"attrs":4118,"content":4119},{"textAlign":59},[4120],{"text":4121,"type":333,"marks":4122},"subscription_start_date",[4123],{"type":451},{"type":2032,"attrs":4125,"content":4126},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4127],{"type":335,"attrs":4128,"content":4129},{"textAlign":59},[4130],{"text":4131,"type":333},"Subscription start date",{"type":2010,"content":4133},[4134,4144],{"type":2032,"attrs":4135,"content":4136},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4137],{"type":335,"attrs":4138,"content":4139},{"textAlign":59},[4140],{"text":4141,"type":333,"marks":4142},"subscription_next_transaction_date",[4143],{"type":451},{"type":2032,"attrs":4145,"content":4146},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4147],{"type":335,"attrs":4148,"content":4149},{"textAlign":59},[4150],{"text":4151,"type":333},"Next renewal date",{"type":2010,"content":4153},[4154,4164],{"type":2032,"attrs":4155,"content":4156},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4157],{"type":335,"attrs":4158,"content":4159},{"textAlign":59},[4160],{"text":4161,"type":333,"marks":4162},"subscription_end_date",[4163],{"type":451},{"type":2032,"attrs":4165,"content":4166},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4167],{"type":335,"attrs":4168,"content":4169},{"textAlign":59},[4170],{"text":4171,"type":333},"Subscription end date",{"type":2010,"content":4173},[4174,4184],{"type":2032,"attrs":4175,"content":4176},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4177],{"type":335,"attrs":4178,"content":4179},{"textAlign":59},[4180],{"text":4181,"type":333,"marks":4182},"is_future_line_item",[4183],{"type":451},{"type":2032,"attrs":4185,"content":4186},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4187],{"type":335,"attrs":4188,"content":4189},{"textAlign":59},[4190],{"text":4191,"type":333},"Boolean: whether this is a future dated subscription item",{"type":327,"attrs":4193,"content":4194},{"level":2928,"textAlign":59},[4195],{"text":4196,"type":333},"Discount fields",{"type":2007,"content":4198},[4199,4215,4235,4255,4275],{"type":2010,"content":4200},[4201,4208],{"type":2013,"attrs":4202,"content":4203},{"colspan":410,"rowspan":410,"colwidth":59},[4204],{"type":335,"attrs":4205,"content":4206},{"textAlign":59},[4207],{"text":2020,"type":333},{"type":2013,"attrs":4209,"content":4210},{"colspan":410,"rowspan":410,"colwidth":59},[4211],{"type":335,"attrs":4212,"content":4213},{"textAlign":59},[4214],{"text":2028,"type":333},{"type":2010,"content":4216},[4217,4227],{"type":2032,"attrs":4218,"content":4219},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4220],{"type":335,"attrs":4221,"content":4222},{"textAlign":59},[4223],{"text":4224,"type":333,"marks":4225},"discount_name",[4226],{"type":451},{"type":2032,"attrs":4228,"content":4229},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4230],{"type":335,"attrs":4231,"content":4232},{"textAlign":59},[4233],{"text":4234,"type":333},"Name of any item level discount",{"type":2010,"content":4236},[4237,4247],{"type":2032,"attrs":4238,"content":4239},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4240],{"type":335,"attrs":4241,"content":4242},{"textAlign":59},[4243],{"text":4244,"type":333,"marks":4245},"discount_type",[4246],{"type":451},{"type":2032,"attrs":4248,"content":4249},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4250],{"type":335,"attrs":4251,"content":4252},{"textAlign":59},[4253],{"text":4254,"type":333},"Discount type",{"type":2010,"content":4256},[4257,4267],{"type":2032,"attrs":4258,"content":4259},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4260],{"type":335,"attrs":4261,"content":4262},{"textAlign":59},[4263],{"text":4264,"type":333,"marks":4265},"discount_details",[4266],{"type":451},{"type":2032,"attrs":4268,"content":4269},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4270],{"type":335,"attrs":4271,"content":4272},{"textAlign":59},[4273],{"text":4274,"type":333},"Discount details string",{"type":2010,"content":4276},[4277,4287],{"type":2032,"attrs":4278,"content":4279},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4280],{"type":335,"attrs":4281,"content":4282},{"textAlign":59},[4283],{"text":4284,"type":333,"marks":4285},"parent_code",[4286],{"type":451},{"type":2032,"attrs":4288,"content":4289},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4290],{"type":335,"attrs":4291,"content":4292},{"textAlign":59},[4293],{"text":4294,"type":333},"Parent product code (for bundled\u002Fchild items)",{"type":327,"attrs":4296,"content":4297},{"level":2928,"textAlign":59},[4298],{"text":4299,"type":333},"Other",{"type":2007,"content":4301},[4302,4318,4338,4358,4377],{"type":2010,"content":4303},[4304,4311],{"type":2013,"attrs":4305,"content":4306},{"colspan":410,"rowspan":410,"colwidth":59},[4307],{"type":335,"attrs":4308,"content":4309},{"textAlign":59},[4310],{"text":2020,"type":333},{"type":2013,"attrs":4312,"content":4313},{"colspan":410,"rowspan":410,"colwidth":59},[4314],{"type":335,"attrs":4315,"content":4316},{"textAlign":59},[4317],{"text":2028,"type":333},{"type":2010,"content":4319},[4320,4330],{"type":2032,"attrs":4321,"content":4322},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4323],{"type":335,"attrs":4324,"content":4325},{"textAlign":59},[4326],{"text":4327,"type":333,"marks":4328},"item_category_uri",[4329],{"type":451},{"type":2032,"attrs":4331,"content":4332},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4333],{"type":335,"attrs":4334,"content":4335},{"textAlign":59},[4336],{"text":4337,"type":333},"URI of the item's category",{"type":2010,"content":4339},[4340,4350],{"type":2032,"attrs":4341,"content":4342},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4343],{"type":335,"attrs":4344,"content":4345},{"textAlign":59},[4346],{"text":4347,"type":333,"marks":4348},"expires",[4349],{"type":451},{"type":2032,"attrs":4351,"content":4352},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4353],{"type":335,"attrs":4354,"content":4355},{"textAlign":59},[4356],{"text":4357,"type":333},"Expiration value (for downloadable items)",{"type":2010,"content":4359},[4360,4369],{"type":2032,"attrs":4361,"content":4362},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4363],{"type":335,"attrs":4364,"content":4365},{"textAlign":59},[4366],{"text":2870,"type":333,"marks":4367},[4368],{"type":451},{"type":2032,"attrs":4370,"content":4371},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4372],{"type":335,"attrs":4373,"content":4374},{"textAlign":59},[4375],{"text":4376,"type":333},"Item creation timestamp",{"type":2010,"content":4378},[4379,4388],{"type":2032,"attrs":4380,"content":4381},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4382],{"type":335,"attrs":4383,"content":4384},{"textAlign":59},[4385],{"text":2890,"type":333,"marks":4386},[4387],{"type":451},{"type":2032,"attrs":4389,"content":4390},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4391],{"type":335,"attrs":4392,"content":4393},{"textAlign":59},[4394],{"text":4395,"type":333},"Item last modified timestamp",{"type":327,"attrs":4397,"content":4398},{"level":2928,"textAlign":59},[4399],{"text":4400,"type":333},"Embedded: fx:item_category",{"type":335,"attrs":4402,"content":4403},{"textAlign":59},[4404,4406,4410],{"text":4405,"type":333},"Each item embeds its full category object at ",{"text":4407,"type":333,"marks":4408},"_embedded[\"fx:item_category\"]",[4409],{"type":451},{"text":4411,"type":333},". This gives you access to the category's shipping configuration directly from the item.",{"type":2007,"content":4413},[4414,4430,4454,4473,4517,4537,4567,4597,4626,4646,4690,4710,4730,4750],{"type":2010,"content":4415},[4416,4423],{"type":2013,"attrs":4417,"content":4418},{"colspan":410,"rowspan":410,"colwidth":59},[4419],{"type":335,"attrs":4420,"content":4421},{"textAlign":59},[4422],{"text":2020,"type":333},{"type":2013,"attrs":4424,"content":4425},{"colspan":410,"rowspan":410,"colwidth":59},[4426],{"type":335,"attrs":4427,"content":4428},{"textAlign":59},[4429],{"text":2028,"type":333},{"type":2010,"content":4431},[4432,4441],{"type":2032,"attrs":4433,"content":4434},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4435],{"type":335,"attrs":4436,"content":4437},{"textAlign":59},[4438],{"text":451,"type":333,"marks":4439},[4440],{"type":451},{"type":2032,"attrs":4442,"content":4443},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4444],{"type":335,"attrs":4445,"content":4446},{"textAlign":59},[4447,4449,4453],{"text":4448,"type":333},"Category code (e.g., ",{"text":4450,"type":333,"marks":4451},"DEFAULT",[4452],{"type":451},{"text":649,"type":333},{"type":2010,"content":4455},[4456,4465],{"type":2032,"attrs":4457,"content":4458},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4459],{"type":335,"attrs":4460,"content":4461},{"textAlign":59},[4462],{"text":3751,"type":333,"marks":4463},[4464],{"type":451},{"type":2032,"attrs":4466,"content":4467},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4468],{"type":335,"attrs":4469,"content":4470},{"textAlign":59},[4471],{"text":4472,"type":333},"Category display name",{"type":2010,"content":4474},[4475,4485],{"type":2032,"attrs":4476,"content":4477},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4478],{"type":335,"attrs":4479,"content":4480},{"textAlign":59},[4481],{"text":4482,"type":333,"marks":4483},"item_delivery_type",[4484],{"type":451},{"type":2032,"attrs":4486,"content":4487},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4488],{"type":335,"attrs":4489,"content":4490},{"textAlign":59},[4491,4493,4497,4498,4502,4503,4507,4508,4512,4513],{"text":4492,"type":333},"Delivery type: ",{"text":4494,"type":333,"marks":4495},"shipped",[4496],{"type":451},{"text":1187,"type":333},{"text":4499,"type":333,"marks":4500},"flat_rate",[4501],{"type":451},{"text":1187,"type":333},{"text":4504,"type":333,"marks":4505},"pickup",[4506],{"type":451},{"text":1187,"type":333},{"text":4509,"type":333,"marks":4510},"downloaded",[4511],{"type":451},{"text":1187,"type":333},{"text":4514,"type":333,"marks":4515},"notshipped",[4516],{"type":451},{"type":2010,"content":4518},[4519,4529],{"type":2032,"attrs":4520,"content":4521},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4522],{"type":335,"attrs":4523,"content":4524},{"textAlign":59},[4525],{"text":4526,"type":333,"marks":4527},"default_weight",[4528],{"type":451},{"type":2032,"attrs":4530,"content":4531},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4532],{"type":335,"attrs":4533,"content":4534},{"textAlign":59},[4535],{"text":4536,"type":333},"Default weight for products in this category",{"type":2010,"content":4538},[4539,4549],{"type":2032,"attrs":4540,"content":4541},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4542],{"type":335,"attrs":4543,"content":4544},{"textAlign":59},[4545],{"text":4546,"type":333,"marks":4547},"default_weight_unit",[4548],{"type":451},{"type":2032,"attrs":4550,"content":4551},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4552],{"type":335,"attrs":4553,"content":4554},{"textAlign":59},[4555,4557,4561,4562,4566],{"text":4556,"type":333},"Weight unit (",{"text":4558,"type":333,"marks":4559},"LBS",[4560],{"type":451},{"text":1187,"type":333},{"text":4563,"type":333,"marks":4564},"KG",[4565],{"type":451},{"text":649,"type":333},{"type":2010,"content":4568},[4569,4579],{"type":2032,"attrs":4570,"content":4571},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4572],{"type":335,"attrs":4573,"content":4574},{"textAlign":59},[4575],{"text":4576,"type":333,"marks":4577},"default_length_unit",[4578],{"type":451},{"type":2032,"attrs":4580,"content":4581},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4582],{"type":335,"attrs":4583,"content":4584},{"textAlign":59},[4585,4587,4591,4592,4596],{"text":4586,"type":333},"Length unit (",{"text":4588,"type":333,"marks":4589},"IN",[4590],{"type":451},{"text":1187,"type":333},{"text":4593,"type":333,"marks":4594},"CM",[4595],{"type":451},{"text":649,"type":333},{"type":2010,"content":4598},[4599,4609],{"type":2032,"attrs":4600,"content":4601},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4602],{"type":335,"attrs":4603,"content":4604},{"textAlign":59},[4605],{"text":4606,"type":333,"marks":4607},"shipping_flat_rate_type",[4608],{"type":451},{"type":2032,"attrs":4610,"content":4611},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4612],{"type":335,"attrs":4613,"content":4614},{"textAlign":59},[4615,4617,4621,4622],{"text":4616,"type":333},"Flat rate type: ",{"text":4618,"type":333,"marks":4619},"per_order",[4620],{"type":451},{"text":745,"type":333},{"text":4623,"type":333,"marks":4624},"per_item",[4625],{"type":451},{"type":2010,"content":4627},[4628,4638],{"type":2032,"attrs":4629,"content":4630},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4631],{"type":335,"attrs":4632,"content":4633},{"textAlign":59},[4634],{"text":4635,"type":333,"marks":4636},"shipping_flat_rate",[4637],{"type":451},{"type":2032,"attrs":4639,"content":4640},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4641],{"type":335,"attrs":4642,"content":4643},{"textAlign":59},[4644],{"text":4645,"type":333},"Flat rate amount",{"type":2010,"content":4647},[4648,4658],{"type":2032,"attrs":4649,"content":4650},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4651],{"type":335,"attrs":4652,"content":4653},{"textAlign":59},[4654],{"text":4655,"type":333,"marks":4656},"handling_fee_type",[4657],{"type":451},{"type":2032,"attrs":4659,"content":4660},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4661],{"type":335,"attrs":4662,"content":4663},{"textAlign":59},[4664,4666,4670,4671,4675,4676,4680,4681,4685,4686],{"text":4665,"type":333},"Handling fee type: ",{"text":4667,"type":333,"marks":4668},"none",[4669],{"type":451},{"text":1187,"type":333},{"text":4672,"type":333,"marks":4673},"flat_per_order",[4674],{"type":451},{"text":1187,"type":333},{"text":4677,"type":333,"marks":4678},"flat_per_item",[4679],{"type":451},{"text":1187,"type":333},{"text":4682,"type":333,"marks":4683},"flat_percent",[4684],{"type":451},{"text":1187,"type":333},{"text":4687,"type":333,"marks":4688},"flat_percent_with_minimum",[4689],{"type":451},{"type":2010,"content":4691},[4692,4702],{"type":2032,"attrs":4693,"content":4694},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4695],{"type":335,"attrs":4696,"content":4697},{"textAlign":59},[4698],{"text":4699,"type":333,"marks":4700},"handling_fee",[4701],{"type":451},{"type":2032,"attrs":4703,"content":4704},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4705],{"type":335,"attrs":4706,"content":4707},{"textAlign":59},[4708],{"text":4709,"type":333},"Handling fee flat amount",{"type":2010,"content":4711},[4712,4722],{"type":2032,"attrs":4713,"content":4714},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4715],{"type":335,"attrs":4716,"content":4717},{"textAlign":59},[4718],{"text":4719,"type":333,"marks":4720},"handling_fee_minimum",[4721],{"type":451},{"type":2032,"attrs":4723,"content":4724},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4725],{"type":335,"attrs":4726,"content":4727},{"textAlign":59},[4728],{"text":4729,"type":333},"Minimum handling fee (for percentage types)",{"type":2010,"content":4731},[4732,4742],{"type":2032,"attrs":4733,"content":4734},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4735],{"type":335,"attrs":4736,"content":4737},{"textAlign":59},[4738],{"text":4739,"type":333,"marks":4740},"handling_fee_percentage",[4741],{"type":451},{"type":2032,"attrs":4743,"content":4744},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4745],{"type":335,"attrs":4746,"content":4747},{"textAlign":59},[4748],{"text":4749,"type":333},"Handling fee percentage",{"type":2010,"content":4751},[4752,4762],{"type":2032,"attrs":4753,"content":4754},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4755],{"type":335,"attrs":4756,"content":4757},{"textAlign":59},[4758],{"text":4759,"type":333,"marks":4760},"customs_value",[4761],{"type":451},{"type":2032,"attrs":4763,"content":4764},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4765],{"type":335,"attrs":4766,"content":4767},{"textAlign":59},[4768],{"text":4769,"type":333},"Default customs value",{"type":327,"attrs":4771,"content":4772},{"level":2928,"textAlign":59},[4773],{"text":4774,"type":333},"Embedded: fx:item_options",{"type":335,"attrs":4776,"content":4777},{"textAlign":59},[4778,4780,4784],{"text":4779,"type":333},"Each item embeds its options at ",{"text":4781,"type":333,"marks":4782},"_embedded[\"fx:item_options\"]",[4783],{"type":451},{"text":4785,"type":333},". Each option has:",{"type":2007,"content":4787},[4788,4804,4833,4863,4883],{"type":2010,"content":4789},[4790,4797],{"type":2013,"attrs":4791,"content":4792},{"colspan":410,"rowspan":410,"colwidth":59},[4793],{"type":335,"attrs":4794,"content":4795},{"textAlign":59},[4796],{"text":2020,"type":333},{"type":2013,"attrs":4798,"content":4799},{"colspan":410,"rowspan":410,"colwidth":59},[4800],{"type":335,"attrs":4801,"content":4802},{"textAlign":59},[4803],{"text":2028,"type":333},{"type":2010,"content":4805},[4806,4815],{"type":2032,"attrs":4807,"content":4808},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4809],{"type":335,"attrs":4810,"content":4811},{"textAlign":59},[4812],{"text":3751,"type":333,"marks":4813},[4814],{"type":451},{"type":2032,"attrs":4816,"content":4817},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4818],{"type":335,"attrs":4819,"content":4820},{"textAlign":59},[4821,4823,4827,4828,4832],{"text":4822,"type":333},"Option name (e.g., ",{"text":4824,"type":333,"marks":4825},"Colour",[4826],{"type":451},{"text":1187,"type":333},{"text":4829,"type":333,"marks":4830},"Size",[4831],{"type":451},{"text":649,"type":333},{"type":2010,"content":4834},[4835,4845],{"type":2032,"attrs":4836,"content":4837},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4838],{"type":335,"attrs":4839,"content":4840},{"textAlign":59},[4841],{"text":4842,"type":333,"marks":4843},"value",[4844],{"type":451},{"type":2032,"attrs":4846,"content":4847},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4848],{"type":335,"attrs":4849,"content":4850},{"textAlign":59},[4851,4853,4857,4858,4862],{"text":4852,"type":333},"Option value (e.g., ",{"text":4854,"type":333,"marks":4855},"Red",[4856],{"type":451},{"text":1187,"type":333},{"text":4859,"type":333,"marks":4860},"Large",[4861],{"type":451},{"text":649,"type":333},{"type":2010,"content":4864},[4865,4875],{"type":2032,"attrs":4866,"content":4867},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4868],{"type":335,"attrs":4869,"content":4870},{"textAlign":59},[4871],{"text":4872,"type":333,"marks":4873},"price_mod",[4874],{"type":451},{"type":2032,"attrs":4876,"content":4877},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4878],{"type":335,"attrs":4879,"content":4880},{"textAlign":59},[4881],{"text":4882,"type":333},"Price modifier applied by this option",{"type":2010,"content":4884},[4885,4895],{"type":2032,"attrs":4886,"content":4887},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4888],{"type":335,"attrs":4889,"content":4890},{"textAlign":59},[4891],{"text":4892,"type":333,"marks":4893},"weight_mod",[4894],{"type":451},{"type":2032,"attrs":4896,"content":4897},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[4898],{"type":335,"attrs":4899,"content":4900},{"textAlign":59},[4901],{"text":4902,"type":333},"Weight modifier applied by this option",{"type":327,"attrs":4904,"content":4905},{"level":2928,"textAlign":59},[4906],{"text":3698,"type":333},{"type":397,"attrs":4908,"content":4909},{"class":59},[4910],{"text":4911,"type":333},"const items = cart['_embedded']['fx:items'];\nfor (const item of items) {\n  \u002F\u002F Core fields\n  const name = item['name'];\n  const price = item['price'];\n  const qty = item['quantity'];\n  const weight = item['weight'];\n\n  \u002F\u002F Category\n  const catCode = item['_embedded']['fx:item_category']['code'];\n  const deliveryType = item['_embedded']['fx:item_category']['item_delivery_type'];\n\n  \u002F\u002F Options\n  const options = item['_embedded']['fx:item_options'] || [];\n  for (const opt of options) {\n    console.log(opt['name'], opt['value'], opt['price_mod']);\n  }\n\n  \u002F\u002F Subscription check\n  if (item['subscription_frequency']) {\n    \u002F\u002F This is a subscription item\n  }\n}",{"type":327,"attrs":4913,"content":4914},{"level":329,"textAlign":59},[4915],{"text":4916,"type":333},"fx:custom_fields",{"type":335,"attrs":4918,"content":4919},{"textAlign":59},[4920,4921,4925,4927,4931,4933,4936,4938,4941,4942,4945],{"text":781,"type":333},{"text":4922,"type":333,"marks":4923},"_embedded[\"fx:custom_fields\"]",[4924],{"type":451},{"text":4926,"type":333}," array contains custom data passed to shipping via ",{"text":4928,"type":333,"marks":4929},"h:",[4930],{"type":451},{"text":4932,"type":333}," session attributes, ",{"text":1847,"type":333,"marks":4934},[4935],{"type":451},{"text":4937,"type":333}," checkout fields, or JavaScript events. Each entry is an object with ",{"text":3751,"type":333,"marks":4939},[4940],{"type":451},{"text":714,"type":333},{"text":4842,"type":333,"marks":4943},[4944],{"type":451},{"text":4946,"type":333}," properties.",{"type":335,"attrs":4948,"content":4949},{"textAlign":59},[4950,4952,4956],{"text":4951,"type":333},"Note: this is an array, not a key\u002Fvalue object. You need to loop or use ",{"text":4953,"type":333,"marks":4954},".find()",[4955],{"type":451},{"text":4957,"type":333}," to locate a specific field by name.",{"type":327,"attrs":4959,"content":4960},{"level":2928,"textAlign":59},[4961],{"text":3698,"type":333},{"type":397,"attrs":4963,"content":4964},{"class":59},[4965],{"text":4966,"type":333},"const fields = cart['_embedded']['fx:custom_fields'] || [];\n\n\u002F\u002F Find a specific field\nconst giftWrap = fields.find(f => f['name'] === 'gift_wrap');\nif (giftWrap && giftWrap['value'] === 'yes') {\n  rates.price('+5');\n}",{"type":335,"attrs":4968,"content":4969},{"textAlign":59},[4970],{"text":4971,"type":333},"See [Passing Custom Fields to Shipping] for how to add custom fields to the payload.",{"type":327,"attrs":4973,"content":4974},{"level":329,"textAlign":59},[4975],{"text":4976,"type":333},"fx:discounts",{"type":335,"attrs":4978,"content":4979},{"textAlign":59},[4980,4981,4985,4987,4990,4991,4995],{"text":781,"type":333},{"text":4982,"type":333,"marks":4983},"_embedded[\"fx:discounts\"]",[4984],{"type":451},{"text":4986,"type":333}," array contains any coupons or discounts applied to the cart. Each entry has ",{"text":451,"type":333,"marks":4988},[4989],{"type":451},{"text":714,"type":333},{"text":4992,"type":333,"marks":4993},"amount",[4994],{"type":451},{"text":4946,"type":333},{"type":327,"attrs":4997,"content":4998},{"level":2928,"textAlign":59},[4999],{"text":3698,"type":333},{"type":397,"attrs":5001,"content":5002},{"class":59},[5003],{"text":5004,"type":333},"const discounts = cart['_embedded']['fx:discounts'] || [];\nfor (const d of discounts) {\n  if (d['code'] === 'freeshipping') {\n    rates.hide();\n    rates.add(11000, 0, '', 'Free Shipping');\n  }\n}",{"type":327,"attrs":5006,"content":5007},{"level":329,"textAlign":59},[5008],{"text":5009,"type":333},"fx:shipping_results",{"type":335,"attrs":5011,"content":5012},{"textAlign":59},[5013,5014,5018],{"text":781,"type":333},{"text":5015,"type":333,"marks":5016},"_embedded[\"fx:shipping_results\"]",[5017],{"type":451},{"text":5019,"type":333}," array contains any shipping rates already returned by carriers or the custom endpoint before your Custom Shipping Code runs. This is typically empty when the custom endpoint receives the payload (since it runs in parallel with carriers), but in Custom Shipping Code it may be populated with carrier rates.",{"type":327,"attrs":5021,"content":5022},{"level":329,"textAlign":59},[5023],{"text":5024,"type":333},"fx:customer",{"type":335,"attrs":5026,"content":5027},{"textAlign":59},[5028,5029,5033],{"text":781,"type":333},{"text":5030,"type":333,"marks":5031},"_embedded[\"fx:customer\"]",[5032],{"type":451},{"text":5034,"type":333}," object contains the customer's account data, including embedded attributes.",{"type":2007,"content":5036},[5037,5053,5071,5090,5109,5128,5148,5168,5188],{"type":2010,"content":5038},[5039,5046],{"type":2013,"attrs":5040,"content":5041},{"colspan":410,"rowspan":410,"colwidth":59},[5042],{"type":335,"attrs":5043,"content":5044},{"textAlign":59},[5045],{"text":2020,"type":333},{"type":2013,"attrs":5047,"content":5048},{"colspan":410,"rowspan":410,"colwidth":59},[5049],{"type":335,"attrs":5050,"content":5051},{"textAlign":59},[5052],{"text":2028,"type":333},{"type":2010,"content":5054},[5055,5064],{"type":2032,"attrs":5056,"content":5057},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5058],{"type":335,"attrs":5059,"content":5060},{"textAlign":59},[5061],{"text":805,"type":333,"marks":5062},[5063],{"type":451},{"type":2032,"attrs":5065,"content":5066},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5067],{"type":335,"attrs":5068,"content":5069},{"textAlign":59},[5070],{"text":3049,"type":333},{"type":2010,"content":5072},[5073,5082],{"type":2032,"attrs":5074,"content":5075},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5076],{"type":335,"attrs":5077,"content":5078},{"textAlign":59},[5079],{"text":2959,"type":333,"marks":5080},[5081],{"type":451},{"type":2032,"attrs":5083,"content":5084},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5085],{"type":335,"attrs":5086,"content":5087},{"textAlign":59},[5088],{"text":5089,"type":333},"Customer first name",{"type":2010,"content":5091},[5092,5101],{"type":2032,"attrs":5093,"content":5094},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5095],{"type":335,"attrs":5096,"content":5097},{"textAlign":59},[5098],{"text":2979,"type":333,"marks":5099},[5100],{"type":451},{"type":2032,"attrs":5102,"content":5103},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5104],{"type":335,"attrs":5105,"content":5106},{"textAlign":59},[5107],{"text":5108,"type":333},"Customer last name",{"type":2010,"content":5110},[5111,5120],{"type":2032,"attrs":5112,"content":5113},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5114],{"type":335,"attrs":5115,"content":5116},{"textAlign":59},[5117],{"text":3019,"type":333,"marks":5118},[5119],{"type":451},{"type":2032,"attrs":5121,"content":5122},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5123],{"type":335,"attrs":5124,"content":5125},{"textAlign":59},[5126],{"text":5127,"type":333},"Customer email",{"type":2010,"content":5129},[5130,5140],{"type":2032,"attrs":5131,"content":5132},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5133],{"type":335,"attrs":5134,"content":5135},{"textAlign":59},[5136],{"text":5137,"type":333,"marks":5138},"tax_id",[5139],{"type":451},{"type":2032,"attrs":5141,"content":5142},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5143],{"type":335,"attrs":5144,"content":5145},{"textAlign":59},[5146],{"text":5147,"type":333},"Tax ID (if provided)",{"type":2010,"content":5149},[5150,5160],{"type":2032,"attrs":5151,"content":5152},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5153],{"type":335,"attrs":5154,"content":5155},{"textAlign":59},[5156],{"text":5157,"type":333,"marks":5158},"is_anonymous",[5159],{"type":451},{"type":2032,"attrs":5161,"content":5162},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5163],{"type":335,"attrs":5164,"content":5165},{"textAlign":59},[5166],{"text":5167,"type":333},"Boolean: whether this is a guest checkout",{"type":2010,"content":5169},[5170,5180],{"type":2032,"attrs":5171,"content":5172},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5173],{"type":335,"attrs":5174,"content":5175},{"textAlign":59},[5176],{"text":5177,"type":333,"marks":5178},"last_login_date",[5179],{"type":451},{"type":2032,"attrs":5181,"content":5182},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5183],{"type":335,"attrs":5184,"content":5185},{"textAlign":59},[5186],{"text":5187,"type":333},"Last login timestamp",{"type":2010,"content":5189},[5190,5199],{"type":2032,"attrs":5191,"content":5192},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5193],{"type":335,"attrs":5194,"content":5195},{"textAlign":59},[5196],{"text":2870,"type":333,"marks":5197},[5198],{"type":451},{"type":2032,"attrs":5200,"content":5201},{"colspan":410,"rowspan":410,"colwidth":59,"backgroundColor":59},[5202],{"type":335,"attrs":5203,"content":5204},{"textAlign":59},[5205],{"text":5206,"type":333},"Account creation timestamp",{"type":335,"attrs":5208,"content":5209},{"textAlign":59},[5210,5214,5216,5220,5222,5225,5226,5229,5230,5234],{"text":5211,"type":333,"marks":5212},"Customer attributes",[5213],{"type":867},{"text":5215,"type":333}," are embedded at ",{"text":5217,"type":333,"marks":5218},"_embedded[\"fx:customer\"][\"_embedded\"][\"fx:attributes\"]",[5219],{"type":451},{"text":5221,"type":333},". Each attribute has ",{"text":3751,"type":333,"marks":5223},[5224],{"type":451},{"text":1187,"type":333},{"text":4842,"type":333,"marks":5227},[5228],{"type":451},{"text":1203,"type":333},{"text":5231,"type":333,"marks":5232},"visibility",[5233],{"type":451},{"text":5235,"type":333}," properties. These are useful for loyalty programs or customer tier based shipping logic:",{"type":397,"attrs":5237,"content":5238},{"class":59},[5239],{"text":5240,"type":333},"const customer = cart['_embedded']['fx:customer'];\nconst attrs = customer['_embedded']['fx:attributes'] || [];\nconst loyaltyLevel = attrs.find(a => a['name'] === 'Loyalty_Level');\n\nif (loyaltyLevel && loyaltyLevel['value'] === 'Gold') {\n  rates.add(10001, 0, '', 'Free Gold Member Shipping');\n}",{"type":327,"attrs":5242,"content":5243},{"level":329,"textAlign":59},[5244],{"text":5245,"type":333},"Example payload",{"type":335,"attrs":5247,"content":5248},{"textAlign":59},[5249,5251,5255],{"text":5250,"type":333},"Below is a condensed example showing the key parts of a typical payload. The ",{"text":5252,"type":333,"marks":5253},"_links",[5254],{"type":451},{"text":5256,"type":333}," sections (HAL hypermedia links) are omitted for readability as they're not typically used in shipping logic.",{"type":397,"attrs":5258,"content":5259},{"class":59},[5260],{"text":5261,"type":333},"{\n  \"_embedded\": {\n    \"fx:items\": [\n      {\n        \"name\": \"Fancy Widget\",\n        \"code\": \"abc123\",\n        \"price\": 80.95,\n        \"quantity\": 1,\n        \"weight\": 30,\n        \"length\": 0,\n        \"width\": 0,\n        \"height\": 0,\n        \"shipto\": \"\",\n        \"image\": \"https:\u002F\u002Fexample.com\u002Fwidget.jpg\",\n        \"subscription_frequency\": \"\",\n        \"is_future_line_item\": false,\n        \"_embedded\": {\n          \"fx:item_options\": [\n            {\n              \"name\": \"Colour\",\n              \"value\": \"Sparkletoots\",\n              \"price_mod\": 0,\n              \"weight_mod\": 0\n            }\n          ],\n          \"fx:item_category\": {\n            \"code\": \"DEFAULT\",\n            \"name\": \"Default for all products\",\n            \"item_delivery_type\": \"shipped\",\n            \"default_weight\": 30,\n            \"default_weight_unit\": \"LBS\",\n            \"shipping_flat_rate_type\": \"per_order\",\n            \"shipping_flat_rate\": 5,\n            \"handling_fee_type\": \"none\",\n            \"handling_fee\": 0,\n            \"handling_fee_percentage\": 0\n          }\n        }\n      }\n    ],\n    \"fx:discounts\": [],\n    \"fx:custom_fields\": [],\n    \"fx:shipment\": {\n      \"first_name\": \"Jane\",\n      \"last_name\": \"Doe\",\n      \"company\": \"NewCo\",\n      \"address1\": \"555 Mulberry Dr\",\n      \"city\": \"SAN DIEGO\",\n      \"region\": \"CA\",\n      \"postal_code\": \"92107\",\n      \"country\": \"US\",\n      \"is_residential\": true,\n      \"origin_region\": \"NY\",\n      \"origin_postal_code\": \"11110\",\n      \"origin_country\": \"US\",\n      \"item_count\": 1,\n      \"total_weight\": 30,\n      \"total_item_price\": 80.95,\n      \"total_handling_fee\": 0,\n      \"total_flat_rate_shipping\": 0,\n      \"package_count\": 1,\n      \"package_weight\": 30\n    },\n    \"fx:shipping_results\": [],\n    \"fx:customer\": {\n      \"id\": 3456789,\n      \"first_name\": \"Jane\",\n      \"last_name\": \"Doe\",\n      \"email\": \"Jane@example.tld\",\n      \"is_anonymous\": false,\n      \"_embedded\": {\n        \"fx:attributes\": [\n          {\n            \"name\": \"Loyalty_Points\",\n            \"value\": \"5087\",\n            \"visibility\": \"public\"\n          }\n        ]\n      }\n    }\n  },\n  \"total_item_price\": 80.95,\n  \"total_tax\": 0,\n  \"total_shipping\": 0,\n  \"total_order\": 80.95,\n  \"total_discount\": 0,\n  \"currency_code\": \"USD\",\n  \"currency_symbol\": \"$\",\n  \"locale_code\": \"en_US\",\n  \"billing_city\": \"SAN DIEGO\",\n  \"billing_state\": \"CA\",\n  \"billing_postal_code\": \"92107\",\n  \"billing_country\": \"US\",\n  \"customer_ip\": \"1.1.1.1\",\n  \"ip_country\": \"United States\"\n}",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":5263},{},"The JSON payload structure shared by Custom Shipping Code and Custom Shipping Endpoint.",[],"shipping-payload-reference","help\u002Farticles\u002Fshipping-payload-reference",-1920,[],"6e846d15-9146-4da0-82ae-0a6910371ec5","2026-05-28T21:09:22.047Z",[],"custom-shipping-code-overview","help\u002Farticles\u002Fcustom-shipping-code-overview",-1890,[],"b249d669-6829-47c7-8a4a-bd2bf9f197f2","2026-05-28T21:09:22.756Z",[],{"name":479,"created_at":765,"published_at":766,"updated_at":767,"id":768,"uuid":484,"content":5281,"slug":1355,"full_slug":1356,"sort_by_date":59,"position":1357,"tag_list":5751,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":1360,"first_published_at":766,"release_id":59,"lang":65,"path":59,"alternates":5752,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},{"_uid":770,"body":5282,"name":479,"image":5748,"pinned":24,"summary":1353,"category":504,"component":266,"related_articles":5750},{"type":324,"content":5283},[5284,5288,5296,5300,5306,5322,5326,5334,5338,5344,5348,5395,5399,5403,5409,5425,5429,5433,5440,5447,5451,5455,5461,5465,5552,5556,5560,5567,5574,5582,5586,5590,5594,5600,5632,5636,5640,5646,5650,5654,5662,5718,5722,5729,5736,5740],{"type":327,"attrs":5285,"content":5286},{"level":329,"textAlign":59},[5287],{"text":332,"type":333},{"type":335,"attrs":5289,"content":5290},{"textAlign":59},[5291,5292,5295],{"text":781,"type":333},{"text":607,"type":333,"marks":5293},[5294],{"type":451},{"text":786,"type":333},{"type":327,"attrs":5297,"content":5298},{"level":329,"textAlign":59},[5299],{"text":791,"type":333},{"type":335,"attrs":5301,"content":5302},{"textAlign":59},[5303],{"text":796,"type":333,"marks":5304},[5305],{"type":451},{"type":335,"attrs":5307,"content":5308},{"textAlign":59},[5309,5310,5313,5314,5317,5318,5321],{"text":803,"type":333},{"text":805,"type":333,"marks":5311},[5312],{"type":451},{"text":809,"type":333},{"text":811,"type":333,"marks":5315},[5316],{"type":451},{"text":745,"type":333},{"text":816,"type":333,"marks":5319},[5320],{"type":451},{"text":820,"type":333},{"type":397,"attrs":5323,"content":5324},{"class":59},[5325],{"text":825,"type":333},{"type":335,"attrs":5327,"content":5328},{"textAlign":59},[5329,5330,5333],{"text":830,"type":333},{"text":832,"type":333,"marks":5331},[5332],{"type":451},{"text":836,"type":333},{"type":327,"attrs":5335,"content":5336},{"level":329,"textAlign":59},[5337],{"text":841,"type":333},{"type":335,"attrs":5339,"content":5340},{"textAlign":59},[5341],{"text":846,"type":333,"marks":5342},[5343],{"type":451},{"type":335,"attrs":5345,"content":5346},{"textAlign":59},[5347],{"text":853,"type":333},{"type":351,"content":5349},[5350,5363,5381],{"type":354,"content":5351},[5352],{"type":335,"attrs":5353,"content":5354},{"textAlign":59},[5355,5356,5359,5360],{"text":862,"type":333},{"text":864,"type":333,"marks":5357},[5358],{"type":867},{"text":869,"type":333},{"text":871,"type":333,"marks":5361},[5362],{"type":451},{"type":354,"content":5364},[5365],{"type":335,"attrs":5366,"content":5367},{"textAlign":59},[5368,5369,5372,5373,5376,5377,5380],{"text":862,"type":333},{"text":881,"type":333,"marks":5370},[5371],{"type":867},{"text":885,"type":333},{"text":811,"type":333,"marks":5374},[5375],{"type":451},{"text":714,"type":333},{"text":816,"type":333,"marks":5378},[5379],{"type":451},{"text":894,"type":333},{"type":354,"content":5382},[5383],{"type":335,"attrs":5384,"content":5385},{"textAlign":59},[5386,5387,5390,5391,5394],{"text":901,"type":333},{"text":903,"type":333,"marks":5388},[5389],{"type":867},{"text":907,"type":333},{"text":871,"type":333,"marks":5392},[5393],{"type":451},{"text":912,"type":333},{"type":397,"attrs":5396,"content":5397},{"class":59},[5398],{"text":917,"type":333},{"type":327,"attrs":5400,"content":5401},{"level":329,"textAlign":59},[5402],{"text":922,"type":333},{"type":335,"attrs":5404,"content":5405},{"textAlign":59},[5406],{"text":927,"type":333,"marks":5407},[5408],{"type":451},{"type":335,"attrs":5410,"content":5411},{"textAlign":59},[5412,5413,5416,5417,5420,5421,5424],{"text":934,"type":333},{"text":936,"type":333,"marks":5414},[5415],{"type":451},{"text":940,"type":333},{"text":936,"type":333,"marks":5418},[5419],{"type":451},{"text":945,"type":333},{"text":947,"type":333,"marks":5422},[5423],{"type":451},{"text":500,"type":333},{"type":397,"attrs":5426,"content":5427},{"class":59},[5428],{"text":955,"type":333},{"type":327,"attrs":5430,"content":5431},{"level":329,"textAlign":59},[5432],{"text":960,"type":333},{"type":335,"attrs":5434,"content":5435},{"textAlign":59},[5436,5439],{"text":965,"type":333,"marks":5437},[5438],{"type":451},{"text":969,"type":333},{"type":335,"attrs":5441,"content":5442},{"textAlign":59},[5443,5446],{"text":974,"type":333,"marks":5444},[5445],{"type":451},{"text":978,"type":333},{"type":397,"attrs":5448,"content":5449},{"class":59},[5450],{"text":983,"type":333},{"type":327,"attrs":5452,"content":5453},{"level":329,"textAlign":59},[5454],{"text":988,"type":333},{"type":335,"attrs":5456,"content":5457},{"textAlign":59},[5458],{"text":993,"type":333,"marks":5459},[5460],{"type":451},{"type":335,"attrs":5462,"content":5463},{"textAlign":59},[5464],{"text":1000,"type":333},{"type":351,"content":5466},[5467,5477],{"type":354,"content":5468},[5469],{"type":335,"attrs":5470,"content":5471},{"textAlign":59},[5472,5473,5476],{"text":862,"type":333},{"text":864,"type":333,"marks":5474},[5475],{"type":867},{"text":1013,"type":333},{"type":354,"content":5478},[5479,5487],{"type":335,"attrs":5480,"content":5481},{"textAlign":59},[5482,5483,5486],{"text":862,"type":333},{"text":881,"type":333,"marks":5484},[5485],{"type":867},{"text":1024,"type":333},{"type":351,"content":5488},[5489,5498,5507,5516,5525,5534,5543],{"type":354,"content":5490},[5491],{"type":335,"attrs":5492,"content":5493},{"textAlign":59},[5494,5497],{"text":1033,"type":333,"marks":5495},[5496],{"type":451},{"text":1037,"type":333},{"type":354,"content":5499},[5500],{"type":335,"attrs":5501,"content":5502},{"textAlign":59},[5503,5506],{"text":1044,"type":333,"marks":5504},[5505],{"type":451},{"text":1048,"type":333},{"type":354,"content":5508},[5509],{"type":335,"attrs":5510,"content":5511},{"textAlign":59},[5512,5515],{"text":1055,"type":333,"marks":5513},[5514],{"type":451},{"text":1059,"type":333},{"type":354,"content":5517},[5518],{"type":335,"attrs":5519,"content":5520},{"textAlign":59},[5521,5524],{"text":1066,"type":333,"marks":5522},[5523],{"type":451},{"text":1070,"type":333},{"type":354,"content":5526},[5527],{"type":335,"attrs":5528,"content":5529},{"textAlign":59},[5530,5533],{"text":1077,"type":333,"marks":5531},[5532],{"type":451},{"text":1081,"type":333},{"type":354,"content":5535},[5536],{"type":335,"attrs":5537,"content":5538},{"textAlign":59},[5539,5542],{"text":1088,"type":333,"marks":5540},[5541],{"type":451},{"text":1092,"type":333},{"type":354,"content":5544},[5545],{"type":335,"attrs":5546,"content":5547},{"textAlign":59},[5548,5551],{"text":1099,"type":333,"marks":5549},[5550],{"type":451},{"text":1103,"type":333},{"type":397,"attrs":5553,"content":5554},{"class":59},[5555],{"text":1108,"type":333},{"type":327,"attrs":5557,"content":5558},{"level":329,"textAlign":59},[5559],{"text":1113,"type":333},{"type":335,"attrs":5561,"content":5562},{"textAlign":59},[5563,5566],{"text":1118,"type":333,"marks":5564},[5565],{"type":451},{"text":1122,"type":333},{"type":335,"attrs":5568,"content":5569},{"textAlign":59},[5570,5573],{"text":1127,"type":333,"marks":5571},[5572],{"type":451},{"text":1131,"type":333},{"type":335,"attrs":5575,"content":5576},{"textAlign":59},[5577,5578,5581],{"text":1136,"type":333},{"text":1138,"type":333,"marks":5579},[5580],{"type":451},{"text":1142,"type":333},{"type":397,"attrs":5583,"content":5584},{"class":59},[5585],{"text":1147,"type":333},{"type":335,"attrs":5587,"content":5588},{"textAlign":59},[5589],{"text":1152,"type":333},{"type":327,"attrs":5591,"content":5592},{"level":329,"textAlign":59},[5593],{"text":1157,"type":333},{"type":335,"attrs":5595,"content":5596},{"textAlign":59},[5597],{"text":1162,"type":333,"marks":5598},[5599],{"type":451},{"type":335,"attrs":5601,"content":5602},{"textAlign":59},[5603,5604,5607,5608,5611,5612,5615,5616,5619,5620,5623,5624,5627,5628,5631],{"text":1169,"type":333},{"text":1171,"type":333,"marks":5605},[5606],{"type":451},{"text":1175,"type":333},{"text":1177,"type":333,"marks":5609},[5610],{"type":451},{"text":1181,"type":333},{"text":1183,"type":333,"marks":5613},[5614],{"type":451},{"text":1187,"type":333},{"text":1189,"type":333,"marks":5617},[5618],{"type":451},{"text":1187,"type":333},{"text":1194,"type":333,"marks":5621},[5622],{"type":451},{"text":1187,"type":333},{"text":1199,"type":333,"marks":5625},[5626],{"type":451},{"text":1203,"type":333},{"text":1205,"type":333,"marks":5629},[5630],{"type":451},{"text":500,"type":333},{"type":397,"attrs":5633,"content":5634},{"class":59},[5635],{"text":1213,"type":333},{"type":327,"attrs":5637,"content":5638},{"level":329,"textAlign":59},[5639],{"text":1218,"type":333},{"type":335,"attrs":5641,"content":5642},{"textAlign":59},[5643],{"text":1223,"type":333,"marks":5644},[5645],{"type":451},{"type":335,"attrs":5647,"content":5648},{"textAlign":59},[5649],{"text":1230,"type":333},{"type":327,"attrs":5651,"content":5652},{"level":329,"textAlign":59},[5653],{"text":1235,"type":333},{"type":335,"attrs":5655,"content":5656},{"textAlign":59},[5657,5658,5661],{"text":1240,"type":333},{"text":832,"type":333,"marks":5659},[5660],{"type":451},{"text":1245,"type":333},{"type":351,"content":5663},[5664,5673,5682,5691,5700,5709],{"type":354,"content":5665},[5666],{"type":335,"attrs":5667,"content":5668},{"textAlign":59},[5669,5672],{"text":1254,"type":333,"marks":5670},[5671],{"type":451},{"text":1258,"type":333},{"type":354,"content":5674},[5675],{"type":335,"attrs":5676,"content":5677},{"textAlign":59},[5678,5681],{"text":1265,"type":333,"marks":5679},[5680],{"type":451},{"text":1269,"type":333},{"type":354,"content":5683},[5684],{"type":335,"attrs":5685,"content":5686},{"textAlign":59},[5687,5690],{"text":1276,"type":333,"marks":5688},[5689],{"type":451},{"text":1280,"type":333},{"type":354,"content":5692},[5693],{"type":335,"attrs":5694,"content":5695},{"textAlign":59},[5696,5699],{"text":1287,"type":333,"marks":5697},[5698],{"type":451},{"text":1291,"type":333},{"type":354,"content":5701},[5702],{"type":335,"attrs":5703,"content":5704},{"textAlign":59},[5705,5708],{"text":1298,"type":333,"marks":5706},[5707],{"type":451},{"text":1302,"type":333},{"type":354,"content":5710},[5711],{"type":335,"attrs":5712,"content":5713},{"textAlign":59},[5714,5717],{"text":1309,"type":333,"marks":5715},[5716],{"type":451},{"text":1313,"type":333},{"type":327,"attrs":5719,"content":5720},{"level":329,"textAlign":59},[5721],{"text":1318,"type":333},{"type":335,"attrs":5723,"content":5724},{"textAlign":59},[5725,5728],{"text":1323,"type":333,"marks":5726},[5727],{"type":451},{"text":1327,"type":333},{"type":335,"attrs":5730,"content":5731},{"textAlign":59},[5732,5735],{"text":1332,"type":333,"marks":5733},[5734],{"type":451},{"text":1336,"type":333},{"type":327,"attrs":5737,"content":5738},{"level":329,"textAlign":59},[5739],{"text":1341,"type":333},{"type":335,"attrs":5741,"content":5742},{"textAlign":59},[5743,5744,5747],{"text":781,"type":333},{"text":618,"type":333,"marks":5745},[5746],{"type":451},{"text":1350,"type":333},{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":5749},{},[],[],[],{"name":369,"created_at":5754,"published_at":5755,"updated_at":5756,"id":5757,"uuid":375,"content":5758,"slug":7080,"full_slug":7081,"sort_by_date":59,"position":7082,"tag_list":7083,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":7084,"first_published_at":5755,"release_id":59,"lang":65,"path":59,"alternates":7085,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},"2026-06-03T20:12:52.811Z","2026-06-03T20:57:51.884Z","2026-06-03T20:57:51.900Z",183615376684926,{"_uid":5759,"body":5760,"name":369,"image":5940,"pinned":24,"summary":5942,"category":504,"component":266,"related_articles":5943},"b48fffab-6711-4490-9aae-3ff6808f7b9f",{"type":324,"content":5761},[5762,5766,5784,5789,5794,5799,5876,5881,5892,5897,5902,5925,5930],{"type":327,"attrs":5763,"content":5764},{"level":329,"textAlign":59},[5765],{"text":332,"type":333},{"type":335,"attrs":5767,"content":5768},{"textAlign":59},[5769,5771,5776,5778,5783],{"text":5770,"type":333},"This article walks through adding custom shipping code to your store from the Foxy admin. For what custom shipping code can do and how it works, see ",{"text":5772,"type":333,"marks":5773},"Custom Shipping Code",[5774],{"type":372,"attrs":5775},{"href":1972,"uuid":512,"anchor":59,"target":376,"linktype":14},{"text":5777,"type":333},". For ready to use code, see ",{"text":1363,"type":333,"marks":5779},[5780],{"type":372,"attrs":5781},{"href":5782,"uuid":1368,"anchor":59,"target":376,"linktype":14},"\u002Fhelp\u002Farticles\u002Fcustom-shipping-code-examples",{"text":500,"type":333},{"type":327,"attrs":5785,"content":5786},{"level":329,"textAlign":59},[5787],{"text":5788,"type":333},"Before you start",{"type":335,"attrs":5790,"content":5791},{"textAlign":59},[5792],{"text":5793,"type":333},"Custom shipping code runs for categories whose delivery type is set to \"Shipped using live shipping rates.\" Make sure the categories you want to affect are set to that delivery type and have a default weight configured. You can set this up in the Categories section of your admin.",{"type":327,"attrs":5795,"content":5796},{"level":329,"textAlign":59},[5797],{"text":5798,"type":333},"Steps",{"type":408,"attrs":5800,"content":5801},{"order":410},[5802,5820,5838,5850,5857,5869],{"type":354,"content":5803},[5804],{"type":335,"attrs":5805,"content":5806},{"textAlign":59},[5807,5809,5813,5815,5818],{"text":5808,"type":333},"In the Foxy admin, go to ",{"text":5810,"type":333,"marks":5811},"Settings",[5812],{"type":867},{"text":5814,"type":333}," and open the ",{"text":4030,"type":333,"marks":5816},[5817],{"type":867},{"text":5819,"type":333}," page.",{"type":354,"content":5821},[5822],{"type":335,"attrs":5823,"content":5824},{"textAlign":59},[5825,5827,5831,5833,5836],{"text":5826,"type":333},"In the ",{"text":5828,"type":333,"marks":5829},"Shipping methods",[5830],{"type":867},{"text":5832,"type":333}," list, click ",{"text":5772,"type":333,"marks":5834},[5835],{"type":867},{"text":5837,"type":333},". It will show as \"Inactive\" until you add code.",{"type":354,"content":5839},[5840],{"type":335,"attrs":5841,"content":5842},{"textAlign":59},[5843,5844,5848],{"text":862,"type":333},{"text":5845,"type":333,"marks":5846},"New shipping method",[5847],{"type":867},{"text":5849,"type":333}," panel opens with a code editor labeled \"Custom Code.\"",{"type":354,"content":5851},[5852],{"type":335,"attrs":5853,"content":5854},{"textAlign":59},[5855],{"text":5856,"type":333},"Enter or paste your JavaScript into the editor. If you need help writing it you can reach out to the Foxy Support team.",{"type":354,"content":5858},[5859],{"type":335,"attrs":5860,"content":5861},{"textAlign":59},[5862,5864,5868],{"text":5863,"type":333},"Click ",{"text":5865,"type":333,"marks":5866},"Create",[5867],{"type":867},{"text":500,"type":333},{"type":354,"content":5870},[5871],{"type":335,"attrs":5872,"content":5873},{"textAlign":59},[5874],{"text":5875,"type":333},"Foxy deploys your code behind the scenes. This takes about 15 to 20 seconds. Once deployed, Custom Shipping Code will show as \"Active\" in the Shipping methods list.",{"type":327,"attrs":5877,"content":5878},{"level":329,"textAlign":59},[5879],{"text":5880,"type":333},"Recommended: prevent rate tampering",{"type":335,"attrs":5882,"content":5883},{"textAlign":59},[5884,5886,5890],{"text":5885,"type":333},"On the same Shipping page, enable ",{"text":5887,"type":333,"marks":5888},"Prevent shipping rate tampering",[5889],{"type":867},{"text":5891,"type":333},". This signs each shipping rate and verifies it hasn't been altered between the cart and checkout submission. Leave this off only if you still rely on legacy browser side rate snippets.",{"type":327,"attrs":5893,"content":5894},{"level":329,"textAlign":59},[5895],{"text":5896,"type":333},"Test your code",{"type":335,"attrs":5898,"content":5899},{"textAlign":59},[5900],{"text":5901,"type":333},"Add a product from an eligible category to your cart and proceed to checkout with a shipping address. Your custom rates should appear among the shipping options. If you don't see the rates you expect:",{"type":351,"content":5903},[5904,5911,5918],{"type":354,"content":5905},[5906],{"type":335,"attrs":5907,"content":5908},{"textAlign":59},[5909],{"text":5910,"type":333},"Confirm the product's category delivery type is \"Shipped using live shipping rates.\"",{"type":354,"content":5912},[5913],{"type":335,"attrs":5914,"content":5915},{"textAlign":59},[5916],{"text":5917,"type":333},"Confirm the code was saved and deployment finished (the method shows \"Active\").",{"type":354,"content":5919},[5920],{"type":335,"attrs":5921,"content":5922},{"textAlign":59},[5923],{"text":5924,"type":333},"Check that your code adds at least one rate (or returns an error) for the address you're testing.",{"type":327,"attrs":5926,"content":5927},{"level":329,"textAlign":59},[5928],{"text":5929,"type":333},"Edit or update your code",{"type":335,"attrs":5931,"content":5932},{"textAlign":59},[5933,5935,5938],{"text":5934,"type":333},"To change your code later, return to the Shipping page, click ",{"text":5772,"type":333,"marks":5936},[5937],{"type":867},{"text":5939,"type":333}," again, edit the code, and Save. Each save triggers a fresh deployment.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":5941},{},"Step by step: add custom shipping code to your store.",[5944,6405,6878],{"name":1363,"created_at":1364,"published_at":1365,"updated_at":1366,"id":1367,"uuid":1368,"content":5945,"slug":1941,"full_slug":1942,"sort_by_date":59,"position":1943,"tag_list":6403,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":1945,"first_published_at":1365,"release_id":59,"lang":65,"path":59,"alternates":6404,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},{"_uid":1370,"body":5946,"name":1363,"image":6400,"pinned":24,"summary":1939,"category":504,"component":266,"related_articles":6402},{"type":324,"content":5947},[5948,5952,5956,5968,5972,5976,5980,5984,5988,5992,5996,6000,6004,6008,6012,6016,6020,6024,6028,6032,6040,6044,6048,6052,6056,6060,6064,6068,6072,6076,6080,6084,6088,6092,6096,6100,6104,6108,6112,6116,6120,6124,6128,6132,6136,6140,6144,6148,6152,6156,6160,6164,6168,6172,6176,6180,6184,6188,6192,6196,6200,6204,6208,6212,6216,6220,6224,6228,6232,6236,6240,6244,6248,6252,6256,6260,6264,6268,6272,6276,6280,6284,6288,6292,6296,6300,6304,6308,6312,6316,6320,6324,6332,6336,6340,6344,6348,6352,6356,6360,6368,6372,6376,6384,6388,6392,6396],{"type":327,"attrs":5949,"content":5950},{"level":329,"textAlign":59},[5951],{"text":332,"type":333},{"type":335,"attrs":5953,"content":5954},{"textAlign":59},[5955],{"text":1381,"type":333},{"type":335,"attrs":5957,"content":5958},{"textAlign":59},[5959,5960,5963,5964,5967],{"text":1386,"type":333},{"text":607,"type":333,"marks":5961},[5962],{"type":451},{"text":1391,"type":333},{"text":618,"type":333,"marks":5965},[5966],{"type":451},{"text":1396,"type":333},{"type":327,"attrs":5969,"content":5970},{"level":329,"textAlign":59},[5971],{"text":1401,"type":333},{"type":335,"attrs":5973,"content":5974},{"textAlign":59},[5975],{"text":1406,"type":333},{"type":397,"attrs":5977,"content":5978},{"class":59},[5979],{"text":1411,"type":333},{"type":327,"attrs":5981,"content":5982},{"level":329,"textAlign":59},[5983],{"text":1416,"type":333},{"type":335,"attrs":5985,"content":5986},{"textAlign":59},[5987],{"text":1421,"type":333},{"type":397,"attrs":5989,"content":5990},{"class":59},[5991],{"text":724,"type":333},{"type":327,"attrs":5993,"content":5994},{"level":329,"textAlign":59},[5995],{"text":1430,"type":333},{"type":335,"attrs":5997,"content":5998},{"textAlign":59},[5999],{"text":1435,"type":333},{"type":397,"attrs":6001,"content":6002},{"class":59},[6003],{"text":1440,"type":333},{"type":327,"attrs":6005,"content":6006},{"level":329,"textAlign":59},[6007],{"text":1445,"type":333},{"type":335,"attrs":6009,"content":6010},{"textAlign":59},[6011],{"text":1450,"type":333},{"type":397,"attrs":6013,"content":6014},{"class":59},[6015],{"text":1455,"type":333},{"type":327,"attrs":6017,"content":6018},{"level":329,"textAlign":59},[6019],{"text":1460,"type":333},{"type":335,"attrs":6021,"content":6022},{"textAlign":59},[6023],{"text":1465,"type":333},{"type":397,"attrs":6025,"content":6026},{"class":59},[6027],{"text":1470,"type":333},{"type":327,"attrs":6029,"content":6030},{"level":329,"textAlign":59},[6031],{"text":1475,"type":333},{"type":335,"attrs":6033,"content":6034},{"textAlign":59},[6035,6036,6039],{"text":1480,"type":333},{"text":1482,"type":333,"marks":6037},[6038],{"type":451},{"text":1486,"type":333},{"type":397,"attrs":6041,"content":6042},{"class":59},[6043],{"text":1491,"type":333},{"type":327,"attrs":6045,"content":6046},{"level":329,"textAlign":59},[6047],{"text":1496,"type":333},{"type":335,"attrs":6049,"content":6050},{"textAlign":59},[6051],{"text":1501,"type":333},{"type":397,"attrs":6053,"content":6054},{"class":59},[6055],{"text":1506,"type":333},{"type":327,"attrs":6057,"content":6058},{"level":329,"textAlign":59},[6059],{"text":1511,"type":333},{"type":335,"attrs":6061,"content":6062},{"textAlign":59},[6063],{"text":1516,"type":333},{"type":397,"attrs":6065,"content":6066},{"class":59},[6067],{"text":1521,"type":333},{"type":327,"attrs":6069,"content":6070},{"level":329,"textAlign":59},[6071],{"text":1526,"type":333},{"type":335,"attrs":6073,"content":6074},{"textAlign":59},[6075],{"text":1531,"type":333},{"type":397,"attrs":6077,"content":6078},{"class":59},[6079],{"text":1213,"type":333},{"type":327,"attrs":6081,"content":6082},{"level":329,"textAlign":59},[6083],{"text":1540,"type":333},{"type":335,"attrs":6085,"content":6086},{"textAlign":59},[6087],{"text":1545,"type":333},{"type":397,"attrs":6089,"content":6090},{"class":59},[6091],{"text":1550,"type":333},{"type":335,"attrs":6093,"content":6094},{"textAlign":59},[6095],{"text":1555,"type":333},{"type":397,"attrs":6097,"content":6098},{"class":59},[6099],{"text":1560,"type":333},{"type":327,"attrs":6101,"content":6102},{"level":329,"textAlign":59},[6103],{"text":1565,"type":333},{"type":335,"attrs":6105,"content":6106},{"textAlign":59},[6107],{"text":1570,"type":333},{"type":397,"attrs":6109,"content":6110},{"class":59},[6111],{"text":1575,"type":333},{"type":327,"attrs":6113,"content":6114},{"level":329,"textAlign":59},[6115],{"text":1580,"type":333},{"type":335,"attrs":6117,"content":6118},{"textAlign":59},[6119],{"text":1585,"type":333},{"type":397,"attrs":6121,"content":6122},{"class":59},[6123],{"text":1590,"type":333},{"type":327,"attrs":6125,"content":6126},{"level":329,"textAlign":59},[6127],{"text":1595,"type":333},{"type":335,"attrs":6129,"content":6130},{"textAlign":59},[6131],{"text":1600,"type":333},{"type":397,"attrs":6133,"content":6134},{"class":59},[6135],{"text":1605,"type":333},{"type":327,"attrs":6137,"content":6138},{"level":329,"textAlign":59},[6139],{"text":1610,"type":333},{"type":335,"attrs":6141,"content":6142},{"textAlign":59},[6143],{"text":1615,"type":333},{"type":397,"attrs":6145,"content":6146},{"class":59},[6147],{"text":1620,"type":333},{"type":327,"attrs":6149,"content":6150},{"level":329,"textAlign":59},[6151],{"text":1625,"type":333},{"type":335,"attrs":6153,"content":6154},{"textAlign":59},[6155],{"text":1630,"type":333},{"type":397,"attrs":6157,"content":6158},{"class":59},[6159],{"text":1635,"type":333},{"type":327,"attrs":6161,"content":6162},{"level":329,"textAlign":59},[6163],{"text":1640,"type":333},{"type":335,"attrs":6165,"content":6166},{"textAlign":59},[6167],{"text":1645,"type":333},{"type":397,"attrs":6169,"content":6170},{"class":59},[6171],{"text":1650,"type":333},{"type":327,"attrs":6173,"content":6174},{"level":329,"textAlign":59},[6175],{"text":1655,"type":333},{"type":335,"attrs":6177,"content":6178},{"textAlign":59},[6179],{"text":1660,"type":333},{"type":397,"attrs":6181,"content":6182},{"class":59},[6183],{"text":1665,"type":333},{"type":327,"attrs":6185,"content":6186},{"level":329,"textAlign":59},[6187],{"text":1670,"type":333},{"type":335,"attrs":6189,"content":6190},{"textAlign":59},[6191],{"text":1675,"type":333},{"type":397,"attrs":6193,"content":6194},{"class":59},[6195],{"text":1680,"type":333},{"type":327,"attrs":6197,"content":6198},{"level":329,"textAlign":59},[6199],{"text":1685,"type":333},{"type":335,"attrs":6201,"content":6202},{"textAlign":59},[6203],{"text":1690,"type":333},{"type":397,"attrs":6205,"content":6206},{"class":59},[6207],{"text":1695,"type":333},{"type":327,"attrs":6209,"content":6210},{"level":329,"textAlign":59},[6211],{"text":1700,"type":333},{"type":335,"attrs":6213,"content":6214},{"textAlign":59},[6215],{"text":1705,"type":333},{"type":397,"attrs":6217,"content":6218},{"class":59},[6219],{"text":1710,"type":333},{"type":327,"attrs":6221,"content":6222},{"level":329,"textAlign":59},[6223],{"text":1715,"type":333},{"type":397,"attrs":6225,"content":6226},{"class":59},[6227],{"text":1720,"type":333},{"type":327,"attrs":6229,"content":6230},{"level":329,"textAlign":59},[6231],{"text":1725,"type":333},{"type":397,"attrs":6233,"content":6234},{"class":59},[6235],{"text":1730,"type":333},{"type":327,"attrs":6237,"content":6238},{"level":329,"textAlign":59},[6239],{"text":1735,"type":333},{"type":335,"attrs":6241,"content":6242},{"textAlign":59},[6243],{"text":1740,"type":333},{"type":397,"attrs":6245,"content":6246},{"class":59},[6247],{"text":1745,"type":333},{"type":327,"attrs":6249,"content":6250},{"level":329,"textAlign":59},[6251],{"text":1750,"type":333},{"type":335,"attrs":6253,"content":6254},{"textAlign":59},[6255],{"text":1755,"type":333},{"type":397,"attrs":6257,"content":6258},{"class":59},[6259],{"text":1760,"type":333},{"type":327,"attrs":6261,"content":6262},{"level":329,"textAlign":59},[6263],{"text":1765,"type":333},{"type":335,"attrs":6265,"content":6266},{"textAlign":59},[6267],{"text":1770,"type":333},{"type":397,"attrs":6269,"content":6270},{"class":59},[6271],{"text":1775,"type":333},{"type":327,"attrs":6273,"content":6274},{"level":329,"textAlign":59},[6275],{"text":1780,"type":333},{"type":335,"attrs":6277,"content":6278},{"textAlign":59},[6279],{"text":1785,"type":333},{"type":397,"attrs":6281,"content":6282},{"class":59},[6283],{"text":1790,"type":333},{"type":327,"attrs":6285,"content":6286},{"level":329,"textAlign":59},[6287],{"text":1795,"type":333},{"type":335,"attrs":6289,"content":6290},{"textAlign":59},[6291],{"text":1800,"type":333},{"type":397,"attrs":6293,"content":6294},{"class":59},[6295],{"text":1805,"type":333},{"type":327,"attrs":6297,"content":6298},{"level":329,"textAlign":59},[6299],{"text":1810,"type":333},{"type":335,"attrs":6301,"content":6302},{"textAlign":59},[6303],{"text":1815,"type":333},{"type":397,"attrs":6305,"content":6306},{"class":59},[6307],{"text":1820,"type":333},{"type":327,"attrs":6309,"content":6310},{"level":329,"textAlign":59},[6311],{"text":1825,"type":333},{"type":335,"attrs":6313,"content":6314},{"textAlign":59},[6315],{"text":1830,"type":333},{"type":397,"attrs":6317,"content":6318},{"class":59},[6319],{"text":1835,"type":333},{"type":327,"attrs":6321,"content":6322},{"level":329,"textAlign":59},[6323],{"text":1840,"type":333},{"type":335,"attrs":6325,"content":6326},{"textAlign":59},[6327,6328,6331],{"text":1845,"type":333},{"text":1847,"type":333,"marks":6329},[6330],{"type":451},{"text":1851,"type":333},{"type":397,"attrs":6333,"content":6334},{"class":59},[6335],{"text":1856,"type":333},{"type":327,"attrs":6337,"content":6338},{"level":329,"textAlign":59},[6339],{"text":1861,"type":333},{"type":335,"attrs":6341,"content":6342},{"textAlign":59},[6343],{"text":1866,"type":333},{"type":397,"attrs":6345,"content":6346},{"class":59},[6347],{"text":1871,"type":333},{"type":327,"attrs":6349,"content":6350},{"level":329,"textAlign":59},[6351],{"text":1876,"type":333},{"type":397,"attrs":6353,"content":6354},{"class":59},[6355],{"text":1881,"type":333},{"type":327,"attrs":6357,"content":6358},{"level":329,"textAlign":59},[6359],{"text":1886,"type":333},{"type":335,"attrs":6361,"content":6362},{"textAlign":59},[6363,6364,6367],{"text":1891,"type":333},{"text":1893,"type":333,"marks":6365},[6366],{"type":451},{"text":1897,"type":333},{"type":397,"attrs":6369,"content":6370},{"class":59},[6371],{"text":1902,"type":333},{"type":327,"attrs":6373,"content":6374},{"level":329,"textAlign":59},[6375],{"text":1907,"type":333},{"type":335,"attrs":6377,"content":6378},{"textAlign":59},[6379,6380,6383],{"text":1891,"type":333},{"text":1893,"type":333,"marks":6381},[6382],{"type":451},{"text":1916,"type":333},{"type":397,"attrs":6385,"content":6386},{"class":59},[6387],{"text":1921,"type":333},{"type":327,"attrs":6389,"content":6390},{"level":329,"textAlign":59},[6391],{"text":1926,"type":333},{"type":335,"attrs":6393,"content":6394},{"textAlign":59},[6395],{"text":1931,"type":333},{"type":397,"attrs":6397,"content":6398},{"class":59},[6399],{"text":1936,"type":333},{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":6401},{},[],[],[],{"name":479,"created_at":765,"published_at":766,"updated_at":767,"id":768,"uuid":484,"content":6406,"slug":1355,"full_slug":1356,"sort_by_date":59,"position":1357,"tag_list":6876,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":1360,"first_published_at":766,"release_id":59,"lang":65,"path":59,"alternates":6877,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},{"_uid":770,"body":6407,"name":479,"image":6873,"pinned":24,"summary":1353,"category":504,"component":266,"related_articles":6875},{"type":324,"content":6408},[6409,6413,6421,6425,6431,6447,6451,6459,6463,6469,6473,6520,6524,6528,6534,6550,6554,6558,6565,6572,6576,6580,6586,6590,6677,6681,6685,6692,6699,6707,6711,6715,6719,6725,6757,6761,6765,6771,6775,6779,6787,6843,6847,6854,6861,6865],{"type":327,"attrs":6410,"content":6411},{"level":329,"textAlign":59},[6412],{"text":332,"type":333},{"type":335,"attrs":6414,"content":6415},{"textAlign":59},[6416,6417,6420],{"text":781,"type":333},{"text":607,"type":333,"marks":6418},[6419],{"type":451},{"text":786,"type":333},{"type":327,"attrs":6422,"content":6423},{"level":329,"textAlign":59},[6424],{"text":791,"type":333},{"type":335,"attrs":6426,"content":6427},{"textAlign":59},[6428],{"text":796,"type":333,"marks":6429},[6430],{"type":451},{"type":335,"attrs":6432,"content":6433},{"textAlign":59},[6434,6435,6438,6439,6442,6443,6446],{"text":803,"type":333},{"text":805,"type":333,"marks":6436},[6437],{"type":451},{"text":809,"type":333},{"text":811,"type":333,"marks":6440},[6441],{"type":451},{"text":745,"type":333},{"text":816,"type":333,"marks":6444},[6445],{"type":451},{"text":820,"type":333},{"type":397,"attrs":6448,"content":6449},{"class":59},[6450],{"text":825,"type":333},{"type":335,"attrs":6452,"content":6453},{"textAlign":59},[6454,6455,6458],{"text":830,"type":333},{"text":832,"type":333,"marks":6456},[6457],{"type":451},{"text":836,"type":333},{"type":327,"attrs":6460,"content":6461},{"level":329,"textAlign":59},[6462],{"text":841,"type":333},{"type":335,"attrs":6464,"content":6465},{"textAlign":59},[6466],{"text":846,"type":333,"marks":6467},[6468],{"type":451},{"type":335,"attrs":6470,"content":6471},{"textAlign":59},[6472],{"text":853,"type":333},{"type":351,"content":6474},[6475,6488,6506],{"type":354,"content":6476},[6477],{"type":335,"attrs":6478,"content":6479},{"textAlign":59},[6480,6481,6484,6485],{"text":862,"type":333},{"text":864,"type":333,"marks":6482},[6483],{"type":867},{"text":869,"type":333},{"text":871,"type":333,"marks":6486},[6487],{"type":451},{"type":354,"content":6489},[6490],{"type":335,"attrs":6491,"content":6492},{"textAlign":59},[6493,6494,6497,6498,6501,6502,6505],{"text":862,"type":333},{"text":881,"type":333,"marks":6495},[6496],{"type":867},{"text":885,"type":333},{"text":811,"type":333,"marks":6499},[6500],{"type":451},{"text":714,"type":333},{"text":816,"type":333,"marks":6503},[6504],{"type":451},{"text":894,"type":333},{"type":354,"content":6507},[6508],{"type":335,"attrs":6509,"content":6510},{"textAlign":59},[6511,6512,6515,6516,6519],{"text":901,"type":333},{"text":903,"type":333,"marks":6513},[6514],{"type":867},{"text":907,"type":333},{"text":871,"type":333,"marks":6517},[6518],{"type":451},{"text":912,"type":333},{"type":397,"attrs":6521,"content":6522},{"class":59},[6523],{"text":917,"type":333},{"type":327,"attrs":6525,"content":6526},{"level":329,"textAlign":59},[6527],{"text":922,"type":333},{"type":335,"attrs":6529,"content":6530},{"textAlign":59},[6531],{"text":927,"type":333,"marks":6532},[6533],{"type":451},{"type":335,"attrs":6535,"content":6536},{"textAlign":59},[6537,6538,6541,6542,6545,6546,6549],{"text":934,"type":333},{"text":936,"type":333,"marks":6539},[6540],{"type":451},{"text":940,"type":333},{"text":936,"type":333,"marks":6543},[6544],{"type":451},{"text":945,"type":333},{"text":947,"type":333,"marks":6547},[6548],{"type":451},{"text":500,"type":333},{"type":397,"attrs":6551,"content":6552},{"class":59},[6553],{"text":955,"type":333},{"type":327,"attrs":6555,"content":6556},{"level":329,"textAlign":59},[6557],{"text":960,"type":333},{"type":335,"attrs":6559,"content":6560},{"textAlign":59},[6561,6564],{"text":965,"type":333,"marks":6562},[6563],{"type":451},{"text":969,"type":333},{"type":335,"attrs":6566,"content":6567},{"textAlign":59},[6568,6571],{"text":974,"type":333,"marks":6569},[6570],{"type":451},{"text":978,"type":333},{"type":397,"attrs":6573,"content":6574},{"class":59},[6575],{"text":983,"type":333},{"type":327,"attrs":6577,"content":6578},{"level":329,"textAlign":59},[6579],{"text":988,"type":333},{"type":335,"attrs":6581,"content":6582},{"textAlign":59},[6583],{"text":993,"type":333,"marks":6584},[6585],{"type":451},{"type":335,"attrs":6587,"content":6588},{"textAlign":59},[6589],{"text":1000,"type":333},{"type":351,"content":6591},[6592,6602],{"type":354,"content":6593},[6594],{"type":335,"attrs":6595,"content":6596},{"textAlign":59},[6597,6598,6601],{"text":862,"type":333},{"text":864,"type":333,"marks":6599},[6600],{"type":867},{"text":1013,"type":333},{"type":354,"content":6603},[6604,6612],{"type":335,"attrs":6605,"content":6606},{"textAlign":59},[6607,6608,6611],{"text":862,"type":333},{"text":881,"type":333,"marks":6609},[6610],{"type":867},{"text":1024,"type":333},{"type":351,"content":6613},[6614,6623,6632,6641,6650,6659,6668],{"type":354,"content":6615},[6616],{"type":335,"attrs":6617,"content":6618},{"textAlign":59},[6619,6622],{"text":1033,"type":333,"marks":6620},[6621],{"type":451},{"text":1037,"type":333},{"type":354,"content":6624},[6625],{"type":335,"attrs":6626,"content":6627},{"textAlign":59},[6628,6631],{"text":1044,"type":333,"marks":6629},[6630],{"type":451},{"text":1048,"type":333},{"type":354,"content":6633},[6634],{"type":335,"attrs":6635,"content":6636},{"textAlign":59},[6637,6640],{"text":1055,"type":333,"marks":6638},[6639],{"type":451},{"text":1059,"type":333},{"type":354,"content":6642},[6643],{"type":335,"attrs":6644,"content":6645},{"textAlign":59},[6646,6649],{"text":1066,"type":333,"marks":6647},[6648],{"type":451},{"text":1070,"type":333},{"type":354,"content":6651},[6652],{"type":335,"attrs":6653,"content":6654},{"textAlign":59},[6655,6658],{"text":1077,"type":333,"marks":6656},[6657],{"type":451},{"text":1081,"type":333},{"type":354,"content":6660},[6661],{"type":335,"attrs":6662,"content":6663},{"textAlign":59},[6664,6667],{"text":1088,"type":333,"marks":6665},[6666],{"type":451},{"text":1092,"type":333},{"type":354,"content":6669},[6670],{"type":335,"attrs":6671,"content":6672},{"textAlign":59},[6673,6676],{"text":1099,"type":333,"marks":6674},[6675],{"type":451},{"text":1103,"type":333},{"type":397,"attrs":6678,"content":6679},{"class":59},[6680],{"text":1108,"type":333},{"type":327,"attrs":6682,"content":6683},{"level":329,"textAlign":59},[6684],{"text":1113,"type":333},{"type":335,"attrs":6686,"content":6687},{"textAlign":59},[6688,6691],{"text":1118,"type":333,"marks":6689},[6690],{"type":451},{"text":1122,"type":333},{"type":335,"attrs":6693,"content":6694},{"textAlign":59},[6695,6698],{"text":1127,"type":333,"marks":6696},[6697],{"type":451},{"text":1131,"type":333},{"type":335,"attrs":6700,"content":6701},{"textAlign":59},[6702,6703,6706],{"text":1136,"type":333},{"text":1138,"type":333,"marks":6704},[6705],{"type":451},{"text":1142,"type":333},{"type":397,"attrs":6708,"content":6709},{"class":59},[6710],{"text":1147,"type":333},{"type":335,"attrs":6712,"content":6713},{"textAlign":59},[6714],{"text":1152,"type":333},{"type":327,"attrs":6716,"content":6717},{"level":329,"textAlign":59},[6718],{"text":1157,"type":333},{"type":335,"attrs":6720,"content":6721},{"textAlign":59},[6722],{"text":1162,"type":333,"marks":6723},[6724],{"type":451},{"type":335,"attrs":6726,"content":6727},{"textAlign":59},[6728,6729,6732,6733,6736,6737,6740,6741,6744,6745,6748,6749,6752,6753,6756],{"text":1169,"type":333},{"text":1171,"type":333,"marks":6730},[6731],{"type":451},{"text":1175,"type":333},{"text":1177,"type":333,"marks":6734},[6735],{"type":451},{"text":1181,"type":333},{"text":1183,"type":333,"marks":6738},[6739],{"type":451},{"text":1187,"type":333},{"text":1189,"type":333,"marks":6742},[6743],{"type":451},{"text":1187,"type":333},{"text":1194,"type":333,"marks":6746},[6747],{"type":451},{"text":1187,"type":333},{"text":1199,"type":333,"marks":6750},[6751],{"type":451},{"text":1203,"type":333},{"text":1205,"type":333,"marks":6754},[6755],{"type":451},{"text":500,"type":333},{"type":397,"attrs":6758,"content":6759},{"class":59},[6760],{"text":1213,"type":333},{"type":327,"attrs":6762,"content":6763},{"level":329,"textAlign":59},[6764],{"text":1218,"type":333},{"type":335,"attrs":6766,"content":6767},{"textAlign":59},[6768],{"text":1223,"type":333,"marks":6769},[6770],{"type":451},{"type":335,"attrs":6772,"content":6773},{"textAlign":59},[6774],{"text":1230,"type":333},{"type":327,"attrs":6776,"content":6777},{"level":329,"textAlign":59},[6778],{"text":1235,"type":333},{"type":335,"attrs":6780,"content":6781},{"textAlign":59},[6782,6783,6786],{"text":1240,"type":333},{"text":832,"type":333,"marks":6784},[6785],{"type":451},{"text":1245,"type":333},{"type":351,"content":6788},[6789,6798,6807,6816,6825,6834],{"type":354,"content":6790},[6791],{"type":335,"attrs":6792,"content":6793},{"textAlign":59},[6794,6797],{"text":1254,"type":333,"marks":6795},[6796],{"type":451},{"text":1258,"type":333},{"type":354,"content":6799},[6800],{"type":335,"attrs":6801,"content":6802},{"textAlign":59},[6803,6806],{"text":1265,"type":333,"marks":6804},[6805],{"type":451},{"text":1269,"type":333},{"type":354,"content":6808},[6809],{"type":335,"attrs":6810,"content":6811},{"textAlign":59},[6812,6815],{"text":1276,"type":333,"marks":6813},[6814],{"type":451},{"text":1280,"type":333},{"type":354,"content":6817},[6818],{"type":335,"attrs":6819,"content":6820},{"textAlign":59},[6821,6824],{"text":1287,"type":333,"marks":6822},[6823],{"type":451},{"text":1291,"type":333},{"type":354,"content":6826},[6827],{"type":335,"attrs":6828,"content":6829},{"textAlign":59},[6830,6833],{"text":1298,"type":333,"marks":6831},[6832],{"type":451},{"text":1302,"type":333},{"type":354,"content":6835},[6836],{"type":335,"attrs":6837,"content":6838},{"textAlign":59},[6839,6842],{"text":1309,"type":333,"marks":6840},[6841],{"type":451},{"text":1313,"type":333},{"type":327,"attrs":6844,"content":6845},{"level":329,"textAlign":59},[6846],{"text":1318,"type":333},{"type":335,"attrs":6848,"content":6849},{"textAlign":59},[6850,6853],{"text":1323,"type":333,"marks":6851},[6852],{"type":451},{"text":1327,"type":333},{"type":335,"attrs":6855,"content":6856},{"textAlign":59},[6857,6860],{"text":1332,"type":333,"marks":6858},[6859],{"type":451},{"text":1336,"type":333},{"type":327,"attrs":6862,"content":6863},{"level":329,"textAlign":59},[6864],{"text":1341,"type":333},{"type":335,"attrs":6866,"content":6867},{"textAlign":59},[6868,6869,6872],{"text":781,"type":333},{"text":618,"type":333,"marks":6870},[6871],{"type":451},{"text":1350,"type":333},{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":6874},{},[],[],[],{"name":507,"created_at":508,"published_at":509,"updated_at":510,"id":511,"uuid":512,"content":6879,"slug":5273,"full_slug":5274,"sort_by_date":59,"position":5275,"tag_list":7078,"is_startpage":24,"parent_id":1359,"meta_data":59,"group_id":5277,"first_published_at":5278,"release_id":59,"lang":65,"path":59,"alternates":7079,"default_full_slug":59,"translated_slugs":59,"_stopResolving":33},{"_uid":514,"body":6880,"name":507,"image":7075,"pinned":24,"summary":762,"category":504,"component":266,"related_articles":7077},{"type":324,"content":6881},[6882,6886,6890,6894,6898,6902,6916,6920,6936,6940,6944,6948,6968,6972,7030,7034,7046,7050,7054,7058],{"type":327,"attrs":6883,"content":6884},{"level":329,"textAlign":59},[6885],{"text":332,"type":333},{"type":335,"attrs":6887,"content":6888},{"textAlign":59},[6889],{"text":525,"type":333},{"type":327,"attrs":6891,"content":6892},{"level":329,"textAlign":59},[6893],{"text":530,"type":333},{"type":335,"attrs":6895,"content":6896},{"textAlign":59},[6897],{"text":535,"type":333},{"type":335,"attrs":6899,"content":6900},{"textAlign":59},[6901],{"text":540,"type":333},{"type":351,"content":6903},[6904,6910],{"type":354,"content":6905},[6906],{"type":335,"attrs":6907,"content":6908},{"textAlign":59},[6909],{"text":549,"type":333},{"type":354,"content":6911},[6912],{"type":335,"attrs":6913,"content":6914},{"textAlign":59},[6915],{"text":556,"type":333},{"type":327,"attrs":6917,"content":6918},{"level":329,"textAlign":59},[6919],{"text":561,"type":333},{"type":335,"attrs":6921,"content":6922},{"textAlign":59},[6923,6924,6927,6928,6931,6932,6935],{"text":566,"type":333},{"text":568,"type":333,"marks":6925},[6926],{"type":451},{"text":572,"type":333},{"text":574,"type":333,"marks":6929},[6930],{"type":451},{"text":578,"type":333},{"text":574,"type":333,"marks":6933},[6934],{"type":451},{"text":583,"type":333},{"type":335,"attrs":6937,"content":6938},{"textAlign":59},[6939],{"text":588,"type":333},{"type":327,"attrs":6941,"content":6942},{"level":329,"textAlign":59},[6943],{"text":593,"type":333},{"type":335,"attrs":6945,"content":6946},{"textAlign":59},[6947],{"text":598,"type":333},{"type":351,"content":6949},[6950,6959],{"type":354,"content":6951},[6952],{"type":335,"attrs":6953,"content":6954},{"textAlign":59},[6955,6958],{"text":607,"type":333,"marks":6956},[6957],{"type":451},{"text":611,"type":333},{"type":354,"content":6960},[6961],{"type":335,"attrs":6962,"content":6963},{"textAlign":59},[6964,6967],{"text":618,"type":333,"marks":6965},[6966],{"type":451},{"text":622,"type":333},{"type":335,"attrs":6969,"content":6970},{"textAlign":59},[6971],{"text":627,"type":333},{"type":351,"content":6973},[6974,6988,7002,7016],{"type":354,"content":6975},[6976],{"type":335,"attrs":6977,"content":6978},{"textAlign":59},[6979,6983,6984,6987],{"text":636,"type":333,"marks":6980},[6981],{"type":372,"attrs":6982},{"href":640,"uuid":59,"anchor":59,"target":641,"linktype":31},{"text":643,"type":333},{"text":645,"type":333,"marks":6985},[6986],{"type":451},{"text":649,"type":333},{"type":354,"content":6989},[6990],{"type":335,"attrs":6991,"content":6992},{"textAlign":59},[6993,6997,6998,7001],{"text":656,"type":333,"marks":6994},[6995],{"type":372,"attrs":6996},{"href":660,"uuid":59,"anchor":59,"target":641,"linktype":31},{"text":643,"type":333},{"text":663,"type":333,"marks":6999},[7000],{"type":451},{"text":649,"type":333},{"type":354,"content":7003},[7004],{"type":335,"attrs":7005,"content":7006},{"textAlign":59},[7007,7011,7012,7015],{"text":673,"type":333,"marks":7008},[7009],{"type":372,"attrs":7010},{"href":677,"uuid":59,"anchor":59,"target":641,"linktype":31},{"text":643,"type":333},{"text":680,"type":333,"marks":7013},[7014],{"type":451},{"text":649,"type":333},{"type":354,"content":7017},[7018],{"type":335,"attrs":7019,"content":7020},{"textAlign":59},[7021,7025,7026,7029],{"text":690,"type":333,"marks":7022},[7023],{"type":372,"attrs":7024},{"href":694,"uuid":59,"anchor":59,"target":641,"linktype":31},{"text":643,"type":333},{"text":690,"type":333,"marks":7027},[7028],{"type":451},{"text":649,"type":333},{"type":327,"attrs":7031,"content":7032},{"level":329,"textAlign":59},[7033],{"text":704,"type":333},{"type":335,"attrs":7035,"content":7036},{"textAlign":59},[7037,7038,7041,7042,7045],{"text":709,"type":333},{"text":607,"type":333,"marks":7039},[7040],{"type":451},{"text":714,"type":333},{"text":618,"type":333,"marks":7043},[7044],{"type":451},{"text":719,"type":333},{"type":397,"attrs":7047,"content":7048},{"class":59},[7049],{"text":724,"type":333},{"type":335,"attrs":7051,"content":7052},{"textAlign":59},[7053],{"text":729,"type":333},{"type":327,"attrs":7055,"content":7056},{"level":329,"textAlign":59},[7057],{"text":734,"type":333},{"type":335,"attrs":7059,"content":7060},{"textAlign":59},[7061,7062,7065,7066,7069,7070,7074],{"text":739,"type":333},{"text":741,"type":333,"marks":7063},[7064],{"type":451},{"text":745,"type":333},{"text":747,"type":333,"marks":7067},[7068],{"type":451},{"text":751,"type":333},{"text":753,"type":333,"marks":7071},[7072],{"type":372,"attrs":7073},{"href":757,"uuid":59,"anchor":59,"target":59,"linktype":31},{"text":759,"type":333},{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":7076},{},[484,1368,1953],[],[],"add-custom-shipping-code","help\u002Farticles\u002Fadd-custom-shipping-code",-1940,[],"c43c2684-8bee-4f8c-a82e-abdcddf846ac",[],"get-live-shipping-rates-with-shippo","help\u002Farticles\u002Fget-live-shipping-rates-with-shippo",-2020,[],"c154241f-a8ef-4338-8fbc-1a100cb354cf",[],{"html":7093,"sections":7094,"segments":7106},"\u003Csection id=\"overview\" data-title=\"Overview\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"overview\">Overview\u003C\u002Fh2>\u003Cp>Shippo connects to more than 40 carriers through a single API. If you need rates from carriers that Foxy does not natively support (USPS, UPS, FedEx), you can fetch them from your Shippo account using Foxy&#039;s Custom Shipping Code feature. This article shows you the code to connect to Shippo and how to install it on your store.\u003C\u002Fp>\u003C\u002Fsection>\u003Csection id=\"before-you-start\" data-title=\"Before You Start\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"before-you-start\">Before You Start\u003C\u002Fh2>\u003Cp>You will need:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>A Shippo account with a live API key (Shippo dashboard, under Settings &gt; API).\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Custom Shipping Code enabled on your store. See \u003Ca href=\"\u002Fhelp\u002Farticles\u002Fadd-custom-shipping-code\" target=\"_self\">Add Custom Shipping Code\u003C\u002Fa> for how to turn it on.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>At least one product category set to a delivery type of &quot;Shipped using live shipping rates&quot;, so the custom code runs for it. See [Shipping and Categories].\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>\u003Csection id=\"the-shipping-code\" data-title=\"The Shipping Code\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"the-shipping-code\">The Shipping Code\u003C\u002Fh2>\u003Cp>This code reads the customer&#039;s shipment details from the cart payload, asks Shippo to create a shipment, then adds every rate Shippo returns to the cart.\u003C\u002Fp>\u003Cdiv class=\"position-relative w-100 overflow-hidden rounded-2\" data-code-block>\u003Cdiv class=\"d-flex justify-content-end border-bottom\" style=\"background:#2b2c3b;\">\u003Cbutton type=\"button\" class=\"btn btn-link btn-sm text-light\" title=\"Copy\" data-code-button>\u003Cspan data-code-default style=\"\">\u003Ci class=\"fal fa-copy me-2\">\u003C\u002Fi> Copy \u003C\u002Fspan>\u003Cspan class=\"text-success\" data-code-success style=\"display:none;\">\u003Ci class=\"fal fa-check ms-2\">\u003C\u002Fi> Copied \u003C\u002Fspan>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003Cdiv class=\"small\">\u003Cpre class=\"hljs p-2\" data-code-content>let myshippo = require(&#x27;shippo&#x27;)(&#x27;YOUR_SHIPPO_LIVE_API_KEY&#x27;);\n\nlet shipment = cart[&#x27;_embedded&#x27;][&#x27;fx:shipment&#x27;];\n\nlet addressFrom  = {\n    &#x27;state&#x27;: shipment[&#x27;origin_region&#x27;],\n    &#x27;zip&#x27;: shipment[&#x27;origin_postal_code&#x27;],\n    &#x27;country&#x27;: shipment[&#x27;origin_country&#x27;]\n};\n\nlet addressTo = {\n    &#x27;name&#x27;: shipment[&#x27;first_name&#x27;] + &quot; &quot; + shipment[&#x27;last_name&#x27;],\n    &#x27;company&#x27;: shipment[&#x27;company&#x27;],\n    &#x27;street1&#x27;: shipment[&#x27;address1&#x27;],\n    &#x27;city&#x27;: shipment[&#x27;city&#x27;],\n    &#x27;state&#x27;: shipment[&#x27;region&#x27;],\n    &#x27;zip&#x27;: shipment[&#x27;postal_code&#x27;],\n    &#x27;country&#x27;: shipment[&#x27;country&#x27;],\n    &#x27;is_residential&#x27;: shipment[&#x27;is_residential&#x27;]\n};\n\nlet parcel = {\n    &#x27;length&#x27;: &#x27;5&#x27;,\n    &#x27;width&#x27;: &#x27;5&#x27;,\n    &#x27;height&#x27;: &#x27;5&#x27;,\n    &#x27;distance_unit&#x27;: &#x27;in&#x27;,\n    &#x27;weight&#x27;: shipment[&#x27;total_weight&#x27;],\n    &#x27;mass_unit&#x27;: &#x27;lb&#x27;,\n};\n\ntry {\n    let myshipment = await myshippo.shipment.create({\n        &quot;address_from&quot;: addressFrom,\n        &quot;address_to&quot;: addressTo,\n        &quot;parcels&quot;: [parcel],\n        &quot;async&quot;: false\n    });\n\n    let rate_options = await myshippo.shipment.rates(myshipment.object_id);\n\n    for (var i = 0; i &lt; rate_options.results.length; i++) {\n        rates.add((10000+i), rate_options.results[i][&#x27;amount&#x27;], rate_options.results[i][&#x27;provider&#x27;], rate_options.results[i][&#x27;servicelevel&#x27;][&#x27;name&#x27;]);\n    }\n} catch (e) {\n    console.log(e);\n    rates.error(&quot;Sorry, we&#x27;re unable to get shipping rates at this time. Please try again, or contact us to finalize your order&quot;);\n}\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\u003Csection id=\"install-the-integration\" data-title=\"Install the Integration\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"install-the-integration\">Install the Integration\u003C\u002Fh2>\u003Col class=\"step step-icon-sm step-dashed step-border-last-0 mt-3\">\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">1\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>In the Foxy admin (admin.foxy.io), open the shipping settings for your store, scroll to Custom Shipping Code, and enable &quot;use custom code&quot;.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">2\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>In the code editor that appears, paste the code above. Do not save it yet.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">3\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>In a new tab, log in to your Shippo account and go to Settings, then API.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">4\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Under Tokens, click &quot;Generate Token&quot; beneath Live Tokens.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">5\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Copy the generated API key, then replace \u003Ccode class=\"badge bg-soft-danger text-danger\">YOUR_SHIPPO_LIVE_API_KEY\u003C\u002Fcode> in the code with it.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">6\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Save your settings. The custom shipping code runs in a separate system, so wait roughly 15 to 20 seconds, then refresh the page. If the save was successful, you will see your code again after refreshing.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003Cli class=\"step-item\">\u003Cdiv class=\"step-content-wrapper\">\u003Cspan class=\"step-icon step-icon-soft-primary\">7\u003C\u002Fspan>\u003Cdiv class=\"w-100 overflow-hidden\">\u003Cdiv class=\"step-content mt-2\">\u003Cp>Test it. Add a product from a live rate shippable category to your cart, then enter a shipping address on the cart or checkout. You should see rates returning from your Shippo account.\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fsection>\u003Csection id=\"customize-the-integration\" data-title=\"Customize the Integration\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"customize-the-integration\">Customize the Integration\u003C\u002Fh2>\u003Cp>This is a basic setup. It returns every rate from Shippo and uses default values for the parcel (a 5 by 5 by 5 inch box). Shippo provides optional extras in their API that you can use to extend the request. See the Shippo documentation on rate requests, and the \u003Ca href=\"\u002Fhelp\u002Farticles\u002Fcustom-shipping-code-api-reference\" target=\"_self\">Custom Shipping Code API Reference\u003C\u002Fa> to filter, rename, or reprice the returned rates.\u003C\u002Fp>\u003Cp>Note that rates returned from custom shipping code are not currency converted by Foxy. If your store uses a currency other than USD, set or convert the rate values to the cart&#039;s currency yourself. See \u003Ca href=\"\u002Fhelp\u002Farticles\u002Fshipping-currency-conversion\" target=\"_self\">Shipping Currency Conversion\u003C\u002Fa>.\u003C\u002Fp>\u003C\u002Fsection>",[7095,7098,7100,7102,7104],{"id":7096,"title":332,"level":7097},"overview","H2",{"id":7099,"title":344,"level":7097},"before-you-start",{"id":7101,"title":390,"level":7097},"the-shipping-code",{"id":7103,"title":406,"level":7097},"install-the-integration",{"id":7105,"title":472,"level":7097},"customize-the-integration",[7107],{"type":7108,"content":7109},"html","\u003Ch2>Overview\u003C\u002Fh2>\u003Cp>Shippo connects to more than 40 carriers through a single API. If you need rates from carriers that Foxy does not natively support (USPS, UPS, FedEx), you can fetch them from your Shippo account using Foxy&#039;s Custom Shipping Code feature. This article shows you the code to connect to Shippo and how to install it on your store.\u003C\u002Fp>\u003Ch2>Before You Start\u003C\u002Fh2>\u003Cp>You will need:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>A Shippo account with a live API key (Shippo dashboard, under Settings &gt; API).\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Custom Shipping Code enabled on your store. See \u003Ca href=\"\u002Fhelp\u002Farticles\u002Fadd-custom-shipping-code\" target=\"_self\">Add Custom Shipping Code\u003C\u002Fa> for how to turn it on.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>At least one product category set to a delivery type of &quot;Shipped using live shipping rates&quot;, so the custom code runs for it. See [Shipping and Categories].\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>The Shipping Code\u003C\u002Fh2>\u003Cp>This code reads the customer&#039;s shipment details from the cart payload, asks Shippo to create a shipment, then adds every rate Shippo returns to the cart.\u003C\u002Fp>\u003Cpre>\u003Ccode>let myshippo = require(&#039;shippo&#039;)(&#039;YOUR_SHIPPO_LIVE_API_KEY&#039;);\n\nlet shipment = cart[&#039;_embedded&#039;][&#039;fx:shipment&#039;];\n\nlet addressFrom  = {\n    &#039;state&#039;: shipment[&#039;origin_region&#039;],\n    &#039;zip&#039;: shipment[&#039;origin_postal_code&#039;],\n    &#039;country&#039;: shipment[&#039;origin_country&#039;]\n};\n\nlet addressTo = {\n    &#039;name&#039;: shipment[&#039;first_name&#039;] + &quot; &quot; + shipment[&#039;last_name&#039;],\n    &#039;company&#039;: shipment[&#039;company&#039;],\n    &#039;street1&#039;: shipment[&#039;address1&#039;],\n    &#039;city&#039;: shipment[&#039;city&#039;],\n    &#039;state&#039;: shipment[&#039;region&#039;],\n    &#039;zip&#039;: shipment[&#039;postal_code&#039;],\n    &#039;country&#039;: shipment[&#039;country&#039;],\n    &#039;is_residential&#039;: shipment[&#039;is_residential&#039;]\n};\n\nlet parcel = {\n    &#039;length&#039;: &#039;5&#039;,\n    &#039;width&#039;: &#039;5&#039;,\n    &#039;height&#039;: &#039;5&#039;,\n    &#039;distance_unit&#039;: &#039;in&#039;,\n    &#039;weight&#039;: shipment[&#039;total_weight&#039;],\n    &#039;mass_unit&#039;: &#039;lb&#039;,\n};\n\ntry {\n    let myshipment = await myshippo.shipment.create({\n        &quot;address_from&quot;: addressFrom,\n        &quot;address_to&quot;: addressTo,\n        &quot;parcels&quot;: [parcel],\n        &quot;async&quot;: false\n    });\n\n    let rate_options = await myshippo.shipment.rates(myshipment.object_id);\n\n    for (var i = 0; i &lt; rate_options.results.length; i++) {\n        rates.add((10000+i), rate_options.results[i][&#039;amount&#039;], rate_options.results[i][&#039;provider&#039;], rate_options.results[i][&#039;servicelevel&#039;][&#039;name&#039;]);\n    }\n} catch (e) {\n    console.log(e);\n    rates.error(&quot;Sorry, we&#039;re unable to get shipping rates at this time. Please try again, or contact us to finalize your order&quot;);\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch2>Install the Integration\u003C\u002Fh2>\u003Col order=\"1\">\u003Cli>\u003Cp>In the Foxy admin (admin.foxy.io), open the shipping settings for your store, scroll to Custom Shipping Code, and enable &quot;use custom code&quot;.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>In the code editor that appears, paste the code above. Do not save it yet.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>In a new tab, log in to your Shippo account and go to Settings, then API.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Under Tokens, click &quot;Generate Token&quot; beneath Live Tokens.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Copy the generated API key, then replace \u003Ccode class=\"badge bg-soft-danger text-danger\">YOUR_SHIPPO_LIVE_API_KEY\u003C\u002Fcode> in the code with it.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Save your settings. The custom shipping code runs in a separate system, so wait roughly 15 to 20 seconds, then refresh the page. If the save was successful, you will see your code again after refreshing.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>Test it. Add a product from a live rate shippable category to your cart, then enter a shipping address on the cart or checkout. You should see rates returning from your Shippo account.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Ch2>Customize the Integration\u003C\u002Fh2>\u003Cp>This is a basic setup. It returns every rate from Shippo and uses default values for the parcel (a 5 by 5 by 5 inch box). Shippo provides optional extras in their API that you can use to extend the request. See the Shippo documentation on rate requests, and the \u003Ca href=\"\u002Fhelp\u002Farticles\u002Fcustom-shipping-code-api-reference\" target=\"_self\">Custom Shipping Code API Reference\u003C\u002Fa> to filter, rename, or reprice the returned rates.\u003C\u002Fp>\u003Cp>Note that rates returned from custom shipping code are not currency converted by Foxy. If your store uses a currency other than USD, set or convert the rate values to the cart&#039;s currency yourself. See \u003Ca href=\"\u002Fhelp\u002Farticles\u002Fshipping-currency-conversion\" target=\"_self\">Shipping Currency Conversion\u003C\u002Fa>.\u003C\u002Fp>",{"name":7111,"created_at":7112,"published_at":7113,"updated_at":7114,"id":7115,"uuid":47,"content":7116,"slug":48,"full_slug":48,"sort_by_date":59,"position":7291,"tag_list":7292,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":7293,"first_published_at":7294,"release_id":59,"lang":65,"path":59,"alternates":7295,"default_full_slug":59,"translated_slugs":59},"Contact","2022-09-23T19:56:58.957Z","2025-05-08T18:24:40.382Z","2025-05-08T18:24:40.392Z",3138,{"seo":7117,"_uid":7120,"title":7121,"action":7122,"fields":7123,"method":7267,"columns":7268,"subtitle":7282,"component":48,"button_text":7288,"submit_title":7289,"submit_subtitle":7290},{"_uid":7118,"title":7111,"plugin":7119,"description":13},"24ff7574-3bcc-48d2-85b5-e529dfea1cc4","meta-fields","8f54f1da-9d8f-49b2-89e7-840e886491cb","We're here to help.","https:\u002F\u002Fusebasin.com\u002Ff\u002F029f48d65402",[7124,7128,7131,7238,7241,7246,7261],{"_uid":7125,"name":3751,"type":333,"label":7126,"options":13,"required":33,"component":7127,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","Name","form___field",{"_uid":7129,"name":3019,"type":3019,"label":7130,"options":13,"required":33,"component":7127,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","Email Address",{"_uid":7132,"name":7133,"type":7134,"label":7135,"options":7136,"required":33,"component":7127,"conditions":7137,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[7138,7193,7203,7210,7218,7226,7232],{"_uid":7139,"equals":7140,"fields":7141,"component":7192},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[7142],{"_uid":7143,"body":7144,"type":7190,"title":13,"component":7191},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":7145},[7146],{"type":335,"content":7147},[7148,7150,7157,7159,7161,7162,7166,7168,7173,7181,7183,7188],{"text":7149,"type":333},"We are ",{"text":7151,"type":333,"marks":7152},"Foxy.io",[7153],{"type":372,"attrs":7154},{"href":7155,"uuid":59,"anchor":59,"custom":7156,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":7158,"type":333},", an ecommerce platform powering ecommerce for other merchants. We do not sell products, and are unable to assist with questions about order statuses or refunds for any merchants using our platform. Please contact the merchant you ordered from for assistance. If you’d like to report a store using Foxy for fraudulent practices, please select ‘other’ in the subject.",{"type":7160},"hard_break",{"type":7160},{"text":7163,"type":333,"marks":7164},"NOTE:",[7165],{"type":867},{"text":7167,"type":333}," We are ",{"text":7169,"type":333,"marks":7170},"not ",[7171],{"type":7172},"italic",{"text":7174,"type":333,"marks":7175},"Foxy.in",[7176,7180],{"type":372,"attrs":7177},{"href":7178,"uuid":59,"anchor":59,"custom":7179,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":7172},{"text":7182,"type":333},". We are not in any way affiliated with ",{"text":7174,"type":333,"marks":7184},[7185],{"type":372,"attrs":7186},{"href":7178,"uuid":59,"anchor":59,"custom":7187,"target":59,"linktype":31},{},{"text":7189,"type":333},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":7194,"equals":7195,"fields":7196,"component":7192},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[7197],{"_uid":7198,"name":7199,"type":7200,"label":13,"options":13,"required":24,"component":7127,"conditions":7201,"placeholder":13,"default_value":7202},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":7204,"equals":208,"fields":7205,"component":7192},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[7206],{"_uid":7207,"name":7199,"type":7200,"label":13,"options":13,"required":24,"component":7127,"conditions":7208,"placeholder":13,"default_value":7209},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":7211,"equals":7212,"fields":7213,"component":7192},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[7214],{"_uid":7215,"name":7199,"type":7200,"label":13,"options":13,"required":24,"component":7127,"conditions":7216,"placeholder":13,"default_value":7217},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":7219,"equals":7220,"fields":7221,"component":7192},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[7222],{"_uid":7223,"name":7199,"type":7200,"label":13,"options":13,"required":24,"component":7127,"conditions":7224,"placeholder":13,"default_value":7225},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":7227,"equals":7140,"fields":7228,"component":7192},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[7229],{"_uid":7230,"name":7199,"type":7200,"label":13,"options":13,"required":24,"component":7127,"conditions":7231,"placeholder":13,"default_value":7202},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":7233,"equals":4299,"fields":7234,"component":7192},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e",[7235],{"_uid":7236,"name":7199,"type":7200,"label":13,"options":13,"required":24,"component":7127,"conditions":7237,"placeholder":13,"default_value":7202},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":7239,"component":7240},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":7242,"name":7243,"type":7244,"label":7245,"options":13,"required":33,"component":7127,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":7247,"name":7248,"type":7134,"label":7249,"options":7250,"required":33,"component":7127,"conditions":7251,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[7252],{"_uid":7253,"equals":7254,"fields":7255,"component":7192},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[7256],{"_uid":7257,"name":7258,"type":333,"label":7259,"options":13,"required":33,"component":7127,"conditions":7260,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":7262,"name":7263,"type":7134,"label":7264,"options":7265,"required":33,"component":7127,"conditions":7266,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[7269],{"_uid":7270,"text":7271,"title":7280,"component":7281},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":7272},[7273],{"type":335,"content":7274},[7275,7277,7278],{"text":7276,"type":333},"855.369.9227",{"type":7160},{"text":7279,"type":333},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":7283},[7284],{"type":335,"content":7285},[7286],{"text":7287,"type":333},"Get in touch to get help from our friendly support team.","Submit","Success!","Your email has been received. We'll get back to you as soon as we can, but it might take a business day. If you don't hear back from us in a timely manner, please check your spam folder to ensure our reply didn't go there.",-80,[],"2fd9fb7d-a48a-4184-acfd-30022d8d6f08","2022-09-23T20:10:45.360Z",[],[288,7297,7323],{"name":4030,"created_at":7298,"published_at":7299,"updated_at":7300,"id":7301,"uuid":7302,"content":7303,"slug":7317,"full_slug":7318,"sort_by_date":59,"position":7319,"tag_list":7320,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":7321,"first_published_at":7299,"release_id":59,"lang":65,"path":59,"alternates":7322,"default_full_slug":59,"translated_slugs":59},"2023-01-19T16:28:43.170Z","2023-01-19T17:25:33.503Z","2026-05-19T18:05:41.768Z",28245,"d92c1375-75ba-48e1-bb02-a3ae35187e0b",{"_uid":7304,"icon":7305,"name":4030,"guides":7306,"summary":7307,"category":13,"component":297,"blog_posts":7308,"content_hub":24,"icon_custom":7309,"case_studies":7310,"faq_sections":7311,"help_articles":7312,"featured_guides":7313,"mailbox_category":13,"featured_articles":7314,"featured_blog_posts":7315,"featured_case_studies":7316},"ea45a64b-f203-4c73-8645-325761de650e","fa-truck",[],"How to configure shipping rules for your store.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"filename":13,"copyright":59,"fieldtype":81},[],[],[],[],[],[],[],"shipping","help\u002Fcategories\u002Fshipping",90,[],"2e7778d1-fab7-4b53-ae55-f3382610fa56",[],{"name":5772,"created_at":7324,"published_at":7325,"updated_at":7326,"id":7327,"uuid":504,"content":7328,"slug":7341,"full_slug":7342,"sort_by_date":59,"position":7343,"tag_list":7344,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":7345,"first_published_at":7346,"release_id":59,"lang":65,"path":59,"alternates":7347,"default_full_slug":59,"translated_slugs":59},"2026-05-27T16:30:46.528Z","2026-06-24T21:24:10.404Z","2026-06-24T21:24:10.422Z",181083531435477,{"_uid":7329,"icon":13,"name":5772,"type":7330,"pinned":24,"summary":7331,"category":7302,"component":297,"blog_posts":7332,"icon_custom":7333,"case_studies":7335,"faq_sections":7336,"featured_guides":7337,"mailbox_category":13,"featured_articles":7338,"featured_blog_posts":7339,"featured_case_studies":7340},"31421cb4-545f-42da-a2f6-c34d68e7f11f","simple","How to add, modify, or remove shipping rates with JavaScript in the Foxy admin.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":7334},{},[],[],[],[],[],[],"custom-shipping-code","help\u002Fcategories\u002Fcustom-shipping-code",-290,[],"d9babca5-97b7-4d3f-b3d4-3f2de363a7b9","2026-05-28T20:17:53.353Z",[],{},1784562227348]