[{"data":1,"prerenderedAt":727},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Fjavascript-overview":314,"no-guide:javascript-overview":59,"article:\u002Fhelp\u002Farticles\u002Fjavascript-overview":499,"story:contact":511,"help:tree:34e009b3-4db8-4b29-b1cf-fe950f672a2a":700,"_apollo:default":726},{"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":492,"full_slug":493,"sort_by_date":59,"position":494,"tag_list":495,"is_startpage":24,"parent_id":496,"meta_data":59,"group_id":497,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":498,"default_full_slug":59,"translated_slugs":59},"JavaScript Overview","2026-07-20T21:18:43.964Z","2026-07-20T21:42:38.686Z","2026-07-20T21:42:38.705Z",200264597426917,"34e009b3-4db8-4b29-b1cf-fe950f672a2a",{"_uid":322,"body":323,"name":315,"image":487,"pinned":24,"summary":489,"category":490,"component":266,"related_articles":491},"f7138a73-6164-42bd-a9a9-7e3e40e19336",{"type":324,"content":325},"doc",[326,333,338,345,362,373,379,389,400,405],{"type":327,"attrs":328,"content":329},"paragraph",{"textAlign":59},[330],{"text":331,"type":332},"Foxy’s JavaScript powers the cart, checkout, and receipt — the same code runs whether it’s loaded on Foxy’s hosted pages or embedded on your own site. It’s modular and built around a unified event system, so you can hook into almost anything Foxy does without needing to modify Foxy’s own code.","text",{"type":327,"attrs":334,"content":335},{"textAlign":59},[336],{"text":337,"type":332},"Most stores never need to touch this directly — the default behavior covers the vast majority of use cases. This section is for custom integrations: reacting to cart or checkout activity, overriding default configuration, or rendering cart and checkout templates from your own code.",{"type":339,"attrs":340,"content":342},"heading",{"level":341,"textAlign":59},2,[343],{"text":344,"type":332},"The FC object",{"type":327,"attrs":346,"content":347},{"textAlign":59},[348,350,355,357,360],{"text":349,"type":332},"All of Foxy’s JavaScript functionality is exposed through a global ",{"text":351,"type":332,"marks":352},"FC",[353],{"type":354},"code",{"text":356,"type":332}," object. Because Foxy’s JavaScript loads asynchronously, ",{"text":351,"type":332,"marks":358},[359],{"type":354},{"text":361,"type":332}," isn’t guaranteed to exist yet when your page first loads — so code that depends on it needs to wait until it’s ready.",{"type":327,"attrs":363,"content":364},{"textAlign":59},[365,367,371],{"text":366,"type":332},"The standard way to do this is with ",{"text":368,"type":332,"marks":369},"FC.onLoad",[370],{"type":354},{"text":372,"type":332},", a function you define that Foxy calls once, right before its own initialization runs:",{"type":374,"attrs":375,"content":376},"code_block",{"class":59},[377],{"text":378,"type":332},"var FC = FC || {};\nFC.onLoad = function () {\n  FC.client.on('ready.done', function () {\n    \u002F\u002F Your custom code goes here.\n  });\n};\n",{"type":327,"attrs":380,"content":381},{"textAlign":59},[382,384,387],{"text":383,"type":332},"Defining ",{"text":368,"type":332,"marks":385},[386],{"type":354},{"text":388,"type":332}," before Foxy’s JavaScript is included ensures your code runs at the right time, regardless of load order. This pattern is used throughout Foxy’s JavaScript functionality, so it’s worth understanding before working with events, configuration, or template rendering.",{"type":327,"attrs":390,"content":391},{"textAlign":59},[392,394,398],{"text":393,"type":332},"Note that this won’t execute properly if it’s placed inside a jQuery ",{"text":395,"type":332,"marks":396},"$(document).ready()",[397],{"type":354},{"text":399,"type":332}," call.",{"type":339,"attrs":401,"content":402},{"level":341,"textAlign":59},[403],{"text":404,"type":332},"What’s in this section",{"type":406,"content":407},"bullet_list",[408,431,445,459,473],{"type":409,"content":410},"list_item",[411],{"type":327,"attrs":412,"content":413},{"textAlign":59},[414,423,425,429],{"text":415,"type":332,"marks":416},"Configure JavaScript loading options",[417,421],{"type":418,"attrs":419},"link",{"href":420,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfigure-javascript-loading-options",{"type":422},"bold",{"text":424,"type":332}," — override default behavior like debug logging using ",{"text":426,"type":332,"marks":427},"FC.override",[428],{"type":354},{"text":430,"type":332},".",{"type":409,"content":432},[433],{"type":327,"attrs":434,"content":435},{"textAlign":59},[436,443],{"text":437,"type":332,"marks":438},"Configure the session domain and cookie path",[439,442],{"type":418,"attrs":440},{"href":441,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfigure-the-session-domain-and-cookie-path",{"type":422},{"text":444,"type":332}," — control where and how Foxy’s session cookie is set, and reset a session entirely.",{"type":409,"content":446},[447],{"type":327,"attrs":448,"content":449},{"textAlign":59},[450,457],{"text":451,"type":332,"marks":452},"JavaScript events reference",[453,456],{"type":418,"attrs":454},{"href":455,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fjavascript-events-reference",{"type":422},{"text":458,"type":332}," — the full list of events available on the cart, checkout, and receipt, and how to bind to them.",{"type":409,"content":460},[461],{"type":327,"attrs":462,"content":463},{"textAlign":59},[464,471],{"text":465,"type":332,"marks":466},"JavaScript naming and file structure reference",[467,470],{"type":418,"attrs":468},{"href":469,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fjavascript-naming-and-file-structure-reference",{"type":422},{"text":472,"type":332}," — naming conventions, internal file structure, and the order JavaScript executes on page load.",{"type":409,"content":474},[475],{"type":327,"attrs":476,"content":477},{"textAlign":59},[478,485],{"text":479,"type":332,"marks":480},"Render cart and checkout templates with Twig.js",[481,484],{"type":418,"attrs":482},{"href":483,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Frender-cart-and-checkout-templates-with-twig-js",{"type":422},{"text":486,"type":332}," — how Foxy renders cart and checkout templates client-side, and how sequential render calls are handled.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":488},{},"An introduction to Foxy's JavaScript — the FC object, how to hook into it safely, and what's covered in this section.","3ec5e2da-c8cb-4271-ab65-8ee88cf158fb",[],"javascript-overview","help\u002Farticles\u002Fjavascript-overview",-4010,[],2659,"a2d18885-2658-429d-b703-07214c7f7399",[],{"html":500,"sections":501,"segments":507},"\u003Cp>Foxy’s JavaScript powers the cart, checkout, and receipt — the same code runs whether it’s loaded on Foxy’s hosted pages or embedded on your own site. It’s modular and built around a unified event system, so you can hook into almost anything Foxy does without needing to modify Foxy’s own code.\u003C\u002Fp>\u003Cp>Most stores never need to touch this directly — the default behavior covers the vast majority of use cases. This section is for custom integrations: reacting to cart or checkout activity, overriding default configuration, or rendering cart and checkout templates from your own code.\u003C\u002Fp>\u003Csection id=\"the-fc-object\" data-title=\"The FC object\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"the-fc-object\">The FC object\u003C\u002Fh2>\u003Cp>All of Foxy’s JavaScript functionality is exposed through a global \u003Ccode class=\"badge bg-soft-danger text-danger\">FC\u003C\u002Fcode> object. Because Foxy’s JavaScript loads asynchronously, \u003Ccode class=\"badge bg-soft-danger text-danger\">FC\u003C\u002Fcode> isn’t guaranteed to exist yet when your page first loads — so code that depends on it needs to wait until it’s ready.\u003C\u002Fp>\u003Cp>The standard way to do this is with \u003Ccode class=\"badge bg-soft-danger text-danger\">FC.onLoad\u003C\u002Fcode>, a function you define that Foxy calls once, right before its own initialization runs:\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>var FC = FC || {};\nFC.onLoad = function () {\n  FC.client.on(&#x27;ready.done&#x27;, function () {\n    \u002F\u002F Your custom code goes here.\n  });\n};\n\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>Defining \u003Ccode class=\"badge bg-soft-danger text-danger\">FC.onLoad\u003C\u002Fcode> before Foxy’s JavaScript is included ensures your code runs at the right time, regardless of load order. This pattern is used throughout Foxy’s JavaScript functionality, so it’s worth understanding before working with events, configuration, or template rendering.\u003C\u002Fp>\u003Cp>Note that this won’t execute properly if it’s placed inside a jQuery \u003Ccode class=\"badge bg-soft-danger text-danger\">$(document).ready()\u003C\u002Fcode> call.\u003C\u002Fp>\u003C\u002Fsection>\u003Csection id=\"whats-in-this-section\" data-title=\"What’s in this section\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"whats-in-this-section\">What’s in this section\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfigure-javascript-loading-options\" class=\"\">Configure JavaScript loading options\u003C\u002Fa>\u003C\u002Fstrong> — override default behavior like debug logging using \u003Ccode class=\"badge bg-soft-danger text-danger\">FC.override\u003C\u002Fcode>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfigure-the-session-domain-and-cookie-path\" class=\"\">Configure the session domain and cookie path\u003C\u002Fa>\u003C\u002Fstrong> — control where and how Foxy’s session cookie is set, and reset a session entirely.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fjavascript-events-reference\" class=\"\">JavaScript events reference\u003C\u002Fa>\u003C\u002Fstrong> — the full list of events available on the cart, checkout, and receipt, and how to bind to them.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fjavascript-naming-and-file-structure-reference\" class=\"\">JavaScript naming and file structure reference\u003C\u002Fa>\u003C\u002Fstrong> — naming conventions, internal file structure, and the order JavaScript executes on page load.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Frender-cart-and-checkout-templates-with-twig-js\" class=\"\">Render cart and checkout templates with Twig.js\u003C\u002Fa>\u003C\u002Fstrong> — how Foxy renders cart and checkout templates client-side, and how sequential render calls are handled.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>",[502,505],{"id":503,"title":344,"level":504},"the-fc-object","H2",{"id":506,"title":404,"level":504},"whats-in-this-section",[508],{"type":509,"content":510},"html","\u003Cp>Foxy’s JavaScript powers the cart, checkout, and receipt — the same code runs whether it’s loaded on Foxy’s hosted pages or embedded on your own site. It’s modular and built around a unified event system, so you can hook into almost anything Foxy does without needing to modify Foxy’s own code.\u003C\u002Fp>\u003Cp>Most stores never need to touch this directly — the default behavior covers the vast majority of use cases. This section is for custom integrations: reacting to cart or checkout activity, overriding default configuration, or rendering cart and checkout templates from your own code.\u003C\u002Fp>\u003Ch2>The FC object\u003C\u002Fh2>\u003Cp>All of Foxy’s JavaScript functionality is exposed through a global \u003Ccode class=\"badge bg-soft-danger text-danger\">FC\u003C\u002Fcode> object. Because Foxy’s JavaScript loads asynchronously, \u003Ccode class=\"badge bg-soft-danger text-danger\">FC\u003C\u002Fcode> isn’t guaranteed to exist yet when your page first loads — so code that depends on it needs to wait until it’s ready.\u003C\u002Fp>\u003Cp>The standard way to do this is with \u003Ccode class=\"badge bg-soft-danger text-danger\">FC.onLoad\u003C\u002Fcode>, a function you define that Foxy calls once, right before its own initialization runs:\u003C\u002Fp>\u003Cpre>\u003Ccode>var FC = FC || {};\nFC.onLoad = function () {\n  FC.client.on(&#039;ready.done&#039;, function () {\n    \u002F\u002F Your custom code goes here.\n  });\n};\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Defining \u003Ccode class=\"badge bg-soft-danger text-danger\">FC.onLoad\u003C\u002Fcode> before Foxy’s JavaScript is included ensures your code runs at the right time, regardless of load order. This pattern is used throughout Foxy’s JavaScript functionality, so it’s worth understanding before working with events, configuration, or template rendering.\u003C\u002Fp>\u003Cp>Note that this won’t execute properly if it’s placed inside a jQuery \u003Ccode class=\"badge bg-soft-danger text-danger\">$(document).ready()\u003C\u002Fcode> call.\u003C\u002Fp>\u003Ch2>What’s in this section\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfigure-javascript-loading-options\" class=\"\">Configure JavaScript loading options\u003C\u002Fa>\u003C\u002Fstrong> — override default behavior like debug logging using \u003Ccode class=\"badge bg-soft-danger text-danger\">FC.override\u003C\u002Fcode>.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfigure-the-session-domain-and-cookie-path\" class=\"\">Configure the session domain and cookie path\u003C\u002Fa>\u003C\u002Fstrong> — control where and how Foxy’s session cookie is set, and reset a session entirely.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fjavascript-events-reference\" class=\"\">JavaScript events reference\u003C\u002Fa>\u003C\u002Fstrong> — the full list of events available on the cart, checkout, and receipt, and how to bind to them.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fjavascript-naming-and-file-structure-reference\" class=\"\">JavaScript naming and file structure reference\u003C\u002Fa>\u003C\u002Fstrong> — naming conventions, internal file structure, and the order JavaScript executes on page load.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>\u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Frender-cart-and-checkout-templates-with-twig-js\" class=\"\">Render cart and checkout templates with Twig.js\u003C\u002Fa>\u003C\u002Fstrong> — how Foxy renders cart and checkout templates client-side, and how sequential render calls are handled.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>",{"name":512,"created_at":513,"published_at":514,"updated_at":515,"id":516,"uuid":47,"content":517,"slug":48,"full_slug":48,"sort_by_date":59,"position":695,"tag_list":696,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":697,"first_published_at":698,"release_id":59,"lang":65,"path":59,"alternates":699,"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":518,"_uid":521,"title":522,"action":523,"fields":524,"method":671,"columns":672,"subtitle":686,"component":48,"button_text":692,"submit_title":693,"submit_subtitle":694},{"_uid":519,"title":512,"plugin":520,"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",[525,530,534,642,645,650,665],{"_uid":526,"name":527,"type":332,"label":528,"options":13,"required":33,"component":529,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","name","Name","form___field",{"_uid":531,"name":532,"type":532,"label":533,"options":13,"required":33,"component":529,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":535,"name":536,"type":537,"label":538,"options":539,"required":33,"component":529,"conditions":540,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[541,596,606,613,621,629,635],{"_uid":542,"equals":543,"fields":544,"component":595},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[545],{"_uid":546,"body":547,"type":593,"title":13,"component":594},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":548},[549],{"type":327,"content":550},[551,553,560,562,564,565,569,571,576,584,586,591],{"text":552,"type":332},"We are ",{"text":554,"type":332,"marks":555},"Foxy.io",[556],{"type":418,"attrs":557},{"href":558,"uuid":59,"anchor":59,"custom":559,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":561,"type":332},", 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":563},"hard_break",{"type":563},{"text":566,"type":332,"marks":567},"NOTE:",[568],{"type":422},{"text":570,"type":332}," We are ",{"text":572,"type":332,"marks":573},"not ",[574],{"type":575},"italic",{"text":577,"type":332,"marks":578},"Foxy.in",[579,583],{"type":418,"attrs":580},{"href":581,"uuid":59,"anchor":59,"custom":582,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":575},{"text":585,"type":332},". We are not in any way affiliated with ",{"text":577,"type":332,"marks":587},[588],{"type":418,"attrs":589},{"href":581,"uuid":59,"anchor":59,"custom":590,"target":59,"linktype":31},{},{"text":592,"type":332},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":597,"equals":598,"fields":599,"component":595},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[600],{"_uid":601,"name":602,"type":603,"label":13,"options":13,"required":24,"component":529,"conditions":604,"placeholder":13,"default_value":605},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":607,"equals":208,"fields":608,"component":595},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[609],{"_uid":610,"name":602,"type":603,"label":13,"options":13,"required":24,"component":529,"conditions":611,"placeholder":13,"default_value":612},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":614,"equals":615,"fields":616,"component":595},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[617],{"_uid":618,"name":602,"type":603,"label":13,"options":13,"required":24,"component":529,"conditions":619,"placeholder":13,"default_value":620},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":622,"equals":623,"fields":624,"component":595},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[625],{"_uid":626,"name":602,"type":603,"label":13,"options":13,"required":24,"component":529,"conditions":627,"placeholder":13,"default_value":628},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":630,"equals":543,"fields":631,"component":595},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[632],{"_uid":633,"name":602,"type":603,"label":13,"options":13,"required":24,"component":529,"conditions":634,"placeholder":13,"default_value":605},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":636,"equals":637,"fields":638,"component":595},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[639],{"_uid":640,"name":602,"type":603,"label":13,"options":13,"required":24,"component":529,"conditions":641,"placeholder":13,"default_value":605},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":643,"component":644},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":646,"name":647,"type":648,"label":649,"options":13,"required":33,"component":529,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":651,"name":652,"type":537,"label":653,"options":654,"required":33,"component":529,"conditions":655,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[656],{"_uid":657,"equals":658,"fields":659,"component":595},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[660],{"_uid":661,"name":662,"type":332,"label":663,"options":13,"required":33,"component":529,"conditions":664,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":666,"name":667,"type":537,"label":668,"options":669,"required":33,"component":529,"conditions":670,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[673],{"_uid":674,"text":675,"title":684,"component":685},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":676},[677],{"type":327,"content":678},[679,681,682],{"text":680,"type":332},"855.369.9227",{"type":563},{"text":683,"type":332},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":687},[688],{"type":327,"content":689},[690],{"text":691,"type":332},"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,701],{"name":702,"created_at":703,"published_at":704,"updated_at":705,"id":706,"uuid":490,"content":707,"slug":720,"full_slug":721,"sort_by_date":59,"position":722,"tag_list":723,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":724,"first_published_at":704,"release_id":59,"lang":65,"path":59,"alternates":725,"default_full_slug":59,"translated_slugs":59},"JavaScript","2026-07-20T21:14:05.160Z","2026-07-20T21:14:28.313Z","2026-07-20T21:14:28.324Z",200263455421156,{"_uid":708,"icon":13,"name":702,"type":709,"pinned":24,"summary":710,"category":13,"component":297,"blog_posts":711,"icon_custom":712,"case_studies":714,"faq_sections":715,"featured_guides":716,"mailbox_category":13,"featured_articles":717,"featured_blog_posts":718,"featured_case_studies":719},"6ac2aa76-e023-4332-bc33-df367c493314","simple","How Foxy's JavaScript works, including events, configuration, sessions, and template rendering, for custom integrations beyond the default cart and checkout.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":713},{},[],[],[],[],[],[],"javascript","help\u002Fcategories\u002Fjavascript",-820,[],"37830f97-9285-4e32-8105-7b383c2b8ec9",[],{},1784651809095]