[{"data":1,"prerenderedAt":695},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Flet-customers-add-a-donation-at-checkout":314,"no-guide:let-customers-add-a-donation-at-checkout":59,"article:\u002Fhelp\u002Farticles\u002Flet-customers-add-a-donation-at-checkout":439,"story:contact":451,"help:tree:671e3e35-1ec2-4604-9a26-2e829161705e":640,"_apollo:default":694},{"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":432,"full_slug":433,"sort_by_date":59,"position":434,"tag_list":435,"is_startpage":24,"parent_id":436,"meta_data":59,"group_id":437,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":438,"default_full_slug":59,"translated_slugs":59},"Let customers add a donation at checkout","2026-07-21T20:48:27.172Z","2026-07-22T17:44:59.808Z","2026-07-22T17:44:59.823Z",200611050232609,"671e3e35-1ec2-4604-9a26-2e829161705e",{"_uid":322,"body":323,"name":315,"image":427,"pinned":24,"summary":429,"category":430,"component":266,"related_articles":431},"76b2cd7f-70b0-4555-8d21-1b2b59b9525e",{"type":324,"content":325},"doc",[326,333,340,373,379,390,395,422],{"type":327,"attrs":328,"content":329},"paragraph",{"textAlign":59},[330],{"text":331,"type":332},"The following snippet adds a text input to the checkout to allow customers to add a donation to the cart when completing the checkout.","text",{"type":334,"attrs":335,"content":337},"heading",{"level":336,"textAlign":59},3,[338],{"text":339,"type":332},"Add javascript",{"type":327,"attrs":341,"content":342},{"textAlign":59},[343,345,351,353,358,360,364,366,371],{"text":344,"type":332},"In the Foxy admin (",{"text":346,"type":332,"marks":347},"https:\u002F\u002Fadmin.foxy.io",[348],{"type":349,"attrs":350},"link",{"href":346,"uuid":59,"anchor":59,"target":59,"linktype":31},{"text":352,"type":332},"), go to ",{"text":354,"type":332,"marks":355},"Settings > Templates",[356],{"type":357},"bold",{"text":359,"type":332}," and add the code to the ",{"text":361,"type":332,"marks":362},"Custom footer",[363],{"type":357},{"text":365,"type":332}," field (Twig is supported; it is injected before the closing ",{"text":367,"type":332,"marks":368},"\u003C\u002Fbody>",[369],{"type":370},"code",{"text":372,"type":332}," tag).",{"type":374,"attrs":375,"content":376},"code_block",{"class":59},[377],{"text":378,"type":332},"{% if context == \"checkout\" %}\n\u003Cscript>$('body').on('click', '#donation_confirm', function(e){\n\te.preventDefault();\n\t\u002F\u002F The FC.client.request() gets new JSON which clears out the shipping.\n\t\u002F\u002F TODO: This will be fixed by Foxy, but for now we have a shim.\n\tvar shipping_results = FC.json.shipping_address.shipping_results,\n\t\tshipping_service_description = FC.json.shipping_address.shipping_service_description,\n\t\tshipping_service_id = FC.json.shipping_address.shipping_service_id;\n \n\tvar donation_id;\n\tvar donation_existing = 0;\n\tfor (i=0; i \u003C FC.json.items.length; i++) {\n\t\tif (FC.json.items[i].code == 'donation') {\n\t\t\tdonation_id = FC.json.items[i].id;\n\t\t\tdonation_existing = FC.json.items[i].price;\n\t\t}\n\t}\n\n\tvar donation_new = $(\"#donation\").val() || 0;\n \tFC.json.donation = donation_new;\n\n\t\u002F\u002F MODIFY THE PRODUCT LINK BELOW\n \tvar add_link = 'https:\u002F\u002F'+FC.settings.storedomain+'\u002Fcart?name=Donation&price=' + donation_new + '&code=donation&quantity_max=1';\n \tvar remove_link = 'https:\u002F\u002F'+FC.settings.storedomain+'\u002Fcart?cart=update&quantity=0&id='+donation_id;\n\n \t\u002F\u002F Add and remove\n \tif (donation_id && donation_new != donation_existing && donation_new > 0) {\n \t\tFC.client.request(remove_link).done(function() {\n \t\t\tFC.client.request(add_link).done(function() {\n \t\t\t\tFC.json.shipping_address.shipping_results = shipping_results;\n\t\t\t\tFC.json.shipping_address.shipping_service_description = shipping_service_description;\n\t\t\t\tFC.json.shipping_address.shipping_service_id = shipping_service_id;\n\t\t\t\tFC.checkout.render();\n\t\t\t\tFC.checkout.getShippingOptions({address: FC.json.shipping_address});\n \t\t\t});\n \t\t});\n \t} else {\n \t\tvar action_link = \"\";\n \t\tif (donation_id && donation_new == 0) {\n \t\t\taction_link = remove_link;\n \t\t}\n \t\tif (!donation_id && donation_new > 0) {\n \t\t\taction_link = add_link;\n \t\t}\n\n \t\tif (action_link != \"\") {\n \t\t\tFC.client.request(action_link).done(function() {\n \t\t\t\tFC.json.shipping_address.shipping_results = shipping_results;\n\t\t\t\tFC.json.shipping_address.shipping_service_description = shipping_service_description;\n\t\t\t\tFC.json.shipping_address.shipping_service_id = shipping_service_id;\n\t\t\t\tFC.checkout.render();\n\t\t\t\tFC.checkout.getShippingOptions({address: FC.json.shipping_address});\n \t\t\t});\n \t\t}\n \t}\n});\nFC.client.on(\"ready.done\", function() {\n\tfor (i=0; i \u003C FC.json.items.length; i++) {\n\t\tif (FC.json.items[i].code == 'donation') {\n\t\t\tFC.json.donation = FC.json.items[i].price;\n\t\t}\n\t}\n \tFC.checkout.renderAdditionalFields();\n});\n\u003C\u002Fscript>\n{% endif %}",{"type":327,"attrs":380,"content":381},{"textAlign":59},[382,384,388],{"text":383,"type":332},"You'll just need to modify the ",{"text":385,"type":332,"marks":386},"MODIFY THE PRODUCT LINK BELOW",[387],{"type":370},{"text":389,"type":332}," section to set the donation \"product\" as desired, the donation amount will come from the input you'll add in the next step. If your store is using link\u002Fform signing, you'll just need to create that link and sign it (using the tool in the \"sample code\" section of the admin, if you don't have another way) and paste it in there as needed - ensuring the price field is encrypted as an open field. Make sure it's set to the appropriate category so it has the proper shipping and taxes applied to it.",{"type":334,"attrs":391,"content":392},{"level":336,"textAlign":59},[393],{"text":394,"type":332},"Add HTML",{"type":327,"attrs":396,"content":397},{"textAlign":59},[398,399,403,404,408,410,414,416,420],{"text":344,"type":332},{"text":346,"type":332,"marks":400},[401],{"type":349,"attrs":402},{"href":346,"uuid":59,"anchor":59,"target":59,"linktype":31},{"text":352,"type":332},{"text":405,"type":332,"marks":406},"Settings > Checkout",[407],{"type":357},{"text":409,"type":332}," and add the field to ",{"text":411,"type":332,"marks":412},"Custom checkout fields",[413],{"type":357},{"text":415,"type":332}," (use ",{"text":417,"type":332,"marks":418},"Custom checkout fields for multiship",[419],{"type":357},{"text":421,"type":332}," to collect it under each shipping address; Twig is supported):",{"type":374,"attrs":423,"content":424},{"class":59},[425],{"text":426,"type":332},"\u003Cdiv class=\"fc-form-group\">\n\t\u003Cdiv class=\"col-sm-8 col-sm-offset-3\">\n\t\t\u003Cdiv class=\"fc-input-group-container fc-input-group-container--checkbox fc-input-group-container--active\">\n\t\t\t\u003Clabel class=\"fc-input-group-container__title fc-input-group-container__title--forced fc-form-label\">\n\t\t\t\tWould you like to add a donation?\n\t\t\t\u003C\u002Flabel>\n\t\t\t\u003Cdiv class=\"fc-form-group fc-form-group--multiple-inline\">\n\t\t\t\t\u003Cdiv class=\"col-xs-4\">\n\t\t\t\t\t\u003Cinput type=\"text\" id=\"donation\" value=\"\" class=\"fc-form-control fc-form-control--donation\">\n\t\t\t\t\u003C\u002Fdiv>\n\t\t\t\t\u003Cdiv class=\"col-xs-8\">\n\t\t\t\t\t\u003Cp>\n\t\t\t\t\t\t\u003Cbutton type=\"button\" id=\"donation_confirm\" class=\"fc-button\">Add donation\u003C\u002Fbutton>\n\t\t\t\t\t\u003C\u002Fp>\n\t\t\t\t\u003C\u002Fdiv>\n\t\t\t\u003C\u002Fdiv>\n\t\t\u003C\u002Fdiv>\n\t\u003C\u002Fdiv>\n\u003C\u002Fdiv>",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":428},{},"How to add an input at checkout that lets customers add a donation of their chosen amount.","c86d4c1b-9299-4716-802e-52f91ac178b0",[],"let-customers-add-a-donation-at-checkout","help\u002Farticles\u002Flet-customers-add-a-donation-at-checkout",-4250,[],2659,"6fc4ea19-3af5-4ca5-998e-807b1034faab",[],{"html":440,"sections":441,"segments":447},"\u003Cp>The following snippet adds a text input to the checkout to allow customers to add a donation to the cart when completing the checkout.\u003C\u002Fp>\u003Csection id=\"add-javascript\" data-title=\"Add javascript\" data-title-node=\"H3\">\u003Ch3 data-anchor-id=\"add-javascript\">Add javascript\u003C\u002Fh3>\u003Cp>In the Foxy admin (\u003Ca href=\"https:\u002F\u002Fadmin.foxy.io\" class=\"\">https:\u002F\u002Fadmin.foxy.io\u003C\u002Fa>), go to \u003Cstrong>Settings &gt; Templates\u003C\u002Fstrong> and add the code to the \u003Cstrong>Custom footer\u003C\u002Fstrong> field (Twig is supported; it is injected before the closing \u003Ccode class=\"badge bg-soft-danger text-danger\">&lt;\u002Fbody&gt;\u003C\u002Fcode> tag).\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>{% if context == &quot;checkout&quot; %}\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C\u002Fspan>&gt;\u003C\u002Fspan>\u003Cspan class=\"language-javascript\">$(\u003Cspan class=\"hljs-string\">&#x27;body&#x27;\u003C\u002Fspan>).\u003Cspan class=\"hljs-title function_\">on\u003C\u002Fspan>(\u003Cspan class=\"hljs-string\">&#x27;click&#x27;\u003C\u002Fspan>, \u003Cspan class=\"hljs-string\">&#x27;#donation_confirm&#x27;\u003C\u002Fspan>, \u003Cspan class=\"hljs-keyword\">function\u003C\u002Fspan>(\u003Cspan class=\"hljs-params\">e\u003C\u002Fspan>){\n\te.\u003Cspan class=\"hljs-title function_\">preventDefault\u003C\u002Fspan>();\n\t\u003Cspan class=\"hljs-comment\">\u002F\u002F The FC.client.request() gets new JSON which clears out the shipping.\u003C\u002Fspan>\n\t\u003Cspan class=\"hljs-comment\">\u002F\u002F \u003Cspan class=\"hljs-doctag\">TODO:\u003C\u002Fspan> This will be fixed by Foxy, but for now we have a shim.\u003C\u002Fspan>\n\t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> shipping_results = \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_results\u003C\u002Fspan>,\n\t\tshipping_service_description = \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_service_description\u003C\u002Fspan>,\n\t\tshipping_service_id = \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_service_id\u003C\u002Fspan>;\n \n\t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> donation_id;\n\t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> donation_existing = \u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>;\n\t\u003Cspan class=\"hljs-keyword\">for\u003C\u002Fspan> (i=\u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>; i &lt; \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">length\u003C\u002Fspan>; i++) {\n\t\t\u003Cspan class=\"hljs-keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>[i].\u003Cspan class=\"hljs-property\">code\u003C\u002Fspan> == \u003Cspan class=\"hljs-string\">&#x27;donation&#x27;\u003C\u002Fspan>) {\n\t\t\tdonation_id = \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>[i].\u003Cspan class=\"hljs-property\">id\u003C\u002Fspan>;\n\t\t\tdonation_existing = \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>[i].\u003Cspan class=\"hljs-property\">price\u003C\u002Fspan>;\n\t\t}\n\t}\n\n\t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> donation_new = $(\u003Cspan class=\"hljs-string\">&quot;#donation&quot;\u003C\u002Fspan>).\u003Cspan class=\"hljs-title function_\">val\u003C\u002Fspan>() || \u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>;\n \t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">donation\u003C\u002Fspan> = donation_new;\n\n\t\u003Cspan class=\"hljs-comment\">\u002F\u002F MODIFY THE PRODUCT LINK BELOW\u003C\u002Fspan>\n \t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> add_link = \u003Cspan class=\"hljs-string\">&#x27;https:\u002F\u002F&#x27;\u003C\u002Fspan>+\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">settings\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">storedomain\u003C\u002Fspan>+\u003Cspan class=\"hljs-string\">&#x27;\u002Fcart?name=Donation&amp;price=&#x27;\u003C\u002Fspan> + donation_new + \u003Cspan class=\"hljs-string\">&#x27;&amp;code=donation&amp;quantity_max=1&#x27;\u003C\u002Fspan>;\n \t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> remove_link = \u003Cspan class=\"hljs-string\">&#x27;https:\u002F\u002F&#x27;\u003C\u002Fspan>+\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">settings\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">storedomain\u003C\u002Fspan>+\u003Cspan class=\"hljs-string\">&#x27;\u002Fcart?cart=update&amp;quantity=0&amp;id=&#x27;\u003C\u002Fspan>+donation_id;\n\n \t\u003Cspan class=\"hljs-comment\">\u002F\u002F Add and remove\u003C\u002Fspan>\n \t\u003Cspan class=\"hljs-keyword\">if\u003C\u002Fspan> (donation_id &amp;&amp; donation_new != donation_existing &amp;&amp; donation_new &gt; \u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>) {\n \t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">client\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">request\u003C\u002Fspan>(remove_link).\u003Cspan class=\"hljs-title function_\">done\u003C\u002Fspan>(\u003Cspan class=\"hljs-keyword\">function\u003C\u002Fspan>(\u003Cspan class=\"hljs-params\">\u003C\u002Fspan>) {\n \t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">client\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">request\u003C\u002Fspan>(add_link).\u003Cspan class=\"hljs-title function_\">done\u003C\u002Fspan>(\u003Cspan class=\"hljs-keyword\">function\u003C\u002Fspan>(\u003Cspan class=\"hljs-params\">\u003C\u002Fspan>) {\n \t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_results\u003C\u002Fspan> = shipping_results;\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_service_description\u003C\u002Fspan> = shipping_service_description;\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_service_id\u003C\u002Fspan> = shipping_service_id;\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">checkout\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">render\u003C\u002Fspan>();\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">checkout\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">getShippingOptions\u003C\u002Fspan>({\u003Cspan class=\"hljs-attr\">address\u003C\u002Fspan>: \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>});\n \t\t\t});\n \t\t});\n \t} \u003Cspan class=\"hljs-keyword\">else\u003C\u002Fspan> {\n \t\t\u003Cspan class=\"hljs-keyword\">var\u003C\u002Fspan> action_link = \u003Cspan class=\"hljs-string\">&quot;&quot;\u003C\u002Fspan>;\n \t\t\u003Cspan class=\"hljs-keyword\">if\u003C\u002Fspan> (donation_id &amp;&amp; donation_new == \u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>) {\n \t\t\taction_link = remove_link;\n \t\t}\n \t\t\u003Cspan class=\"hljs-keyword\">if\u003C\u002Fspan> (!donation_id &amp;&amp; donation_new &gt; \u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>) {\n \t\t\taction_link = add_link;\n \t\t}\n\n \t\t\u003Cspan class=\"hljs-keyword\">if\u003C\u002Fspan> (action_link != \u003Cspan class=\"hljs-string\">&quot;&quot;\u003C\u002Fspan>) {\n \t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">client\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">request\u003C\u002Fspan>(action_link).\u003Cspan class=\"hljs-title function_\">done\u003C\u002Fspan>(\u003Cspan class=\"hljs-keyword\">function\u003C\u002Fspan>(\u003Cspan class=\"hljs-params\">\u003C\u002Fspan>) {\n \t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_results\u003C\u002Fspan> = shipping_results;\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_service_description\u003C\u002Fspan> = shipping_service_description;\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_service_id\u003C\u002Fspan> = shipping_service_id;\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">checkout\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">render\u003C\u002Fspan>();\n\t\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">checkout\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">getShippingOptions\u003C\u002Fspan>({\u003Cspan class=\"hljs-attr\">address\u003C\u002Fspan>: \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">shipping_address\u003C\u002Fspan>});\n \t\t\t});\n \t\t}\n \t}\n});\n\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">client\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">on\u003C\u002Fspan>(\u003Cspan class=\"hljs-string\">&quot;ready.done&quot;\u003C\u002Fspan>, \u003Cspan class=\"hljs-keyword\">function\u003C\u002Fspan>(\u003Cspan class=\"hljs-params\">\u003C\u002Fspan>) {\n\t\u003Cspan class=\"hljs-keyword\">for\u003C\u002Fspan> (i=\u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>; i &lt; \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">length\u003C\u002Fspan>; i++) {\n\t\t\u003Cspan class=\"hljs-keyword\">if\u003C\u002Fspan> (\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>[i].\u003Cspan class=\"hljs-property\">code\u003C\u002Fspan> == \u003Cspan class=\"hljs-string\">&#x27;donation&#x27;\u003C\u002Fspan>) {\n\t\t\t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">donation\u003C\u002Fspan> = \u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">json\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">items\u003C\u002Fspan>[i].\u003Cspan class=\"hljs-property\">price\u003C\u002Fspan>;\n\t\t}\n\t}\n \t\u003Cspan class=\"hljs-variable constant_\">FC\u003C\u002Fspan>.\u003Cspan class=\"hljs-property\">checkout\u003C\u002Fspan>.\u003Cspan class=\"hljs-title function_\">renderAdditionalFields\u003C\u002Fspan>();\n});\n\u003C\u002Fspan>\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">script\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n{% endif %}\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>You&#039;ll just need to modify the \u003Ccode class=\"badge bg-soft-danger text-danger\">MODIFY THE PRODUCT LINK BELOW\u003C\u002Fcode> section to set the donation &quot;product&quot; as desired, the donation amount will come from the input you&#039;ll add in the next step. If your store is using link\u002Fform signing, you&#039;ll just need to create that link and sign it (using the tool in the &quot;sample code&quot; section of the admin, if you don&#039;t have another way) and paste it in there as needed - ensuring the price field is encrypted as an open field. Make sure it&#039;s set to the appropriate category so it has the proper shipping and taxes applied to it.\u003C\u002Fp>\u003C\u002Fsection>\u003Csection id=\"add-html\" data-title=\"Add HTML\" data-title-node=\"H3\">\u003Ch3 data-anchor-id=\"add-html\">Add HTML\u003C\u002Fh3>\u003Cp>In the Foxy admin (\u003Ca href=\"https:\u002F\u002Fadmin.foxy.io\" class=\"\">https:\u002F\u002Fadmin.foxy.io\u003C\u002Fa>), go to \u003Cstrong>Settings &gt; Checkout\u003C\u002Fstrong> and add the field to \u003Cstrong>Custom checkout fields\u003C\u002Fstrong> (use \u003Cstrong>Custom checkout fields for multiship\u003C\u002Fstrong> to collect it under each shipping address; Twig is supported):\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>\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;fc-form-group&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;col-sm-8 col-sm-offset-3&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;fc-input-group-container fc-input-group-container--checkbox fc-input-group-container--active&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">label\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;fc-input-group-container__title fc-input-group-container__title--forced fc-form-label&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\tWould you like to add a donation?\n\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">label\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;fc-form-group fc-form-group--multiple-inline&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;col-xs-4&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">input\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;text&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">id\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;donation&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">value\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;fc-form-control fc-form-control--donation&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;col-xs-8&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">p\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">button\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">type\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;button&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">id\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;donation_confirm&quot;\u003C\u002Fspan> \u003Cspan class=\"hljs-attr\">class\u003C\u002Fspan>=\u003Cspan class=\"hljs-string\">&quot;fc-button&quot;\u003C\u002Fspan>&gt;\u003C\u002Fspan>Add donation\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">button\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">p\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\t\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan>&gt;\u003C\u002Fspan>\n\u003Cspan class=\"hljs-tag\">&lt;\u002F\u003Cspan class=\"hljs-name\">div\u003C\u002Fspan>&gt;\u003C\u002Fspan>\u003C\u002Fpre>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>",[442,445],{"id":443,"title":339,"level":444},"add-javascript","H3",{"id":446,"title":394,"level":444},"add-html",[448],{"type":449,"content":450},"html","\u003Cp>The following snippet adds a text input to the checkout to allow customers to add a donation to the cart when completing the checkout.\u003C\u002Fp>\u003Ch3>Add javascript\u003C\u002Fh3>\u003Cp>In the Foxy admin (\u003Ca href=\"https:\u002F\u002Fadmin.foxy.io\" class=\"\">https:\u002F\u002Fadmin.foxy.io\u003C\u002Fa>), go to \u003Cstrong>Settings &gt; Templates\u003C\u002Fstrong> and add the code to the \u003Cstrong>Custom footer\u003C\u002Fstrong> field (Twig is supported; it is injected before the closing \u003Ccode class=\"badge bg-soft-danger text-danger\">&lt;\u002Fbody&gt;\u003C\u002Fcode> tag).\u003C\u002Fp>\u003Cpre>\u003Ccode>{% if context == &quot;checkout&quot; %}\n&lt;script&gt;$(&#039;body&#039;).on(&#039;click&#039;, &#039;#donation_confirm&#039;, function(e){\n\te.preventDefault();\n\t\u002F\u002F The FC.client.request() gets new JSON which clears out the shipping.\n\t\u002F\u002F TODO: This will be fixed by Foxy, but for now we have a shim.\n\tvar shipping_results = FC.json.shipping_address.shipping_results,\n\t\tshipping_service_description = FC.json.shipping_address.shipping_service_description,\n\t\tshipping_service_id = FC.json.shipping_address.shipping_service_id;\n \n\tvar donation_id;\n\tvar donation_existing = 0;\n\tfor (i=0; i &lt; FC.json.items.length; i++) {\n\t\tif (FC.json.items[i].code == &#039;donation&#039;) {\n\t\t\tdonation_id = FC.json.items[i].id;\n\t\t\tdonation_existing = FC.json.items[i].price;\n\t\t}\n\t}\n\n\tvar donation_new = $(&quot;#donation&quot;).val() || 0;\n \tFC.json.donation = donation_new;\n\n\t\u002F\u002F MODIFY THE PRODUCT LINK BELOW\n \tvar add_link = &#039;https:\u002F\u002F&#039;+FC.settings.storedomain+&#039;\u002Fcart?name=Donation&amp;price=&#039; + donation_new + &#039;&amp;code=donation&amp;quantity_max=1&#039;;\n \tvar remove_link = &#039;https:\u002F\u002F&#039;+FC.settings.storedomain+&#039;\u002Fcart?cart=update&amp;quantity=0&amp;id=&#039;+donation_id;\n\n \t\u002F\u002F Add and remove\n \tif (donation_id &amp;&amp; donation_new != donation_existing &amp;&amp; donation_new &gt; 0) {\n \t\tFC.client.request(remove_link).done(function() {\n \t\t\tFC.client.request(add_link).done(function() {\n \t\t\t\tFC.json.shipping_address.shipping_results = shipping_results;\n\t\t\t\tFC.json.shipping_address.shipping_service_description = shipping_service_description;\n\t\t\t\tFC.json.shipping_address.shipping_service_id = shipping_service_id;\n\t\t\t\tFC.checkout.render();\n\t\t\t\tFC.checkout.getShippingOptions({address: FC.json.shipping_address});\n \t\t\t});\n \t\t});\n \t} else {\n \t\tvar action_link = &quot;&quot;;\n \t\tif (donation_id &amp;&amp; donation_new == 0) {\n \t\t\taction_link = remove_link;\n \t\t}\n \t\tif (!donation_id &amp;&amp; donation_new &gt; 0) {\n \t\t\taction_link = add_link;\n \t\t}\n\n \t\tif (action_link != &quot;&quot;) {\n \t\t\tFC.client.request(action_link).done(function() {\n \t\t\t\tFC.json.shipping_address.shipping_results = shipping_results;\n\t\t\t\tFC.json.shipping_address.shipping_service_description = shipping_service_description;\n\t\t\t\tFC.json.shipping_address.shipping_service_id = shipping_service_id;\n\t\t\t\tFC.checkout.render();\n\t\t\t\tFC.checkout.getShippingOptions({address: FC.json.shipping_address});\n \t\t\t});\n \t\t}\n \t}\n});\nFC.client.on(&quot;ready.done&quot;, function() {\n\tfor (i=0; i &lt; FC.json.items.length; i++) {\n\t\tif (FC.json.items[i].code == &#039;donation&#039;) {\n\t\t\tFC.json.donation = FC.json.items[i].price;\n\t\t}\n\t}\n \tFC.checkout.renderAdditionalFields();\n});\n&lt;\u002Fscript&gt;\n{% endif %}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You&#039;ll just need to modify the \u003Ccode class=\"badge bg-soft-danger text-danger\">MODIFY THE PRODUCT LINK BELOW\u003C\u002Fcode> section to set the donation &quot;product&quot; as desired, the donation amount will come from the input you&#039;ll add in the next step. If your store is using link\u002Fform signing, you&#039;ll just need to create that link and sign it (using the tool in the &quot;sample code&quot; section of the admin, if you don&#039;t have another way) and paste it in there as needed - ensuring the price field is encrypted as an open field. Make sure it&#039;s set to the appropriate category so it has the proper shipping and taxes applied to it.\u003C\u002Fp>\u003Ch3>Add HTML\u003C\u002Fh3>\u003Cp>In the Foxy admin (\u003Ca href=\"https:\u002F\u002Fadmin.foxy.io\" class=\"\">https:\u002F\u002Fadmin.foxy.io\u003C\u002Fa>), go to \u003Cstrong>Settings &gt; Checkout\u003C\u002Fstrong> and add the field to \u003Cstrong>Custom checkout fields\u003C\u002Fstrong> (use \u003Cstrong>Custom checkout fields for multiship\u003C\u002Fstrong> to collect it under each shipping address; Twig is supported):\u003C\u002Fp>\u003Cpre>\u003Ccode>&lt;div class=&quot;fc-form-group&quot;&gt;\n\t&lt;div class=&quot;col-sm-8 col-sm-offset-3&quot;&gt;\n\t\t&lt;div class=&quot;fc-input-group-container fc-input-group-container--checkbox fc-input-group-container--active&quot;&gt;\n\t\t\t&lt;label class=&quot;fc-input-group-container__title fc-input-group-container__title--forced fc-form-label&quot;&gt;\n\t\t\t\tWould you like to add a donation?\n\t\t\t&lt;\u002Flabel&gt;\n\t\t\t&lt;div class=&quot;fc-form-group fc-form-group--multiple-inline&quot;&gt;\n\t\t\t\t&lt;div class=&quot;col-xs-4&quot;&gt;\n\t\t\t\t\t&lt;input type=&quot;text&quot; id=&quot;donation&quot; value=&quot;&quot; class=&quot;fc-form-control fc-form-control--donation&quot;&gt;\n\t\t\t\t&lt;\u002Fdiv&gt;\n\t\t\t\t&lt;div class=&quot;col-xs-8&quot;&gt;\n\t\t\t\t\t&lt;p&gt;\n\t\t\t\t\t\t&lt;button type=&quot;button&quot; id=&quot;donation_confirm&quot; class=&quot;fc-button&quot;&gt;Add donation&lt;\u002Fbutton&gt;\n\t\t\t\t\t&lt;\u002Fp&gt;\n\t\t\t\t&lt;\u002Fdiv&gt;\n\t\t\t&lt;\u002Fdiv&gt;\n\t\t&lt;\u002Fdiv&gt;\n\t&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\u003C\u002Fcode>\u003C\u002Fpre>",{"name":452,"created_at":453,"published_at":454,"updated_at":455,"id":456,"uuid":47,"content":457,"slug":48,"full_slug":48,"sort_by_date":59,"position":635,"tag_list":636,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":637,"first_published_at":638,"release_id":59,"lang":65,"path":59,"alternates":639,"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":458,"_uid":461,"title":462,"action":463,"fields":464,"method":611,"columns":612,"subtitle":626,"component":48,"button_text":632,"submit_title":633,"submit_subtitle":634},{"_uid":459,"title":452,"plugin":460,"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",[465,470,474,582,585,590,605],{"_uid":466,"name":467,"type":332,"label":468,"options":13,"required":33,"component":469,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","name","Name","form___field",{"_uid":471,"name":472,"type":472,"label":473,"options":13,"required":33,"component":469,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":475,"name":476,"type":477,"label":478,"options":479,"required":33,"component":469,"conditions":480,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[481,536,546,553,561,569,575],{"_uid":482,"equals":483,"fields":484,"component":535},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[485],{"_uid":486,"body":487,"type":533,"title":13,"component":534},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":488},[489],{"type":327,"content":490},[491,493,500,502,504,505,509,511,516,524,526,531],{"text":492,"type":332},"We are ",{"text":494,"type":332,"marks":495},"Foxy.io",[496],{"type":349,"attrs":497},{"href":498,"uuid":59,"anchor":59,"custom":499,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":501,"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":503},"hard_break",{"type":503},{"text":506,"type":332,"marks":507},"NOTE:",[508],{"type":357},{"text":510,"type":332}," We are ",{"text":512,"type":332,"marks":513},"not ",[514],{"type":515},"italic",{"text":517,"type":332,"marks":518},"Foxy.in",[519,523],{"type":349,"attrs":520},{"href":521,"uuid":59,"anchor":59,"custom":522,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":515},{"text":525,"type":332},". We are not in any way affiliated with ",{"text":517,"type":332,"marks":527},[528],{"type":349,"attrs":529},{"href":521,"uuid":59,"anchor":59,"custom":530,"target":59,"linktype":31},{},{"text":532,"type":332},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":537,"equals":538,"fields":539,"component":535},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[540],{"_uid":541,"name":542,"type":543,"label":13,"options":13,"required":24,"component":469,"conditions":544,"placeholder":13,"default_value":545},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":547,"equals":208,"fields":548,"component":535},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[549],{"_uid":550,"name":542,"type":543,"label":13,"options":13,"required":24,"component":469,"conditions":551,"placeholder":13,"default_value":552},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":554,"equals":555,"fields":556,"component":535},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[557],{"_uid":558,"name":542,"type":543,"label":13,"options":13,"required":24,"component":469,"conditions":559,"placeholder":13,"default_value":560},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":562,"equals":563,"fields":564,"component":535},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[565],{"_uid":566,"name":542,"type":543,"label":13,"options":13,"required":24,"component":469,"conditions":567,"placeholder":13,"default_value":568},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":570,"equals":483,"fields":571,"component":535},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[572],{"_uid":573,"name":542,"type":543,"label":13,"options":13,"required":24,"component":469,"conditions":574,"placeholder":13,"default_value":545},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":576,"equals":577,"fields":578,"component":535},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[579],{"_uid":580,"name":542,"type":543,"label":13,"options":13,"required":24,"component":469,"conditions":581,"placeholder":13,"default_value":545},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":583,"component":584},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":586,"name":587,"type":588,"label":589,"options":13,"required":33,"component":469,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":591,"name":592,"type":477,"label":593,"options":594,"required":33,"component":469,"conditions":595,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[596],{"_uid":597,"equals":598,"fields":599,"component":535},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[600],{"_uid":601,"name":602,"type":332,"label":603,"options":13,"required":33,"component":469,"conditions":604,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":606,"name":607,"type":477,"label":608,"options":609,"required":33,"component":469,"conditions":610,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[613],{"_uid":614,"text":615,"title":624,"component":625},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":616},[617],{"type":327,"content":618},[619,621,622],{"text":620,"type":332},"855.369.9227",{"type":503},{"text":623,"type":332},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":627},[628],{"type":327,"content":629},[630],{"text":631,"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,641,670],{"name":642,"created_at":643,"published_at":644,"updated_at":645,"id":646,"uuid":647,"content":648,"slug":663,"full_slug":664,"sort_by_date":59,"position":665,"tag_list":666,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":667,"first_published_at":668,"release_id":59,"lang":65,"path":59,"alternates":669,"default_full_slug":59,"translated_slugs":59},"Checkout","2024-11-06T19:56:29.907Z","2026-07-02T22:04:34.438Z","2026-07-02T22:04:34.451Z",14898631,"60b73dc2-7635-487c-bd1f-fd7fba18ab4d",{"_uid":649,"icon":13,"name":642,"type":650,"guides":651,"pinned":24,"summary":652,"category":13,"component":297,"blog_posts":653,"content_hub":24,"icon_custom":654,"case_studies":656,"faq_sections":657,"help_articles":658,"featured_guides":659,"mailbox_category":13,"featured_articles":660,"featured_blog_posts":661,"featured_case_studies":662},"0a484217-201f-4f60-a813-d8d8bda736e4","simple",[],"How the checkout works, configuration options, customizations, and advanced integrations.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":655},{},[],[],[],[],[],[],[],"checkout","help\u002Fcategories\u002Fcheckout",0,[],"b3bfcd1f-8386-4ed8-9218-2f4c2989a1b2","2024-11-06T19:56:44.870Z",[],{"name":671,"created_at":672,"published_at":673,"updated_at":674,"id":675,"uuid":430,"content":676,"slug":688,"full_slug":689,"sort_by_date":59,"position":690,"tag_list":691,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":692,"first_published_at":673,"release_id":59,"lang":65,"path":59,"alternates":693,"default_full_slug":59,"translated_slugs":59},"Customize The Checkout","2026-07-01T21:47:44.740Z","2026-07-01T21:49:01.723Z","2026-07-01T21:49:01.735Z",193547734023485,{"_uid":677,"icon":13,"name":671,"type":650,"pinned":24,"summary":678,"category":647,"component":297,"blog_posts":679,"icon_custom":680,"case_studies":682,"faq_sections":683,"featured_guides":684,"mailbox_category":13,"featured_articles":685,"featured_blog_posts":686,"featured_case_studies":687},"ef453f74-3f14-4304-9824-ab8062d98dc3","Customize the appearance and fields of the checkout.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":681},{},[],[],[],[],[],[],"customize-the-checkout","help\u002Fcategories\u002Fcustomize-the-checkout",-500,[],"1d9305ee-1c27-453b-a461-c993ef5b69b5",[],{},1784742856101]