[{"data":1,"prerenderedAt":503},["ShallowReactive",2],{"bootstrap":3,"blog-introducing-timed-checkout":277},{"navigation":4,"globalConfig":196,"forms":218},{"headerSections":5,"headerFooterLinks":67,"footer":76,"legalLinks":153,"socialLinks":176},[6,39,44,50,57,62],{"hasSubMenu":7,"title":8,"links":9,"columns":38},true,"Product",[10,20,26,32],{"showTag":11,"_modelApiKey":12,"text":13,"subtitle":14,"icon":15,"isExternal":11,"link":16,"openForm":11},false,"navigation_link","Universal checkout","Sell anywhere","globe-simple",{"_modelApiKey":17,"slug":18,"title":19},"page","universal-checkout","Universal Checkout",{"showTag":11,"_modelApiKey":12,"text":21,"subtitle":22,"icon":23,"isExternal":11,"link":24,"openForm":11},"Distributed OMS","Manage orders","package",{"_modelApiKey":17,"slug":25,"title":21},"distributed-oms",{"showTag":11,"_modelApiKey":12,"text":27,"subtitle":28,"icon":29,"isExternal":11,"link":30,"openForm":11},"Promotion engine","Automated discounts","seal-percent",{"_modelApiKey":17,"slug":31,"title":27},"promotion-engine",{"showTag":11,"_modelApiKey":12,"text":33,"subtitle":34,"icon":35,"isExternal":11,"link":36,"openForm":11},"POS system","Operate stores","devices",{"_modelApiKey":17,"slug":37,"title":33},"pos-system",2,{"hasSubMenu":11,"showTag":11,"_modelApiKey":12,"text":40,"isExternal":11,"link":41,"openForm":11,"title":40},"Pricing",{"_modelApiKey":42,"slug":43},"pricing_page","pricing",{"hasSubMenu":11,"showTag":11,"_modelApiKey":12,"text":45,"isExternal":11,"link":46,"openForm":11,"title":45},"Customers",{"_modelApiKey":47,"slug":48,"title":49},"customer_landing_page","customers","Customers page",{"hasSubMenu":11,"showTag":11,"_modelApiKey":12,"text":51,"isExternal":11,"link":52,"openForm":11,"form":54,"title":51},"Partners",{"_modelApiKey":17,"slug":53,"title":51},"partners",{"_modelApiKey":55,"slug":53,"name":56},"form","PartnersForm",{"hasSubMenu":11,"showTag":11,"_modelApiKey":12,"text":58,"label":59,"isExternal":7,"url":60,"openForm":11,"title":61},"Docs Hub","Learn more","https:\u002F\u002Fdocs.commercelayer.io\u002F","Docs",{"hasSubMenu":11,"showTag":11,"_modelApiKey":12,"text":63,"isExternal":11,"link":64,"openForm":11,"title":63},"Blog",{"_modelApiKey":65,"slug":66},"blog_landing_page","blog",[68,72],{"text":69,"link":70},"Sign in",{"_modelApiKey":12,"text":69,"isExternal":7,"url":71,"openForm":11},"https:\u002F\u002Fdashboard.commercelayer.io\u002Fsign_in",{"text":73,"link":74},"Sign up for free",{"_modelApiKey":12,"text":73,"isExternal":7,"url":75,"openForm":11},"https:\u002F\u002Fdashboard.commercelayer.io\u002Fsign_up",[77,89,109,132],{"hasSubMenu":7,"title":8,"links":78},[79,81,83,85,87],{"showTag":11,"_modelApiKey":12,"text":13,"subtitle":14,"icon":15,"isExternal":11,"link":80,"openForm":11},{"_modelApiKey":17,"slug":18,"title":19},{"showTag":11,"_modelApiKey":12,"text":21,"subtitle":22,"icon":23,"isExternal":11,"link":82,"openForm":11},{"_modelApiKey":17,"slug":25,"title":21},{"showTag":11,"_modelApiKey":12,"text":27,"subtitle":28,"icon":29,"isExternal":11,"link":84,"openForm":11},{"_modelApiKey":17,"slug":31,"title":27},{"showTag":11,"_modelApiKey":12,"text":33,"subtitle":34,"icon":35,"isExternal":11,"link":86,"openForm":11},{"_modelApiKey":17,"slug":37,"title":33},{"showTag":11,"_modelApiKey":12,"text":40,"isExternal":11,"link":88,"openForm":11},{"_modelApiKey":42,"slug":43},{"hasSubMenu":7,"title":90,"links":91},"Resources",[92,94,99,104,107],{"showTag":11,"_modelApiKey":12,"text":93,"isExternal":7,"url":60,"openForm":11},"Documentation",{"showTag":11,"_modelApiKey":12,"text":95,"label":95,"isExternal":11,"link":96,"openForm":11},"Agentic Commerce",{"_modelApiKey":17,"slug":97,"title":98},"agentic-commerce-whitepaper","Agentic Commerce Whitepaper",{"showTag":11,"_modelApiKey":12,"text":100,"isExternal":11,"link":101,"openForm":11},"Core concepts",{"_modelApiKey":17,"slug":102,"title":103},"headless-commerce","Headless commerce",{"showTag":11,"_modelApiKey":12,"text":105,"isExternal":7,"url":106,"openForm":11},"Changelog","https:\u002F\u002Fdocs.commercelayer.io\u002Fchangelog\u002F",{"showTag":11,"_modelApiKey":12,"text":63,"isExternal":11,"link":108,"openForm":11},{"_modelApiKey":65,"slug":66},{"hasSubMenu":7,"title":110,"links":111},"Company",[112,116,118,121,126],{"showTag":11,"_modelApiKey":12,"text":113,"isExternal":11,"link":114,"openForm":11},"Vision",{"_modelApiKey":17,"slug":115,"title":113},"vision",{"showTag":11,"_modelApiKey":12,"text":45,"isExternal":11,"link":117,"openForm":11},{"_modelApiKey":47,"slug":48,"title":49},{"showTag":11,"_modelApiKey":12,"text":51,"isExternal":11,"link":119,"openForm":11,"form":120},{"_modelApiKey":17,"slug":53,"title":51},{"_modelApiKey":55,"slug":53,"name":56},{"showTag":11,"_modelApiKey":12,"text":122,"isExternal":11,"link":123,"openForm":11},"Security",{"_modelApiKey":17,"slug":124,"title":125},"security","Security at Commerce Layer",{"showTag":11,"_modelApiKey":12,"text":127,"label":128,"isExternal":11,"openForm":7,"form":129},"Giveback","Giveback program",{"_modelApiKey":55,"slug":130,"name":131},"giveback","GivebackForm",{"hasSubMenu":7,"title":133,"links":134},"Get in touch",[135,140,145,149],{"showTag":11,"_modelApiKey":12,"text":136,"isExternal":11,"openForm":7,"form":137},"Contact",{"_modelApiKey":55,"slug":138,"name":139},"contact","ContactUsForm",{"showTag":11,"_modelApiKey":12,"text":141,"isExternal":11,"openForm":7,"form":142},"Book a demo",{"_modelApiKey":55,"slug":143,"name":144},"demo","RequestDemoForm",{"showTag":11,"_modelApiKey":12,"text":146,"label":147,"isExternal":7,"url":148,"openForm":11},"Support","Email support","mailto:support@commercelayer.io",{"showTag":11,"_modelApiKey":12,"text":150,"label":151,"isExternal":7,"url":152,"openForm":11},"Community","Discord community","https:\u002F\u002Fdiscord.gg\u002Fcommercelayer",{"hasSubMenu":7,"title":154,"links":155},"Legal",[156,161,165,169,173],{"showTag":11,"_modelApiKey":12,"text":157,"label":158,"isExternal":7,"url":159,"openForm":11,"htmlClassNames":160},"Terms","Terms and conditions","\u002Flegal-embed\u002Fterms-of-service","iubenda-nostyle no-brand iubenda-noiframe iubenda-embed",{"showTag":11,"_modelApiKey":12,"text":162,"label":163,"isExternal":7,"url":164,"openForm":11,"htmlClassNames":160},"Privacy","Privacy policy","\u002Flegal-embed\u002Fprivacy-policy",{"showTag":11,"_modelApiKey":12,"text":166,"label":167,"isExternal":7,"url":168,"openForm":11,"htmlClassNames":160},"Cookies","Cookie policy","\u002Flegal-embed\u002Fcookie-policy",{"showTag":11,"_modelApiKey":12,"text":170,"isExternal":7,"url":171,"openForm":11,"htmlClassNames":172},"Notice at collection","#","iubenda-cs-uspr-link",{"showTag":11,"_modelApiKey":12,"text":174,"isExternal":7,"url":171,"openForm":11,"htmlClassNames":175},"Privacy preferences","iubenda-cs-preferences-link",[177,180,184,188,192],{"title":178,"type":179,"url":152,"isExternal":7},"Discord","discord-logo",{"title":181,"type":182,"url":183,"isExternal":7},"Github","github","https:\u002F\u002Fgithub.com\u002Fcommercelayer",{"title":185,"type":186,"url":187,"isExternal":7},"Bluesky","bluesky-logo","https:\u002F\u002Fbsky.app\u002Fprofile\u002Fcommercelayer.io",{"title":189,"type":190,"url":191,"isExternal":7},"X","x-logo","https:\u002F\u002Fx.com\u002Fcommercelayer",{"title":193,"type":194,"url":195,"isExternal":7},"LinkedIn","linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fcommerce-layer",{"pagesWithoutCtaPanel":197,"ctaPanel":198,"notification":208,"showApiResponseTime":11,"newsletterSignup":216},[],{"title":199,"subtitle":200,"ctas":201},"Ready to get started?","Discover how we can help your business.",[202,205],{"_modelApiKey":203,"text":204,"isExternal":7,"url":75,"openForm":11},"link","Get started for free",{"_modelApiKey":203,"text":206,"isExternal":11,"openForm":7,"form":207},"Contact us",{"_modelApiKey":55,"slug":138,"name":139},{"showNotification":7,"link":209,"linkText":210,"text":215},{"_modelApiKey":203,"text":210,"isExternal":11,"link":211,"openForm":11},"Read article",{"_modelApiKey":212,"slug":213,"title":214},"blog_post","the-new-payments-api-built-for-how-people-pay-now","The new Payments API. Built for how people pay now.","\u003Cp>The new Payments API. Built for how people pay now.\u003C\u002Fp>\n",{"ctaText":217},"Subscribe",[219,225,229,236,240,246,249,253,261,262,267,272,274],{"_modelApiKey":55,"slug":220,"pardotFormEmbedCode":221,"formEmbedMinHeight":222,"successTitle":223,"successCopy":224},"agentic-commerce","https:\u002F\u002Fcommercelayer.fillout.com\u002Ft\u002F5w4Khwgxr6us?whitepaper=agentic",520,"Thank you for your request!","We’ll be in touch soon to arrange a date and time for your personalized demo.",{"_modelApiKey":55,"slug":226,"pardotFormEmbedCode":227,"formEmbedMinHeight":228,"successTitle":223,"successCopy":224},"shopify","https:\u002F\u002Fform.fillout.com\u002Ft\u002FgVnLSmKZwRus",850,{"_modelApiKey":55,"slug":130,"pardotFormEmbedCode":230,"formEmbedMinHeight":231,"displayTitle":232,"copy":233,"successTitle":234,"successCopy":235},"https:\u002F\u002Fform.fillout.com\u002Ft\u002FmVDF8aAiofus",500,"We give back.","\u003Cp>Part of Commerce Layer&#39;s company ethos is to empathize and support one another: co-workers, customers, and community. We want to do our part to help nonprofit organizations and small businesses who may feel adversely affected by the current global economic climate, and as a result, need in-kind support to reach their customers.\u003C\u002Fp>\n\n\u003Cp>If this general description matches your organization’s needs, please tell us your story by completing the following form so we can consider helping your cause.\u003C\u002Fp>\n","Thank you!","We will contact you soon to learn more about your story.",{"_modelApiKey":55,"slug":237,"pardotFormEmbedCode":227,"formEmbedMinHeight":228,"displayTitle":238,"copy":239},"book-an-onboarding-session","Book an onboarding session","\u003Cp>Schedule some time and our devs will help you set up a Commerce Layer + Sanity store.\u003C\u002Fp>\n",{"_modelApiKey":55,"slug":241,"pardotFormEmbedCode":242,"formEmbedMinHeight":243,"displayTitle":244,"successTitle":234,"successCopy":245},"download-our-whitepaper","https:\u002F\u002Fform.fillout.com\u002Ft\u002F5YPWmy8oT7us?whitepaper=ComposableCommerce",450,"Download our whitepaper.","Check your inbox. You should receive a download link soon.",{"_modelApiKey":55,"slug":247,"pardotFormEmbedCode":248,"formEmbedMinHeight":243,"displayTitle":244,"successTitle":234,"successCopy":245},"download-the-content-and-commerce-whitepaper","https:\u002F\u002Fform.fillout.com\u002Ft\u002F5YPWmy8oT7us?whitepaper=ContentAndCommerce",{"_modelApiKey":55,"slug":250,"pardotFormEmbedCode":251,"formEmbedMinHeight":243,"displayTitle":244,"copy":252,"successTitle":234,"successCopy":245},"whitepaper","https:\u002F\u002Fform.fillout.com\u002Ft\u002F5YPWmy8oT7us?whitepaper=Jamstack","\u003Cp>Commerce Layer is the perfect platform for building commerce on the Jamstack. Convert any design into pixel perfect HTML pages. Connect a best-of-breed headless CMS. Go serverless and forget the hassle of managing complex infrastructures.\u003C\u002Fp>\n",{"_modelApiKey":55,"slug":254,"pardotFormEmbedCode":255,"formEmbedMinHeight":256,"displayTitle":257,"copy":258,"successTitle":259,"successCopy":260},"contact-links","https:\u002F\u002Fform.fillout.com\u002Ft\u002FeWPyhHGHT7us",750,"Contact us.","\u003Cp>Tell us about your project. Our team will reach out to you for a personalized offer.\u003C\u002Fp>\n","Thanks for your message!","We’ll be in touch soon to discuss your project details.",{"_modelApiKey":55,"slug":138,"pardotFormEmbedCode":255,"formEmbedMinHeight":256,"displayTitle":257,"copy":258,"successTitle":259,"successCopy":260},{"_modelApiKey":55,"slug":263,"pardotFormEmbedCode":227,"formEmbedMinHeight":228,"displayTitle":264,"successTitle":265,"successCopy":266},"demo-embed","Want to see it in action? Request a demo.","Thanks for your request!","We’ll be in touch soon to arrange a date and time for your free live demo.",{"_modelApiKey":55,"slug":53,"pardotFormEmbedCode":268,"formEmbedMinHeight":228,"displayTitle":269,"copy":270,"successTitle":234,"successCopy":271},"https:\u002F\u002Fform.fillout.com\u002Ft\u002F9MTkDWMUSqus","Become our partner.","\u003Cp>Join us and get our guidance in helping your clients succeed. Our partners are our ambassadors. We are committed to your success as much as you are.\u003C\u002Fp>\n","We will contact you soon to discuss the details of our partnership.",{"_modelApiKey":55,"slug":273,"pardotFormEmbedCode":268,"formEmbedMinHeight":228,"displayTitle":269,"copy":270,"successTitle":234,"successCopy":271},"partners-embed",{"_modelApiKey":55,"slug":143,"pardotFormEmbedCode":227,"formEmbedMinHeight":228,"displayTitle":275,"copy":276,"successTitle":265,"successCopy":266},"Get a free live demo.","\u003Cp>Get a personalized demo and learn more about what Commerce Layer can do for your company.\u003C\u002Fp>\n",{"_modelApiKey":212,"link":278,"subtitle":283,"date":283,"author":284,"additionalAuthors":294,"icon":295,"abstract":296,"tag":297,"displayTitle":279,"cardRatio":299,"featured":11,"seoMetaTags":300,"layout":364,"blogPostCarousel":302,"_seoMetaTags":464,"authors":498},{"text":279,"isExternal":11,"url":280,"link":281},"Countdown to conversion: introducing timed checkout.","",{"_modelApiKey":212,"slug":282},"introducing-timed-checkout","October 22, 2025",{"name":285,"picture":286},"Matteo Alessani",{"url":287,"alt":288,"title":288,"width":289,"height":289,"format":290,"focalPoint":291,"customData":293},"https:\u002F\u002Fwww.datocms-assets.com\u002F35053\u002F1754320247-matteo-a.jpg","Commerce Layer avatar",1280,"jpg",{"x":292,"y":292},0.5,{},[],"clock-countdown","Our Checkout MFE now supports a timed option — a built-in countdown that enforces payment deadlines and keeps flash sales, drops, and limited offers fair and predictable.",{"color":298,"name":8},"gray","portrait",[301,305,309,312,316,319,322,326,330,334,337,341,345,349,353,356,360],{"attributes":302,"tag":303,"content":304},null,"title","Countdown to conversion: introducing timed checkout",{"attributes":306,"tag":308,"content":302},{"property":307,"content":304},"og:title","meta",{"attributes":310,"tag":308,"content":302},{"name":311,"content":304},"twitter:title",{"attributes":313,"tag":308,"content":302},{"name":314,"content":315},"description","Bring urgency and control to your checkout. Set time limits, reserve stock, and expire orders automatically with timed checkout.",{"attributes":317,"tag":308,"content":302},{"property":318,"content":315},"og:description",{"attributes":320,"tag":308,"content":302},{"name":321,"content":315},"twitter:description",{"attributes":323,"tag":308,"content":302},{"property":324,"content":325},"og:image","https:\u002F\u002Fwww.datocms-assets.com\u002F35053\u002F1760976137-timed-checkout-thumb.jpg?auto=format&fit=max&w=1200",{"attributes":327,"tag":308,"content":302},{"property":328,"content":329},"og:image:width","1200",{"attributes":331,"tag":308,"content":302},{"property":332,"content":333},"og:image:height","630",{"attributes":335,"tag":308,"content":302},{"name":336,"content":325},"twitter:image",{"attributes":338,"tag":308,"content":302},{"property":339,"content":340},"og:locale","en",{"attributes":342,"tag":308,"content":302},{"property":343,"content":344},"og:type","article",{"attributes":346,"tag":308,"content":302},{"property":347,"content":348},"og:site_name","Commerce Layer",{"attributes":350,"tag":308,"content":302},{"property":351,"content":352},"article:modified_time","2025-10-27T17:27:06Z",{"attributes":354,"tag":308,"content":302},{"property":355,"content":280},"article:publisher",{"attributes":357,"tag":308,"content":302},{"name":358,"content":359},"twitter:card","summary_large_image",{"attributes":361,"tag":308,"content":302},{"name":362,"content":363},"twitter:site","@commercelayer",[365,371,378,381,386,390,395,398,401,404,406,409,411,414,416,426,429,431,434,440,443,446],{"_modelApiKey":366,"copy":367,"listStyle":368,"darkTheme":11,"buttons":369,"color":370,"indent":7},"wysiwyg","\u003Cp>Our Checkout app is a PCI-compliant, production‑ready micro frontend that lets shoppers place orders using the business logic, shipping methods, and payment methods configured in the Commerce Layer organization. With \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcommercelayer\u002Fmfe-checkout?tab=readme-ov-file#timed-checkout\">timed checkout\u003C\u002Fa>, merchants can now define a hard deadline for completing payment, automatically expiring the checkout when the timer runs out.\u003C\u002Fp>\n","directional",[],"violet",{"_modelApiKey":372,"title":373,"preTitle":374,"linkText":59,"darkTheme":11,"link":375},"link_block","Checkout MFE","Open-source",{"_modelApiKey":203,"text":376,"label":280,"subtitle":280,"icon":280,"isExternal":7,"url":377,"link":302,"anchor":280,"openForm":11,"form":302,"htmlClassNames":280},"View on GitHub","https:\u002F\u002Fgithub.com\u002Fcommercelayer\u002Fmfe-checkout",{"_modelApiKey":366,"copy":379,"listStyle":368,"darkTheme":11,"buttons":380,"color":370,"indent":11},"\u003Ch3>Why it matters\u003C\u002Fh3>\n\n\u003Cp>Timed checkout lets you reserve inventory for a limited window and enforce strict purchase deadlines without custom code. It’s ideal for ticketing, high‑demand drops, limited inventory, and flash sales where fairness and predictability matter. When the deadline is reached, the underlying order becomes expired and can no longer be placed, removing ambiguity and manual cleanup.\u003C\u002Fp>\n\n\u003Ch3>How it works\u003C\u002Fh3>\n\n\u003Cp>Timed checkout is powered by two order attributes set via confidential API credentials:\u003C\u002Fp>\n\n\u003Cul>\n\u003Cli>\u003Ccode>expires_at\u003C\u002Fcode> — the UTC timestamp that defines the checkout deadline.\u003C\u002Fli>\n\u003Cli>\u003Ccode>expiration_info\u003C\u002Fcode> — a structured object for the shopper experience, including the active and expired messages and a return_url to guide customers back to browsing.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Cp>When the former is set, the Checkout app renders a countdown and enforces the deadline at the edge. Once the deadline is reached, the order becomes expired and the checkout can’t be completed.\u003C\u002Fp>\n",[],{"_modelApiKey":372,"title":382,"preTitle":383,"linkText":59,"darkTheme":11,"link":384},"Orders","API reference",{"_modelApiKey":203,"text":59,"label":280,"subtitle":280,"icon":280,"isExternal":7,"url":385,"link":302,"anchor":280,"openForm":11,"form":302,"htmlClassNames":280},"https:\u002F\u002Fdocs.commercelayer.io\u002Fcore\u002Fapi-reference\u002Forders#timed-placement",{"_modelApiKey":366,"copy":387,"listStyle":388,"darkTheme":11,"buttons":389,"color":370,"indent":11},"\u003Ch3>What&#39;s included\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>Countdown UI in the Checkout app that reflects the remaining time with sensible defaults.\u003C\u002Fli>\n\u003Cli>Hard enforcement of order placement when the deadline expires.\u003C\u002Fli>\n\u003Cli>Shopper messaging and a post‑expiration return path via expiration_info.\u003C\u002Fli>\n\u003Cli>Works with existing business rules, shipping methods, and payment methods.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch3>Set it up with the CLI\u003C\u002Fh3>\n\n\u003Cp>In this walkthrough we&#39;ll use the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcommercelayer\u002Fcommercelayer-cli\">Commerce Layer CLI\u003C\u002Fa> to create a timed checkout, configure it, and then let it expire to demonstrate the end‑to‑end behavior.\u003C\u002Fp>\n\n\u003Cp>First, we need to login with \u003Ca href=\"https:\u002F\u002Fdocs.commercelayer.io\u002Fcore\u002Fapi-credentials#sales-channel\">sales channel\u003C\u002Fa> API credentials:\u003C\u002Fp>\n","checkbox",[],{"_modelApiKey":391,"code":392,"showLineNumbers":11,"highlightLines":280,"language":393,"size":394},"code_block","cl app:login -o \u003Corg-slug> -i \u003Cclient-id> -S \u003Cscope> -a \u003Capp-alias>","shell","Wide",{"_modelApiKey":366,"copy":396,"listStyle":368,"darkTheme":11,"buttons":397,"color":370,"indent":11},"\u003Cp>After successful login, we can create a checkout link (feel free to use any SKU of your organization as long as it is purchasable within the market in scope):\u003C\u002Fp>\n",[],{"_modelApiKey":391,"code":399,"showLineNumbers":11,"highlightLines":280,"language":393,"size":400},"cl checkout -S \u003Csku-code>","Standard",{"_modelApiKey":366,"copy":402,"listStyle":368,"darkTheme":11,"buttons":403,"color":370,"indent":11},"\u003Cp>Open the generated link to confirm the standard hosted version of the Checkout renders.\u003C\u002Fp>\n\n\u003Cp>To set an expiration date for the checkout, we need to switch API credentials, since this operation is allowed using \u003Ca href=\"https:\u002F\u002Fdocs.commercelayer.io\u002Fcore\u002Fapi-credentials#integration\">integration\u003C\u002Fa> API credentials only, which need a secret to authenticate:\u003C\u002Fp>\n",[],{"_modelApiKey":391,"code":405,"showLineNumbers":11,"highlightLines":280,"language":393,"size":394},"cl app:login -o \u003Corg-slug> -i \u003Cclient-id> -s \u003Cclient-secret> -a \u003Capp-alias>",{"_modelApiKey":366,"copy":407,"listStyle":368,"darkTheme":11,"buttons":408,"color":370,"indent":11},"\u003Cp>We can now add a deadline by setting the related UTC timestamp at the order level:\u003C\u002Fp>\n",[],{"_modelApiKey":391,"code":410,"showLineNumbers":11,"highlightLines":280,"language":393,"size":394},"cl update order \u003Corder-id> -a expires_at=2025-10-23T9:00:00Z",{"_modelApiKey":366,"copy":412,"listStyle":368,"darkTheme":11,"buttons":413,"color":370,"indent":11},"\u003Cp>Reload the Checkout, and you’ll see the countdown widget with default messages.\u003C\u002Fp>\n\n\u003Cp>To customize the shopper messaging we can use the \u003Ccode>expiration_info\u003C\u002Fcode> attribute. Provide an active countdown message, an expired message, and a return URL to guide customers back to shopping.\u003C\u002Fp>\n",[],{"_modelApiKey":391,"code":415,"showLineNumbers":11,"highlightLines":280,"language":393,"size":394},"cl update order \u003Corder-id> \\\n  -O expiration_info\u002Freturn_url=https:\u002F\u002Fwww.example.com \\\n  -O expiration_info\u002Factive_message=\"Please complete your order before the timer ends.\" \\\n  -O expiration_info\u002Fexpired_message=\"This checkout has expired. Start a new order to continue.\"",{"_modelApiKey":417,"border":7,"caption":280,"image":418,"size":425,"darkTheme":11,"rounded":7,"color":370},"image_block",{"url":419,"alt":420,"title":420,"width":421,"height":422,"format":290,"focalPoint":423,"customData":424},"https:\u002F\u002Fwww.datocms-assets.com\u002F35053\u002F1761040214-timed-checkout-screenshot.jpg","Timed checkout screenshot",1920,1673,{"x":292,"y":292},{},"standard",{"_modelApiKey":366,"copy":427,"listStyle":368,"darkTheme":11,"buttons":428,"color":370,"indent":11},"\u003Cp>To verify the expiration behavior, adjust the deadline to a near‑term timestamp to simulate expiry and reload the Checkout:\u003C\u002Fp>\n",[],{"_modelApiKey":391,"code":430,"showLineNumbers":11,"highlightLines":280,"language":393,"size":394},"cl update order \u003Corder-id> -a expires_at=\u003Cnear-future-UTC-timestamp>",{"_modelApiKey":366,"copy":432,"listStyle":368,"darkTheme":11,"buttons":433,"color":370,"indent":11},"\u003Cp>Once the timer hits zero, the Checkout shows the expired state, blocks payment, and offers the return URL. The order status reflects expiry and cannot be placed.\u003C\u002Fp>\n",[],{"_modelApiKey":417,"border":7,"caption":280,"image":435,"size":425,"darkTheme":11,"rounded":7,"color":370},{"url":436,"alt":437,"title":437,"width":421,"height":289,"format":290,"focalPoint":438,"customData":439},"https:\u002F\u002Fwww.datocms-assets.com\u002F35053\u002F1761040380-checkout-expired.jpg","Timed checkout expired",{"x":292,"y":292},{},{"_modelApiKey":366,"copy":441,"listStyle":388,"darkTheme":11,"buttons":442,"color":370,"indent":11},"\u003Ch3>Best practices\u003C\u002Fh3>\n\n\u003Cul>\n\u003Cli>Keep deadlines realistic to accommodate address, shipping, taxes, and SCA flows.\u003C\u002Fli>\n\u003Cli>Reserve inventory consistently by pairing timed checkout with allocation rules for high‑demand items.\u003C\u002Fli>\n\u003Cli>Localize messages with market\u002Flanguage‑specific active and expired text.\u003C\u002Fli>\n\u003Cli>Handle retries via a return URL that links to a fresh checkout for minimal friction.\u003C\u002Fli>\n\u003Cli>Monitor conversion and tune the window length based on completion rates.\u003C\u002Fli>\n\u003C\u002Ful>\n",[],{"_modelApiKey":366,"copy":444,"listStyle":368,"darkTheme":11,"buttons":445,"color":370,"indent":11},"\u003Ch3>Recap\u003C\u002Fh3>\n\n\u003Cp>Timed checkout adds a clear, enforceable deadline to the Checkout MFE, improving fairness and predictability for high‑demand scenarios. Configure the expiration date to set the window, customize the expiration info for messaging and recovery, and let the Checkout app handle the rest.\u003C\u002Fp>\n",[],{"_modelApiKey":447,"displayTitle":280,"copy":280,"cta":302,"ctaText":280,"faqsList":448},"faqs_block",[449],{"displayTitle":450,"faqs":451},"FAQs",[452,455,458,461],{"question":453,"answer":454},"Can an expired order be placed?","No. Expired orders cannot be placed; here we have two options, the merchant can update the expiration timestamp with a future date or nullify it. The customer can also start a new checkout for a fresh attempt.",{"question":456,"answer":457},"Does the timer affect pricing or promotions?","No. The timer governs placement eligibility; price lists and promotions still apply during the valid window.",{"question":459,"answer":460},"What about payment redirects and SCA?","Choose a window that accommodates redirects and approvals; enforcement occurs on placement, not during external auth steps.",{"question":462,"answer":463},"Is the timer visible to shoppers?","Yes. The Checkout app renders a countdown when and expiration date is set; messages can be overridden by provinding expiration info.",[465,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496],{"attributes":302,"tag":303,"content":304},{"attributes":467,"tag":308,"content":302},{"property":307,"content":304},{"attributes":469,"tag":308,"content":302},{"name":311,"content":304},{"attributes":471,"tag":308,"content":302},{"name":314,"content":315},{"attributes":473,"tag":308,"content":302},{"property":318,"content":315},{"attributes":475,"tag":308,"content":302},{"name":321,"content":315},{"attributes":477,"tag":308,"content":302},{"property":324,"content":325},{"attributes":479,"tag":308,"content":302},{"property":328,"content":329},{"attributes":481,"tag":308,"content":302},{"property":332,"content":333},{"attributes":483,"tag":308,"content":302},{"name":336,"content":325},{"attributes":485,"tag":308,"content":302},{"property":339,"content":340},{"attributes":487,"tag":308,"content":302},{"property":343,"content":344},{"attributes":489,"tag":308,"content":302},{"property":347,"content":348},{"attributes":491,"tag":308,"content":302},{"property":351,"content":352},{"attributes":493,"tag":308,"content":302},{"property":355,"content":280},{"attributes":495,"tag":308,"content":302},{"name":358,"content":359},{"attributes":497,"tag":308,"content":302},{"name":362,"content":363},[499],{"name":285,"picture":500},{"url":287,"alt":288,"title":288,"width":289,"height":289,"format":290,"focalPoint":501,"customData":502},{"x":292,"y":292},{},1791534732202]