[{"data":1,"prerenderedAt":723},["ShallowReactive",2],{"header:help":3,"footer:default":67,"story:navigation\u002Fsearch:help":250,"story:help\u002Fcategories":288,"story:help\u002Farticles\u002Finventory-management-overview":314,"no-guide:inventory-management-overview":59,"article:\u002Fhelp\u002Farticles\u002Finventory-management-overview":467,"story:contact":479,"help:tree:1cfdf372-7b7b-43c4-a6d2-4192cead193a:587f2817-47a8-47ff-8f12-8fc3b4f3ec4d":668,"_apollo:default":722},{"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":460,"full_slug":461,"sort_by_date":59,"position":462,"tag_list":463,"is_startpage":24,"parent_id":464,"meta_data":59,"group_id":465,"first_published_at":317,"release_id":59,"lang":65,"path":59,"alternates":466,"default_full_slug":59,"translated_slugs":59},"Inventory Management Overview","2026-07-24T21:11:50.131Z","2026-07-24T21:48:22.319Z","2026-07-24T21:48:22.340Z",201678479954974,"1cfdf372-7b7b-43c4-a6d2-4192cead193a",{"_uid":322,"body":323,"name":315,"image":454,"pinned":24,"summary":456,"category":457,"component":266,"related_articles":459},"10a9bd54-7ca5-4efc-b951-2c9c2473aafc",{"type":324,"content":325},"doc",[326,333,340,351,356,433,438],{"type":327,"attrs":328,"content":329},"paragraph",{"textAlign":59},[330],{"text":331,"type":332},"Foxy doesn’t manage your products for you — products are defined as links and forms on your own website, which send the product details to the cart. Because Foxy doesn’t maintain your product catalog, it also doesn’t track your inventory levels automatically. That said, there are several features you can combine to track and enforce inventory levels for your store.","text",{"type":334,"attrs":335,"content":337},"heading",{"level":336,"textAlign":59},2,[338],{"text":339,"type":332},"How inventory tracking works in Foxy",{"type":327,"attrs":341,"content":342},{"textAlign":59},[343,345,349],{"text":344,"type":332},"You’ll need somewhere outside of Foxy to store and update inventory levels — this could be a text file, a database, or a CMS. You’ll also want a unique identifier for each product so you can match it back to the correct inventory record after a transaction. We recommend using the ",{"text":346,"type":332,"marks":347},"code",[348],{"type":346},{"text":350,"type":332}," attribute for this, though any custom product attribute will work.",{"type":327,"attrs":352,"content":353},{"textAlign":59},[354],{"text":355,"type":332},"From there, Foxy gives you a few levels of control, depending on how tightly you need to manage stock:",{"type":357,"content":358},"bullet_list",[359,387,414],{"type":360,"content":361},"list_item",[362],{"type":327,"attrs":363,"content":364},{"textAlign":59},[365,370,372,379,381,385],{"text":366,"type":332,"marks":367},"Basic tracking",[368],{"type":369},"bold",{"text":371,"type":332}," uses the ",{"text":373,"type":332,"marks":374},"transaction webhook",[375],{"type":376,"attrs":377},"link",{"href":378,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Ftrack-inventory-with-quantity-max-and-the-transaction-webhook",{"text":380,"type":332}," to update your inventory records after each completed sale, combined with the ",{"text":382,"type":332,"marks":383},"quantity_max",[384],{"type":346},{"text":386,"type":332}," product attribute to prevent a customer from ordering more than what’s available. This works well for stores with low transaction volume, where the odds of two customers checking out for the same item at the same time are low.",{"type":360,"content":388},[389],{"type":327,"attrs":390,"content":391},{"textAlign":59},[392,396,398,404,406,412],{"text":393,"type":332,"marks":394},"Intermediate tracking",[395],{"type":369},{"text":397,"type":332}," adds two safeguards on top of the basics: ",{"text":399,"type":332,"marks":400},"expiring products out of the cart",[401],{"type":376,"attrs":402},{"href":403,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fset-an-expiration-time-for-products-in-the-cart",{"text":405,"type":332}," after a set amount of time, and ",{"text":407,"type":332,"marks":408},"confirming stock is still available",[409],{"type":376,"attrs":410},{"href":411,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfirm-inventory-before-checkout-with-the-pre-payment-webhook",{"text":413,"type":332}," right before the customer pays, using the pre-payment webhook.",{"type":360,"content":415},[416],{"type":327,"attrs":417,"content":418},{"textAlign":59},[419,423,425,431],{"text":420,"type":332,"marks":421},"Advanced tracking",[422],{"type":369},{"text":424,"type":332}," is for stores that can’t afford to oversell, such as one-off items or limited event tickets. It involves ",{"text":426,"type":332,"marks":427},"setting up temporary inventory locks",[428],{"type":376,"attrs":429},{"href":430,"uuid":59,"anchor":59,"target":59,"linktype":31},"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fset-up-advanced-inventory-tracking-with-inventory-locks",{"text":432,"type":332}," tied to what’s currently in customers’ carts, using Foxy’s cart JavaScript events alongside the webhooks above.",{"type":334,"attrs":434,"content":435},{"level":336,"textAlign":59},[436],{"text":437,"type":332},"Notes",{"type":357,"content":439},[440,447],{"type":360,"content":441},[442],{"type":327,"attrs":443,"content":444},{"textAlign":59},[445],{"text":446,"type":332},"None of these approaches require Foxy to store or manage your inventory data — Foxy only provides the hooks (webhooks and JavaScript events) needed to keep your own system in sync.",{"type":360,"content":448},[449],{"type":327,"attrs":450,"content":451},{"textAlign":59},[452],{"text":453,"type":332},"The right level of tracking depends on your transaction volume and how costly overselling would be for your store.",{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":455},{},"How Foxy's webhooks and cart events work together to help you track product inventory, since Foxy doesn't manage your product catalog directly.",[458],"587f2817-47a8-47ff-8f12-8fc3b4f3ec4d",[],"inventory-management-overview","help\u002Farticles\u002Finventory-management-overview",-4650,[],2659,"7d5fd74c-5738-4bf2-bdb4-69452d9f6080",[],{"html":468,"sections":469,"segments":475},"\u003Cp>Foxy doesn’t manage your products for you — products are defined as links and forms on your own website, which send the product details to the cart. Because Foxy doesn’t maintain your product catalog, it also doesn’t track your inventory levels automatically. That said, there are several features you can combine to track and enforce inventory levels for your store.\u003C\u002Fp>\u003Csection id=\"how-inventory-tracking-works-in-foxy\" data-title=\"How inventory tracking works in Foxy\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"how-inventory-tracking-works-in-foxy\">How inventory tracking works in Foxy\u003C\u002Fh2>\u003Cp>You’ll need somewhere outside of Foxy to store and update inventory levels — this could be a text file, a database, or a CMS. You’ll also want a unique identifier for each product so you can match it back to the correct inventory record after a transaction. We recommend using the \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode> attribute for this, though any custom product attribute will work.\u003C\u002Fp>\u003Cp>From there, Foxy gives you a few levels of control, depending on how tightly you need to manage stock:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>Basic tracking\u003C\u002Fstrong> uses the \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Ftrack-inventory-with-quantity-max-and-the-transaction-webhook\" class=\"\">transaction webhook\u003C\u002Fa> to update your inventory records after each completed sale, combined with the \u003Ccode class=\"badge bg-soft-danger text-danger\">quantity_max\u003C\u002Fcode> product attribute to prevent a customer from ordering more than what’s available. This works well for stores with low transaction volume, where the odds of two customers checking out for the same item at the same time are low.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Intermediate tracking\u003C\u002Fstrong> adds two safeguards on top of the basics: \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fset-an-expiration-time-for-products-in-the-cart\" class=\"\">expiring products out of the cart\u003C\u002Fa> after a set amount of time, and \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfirm-inventory-before-checkout-with-the-pre-payment-webhook\" class=\"\">confirming stock is still available\u003C\u002Fa> right before the customer pays, using the pre-payment webhook.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Advanced tracking\u003C\u002Fstrong> is for stores that can’t afford to oversell, such as one-off items or limited event tickets. It involves \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fset-up-advanced-inventory-tracking-with-inventory-locks\" class=\"\">setting up temporary inventory locks\u003C\u002Fa> tied to what’s currently in customers’ carts, using Foxy’s cart JavaScript events alongside the webhooks above.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>\u003Csection id=\"notes\" data-title=\"Notes\" data-title-node=\"H2\">\u003Chr class=\"my-8\" style=\"margin-left: -48px; margin-right: -40vw\">\u003Ch2 data-anchor-id=\"notes\">Notes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>None of these approaches require Foxy to store or manage your inventory data — Foxy only provides the hooks (webhooks and JavaScript events) needed to keep your own system in sync.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>The right level of tracking depends on your transaction volume and how costly overselling would be for your store.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fsection>",[470,473],{"id":471,"title":339,"level":472},"how-inventory-tracking-works-in-foxy","H2",{"id":474,"title":437,"level":472},"notes",[476],{"type":477,"content":478},"html","\u003Cp>Foxy doesn’t manage your products for you — products are defined as links and forms on your own website, which send the product details to the cart. Because Foxy doesn’t maintain your product catalog, it also doesn’t track your inventory levels automatically. That said, there are several features you can combine to track and enforce inventory levels for your store.\u003C\u002Fp>\u003Ch2>How inventory tracking works in Foxy\u003C\u002Fh2>\u003Cp>You’ll need somewhere outside of Foxy to store and update inventory levels — this could be a text file, a database, or a CMS. You’ll also want a unique identifier for each product so you can match it back to the correct inventory record after a transaction. We recommend using the \u003Ccode class=\"badge bg-soft-danger text-danger\">code\u003C\u002Fcode> attribute for this, though any custom product attribute will work.\u003C\u002Fp>\u003Cp>From there, Foxy gives you a few levels of control, depending on how tightly you need to manage stock:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cstrong>Basic tracking\u003C\u002Fstrong> uses the \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Ftrack-inventory-with-quantity-max-and-the-transaction-webhook\" class=\"\">transaction webhook\u003C\u002Fa> to update your inventory records after each completed sale, combined with the \u003Ccode class=\"badge bg-soft-danger text-danger\">quantity_max\u003C\u002Fcode> product attribute to prevent a customer from ordering more than what’s available. This works well for stores with low transaction volume, where the odds of two customers checking out for the same item at the same time are low.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Intermediate tracking\u003C\u002Fstrong> adds two safeguards on top of the basics: \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fset-an-expiration-time-for-products-in-the-cart\" class=\"\">expiring products out of the cart\u003C\u002Fa> after a set amount of time, and \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fconfirm-inventory-before-checkout-with-the-pre-payment-webhook\" class=\"\">confirming stock is still available\u003C\u002Fa> right before the customer pays, using the pre-payment webhook.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cstrong>Advanced tracking\u003C\u002Fstrong> is for stores that can’t afford to oversell, such as one-off items or limited event tickets. It involves \u003Ca href=\"https:\u002F\u002Ffoxy.io\u002Fhelp\u002Farticles\u002Fset-up-advanced-inventory-tracking-with-inventory-locks\" class=\"\">setting up temporary inventory locks\u003C\u002Fa> tied to what’s currently in customers’ carts, using Foxy’s cart JavaScript events alongside the webhooks above.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Notes\u003C\u002Fh2>\u003Cul>\u003Cli>\u003Cp>None of these approaches require Foxy to store or manage your inventory data — Foxy only provides the hooks (webhooks and JavaScript events) needed to keep your own system in sync.\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>The right level of tracking depends on your transaction volume and how costly overselling would be for your store.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>",{"name":480,"created_at":481,"published_at":482,"updated_at":483,"id":484,"uuid":47,"content":485,"slug":48,"full_slug":48,"sort_by_date":59,"position":663,"tag_list":664,"is_startpage":24,"parent_id":59,"meta_data":59,"group_id":665,"first_published_at":666,"release_id":59,"lang":65,"path":59,"alternates":667,"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":486,"_uid":489,"title":490,"action":491,"fields":492,"method":639,"columns":640,"subtitle":654,"component":48,"button_text":660,"submit_title":661,"submit_subtitle":662},{"_uid":487,"title":480,"plugin":488,"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",[493,498,502,610,613,618,633],{"_uid":494,"name":495,"type":332,"label":496,"options":13,"required":33,"component":497,"placeholder":13},"9a70b226-2036-4f90-a052-b3efa61c5896","name","Name","form___field",{"_uid":499,"name":500,"type":500,"label":501,"options":13,"required":33,"component":497,"placeholder":13},"86ba35be-ff43-4a28-8633-14052a8f6622","email","Email Address",{"_uid":503,"name":504,"type":505,"label":506,"options":507,"required":33,"component":497,"conditions":508,"placeholder":13},"3f827475-492c-4f97-aa1e-2386ac263b6c","topic","select","Topic","Presales, Support, Billing, Partnerships, Order Enquiry, Other",[509,564,574,581,589,597,603],{"_uid":510,"equals":511,"fields":512,"component":563},"e21d97dd-e68e-4fa6-ba97-bc40f3041dde","Order Enquiry",[513],{"_uid":514,"body":515,"type":561,"title":13,"component":562},"b64992bc-6d53-48b8-b7a0-d81e5a062e50",{"type":324,"content":516},[517],{"type":327,"content":518},[519,521,528,530,532,533,537,539,544,552,554,559],{"text":520,"type":332},"We are ",{"text":522,"type":332,"marks":523},"Foxy.io",[524],{"type":376,"attrs":525},{"href":526,"uuid":59,"anchor":59,"custom":527,"target":59,"linktype":31},"http:\u002F\u002FFoxy.io",{},{"text":529,"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":531},"hard_break",{"type":531},{"text":534,"type":332,"marks":535},"NOTE:",[536],{"type":369},{"text":538,"type":332}," We are ",{"text":540,"type":332,"marks":541},"not ",[542],{"type":543},"italic",{"text":545,"type":332,"marks":546},"Foxy.in",[547,551],{"type":376,"attrs":548},{"href":549,"uuid":59,"anchor":59,"custom":550,"target":59,"linktype":31},"http:\u002F\u002FFoxy.in",{},{"type":543},{"text":553,"type":332},". We are not in any way affiliated with ",{"text":545,"type":332,"marks":555},[556],{"type":376,"attrs":557},{"href":549,"uuid":59,"anchor":59,"custom":558,"target":59,"linktype":31},{},{"text":560,"type":332},", and cannot help in any way with your order from that website.","danger","global___alert","form___condition",{"_uid":565,"equals":566,"fields":567,"component":563},"8765c3e1-25cf-44aa-b8ea-fc6094acf9c3","Presales",[568],{"_uid":569,"name":570,"type":571,"label":13,"options":13,"required":24,"component":497,"conditions":572,"placeholder":13,"default_value":573},"cf464f8e-d643-4f6e-af29-d3abffaf7380","department_email_address","hidden",[],"hello@foxy.io",{"_uid":575,"equals":208,"fields":576,"component":563},"4007b6d8-77e5-421d-bd1e-6f336dd853fb",[577],{"_uid":578,"name":570,"type":571,"label":13,"options":13,"required":24,"component":497,"conditions":579,"placeholder":13,"default_value":580},"7b4c6aa5-a68c-45e0-9ce1-0a36af10c0c2",[],"help@foxy.io",{"_uid":582,"equals":583,"fields":584,"component":563},"1dbb8f11-613d-43cd-9e09-1b94f6e19219","Billing",[585],{"_uid":586,"name":570,"type":571,"label":13,"options":13,"required":24,"component":497,"conditions":587,"placeholder":13,"default_value":588},"a0ac0d1b-bc4f-4a6c-a682-581d450b0b73",[],"help+billing@foxy.io",{"_uid":590,"equals":591,"fields":592,"component":563},"a0a53a50-7172-4a29-ba58-181e38874e12","Partnerships",[593],{"_uid":594,"name":570,"type":571,"label":13,"options":13,"required":24,"component":497,"conditions":595,"placeholder":13,"default_value":596},"7aa011d9-f374-4aed-b5a5-929b54aaf152",[],"partners@foxy.io",{"_uid":598,"equals":511,"fields":599,"component":563},"a4cd431f-25d5-41c7-bfdc-02c908c8fb47",[600],{"_uid":601,"name":570,"type":571,"label":13,"options":13,"required":24,"component":497,"conditions":602,"placeholder":13,"default_value":573},"f5d52168-d6ae-451b-94ee-2ced1cbd28ad",[],{"_uid":604,"equals":605,"fields":606,"component":563},"25aba1ed-eb41-4bbc-aa89-f7a7167ea86e","Other",[607],{"_uid":608,"name":570,"type":571,"label":13,"options":13,"required":24,"component":497,"conditions":609,"placeholder":13,"default_value":573},"f40dfaef-c203-4b71-bf4e-e1b43cef192b",[],{"_uid":611,"component":612},"e9c53a05-f40a-4510-aaf8-bc072a235a0c","form___subject",{"_uid":614,"name":615,"type":616,"label":617,"options":13,"required":33,"component":497,"placeholder":13},"a4c4d385-fff4-4978-99fb-b68cfea623d6","message","textarea","Message",{"_uid":619,"name":620,"type":505,"label":621,"options":622,"required":33,"component":497,"conditions":623,"placeholder":13},"8a3c9f85-f438-427d-9c7a-d7b295a14b5b","existing_user","Are you an existing user?","No, Yes",[624],{"_uid":625,"equals":626,"fields":627,"component":563},"115933d6-262a-4b59-8fa8-579c5ad73de1","Yes",[628],{"_uid":629,"name":630,"type":332,"label":631,"options":13,"required":33,"component":497,"conditions":632,"placeholder":13},"44b6ff23-98f0-4e95-b7f5-c23e06415c2d","subdomain","Store Subdomain",[],{"_uid":634,"name":635,"type":505,"label":636,"options":637,"required":33,"component":497,"conditions":638,"placeholder":13},"922a5cef-3af2-4113-8855-36c7910e3ee3","user_type","What type of user are you?","Developer, Designer, Merchant",[],"POST",[641],{"_uid":642,"text":643,"title":652,"component":653},"7323b90d-a93a-4bf1-baa9-20d0b7ead61b",{"type":324,"content":644},[645],{"type":327,"content":646},[647,649,650],{"text":648,"type":332},"855.369.9227",{"type":531},{"text":651,"type":332},"9:30am-6pm Central M-F","Pre-sales, Sales, & Partnerships","contact___footer_column",{"type":324,"content":655},[656],{"type":327,"content":657},[658],{"text":659,"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,669,697],{"name":670,"created_at":671,"published_at":672,"updated_at":673,"id":674,"uuid":675,"content":676,"slug":690,"full_slug":691,"sort_by_date":59,"position":692,"tag_list":693,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":694,"first_published_at":695,"release_id":59,"lang":65,"path":59,"alternates":696,"default_full_slug":59,"translated_slugs":59},"Products","2023-01-19T16:20:53.075Z","2024-06-05T04:29:14.851Z","2024-06-05T04:29:14.872Z",28236,"389d5512-29ba-4a93-9cfa-9491d1618f73",{"_uid":677,"icon":678,"name":670,"guides":679,"pinned":24,"summary":680,"category":13,"component":297,"blog_posts":681,"content_hub":24,"icon_custom":682,"case_studies":683,"faq_sections":684,"help_articles":685,"featured_guides":686,"mailbox_category":13,"featured_articles":687,"featured_blog_posts":688,"featured_case_studies":689},"3551f6e8-765a-4b8d-8587-2e2eda4d2b23","fa-tags",[],"How products work, supported product types, inventory management, and more.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"filename":13,"copyright":59,"fieldtype":81},[],[],[],[],[],[],[],"products","help\u002Fcategories\u002Fproducts",150,[],"c025c7a7-0d20-4244-938a-c8d6588e1269","2023-01-19T17:25:32.570Z",[],{"name":698,"created_at":699,"published_at":700,"updated_at":701,"id":702,"uuid":458,"content":703,"slug":716,"full_slug":717,"sort_by_date":59,"position":718,"tag_list":719,"is_startpage":24,"parent_id":310,"meta_data":59,"group_id":720,"first_published_at":700,"release_id":59,"lang":65,"path":59,"alternates":721,"default_full_slug":59,"translated_slugs":59},"Inventory Management","2026-07-24T21:09:48.661Z","2026-07-24T21:10:19.366Z","2026-07-24T21:10:19.375Z",201677982405661,{"_uid":704,"icon":13,"name":698,"type":705,"pinned":24,"summary":706,"category":675,"component":297,"blog_posts":707,"icon_custom":708,"case_studies":710,"faq_sections":711,"featured_guides":712,"mailbox_category":13,"featured_articles":713,"featured_blog_posts":714,"featured_case_studies":715},"627df0ff-c9fd-4689-928c-c66ebb1c67d5","simple","How to track product inventory, including limiting cart quantities, confirming stock before checkout, and setting up advanced inventory locks.",[],{"id":59,"alt":59,"name":13,"focus":59,"title":59,"source":59,"filename":13,"copyright":59,"fieldtype":81,"meta_data":709},{},[],[],[],[],[],[],"inventory-management","help\u002Fcategories\u002Finventory-management",-880,[],"7c5de71b-c82b-4c04-a8fb-dfda525b32f6",[],{},1784930206885]