[{"data":1,"prerenderedAt":4554},["ShallowReactive",2],{"navigation_docs":3,"-frontend-orchestr-recipes-system-bootstrap":1905,"-frontend-orchestr-recipes-system-bootstrap-surround":4549},[4,136,463,647,1532,1622,1628,1634,1693,1792],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","0.getting-started/0.index",[9,10,14,18,56,81,115,132],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Starting new project","/getting-started/starting-new-project","0.getting-started/1.starting-new-project",{"title":15,"path":16,"stem":17},"What is Laioutr?","/getting-started/what-is-laioutr","0.getting-started/2.what-is-laioutr",{"title":19,"path":20,"stem":21,"children":22,"page":55},"Key Concepts","/getting-started/key-concepts","0.getting-started/3.key-concepts",[23,27,31,35,39,43,47,51],{"title":24,"path":25,"stem":26},"Architecture","/getting-started/key-concepts/architecture","0.getting-started/3.key-concepts/1.architecture",{"title":28,"path":29,"stem":30},"Data Model","/getting-started/key-concepts/data-model","0.getting-started/3.key-concepts/2.data-model",{"title":32,"path":33,"stem":34},"Internationalization","/getting-started/key-concepts/5.internationalization","0.getting-started/3.key-concepts/3.5.internationalization",{"title":36,"path":37,"stem":38},"Data Flow","/getting-started/key-concepts/data-flow","0.getting-started/3.key-concepts/3.data-flow",{"title":40,"path":41,"stem":42},"Extensibility","/getting-started/key-concepts/extensibility","0.getting-started/3.key-concepts/4.extensibility",{"title":44,"path":45,"stem":46},"Philosophy","/getting-started/key-concepts/philosophy","0.getting-started/3.key-concepts/5.philosophy",{"title":48,"path":49,"stem":50},"CI/CD Pipeline","/getting-started/key-concepts/ci-cd-pipeline","0.getting-started/3.key-concepts/6.ci-cd-pipeline",{"title":52,"path":53,"stem":54},"Multi-tenancy","/getting-started/key-concepts/multi-tenancy","0.getting-started/3.key-concepts/multi-tenancy",false,{"title":57,"path":58,"stem":59,"children":60,"page":55},"Next Steps","/getting-started/next-steps","0.getting-started/4.next-steps",[61,65,69,73,77],{"title":62,"path":63,"stem":64},"Create Organization and Project","/getting-started/next-steps/create-org-and-project","0.getting-started/4.next-steps/0.create-org-and-project",{"title":66,"path":67,"stem":68},"First Project Configuration","/getting-started/next-steps/first-project-config","0.getting-started/4.next-steps/1.first-project-config",{"title":70,"path":71,"stem":72},"Setup Local Development Environment","/getting-started/next-steps/local-setup","0.getting-started/4.next-steps/3.local-setup",{"title":74,"path":75,"stem":76},"Create your first custom app","/getting-started/next-steps/create-custom-app","0.getting-started/4.next-steps/4.create-custom-app",{"title":78,"path":79,"stem":80},"CLI","/getting-started/next-steps/cli","0.getting-started/4.next-steps/5.cli",{"title":82,"path":83,"stem":84,"children":85},"Changelogs","/getting-started/changelogs","0.getting-started/5.Changelogs/0.index",[86,87,91,95,99,103,107,111],{"title":82,"path":83,"stem":84},{"title":88,"path":89,"stem":90},"Canonical Types Changelog","/getting-started/changelogs/canonical-types-changelog","0.getting-started/5.Changelogs/canonical-types-changelog",{"title":92,"path":93,"stem":94},"CLI Changelog","/getting-started/changelogs/cli-changelog","0.getting-started/5.Changelogs/cli-changelog",{"title":96,"path":97,"stem":98},"Cockpit Changelog","/getting-started/changelogs/cockpit-changelog","0.getting-started/5.Changelogs/cockpit-changelog",{"title":100,"path":101,"stem":102},"Figma Kit Changelog","/getting-started/changelogs/figma-kit-changelog","0.getting-started/5.Changelogs/figma-kit-changelog",{"title":104,"path":105,"stem":106},"Frontend Changelog","/getting-started/changelogs/frontend-changelog","0.getting-started/5.Changelogs/frontend-changelog",{"title":108,"path":109,"stem":110},"Orchestr Changelog","/getting-started/changelogs/orchestr-changelog","0.getting-started/5.Changelogs/orchestr-changelog",{"title":112,"path":113,"stem":114},"UI Changelog","/getting-started/changelogs/ui-changelog","0.getting-started/5.Changelogs/ui-changelog",{"title":116,"path":117,"stem":118,"children":119,"page":55},"Hints And Tips","/getting-started/hints-and-tips","0.getting-started/6.Hints-and-Tips",[120,124,128],{"title":121,"path":122,"stem":123},"Introduction","/getting-started/hints-and-tips/introduction","0.getting-started/6.Hints-and-Tips/0.introduction",{"title":125,"path":126,"stem":127},"Developer tools","/getting-started/hints-and-tips/developer-tools","0.getting-started/6.Hints-and-Tips/1.developer-tools",{"title":129,"path":130,"stem":131},"Claude Code plugin","/getting-started/hints-and-tips/claude-marketplace","0.getting-started/6.Hints-and-Tips/2.claude-marketplace",{"title":133,"path":134,"stem":135},"MCP Server","/getting-started/mcp-server","0.getting-started/7.mcp-server",{"title":137,"path":138,"stem":139,"children":140},"Frontend","/frontend","1.Frontend/0.index",[141,142,153,215,241,305],{"title":137,"path":138,"stem":139},{"title":121,"path":143,"stem":144,"children":145,"page":55},"/frontend/introduction","1.Frontend/1.Introduction",[146,149],{"title":19,"path":147,"stem":148},"/frontend/introduction/key-concepts","1.Frontend/1.Introduction/0.key-concepts",{"title":150,"path":151,"stem":152},"Tech Stack","/frontend/introduction/tech-stack","1.Frontend/1.Introduction/1.tech-stack",{"title":154,"path":155,"stem":156,"children":157},"Features","/frontend/features","1.Frontend/2.Features/0.index",[158,159,163,167,171,175,179,183,187,191,195,199,203,207,211],{"title":154,"path":155,"stem":156},{"title":160,"path":161,"stem":162},"Consent Management","/frontend/features/consent-management","1.Frontend/2.Features/consent-management",{"title":164,"path":165,"stem":166},"Currencies","/frontend/features/currencies","1.Frontend/2.Features/currencies",{"title":168,"path":169,"stem":170},"Environments & Staging","/frontend/features/environments","1.Frontend/2.Features/environments",{"title":172,"path":173,"stem":174},"Hooks","/frontend/features/hooks","1.Frontend/2.Features/hooks",{"title":176,"path":177,"stem":178},"Media and Media Library","/frontend/features/media","1.Frontend/2.Features/media",{"title":180,"path":181,"stem":182},"Multi-language Support","/frontend/features/multi-language-support","1.Frontend/2.Features/multi-language-support",{"title":184,"path":185,"stem":186},"Multi-market","/frontend/features/multi-market","1.Frontend/2.Features/multi-market",{"title":188,"path":189,"stem":190},"Page Types","/frontend/features/pagetypes","1.Frontend/2.Features/pagetypes",{"title":192,"path":193,"stem":194},"PWA","/frontend/features/pwa","1.Frontend/2.Features/pwa",{"title":196,"path":197,"stem":198},"Redirects","/frontend/features/redirects","1.Frontend/2.Features/redirects",{"title":200,"path":201,"stem":202},"Routing","/frontend/features/routing","1.Frontend/2.Features/routing",{"title":204,"path":205,"stem":206},"Server-Side Rendering (SSR) and Caching","/frontend/features/ssr-and-caching","1.Frontend/2.Features/ssr-and-caching",{"title":208,"path":209,"stem":210},"Tracking","/frontend/features/tracking","1.Frontend/2.Features/tracking",{"title":212,"path":213,"stem":214},"Z-Ordering","/frontend/features/z-ordering","1.Frontend/2.Features/z-ordering",{"title":216,"path":217,"stem":218,"children":219},"SEO","/frontend/seo","1.Frontend/3.SEO/0.index",[220,221,225,229,233,237],{"title":216,"path":217,"stem":218},{"title":222,"path":223,"stem":224},"Link Checker","/frontend/seo/link-checker","1.Frontend/3.SEO/link-checker",{"title":226,"path":227,"stem":228},"OG Image","/frontend/seo/og-image","1.Frontend/3.SEO/og-image",{"title":230,"path":231,"stem":232},"Robots.txt","/frontend/seo/robots-txt","1.Frontend/3.SEO/robots-txt",{"title":234,"path":235,"stem":236},"Schema.org","/frontend/seo/schema-org","1.Frontend/3.SEO/schema-org",{"title":238,"path":239,"stem":240},"Sitemap","/frontend/seo/sitemap","1.Frontend/3.SEO/sitemap",{"title":242,"path":243,"stem":244,"children":245},"Backend for Frontend","/frontend/orchestr","1.Frontend/4.Orchestr/0.index",[246,247,273,277,281,285,289,293,297,301],{"title":242,"path":243,"stem":244},{"title":248,"path":249,"stem":250,"children":251},"Recipes","/frontend/orchestr/recipes","1.Frontend/4.Orchestr/99.recipes/0.index",[252,253,257,261,265,269],{"title":248,"path":249,"stem":250},{"title":254,"path":255,"stem":256},"Analytics components from query handlers","/frontend/orchestr/recipes/analytics-from-query-handlers","1.Frontend/4.Orchestr/99.recipes/analytics-from-query-handlers",{"title":258,"path":259,"stem":260},"Identity cookies (cart and visitor IDs)","/frontend/orchestr/recipes/identity-cookies","1.Frontend/4.Orchestr/99.recipes/identity-cookies",{"title":262,"path":263,"stem":264},"System bootstrap in extendRequest","/frontend/orchestr/recipes/system-bootstrap","1.Frontend/4.Orchestr/99.recipes/system-bootstrap",{"title":266,"path":267,"stem":268},"Translating vendor errors","/frontend/orchestr/recipes/translating-vendor-errors","1.Frontend/4.Orchestr/99.recipes/translating-vendor-errors",{"title":270,"path":271,"stem":272},"Userland cache patterns","/frontend/orchestr/recipes/userland-cache-patterns","1.Frontend/4.Orchestr/99.recipes/userland-cache-patterns",{"title":274,"path":275,"stem":276},"Actions","/frontend/orchestr/actions","1.Frontend/4.Orchestr/Actions",{"title":278,"path":279,"stem":280},"Caching","/frontend/orchestr/caching","1.Frontend/4.Orchestr/Caching",{"title":282,"path":283,"stem":284},"Middleware","/frontend/orchestr/middleware","1.Frontend/4.Orchestr/Middleware",{"title":286,"path":287,"stem":288},"Queries & Links","/frontend/orchestr/queries","1.Frontend/4.Orchestr/Queries",{"title":290,"path":291,"stem":292},"Component Resolvers","/frontend/orchestr/component-resolvers","1.Frontend/4.Orchestr/component-resolvers",{"title":294,"path":295,"stem":296},"Filters","/frontend/orchestr/filters","1.Frontend/4.Orchestr/filters",{"title":298,"path":299,"stem":300},"URL Query Parameters","/frontend/orchestr/url-query-params","1.Frontend/4.Orchestr/url-query-params",{"title":302,"path":303,"stem":304},"Orchestr Wire Format","/frontend/orchestr/wire-format","1.Frontend/4.Orchestr/wire-format",{"title":306,"path":307,"stem":308,"children":309},"API Reference","/frontend/api-reference","1.Frontend/99.api-reference/0.index",[310,311,373,376,406,422,430,441,449,456],{"title":306,"path":307,"stem":308},{"title":312,"path":313,"stem":314,"children":315},"Entities","/frontend/api-reference/entities","1.Frontend/99.api-reference/01.entities/0.index",[316,317,321,325,329,333,337,341,345,349,353,357,361,365,369],{"title":312,"path":313,"stem":314},{"title":318,"path":319,"stem":320},"Product","/frontend/api-reference/entities/product","1.Frontend/99.api-reference/01.entities/1.product",{"title":322,"path":323,"stem":324},"SuggestedSearch","/frontend/api-reference/entities/suggested-search","1.Frontend/99.api-reference/01.entities/10.suggested-search",{"title":326,"path":327,"stem":328},"SuggestedSearchEntry","/frontend/api-reference/entities/suggested-search-entry","1.Frontend/99.api-reference/01.entities/11.suggested-search-entry",{"title":330,"path":331,"stem":332},"BlogCollection","/frontend/api-reference/entities/blog-collection","1.Frontend/99.api-reference/01.entities/12.blog-collection",{"title":334,"path":335,"stem":336},"Comment","/frontend/api-reference/entities/comment","1.Frontend/99.api-reference/01.entities/13.comment",{"title":338,"path":339,"stem":340},"Location","/frontend/api-reference/entities/location","1.Frontend/99.api-reference/01.entities/14.location",{"title":342,"path":343,"stem":344},"ProductVariant","/frontend/api-reference/entities/product-variant","1.Frontend/99.api-reference/01.entities/2.product-variant",{"title":346,"path":347,"stem":348},"Category","/frontend/api-reference/entities/category","1.Frontend/99.api-reference/01.entities/3.category",{"title":350,"path":351,"stem":352},"Cart","/frontend/api-reference/entities/cart","1.Frontend/99.api-reference/01.entities/4.cart",{"title":354,"path":355,"stem":356},"CartItem","/frontend/api-reference/entities/cart-item","1.Frontend/99.api-reference/01.entities/5.cart-item",{"title":358,"path":359,"stem":360},"Review","/frontend/api-reference/entities/review","1.Frontend/99.api-reference/01.entities/6.review",{"title":362,"path":363,"stem":364},"BreadcrumbItem","/frontend/api-reference/entities/breadcrumb-item","1.Frontend/99.api-reference/01.entities/7.breadcrumb-item",{"title":366,"path":367,"stem":368},"MenuItem","/frontend/api-reference/entities/menu-item","1.Frontend/99.api-reference/01.entities/8.menu-item",{"title":370,"path":371,"stem":372},"BlogPost","/frontend/api-reference/entities/blog-post","1.Frontend/99.api-reference/01.entities/9.blog-post",{"title":188,"path":374,"stem":375},"/frontend/api-reference/page-types","1.Frontend/99.api-reference/02.page-types",{"title":377,"path":378,"stem":379,"children":380},"Common Types","/frontend/api-reference/common-types","1.Frontend/99.api-reference/03.common-types/0.index",[381,382,386,390,394,398,402],{"title":377,"path":378,"stem":379},{"title":383,"path":384,"stem":385},"Link","/frontend/api-reference/common-types/link","1.Frontend/99.api-reference/03.common-types/1.link",{"title":387,"path":388,"stem":389},"Media","/frontend/api-reference/common-types/media","1.Frontend/99.api-reference/03.common-types/2.media",{"title":391,"path":392,"stem":393},"Money","/frontend/api-reference/common-types/money","1.Frontend/99.api-reference/03.common-types/3.money",{"title":395,"path":396,"stem":397},"UnitPrice","/frontend/api-reference/common-types/unit-price","1.Frontend/99.api-reference/03.common-types/4.unit-price",{"title":399,"path":400,"stem":401},"Measurement","/frontend/api-reference/common-types/measurement","1.Frontend/99.api-reference/03.common-types/5.measurement",{"title":403,"path":404,"stem":405},"Opening Hours","/frontend/api-reference/common-types/opening-hours","1.Frontend/99.api-reference/03.common-types/6.opening-hours",{"title":407,"path":408,"stem":409,"children":410,"page":55},"Ecommerce","/frontend/api-reference/ecommerce","1.Frontend/99.api-reference/10.ecommerce",[411,414,418],{"title":274,"path":412,"stem":413},"/frontend/api-reference/ecommerce/actions","1.Frontend/99.api-reference/10.ecommerce/1.actions",{"title":415,"path":416,"stem":417},"Queries","/frontend/api-reference/ecommerce/queries","1.Frontend/99.api-reference/10.ecommerce/2.queries",{"title":419,"path":420,"stem":421},"Errors","/frontend/api-reference/ecommerce/errors","1.Frontend/99.api-reference/10.ecommerce/3.errors",{"title":423,"path":424,"stem":425,"children":426,"page":55},"Newsletter","/frontend/api-reference/newsletter","1.Frontend/99.api-reference/11.newsletter",[427],{"title":274,"path":428,"stem":429},"/frontend/api-reference/newsletter/actions","1.Frontend/99.api-reference/11.newsletter/1.actions",{"title":431,"path":432,"stem":433,"children":434,"page":55},"Blog","/frontend/api-reference/blog","1.Frontend/99.api-reference/12.blog",[435,438],{"title":415,"path":436,"stem":437},"/frontend/api-reference/blog/queries","1.Frontend/99.api-reference/12.blog/1.queries",{"title":419,"path":439,"stem":440},"/frontend/api-reference/blog/errors","1.Frontend/99.api-reference/12.blog/2.errors",{"title":442,"path":443,"stem":444,"children":445,"page":55},"Suggested Search","/frontend/api-reference/suggested-search","1.Frontend/99.api-reference/13.suggested-search",[446],{"title":415,"path":447,"stem":448},"/frontend/api-reference/suggested-search/queries","1.Frontend/99.api-reference/13.suggested-search/1.queries",{"title":208,"path":450,"stem":451,"children":452,"page":55},"/frontend/api-reference/tracking","1.Frontend/99.api-reference/14.tracking",[453],{"title":274,"path":454,"stem":455},"/frontend/api-reference/tracking/actions","1.Frontend/99.api-reference/14.tracking/1.actions",{"title":338,"path":457,"stem":458,"children":459,"page":55},"/frontend/api-reference/location","1.Frontend/99.api-reference/15.location",[460],{"title":415,"path":461,"stem":462},"/frontend/api-reference/location/queries","1.Frontend/99.api-reference/15.location/1.queries",{"title":464,"path":465,"stem":466,"children":467},"Apps","/apps","2.Apps/0.index",[468,469,545,631],{"title":464,"path":465,"stem":466},{"title":470,"path":471,"stem":472,"children":473},"App Development","/apps/app-development","2.Apps/app-development/0.index",[474,475,497,501,505,509,513,517,521,525,529,533,537,541],{"title":470,"path":471,"stem":472},{"title":476,"path":477,"stem":478,"children":479},"Guides","/apps/app-development/guides","2.Apps/app-development/99.guides/0.index",[480,481,485,489,493],{"title":476,"path":477,"stem":478},{"title":482,"path":483,"stem":484},"Separate schema components from UI components","/apps/app-development/guides/schema-components-vs-ui-components","2.Apps/app-development/99.guides/schema-components-vs-ui-components",{"title":486,"path":487,"stem":488},"Section config standard","/apps/app-development/guides/section-config-standard","2.Apps/app-development/99.guides/section-config-standard",{"title":490,"path":491,"stem":492},"Shared field factories","/apps/app-development/guides/shared-field-factories","2.Apps/app-development/99.guides/shared-field-factories",{"title":494,"path":495,"stem":496},"How to write CSS","/apps/app-development/guides/writing-css","2.Apps/app-development/99.guides/writing-css",{"title":498,"path":499,"stem":500},"App Configuration","/apps/app-development/app-configuration","2.Apps/app-development/app-configuration",{"title":502,"path":503,"stem":504},"App Starter","/apps/app-development/app-starter","2.Apps/app-development/app-starter",{"title":506,"path":507,"stem":508},"Best Practice","/apps/app-development/best-practice","2.Apps/app-development/best-practice",{"title":510,"path":511,"stem":512},"Block Definitions","/apps/app-development/block-definitions","2.Apps/app-development/block-definitions",{"title":514,"path":515,"stem":516},"Coding Standards","/apps/app-development/coding-standards","2.Apps/app-development/coding-standards",{"title":518,"path":519,"stem":520},"Consent Adapters","/apps/app-development/consent-adapters","2.Apps/app-development/consent-adapters",{"title":522,"path":523,"stem":524},"Consuming Query Fields","/apps/app-development/consuming-query-fields","2.Apps/app-development/consuming-query-fields",{"title":526,"path":527,"stem":528},"Implementation Overview","/apps/app-development/implementation-overview","2.Apps/app-development/implementation-overview",{"title":530,"path":531,"stem":532},"Platform Dependencies","/apps/app-development/platform-dependencies","2.Apps/app-development/platform-dependencies",{"title":534,"path":535,"stem":536},"Schema Fields","/apps/app-development/schema-fields","2.Apps/app-development/schema-fields",{"title":538,"path":539,"stem":540},"Section Definitions","/apps/app-development/section-definitions","2.Apps/app-development/section-definitions",{"title":542,"path":543,"stem":544},"Studio Icons","/apps/app-development/studio-icons","2.Apps/app-development/studio-icons",{"title":546,"path":547,"stem":548,"children":549},"App Docs","/apps/app-docs","2.Apps/app-docs/0.index",[550,551,555,559,563,567,571,575,579,583,587,591,595,599,603,607,611,615,619,623,627],{"title":546,"path":547,"stem":548},{"title":552,"path":553,"stem":554},"Actindo","/apps/app-docs/actindo","2.Apps/app-docs/actindo",{"title":556,"path":557,"stem":558},"Adobe Commerce","/apps/app-docs/adobe-commerce","2.Apps/app-docs/adobe-commerce",{"title":560,"path":561,"stem":562},"B2Bsellers","/apps/app-docs/b2bsellers","2.Apps/app-docs/b2bsellers",{"title":564,"path":565,"stem":566},"Battery Included","/apps/app-docs/battery-included","2.Apps/app-docs/battery-included",{"title":568,"path":569,"stem":570},"CCM19","/apps/app-docs/ccm19","2.Apps/app-docs/ccm19",{"title":572,"path":573,"stem":574},"Cookiebot","/apps/app-docs/cookiebot","2.Apps/app-docs/cookiebot",{"title":576,"path":577,"stem":578},"Google Tag Manager (GTM)","/apps/app-docs/gtm","2.Apps/app-docs/gtm",{"title":580,"path":581,"stem":582},"Hygraph","/apps/app-docs/hygraph","2.Apps/app-docs/hygraph",{"title":584,"path":585,"stem":586},"JTL Platform","/apps/app-docs/jtl-platform","2.Apps/app-docs/jtl-platform",{"title":588,"path":589,"stem":590},"Nimstrata Google Retail API","/apps/app-docs/nimstrata","2.Apps/app-docs/nimstrata",{"title":592,"path":593,"stem":594},"Pimcore","/apps/app-docs/pimcore","2.Apps/app-docs/pimcore",{"title":596,"path":597,"stem":598},"Sylius","/apps/app-docs/sylius","2.Apps/app-docs/sylius",{"title":600,"path":601,"stem":602},"Commercetools","/apps/app-docs/commercetools","2.apps/app-docs/commercetools",{"title":604,"path":605,"stem":606},"Emporix","/apps/app-docs/emporix","2.apps/app-docs/emporix",{"title":608,"path":609,"stem":610},"Klaviyo","/apps/app-docs/klaviyo","2.apps/app-docs/klaviyo",{"title":612,"path":613,"stem":614},"OXID eShop","/apps/app-docs/oxid","2.apps/app-docs/oxid",{"title":616,"path":617,"stem":618},"Shopify","/apps/app-docs/shopify","2.apps/app-docs/shopify",{"title":620,"path":621,"stem":622},"Shopware","/apps/app-docs/shopware","2.apps/app-docs/shopware",{"title":624,"path":625,"stem":626},"Vercel Analytics","/apps/app-docs/vercel-analytics","2.apps/app-docs/vercel-analytics",{"title":628,"path":629,"stem":630},"Vercel Speed Insights","/apps/app-docs/vercel-speed-insights","2.apps/app-docs/vercel-speed-insights",{"title":632,"path":633,"stem":634,"children":635,"page":55},"Essentials","/apps/essentials","2.Apps/essentials",[636,640,644],{"title":637,"path":638,"stem":639},"Legal","/apps/essentials/legal","2.Apps/essentials/legal",{"title":641,"path":642,"stem":643},"Mailer","/apps/essentials/mailer","2.Apps/essentials/mailer",{"title":216,"path":645,"stem":646},"/apps/essentials/seo","2.Apps/essentials/seo",{"title":648,"path":649,"stem":650,"children":651},"Laioutr UI","/laioutr-ui","3.laioutr-ui/0.index",[652,653,685,691,697,885,902,908,914,968,986,1116],{"title":648,"path":649,"stem":650},{"title":5,"path":654,"stem":655,"children":656},"/laioutr-ui/getting-started","3.laioutr-ui/01.getting-started/0.index",[657,658,662,666,670,674,678,682],{"title":5,"path":654,"stem":655},{"title":659,"path":660,"stem":661},"Browser support","/laioutr-ui/getting-started/browser-support","3.laioutr-ui/01.getting-started/1.browser-support",{"title":663,"path":664,"stem":665},"Common Data","/laioutr-ui/getting-started/common-data","3.laioutr-ui/01.getting-started/99.common-data",{"title":667,"path":668,"stem":669},"CSS Layers","/laioutr-ui/getting-started/css-layers","3.laioutr-ui/01.getting-started/css-layers",{"title":671,"path":672,"stem":673},"Figma Kit","/laioutr-ui/getting-started/figma-kit","3.laioutr-ui/01.getting-started/figma-kit",{"title":675,"path":676,"stem":677},"Surface Tone","/laioutr-ui/getting-started/surface-tone","3.laioutr-ui/01.getting-started/surface-tone",{"title":679,"path":680,"stem":681},"Theming","/laioutr-ui/getting-started/theming","3.laioutr-ui/01.getting-started/theming",{"title":212,"path":683,"stem":684},"/laioutr-ui/getting-started/z-ordering","3.laioutr-ui/01.getting-started/z-ordering",{"title":686,"path":687,"stem":688,"children":689},"B2B","/laioutr-ui/b2b","3.laioutr-ui/b2b/0.index",[690],{"title":686,"path":687,"stem":688},{"title":692,"path":693,"stem":694,"children":695},"Booking","/laioutr-ui/booking","3.laioutr-ui/booking/0.index",[696],{"title":692,"path":693,"stem":694},{"title":698,"path":699,"stem":700,"children":701},"CMS","/laioutr-ui/cms","3.laioutr-ui/cms/0.index",[702,703,709,734,746,750,754,758,762,766,778,799,820,836],{"title":698,"path":699,"stem":700},{"title":704,"path":705,"stem":706,"children":707},"Alphabetical Index","/laioutr-ui/cms/alphabetical-index","3.laioutr-ui/cms/alphabetical-index",[708],{"title":704,"path":705,"stem":706},{"title":710,"path":711,"stem":712,"children":713,"page":55},"Banner","/laioutr-ui/cms/banner","3.laioutr-ui/cms/banner",[714,718,722,726,730],{"title":715,"path":716,"stem":717},"Banner Basic","/laioutr-ui/cms/banner/banner-basic","3.laioutr-ui/cms/banner/banner-basic",{"title":719,"path":720,"stem":721},"Banner Integrated","/laioutr-ui/cms/banner/banner-integrated","3.laioutr-ui/cms/banner/banner-integrated",{"title":723,"path":724,"stem":725},"Banner Showcase","/laioutr-ui/cms/banner/banner-showcase","3.laioutr-ui/cms/banner/banner-showcase",{"title":727,"path":728,"stem":729},"Media + Text","/laioutr-ui/cms/banner/media-text","3.laioutr-ui/cms/banner/media-text",{"title":731,"path":732,"stem":733},"USP Banner","/laioutr-ui/cms/banner/usp-banner","3.laioutr-ui/cms/banner/usp-banner",{"title":431,"path":735,"stem":736,"children":737,"page":55},"/laioutr-ui/cms/blog","3.laioutr-ui/cms/blog",[738,742],{"title":739,"path":740,"stem":741},"Blog Post Detail","/laioutr-ui/cms/blog/blog-post-detail","3.laioutr-ui/cms/blog/blog-post-detail",{"title":743,"path":744,"stem":745},"Blog Post Listing","/laioutr-ui/cms/blog/blog-post-listing","3.laioutr-ui/cms/blog/blog-post-listing",{"title":747,"path":748,"stem":749},"Brand Hero","/laioutr-ui/cms/brand-hero","3.laioutr-ui/cms/brand-hero",{"title":751,"path":752,"stem":753},"Container","/laioutr-ui/cms/container","3.laioutr-ui/cms/container",{"title":755,"path":756,"stem":757},"Content Grid","/laioutr-ui/cms/content-grid","3.laioutr-ui/cms/content-grid",{"title":759,"path":760,"stem":761},"Editorial Grid","/laioutr-ui/cms/editorial-grid","3.laioutr-ui/cms/editorial-grid",{"title":763,"path":764,"stem":765},"Media Gallery","/laioutr-ui/cms/media-gallery","3.laioutr-ui/cms/media-gallery",{"title":423,"path":767,"stem":768,"children":769,"page":55},"/laioutr-ui/cms/newsletter","3.laioutr-ui/cms/newsletter",[770,774],{"title":771,"path":772,"stem":773},"Email Input Form","/laioutr-ui/cms/newsletter/email-input-form","3.laioutr-ui/cms/newsletter/email-input-form",{"title":775,"path":776,"stem":777},"Newsletter Registration","/laioutr-ui/cms/newsletter/newsletter-registration","3.laioutr-ui/cms/newsletter/newsletter-registration",{"title":779,"path":780,"stem":781,"children":782,"page":55},"Popups","/laioutr-ui/cms/popups","3.laioutr-ui/cms/popups",[783,787,791,795],{"title":784,"path":785,"stem":786},"PopUp","/laioutr-ui/cms/popups/pop-up","3.laioutr-ui/cms/popups/pop-up",{"title":788,"path":789,"stem":790},"PopUp Info","/laioutr-ui/cms/popups/pop-up-info","3.laioutr-ui/cms/popups/pop-up-info",{"title":792,"path":793,"stem":794},"PopUp Newsletter","/laioutr-ui/cms/popups/pop-up-newsletter","3.laioutr-ui/cms/popups/pop-up-newsletter",{"title":796,"path":797,"stem":798},"PopUp Promotion","/laioutr-ui/cms/popups/pop-up-promotion","3.laioutr-ui/cms/popups/pop-up-promotion",{"title":800,"path":801,"stem":802,"children":803,"page":55},"Quotes","/laioutr-ui/cms/quotes","3.laioutr-ui/cms/quotes",[804,808,812,816],{"title":805,"path":806,"stem":807},"Persona Quote","/laioutr-ui/cms/quotes/persona-quote","3.laioutr-ui/cms/quotes/persona-quote",{"title":809,"path":810,"stem":811},"Persona Quote Slider","/laioutr-ui/cms/quotes/persona-quote-slider","3.laioutr-ui/cms/quotes/persona-quote-slider",{"title":813,"path":814,"stem":815},"Quote Card","/laioutr-ui/cms/quotes/quote-card","3.laioutr-ui/cms/quotes/quote-card",{"title":817,"path":818,"stem":819},"Quote Card Slider","/laioutr-ui/cms/quotes/quote-card-slider","3.laioutr-ui/cms/quotes/quote-card-slider",{"title":821,"path":822,"stem":823,"children":824,"page":55},"Reviews","/laioutr-ui/cms/reviews","3.laioutr-ui/cms/reviews",[825,828,832],{"title":358,"path":826,"stem":827},"/laioutr-ui/cms/reviews/review","3.laioutr-ui/cms/reviews/review",{"title":829,"path":830,"stem":831},"Review Form","/laioutr-ui/cms/reviews/review-form","3.laioutr-ui/cms/reviews/review-form",{"title":833,"path":834,"stem":835},"Social Share","/laioutr-ui/cms/reviews/social-share","3.laioutr-ui/cms/reviews/social-share",{"title":837,"path":838,"stem":839,"children":840,"page":55},"Slider","/laioutr-ui/cms/slider","3.laioutr-ui/cms/slider",[841,845,849,853,857,861,865,869,873,877,881],{"title":842,"path":843,"stem":844},"Content Slider","/laioutr-ui/cms/slider/content-slider","3.laioutr-ui/cms/slider/content-slider",{"title":846,"path":847,"stem":848},"Hero Slider","/laioutr-ui/cms/slider/hero-slider","3.laioutr-ui/cms/slider/hero-slider",{"title":850,"path":851,"stem":852},"Logo Grid","/laioutr-ui/cms/slider/logo-grid","3.laioutr-ui/cms/slider/logo-grid",{"title":854,"path":855,"stem":856},"Logo Slider","/laioutr-ui/cms/slider/logo-slider","3.laioutr-ui/cms/slider/logo-slider",{"title":858,"path":859,"stem":860},"Swiper Arrows","/laioutr-ui/cms/slider/swiper-arrows","3.laioutr-ui/cms/slider/swiper-arrows",{"title":862,"path":863,"stem":864},"Swiper Bullets","/laioutr-ui/cms/slider/swiper-bullets","3.laioutr-ui/cms/slider/swiper-bullets",{"title":866,"path":867,"stem":868},"Swiper Chrome","/laioutr-ui/cms/slider/swiper-chrome","3.laioutr-ui/cms/slider/swiper-chrome",{"title":870,"path":871,"stem":872},"Swiper Nav Bar","/laioutr-ui/cms/slider/swiper-nav-bar","3.laioutr-ui/cms/slider/swiper-nav-bar",{"title":874,"path":875,"stem":876},"Swiper Numbers","/laioutr-ui/cms/slider/swiper-numbers","3.laioutr-ui/cms/slider/swiper-numbers",{"title":878,"path":879,"stem":880},"Swiper Scrollbar","/laioutr-ui/cms/slider/swiper-scrollbar","3.laioutr-ui/cms/slider/swiper-scrollbar",{"title":882,"path":883,"stem":884},"Thumbnails Slider","/laioutr-ui/cms/slider/thumbnails-slider","3.laioutr-ui/cms/slider/thumbnails-slider",{"title":338,"path":886,"stem":887,"children":888},"/laioutr-ui/location","3.laioutr-ui/location/0.index",[889,890,894,898],{"title":338,"path":886,"stem":887},{"title":891,"path":892,"stem":893},"Location Card","/laioutr-ui/location/location-card","3.laioutr-ui/location/location-card",{"title":895,"path":896,"stem":897},"Location Detail","/laioutr-ui/location/location-detail","3.laioutr-ui/location/location-detail",{"title":899,"path":900,"stem":901},"Location Finder","/laioutr-ui/location/location-finder","3.laioutr-ui/location/location-finder",{"title":903,"path":904,"stem":905,"children":906},"Marketplace","/laioutr-ui/marketplace","3.laioutr-ui/marketplace/0.index",[907],{"title":903,"path":904,"stem":905},{"title":909,"path":910,"stem":911,"children":912},"Multichannel","/laioutr-ui/multichannel","3.laioutr-ui/multichannel/0.index",[913],{"title":909,"path":910,"stem":911},{"title":915,"path":916,"stem":917,"children":918},"Navigation & Headers","/laioutr-ui/navigation","3.laioutr-ui/navigation/0.index",[919,920,924,928,932,936,940,944,948,952,956,960,964],{"title":915,"path":916,"stem":917},{"title":921,"path":922,"stem":923},"Breadcrumbs","/laioutr-ui/navigation/breadcrumbs","3.laioutr-ui/navigation/breadcrumbs",{"title":925,"path":926,"stem":927},"Footer","/laioutr-ui/navigation/footer","3.laioutr-ui/navigation/footer",{"title":929,"path":930,"stem":931},"Footer Menu","/laioutr-ui/navigation/footer-menu","3.laioutr-ui/navigation/footer-menu",{"title":933,"path":934,"stem":935},"Header Basic","/laioutr-ui/navigation/header-basic","3.laioutr-ui/navigation/header-basic",{"title":937,"path":938,"stem":939},"Header Shop","/laioutr-ui/navigation/header-shop","3.laioutr-ui/navigation/header-shop",{"title":941,"path":942,"stem":943},"Mega Menu","/laioutr-ui/navigation/mega-menu","3.laioutr-ui/navigation/mega-menu",{"title":945,"path":946,"stem":947},"Menu Side by Side","/laioutr-ui/navigation/menu-side-by-side","3.laioutr-ui/navigation/menu-side-by-side",{"title":949,"path":950,"stem":951},"Mobile Menu (Basic)","/laioutr-ui/navigation/mobile-menu-basic","3.laioutr-ui/navigation/mobile-menu-basic",{"title":953,"path":954,"stem":955},"Mobile Menu (Shop)","/laioutr-ui/navigation/mobile-menu-shop","3.laioutr-ui/navigation/mobile-menu-shop",{"title":957,"path":958,"stem":959},"Page Not Found","/laioutr-ui/navigation/page-not-found","3.laioutr-ui/navigation/page-not-found",{"title":961,"path":962,"stem":963},"Search Auto-Suggest","/laioutr-ui/navigation/search-auto-suggest","3.laioutr-ui/navigation/search-auto-suggest",{"title":965,"path":966,"stem":967},"Top Bar","/laioutr-ui/navigation/top-bar","3.laioutr-ui/navigation/top-bar",{"title":969,"path":970,"stem":971,"children":972},"SaaS","/laioutr-ui/saas","3.laioutr-ui/saas/0.index",[973,974,978,982],{"title":969,"path":970,"stem":971},{"title":975,"path":976,"stem":977},"Plan Card","/laioutr-ui/saas/plan-card","3.laioutr-ui/saas/plan-card",{"title":979,"path":980,"stem":981},"Plan Card Slider","/laioutr-ui/saas/plan-card-slider","3.laioutr-ui/saas/plan-card-slider",{"title":983,"path":984,"stem":985},"Plan Comparison Table","/laioutr-ui/saas/plan-comparison-table","3.laioutr-ui/saas/plan-comparison-table",{"title":987,"path":988,"stem":989,"children":990},"Shop","/laioutr-ui/shop","3.laioutr-ui/shop/0.index",[991,992,1020,1024,1028,1032,1036,1092,1096,1100,1104,1108,1112],{"title":987,"path":988,"stem":989},{"title":350,"path":993,"stem":994,"children":995,"page":55},"/laioutr-ui/shop/cart","3.laioutr-ui/shop/cart",[996,1000,1004,1008,1012,1016],{"title":997,"path":998,"stem":999},"Cart Coupon Code Accordion","/laioutr-ui/shop/cart/cart-coupon-code-accordion","3.laioutr-ui/shop/cart/cart-coupon-code-accordion",{"title":1001,"path":1002,"stem":1003},"Cart List Item","/laioutr-ui/shop/cart/cart-list-item","3.laioutr-ui/shop/cart/cart-list-item",{"title":1005,"path":1006,"stem":1007},"Cart Sheet","/laioutr-ui/shop/cart/cart-sheet","3.laioutr-ui/shop/cart/cart-sheet",{"title":1009,"path":1010,"stem":1011},"Cart Summary Box","/laioutr-ui/shop/cart/cart-summary-box","3.laioutr-ui/shop/cart/cart-summary-box",{"title":1013,"path":1014,"stem":1015},"Empty State Cart","/laioutr-ui/shop/cart/empty-state-cart","3.laioutr-ui/shop/cart/empty-state-cart",{"title":1017,"path":1018,"stem":1019},"Free Delivery Progress","/laioutr-ui/shop/cart/free-delivery-progress","3.laioutr-ui/shop/cart/free-delivery-progress",{"title":1021,"path":1022,"stem":1023},"Category Card Grid","/laioutr-ui/shop/category-card-grid","3.laioutr-ui/shop/category-card-grid",{"title":1025,"path":1026,"stem":1027},"Category Card Slider","/laioutr-ui/shop/category-card-slider","3.laioutr-ui/shop/category-card-slider",{"title":1029,"path":1030,"stem":1031},"Filter Bar","/laioutr-ui/shop/filter-bar","3.laioutr-ui/shop/filter-bar",{"title":1033,"path":1034,"stem":1035},"Filter Off Canvas","/laioutr-ui/shop/filter-off-canvas","3.laioutr-ui/shop/filter-off-canvas",{"title":1037,"path":1038,"stem":1039,"children":1040,"page":55},"Product Detail","/laioutr-ui/shop/product-detail","3.laioutr-ui/shop/product-detail",[1041,1045,1049,1053,1057,1061,1064,1068,1072,1076,1080,1084,1088],{"title":1042,"path":1043,"stem":1044},"Add to Cart","/laioutr-ui/shop/product-detail/add-to-cart","3.laioutr-ui/shop/product-detail/add-to-cart",{"title":1046,"path":1047,"stem":1048},"Benefits Box","/laioutr-ui/shop/product-detail/benefits-box","3.laioutr-ui/shop/product-detail/benefits-box",{"title":1050,"path":1051,"stem":1052},"Coupon Box","/laioutr-ui/shop/product-detail/coupon-box","3.laioutr-ui/shop/product-detail/coupon-box",{"title":1054,"path":1055,"stem":1056},"Energy Label","/laioutr-ui/shop/product-detail/energy-label","3.laioutr-ui/shop/product-detail/energy-label",{"title":1058,"path":1059,"stem":1060},"Price Info","/laioutr-ui/shop/product-detail/price-info","3.laioutr-ui/shop/product-detail/price-info",{"title":1037,"path":1062,"stem":1063},"/laioutr-ui/shop/product-detail/product-detail","3.laioutr-ui/shop/product-detail/product-detail",{"title":1065,"path":1066,"stem":1067},"Product Image Gallery","/laioutr-ui/shop/product-detail/product-image-gallery","3.laioutr-ui/shop/product-detail/product-image-gallery",{"title":1069,"path":1070,"stem":1071},"Product Title","/laioutr-ui/shop/product-detail/product-title","3.laioutr-ui/shop/product-detail/product-title",{"title":1073,"path":1074,"stem":1075},"Quantity Discount","/laioutr-ui/shop/product-detail/quantity-discount","3.laioutr-ui/shop/product-detail/quantity-discount",{"title":1077,"path":1078,"stem":1079},"Variant Off Canvas","/laioutr-ui/shop/product-detail/variant-off-canvas","3.laioutr-ui/shop/product-detail/variant-off-canvas",{"title":1081,"path":1082,"stem":1083},"Variant Selector Configurator","/laioutr-ui/shop/product-detail/variant-selector-configurator","3.laioutr-ui/shop/product-detail/variant-selector-configurator",{"title":1085,"path":1086,"stem":1087},"Variant Selector (Multiple)","/laioutr-ui/shop/product-detail/variant-selector-multiple","3.laioutr-ui/shop/product-detail/variant-selector-multiple",{"title":1089,"path":1090,"stem":1091},"Variant Selector Options","/laioutr-ui/shop/product-detail/variant-selector-options","3.laioutr-ui/shop/product-detail/variant-selector-options",{"title":1093,"path":1094,"stem":1095},"Product Listing Grid","/laioutr-ui/shop/product-listing-grid","3.laioutr-ui/shop/product-listing-grid",{"title":1097,"path":1098,"stem":1099},"Product Slider","/laioutr-ui/shop/product-slider","3.laioutr-ui/shop/product-slider",{"title":1101,"path":1102,"stem":1103},"Product Slider Showcase","/laioutr-ui/shop/product-slider-showcase","3.laioutr-ui/shop/product-slider-showcase",{"title":1105,"path":1106,"stem":1107},"Product Tile (Basic)","/laioutr-ui/shop/product-tile-basic","3.laioutr-ui/shop/product-tile-basic",{"title":1109,"path":1110,"stem":1111},"Search Result Hero","/laioutr-ui/shop/search-result-hero","3.laioutr-ui/shop/search-result-hero",{"title":1113,"path":1114,"stem":1115},"Sort Modes","/laioutr-ui/shop/sort-modes","3.laioutr-ui/shop/sort-modes",{"title":1117,"path":1118,"stem":1119,"children":1120},"UI Kit","/laioutr-ui/ui-kit","3.laioutr-ui/ui-kit/0.index",[1121,1122,1282,1306,1327,1344,1381,1490,1519],{"title":1117,"path":1118,"stem":1119},{"title":1123,"path":1124,"stem":1125,"children":1126,"page":55},"General","/laioutr-ui/ui-kit/general","3.laioutr-ui/ui-kit/01.general",[1127,1131,1135,1139,1143,1147,1151,1155,1159,1163,1167,1170,1174,1178,1182,1186,1190,1194,1198,1202,1206,1210,1214,1218,1222,1226,1230,1234,1238,1242,1246,1250,1254,1258,1262,1266,1270,1274,1278],{"title":1128,"path":1129,"stem":1130},"Accordion","/laioutr-ui/ui-kit/general/accordion","3.laioutr-ui/ui-kit/01.general/Accordion",{"title":1132,"path":1133,"stem":1134},"Avatar","/laioutr-ui/ui-kit/general/avatar","3.laioutr-ui/ui-kit/01.general/Avatar",{"title":1136,"path":1137,"stem":1138},"Backdrop","/laioutr-ui/ui-kit/general/backdrop","3.laioutr-ui/ui-kit/01.general/Backdrop",{"title":1140,"path":1141,"stem":1142},"Dropdown Menu","/laioutr-ui/ui-kit/general/dropdownmenu","3.laioutr-ui/ui-kit/01.general/DropdownMenu",{"title":1144,"path":1145,"stem":1146},"Edge Glow","/laioutr-ui/ui-kit/general/edgeglow","3.laioutr-ui/ui-kit/01.general/EdgeGlow",{"title":1148,"path":1149,"stem":1150},"Empty State","/laioutr-ui/ui-kit/general/emptystate","3.laioutr-ui/ui-kit/01.general/EmptyState",{"title":1152,"path":1153,"stem":1154},"Icon","/laioutr-ui/ui-kit/general/icon","3.laioutr-ui/ui-kit/01.general/Icon",{"title":1156,"path":1157,"stem":1158},"Image Contrast Overlay","/laioutr-ui/ui-kit/general/imagecontrastoverlay","3.laioutr-ui/ui-kit/01.general/ImageContrastOverlay",{"title":1160,"path":1161,"stem":1162},"Lightbox","/laioutr-ui/ui-kit/general/lightbox","3.laioutr-ui/ui-kit/01.general/Lightbox",{"title":1164,"path":1165,"stem":1166},"Loading Spinner","/laioutr-ui/ui-kit/general/loadingspinner","3.laioutr-ui/ui-kit/01.general/LoadingSpinner",{"title":387,"path":1168,"stem":1169},"/laioutr-ui/ui-kit/general/media","3.laioutr-ui/ui-kit/01.general/Media",{"title":1171,"path":1172,"stem":1173},"Navigation Bullets","/laioutr-ui/ui-kit/general/navigationbullets","3.laioutr-ui/ui-kit/01.general/NavigationBullets",{"title":1175,"path":1176,"stem":1177},"Placeholder","/laioutr-ui/ui-kit/general/placeholder","3.laioutr-ui/ui-kit/01.general/Placeholder",{"title":1179,"path":1180,"stem":1181},"Progress Bar","/laioutr-ui/ui-kit/general/progressbar","3.laioutr-ui/ui-kit/01.general/ProgressBar",{"title":1183,"path":1184,"stem":1185},"Scrollbar","/laioutr-ui/ui-kit/general/scrollbar","3.laioutr-ui/ui-kit/01.general/Scrollbar",{"title":1187,"path":1188,"stem":1189},"Swatch","/laioutr-ui/ui-kit/general/swatch","3.laioutr-ui/ui-kit/01.general/Swatch",{"title":1191,"path":1192,"stem":1193},"SwiperScrollbar","/laioutr-ui/ui-kit/general/swiperscrollbar","3.laioutr-ui/ui-kit/01.general/SwiperScrollbar",{"title":1195,"path":1196,"stem":1197},"Thumbnail","/laioutr-ui/ui-kit/general/thumbnail","3.laioutr-ui/ui-kit/01.general/Thumbnail",{"title":1199,"path":1200,"stem":1201},"Tooltip","/laioutr-ui/ui-kit/general/tooltip","3.laioutr-ui/ui-kit/01.general/Tooltip",{"title":1203,"path":1204,"stem":1205},"Amount Pill","/laioutr-ui/ui-kit/general/amount-pill","3.laioutr-ui/ui-kit/01.general/amount-pill",{"title":1207,"path":1208,"stem":1209},"Dark Mode Switch","/laioutr-ui/ui-kit/general/dark-mode-switch","3.laioutr-ui/ui-kit/01.general/dark-mode-switch",{"title":1211,"path":1212,"stem":1213},"Language Switcher","/laioutr-ui/ui-kit/general/language-switcher","3.laioutr-ui/ui-kit/01.general/language-switcher",{"title":1215,"path":1216,"stem":1217},"Media Preview","/laioutr-ui/ui-kit/general/media-preview","3.laioutr-ui/ui-kit/01.general/media-preview",{"title":1219,"path":1220,"stem":1221},"Media Stage","/laioutr-ui/ui-kit/general/media-stage","3.laioutr-ui/ui-kit/01.general/media-stage",{"title":1223,"path":1224,"stem":1225},"Nav Link Item","/laioutr-ui/ui-kit/general/nav-link-item","3.laioutr-ui/ui-kit/01.general/nav-link-item",{"title":1227,"path":1228,"stem":1229},"Nav Section Heading","/laioutr-ui/ui-kit/general/nav-section-heading","3.laioutr-ui/ui-kit/01.general/nav-section-heading",{"title":1231,"path":1232,"stem":1233},"OnSurface","/laioutr-ui/ui-kit/general/on-surface","3.laioutr-ui/ui-kit/01.general/on-surface",{"title":1235,"path":1236,"stem":1237},"Opening Hours Weekly Table","/laioutr-ui/ui-kit/general/opening-hours-weekly-table","3.laioutr-ui/ui-kit/01.general/opening-hours-weekly-table",{"title":1239,"path":1240,"stem":1241},"Opening Status","/laioutr-ui/ui-kit/general/opening-status","3.laioutr-ui/ui-kit/01.general/opening-status",{"title":1243,"path":1244,"stem":1245},"Opening Status Detail","/laioutr-ui/ui-kit/general/opening-status-detail","3.laioutr-ui/ui-kit/01.general/opening-status-detail",{"title":1247,"path":1248,"stem":1249},"Opening Status Indicator","/laioutr-ui/ui-kit/general/opening-status-indicator","3.laioutr-ui/ui-kit/01.general/opening-status-indicator",{"title":1251,"path":1252,"stem":1253},"Rating Progress Bar Filter","/laioutr-ui/ui-kit/general/rating-progress-bar-filter","3.laioutr-ui/ui-kit/01.general/rating-progress-bar-filter",{"title":1255,"path":1256,"stem":1257},"Status Message","/laioutr-ui/ui-kit/general/status-message","3.laioutr-ui/ui-kit/01.general/status-message",{"title":1259,"path":1260,"stem":1261},"Stock Info Summary","/laioutr-ui/ui-kit/general/stock-info-summary","3.laioutr-ui/ui-kit/01.general/stock-info-summary",{"title":1263,"path":1264,"stem":1265},"Swatch Chip","/laioutr-ui/ui-kit/general/swatch-chip","3.laioutr-ui/ui-kit/01.general/swatch-chip",{"title":1267,"path":1268,"stem":1269},"Swatch Option","/laioutr-ui/ui-kit/general/swatch-option","3.laioutr-ui/ui-kit/01.general/swatch-option",{"title":1271,"path":1272,"stem":1273},"Swatch Summary","/laioutr-ui/ui-kit/general/swatch-summary","3.laioutr-ui/ui-kit/01.general/swatch-summary",{"title":1275,"path":1276,"stem":1277},"Zoom Level (Segmented)","/laioutr-ui/ui-kit/general/zoom-level-segmented","3.laioutr-ui/ui-kit/01.general/zoom-level-segmented",{"title":1279,"path":1280,"stem":1281},"Zoom Level (Stepper)","/laioutr-ui/ui-kit/general/zoom-level-stepper","3.laioutr-ui/ui-kit/01.general/zoom-level-stepper",{"title":1283,"path":1284,"stem":1285,"children":1286,"page":55},"Typography","/laioutr-ui/ui-kit/typography","3.laioutr-ui/ui-kit/02.typography",[1287,1291,1294,1298,1302],{"title":1288,"path":1289,"stem":1290},"Icon List","/laioutr-ui/ui-kit/typography/iconlist","3.laioutr-ui/ui-kit/02.typography/IconList",{"title":383,"path":1292,"stem":1293},"/laioutr-ui/ui-kit/typography/link","3.laioutr-ui/ui-kit/02.typography/Link",{"title":1295,"path":1296,"stem":1297},"Rich Content","/laioutr-ui/ui-kit/typography/richcontent","3.laioutr-ui/ui-kit/02.typography/RichContent",{"title":1299,"path":1300,"stem":1301},"Text","/laioutr-ui/ui-kit/typography/text","3.laioutr-ui/ui-kit/02.typography/Text",{"title":1303,"path":1304,"stem":1305},"Text Group","/laioutr-ui/ui-kit/typography/text-group","3.laioutr-ui/ui-kit/02.typography/text-group",{"title":1307,"path":1308,"stem":1309,"children":1310,"page":55},"Layout","/laioutr-ui/ui-kit/layout","3.laioutr-ui/ui-kit/03.layout",[1311,1315,1319,1323],{"title":1312,"path":1313,"stem":1314},"Grid Fill","/laioutr-ui/ui-kit/layout/gridfill","3.laioutr-ui/ui-kit/03.layout/GridFill",{"title":1316,"path":1317,"stem":1318},"Grid Masonry","/laioutr-ui/ui-kit/layout/gridmasonry","3.laioutr-ui/ui-kit/03.layout/GridMasonry",{"title":1320,"path":1321,"stem":1322},"Scroll Area","/laioutr-ui/ui-kit/layout/scrollarea","3.laioutr-ui/ui-kit/03.layout/ScrollArea",{"title":1324,"path":1325,"stem":1326},"Separator","/laioutr-ui/ui-kit/layout/separator","3.laioutr-ui/ui-kit/03.layout/Separator",{"title":1328,"path":1329,"stem":1330,"children":1331,"page":55},"Content","/laioutr-ui/ui-kit/content","3.laioutr-ui/ui-kit/04.content",[1332,1336,1340],{"title":1333,"path":1334,"stem":1335},"Card","/laioutr-ui/ui-kit/content/card","3.laioutr-ui/ui-kit/04.content/Card",{"title":1337,"path":1338,"stem":1339},"Description List","/laioutr-ui/ui-kit/content/description-list","3.laioutr-ui/ui-kit/04.content/description-list",{"title":1341,"path":1342,"stem":1343},"Link Tile","/laioutr-ui/ui-kit/content/link-tile","3.laioutr-ui/ui-kit/04.content/link-tile",{"title":1345,"path":1346,"stem":1347,"children":1348,"page":55},"Surfaces","/laioutr-ui/ui-kit/surfaces","3.laioutr-ui/ui-kit/05.surfaces",[1349,1353,1357,1361,1365,1369,1373,1377],{"title":1350,"path":1351,"stem":1352},"Alert Dialog","/laioutr-ui/ui-kit/surfaces/alertdialog","3.laioutr-ui/ui-kit/05.surfaces/AlertDialog",{"title":1354,"path":1355,"stem":1356},"Popover","/laioutr-ui/ui-kit/surfaces/popover","3.laioutr-ui/ui-kit/05.surfaces/Popover",{"title":1358,"path":1359,"stem":1360},"Sheet","/laioutr-ui/ui-kit/surfaces/sheet","3.laioutr-ui/ui-kit/05.surfaces/Sheet",{"title":1362,"path":1363,"stem":1364},"Tabs","/laioutr-ui/ui-kit/surfaces/tabs","3.laioutr-ui/ui-kit/05.surfaces/Tabs",{"title":1366,"path":1367,"stem":1368},"Toast","/laioutr-ui/ui-kit/surfaces/toast","3.laioutr-ui/ui-kit/05.surfaces/Toast",{"title":1370,"path":1371,"stem":1372},"Toaster","/laioutr-ui/ui-kit/surfaces/toaster","3.laioutr-ui/ui-kit/05.surfaces/Toaster",{"title":1374,"path":1375,"stem":1376},"Context Menu","/laioutr-ui/ui-kit/surfaces/context-menu","3.laioutr-ui/ui-kit/05.surfaces/context-menu",{"title":1378,"path":1379,"stem":1380},"Navigation Menu","/laioutr-ui/ui-kit/surfaces/navigation-menu","3.laioutr-ui/ui-kit/05.surfaces/navigation-menu",{"title":1382,"path":1383,"stem":1384,"children":1385,"page":55},"Form","/laioutr-ui/ui-kit/form","3.laioutr-ui/ui-kit/06.form",[1386,1390,1394,1398,1402,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450,1454,1458,1462,1466,1470,1474,1478,1482,1486],{"title":1387,"path":1388,"stem":1389},"Button","/laioutr-ui/ui-kit/form/button","3.laioutr-ui/ui-kit/06.form/Button",{"title":1391,"path":1392,"stem":1393},"Checkbox","/laioutr-ui/ui-kit/form/checkbox","3.laioutr-ui/ui-kit/06.form/Checkbox",{"title":1395,"path":1396,"stem":1397},"Field","/laioutr-ui/ui-kit/form/field","3.laioutr-ui/ui-kit/06.form/Field",{"title":1399,"path":1400,"stem":1401},"Input","/laioutr-ui/ui-kit/form/input","3.laioutr-ui/ui-kit/06.form/Input",{"title":1403,"path":1404,"stem":1405},"Label","/laioutr-ui/ui-kit/form/label","3.laioutr-ui/ui-kit/06.form/Label",{"title":1407,"path":1408,"stem":1409},"Load More","/laioutr-ui/ui-kit/form/loadmore","3.laioutr-ui/ui-kit/06.form/LoadMore",{"title":1411,"path":1412,"stem":1413},"Pagination","/laioutr-ui/ui-kit/form/pagination","3.laioutr-ui/ui-kit/06.form/Pagination",{"title":1415,"path":1416,"stem":1417},"Quantity Picker","/laioutr-ui/ui-kit/form/quantitypicker","3.laioutr-ui/ui-kit/06.form/QuantityPicker",{"title":1419,"path":1420,"stem":1421},"Select","/laioutr-ui/ui-kit/form/select","3.laioutr-ui/ui-kit/06.form/Select",{"title":1423,"path":1424,"stem":1425},"Switch","/laioutr-ui/ui-kit/form/switch","3.laioutr-ui/ui-kit/06.form/Switch",{"title":1427,"path":1428,"stem":1429},"Highlight Toggle","/laioutr-ui/ui-kit/form/highlight-toggle","3.laioutr-ui/ui-kit/06.form/highlight-toggle",{"title":1431,"path":1432,"stem":1433},"Icon Button","/laioutr-ui/ui-kit/form/icon-button","3.laioutr-ui/ui-kit/06.form/icon-button",{"title":1435,"path":1436,"stem":1437},"Input Autocomplete","/laioutr-ui/ui-kit/form/input-autocomplete","3.laioutr-ui/ui-kit/06.form/input-autocomplete",{"title":1439,"path":1440,"stem":1441},"Input Checkbox","/laioutr-ui/ui-kit/form/input-checkbox","3.laioutr-ui/ui-kit/06.form/input-checkbox",{"title":1443,"path":1444,"stem":1445},"Input Combobox","/laioutr-ui/ui-kit/form/input-combobox","3.laioutr-ui/ui-kit/06.form/input-combobox",{"title":1447,"path":1448,"stem":1449},"Input Group","/laioutr-ui/ui-kit/form/input-group","3.laioutr-ui/ui-kit/06.form/input-group",{"title":1451,"path":1452,"stem":1453},"Input Password","/laioutr-ui/ui-kit/form/input-password","3.laioutr-ui/ui-kit/06.form/input-password",{"title":1455,"path":1456,"stem":1457},"Input Pin","/laioutr-ui/ui-kit/form/input-pin","3.laioutr-ui/ui-kit/06.form/input-pin",{"title":1459,"path":1460,"stem":1461},"Input Radio","/laioutr-ui/ui-kit/form/input-radio","3.laioutr-ui/ui-kit/06.form/input-radio",{"title":1463,"path":1464,"stem":1465},"Input Rating","/laioutr-ui/ui-kit/form/input-rating","3.laioutr-ui/ui-kit/06.form/input-rating",{"title":1467,"path":1468,"stem":1469},"Input Search","/laioutr-ui/ui-kit/form/input-search","3.laioutr-ui/ui-kit/06.form/input-search",{"title":1471,"path":1472,"stem":1473},"Input Slider","/laioutr-ui/ui-kit/form/input-slider","3.laioutr-ui/ui-kit/06.form/input-slider",{"title":1475,"path":1476,"stem":1477},"Listbox","/laioutr-ui/ui-kit/form/listbox","3.laioutr-ui/ui-kit/06.form/listbox",{"title":1479,"path":1480,"stem":1481},"Option Tile (Image)","/laioutr-ui/ui-kit/form/option-tile-image","3.laioutr-ui/ui-kit/06.form/option-tile-image",{"title":1483,"path":1484,"stem":1485},"Option Tile (Text)","/laioutr-ui/ui-kit/form/option-tile-text","3.laioutr-ui/ui-kit/06.form/option-tile-text",{"title":1487,"path":1488,"stem":1489},"Variant Selection Card","/laioutr-ui/ui-kit/form/variant-selection-card","3.laioutr-ui/ui-kit/06.form/variant-selection-card",{"title":1491,"path":1492,"stem":1493,"children":1494,"page":55},"Indicators","/laioutr-ui/ui-kit/indicators","3.laioutr-ui/ui-kit/07.indicators",[1495,1499,1503,1507,1511,1515],{"title":1496,"path":1497,"stem":1498},"Badge","/laioutr-ui/ui-kit/indicators/badge","3.laioutr-ui/ui-kit/07.indicators/Badge",{"title":1500,"path":1501,"stem":1502},"Caption Flag","/laioutr-ui/ui-kit/indicators/captionflag","3.laioutr-ui/ui-kit/07.indicators/CaptionFlag",{"title":1504,"path":1505,"stem":1506},"Product Tile Flag","/laioutr-ui/ui-kit/indicators/producttileflag","3.laioutr-ui/ui-kit/07.indicators/ProductTileFlag",{"title":1508,"path":1509,"stem":1510},"Rating Summary","/laioutr-ui/ui-kit/indicators/ratingsummary","3.laioutr-ui/ui-kit/07.indicators/RatingSummary",{"title":1512,"path":1513,"stem":1514},"Stars Rating","/laioutr-ui/ui-kit/indicators/starsrating","3.laioutr-ui/ui-kit/07.indicators/StarsRating",{"title":1516,"path":1517,"stem":1518},"Badge Promotion","/laioutr-ui/ui-kit/indicators/badge-promotion","3.laioutr-ui/ui-kit/07.indicators/badge-promotion",{"title":1520,"path":1521,"stem":1522,"children":1523,"page":55},"Utility Components","/laioutr-ui/ui-kit/utility-components","3.laioutr-ui/ui-kit/08.utility-components",[1524,1528],{"title":1525,"path":1526,"stem":1527},"Highlighted Text","/laioutr-ui/ui-kit/utility-components/highlighted-text","3.laioutr-ui/ui-kit/08.utility-components/highlighted-text",{"title":1529,"path":1530,"stem":1531},"Sizer","/laioutr-ui/ui-kit/utility-components/sizer","3.laioutr-ui/ui-kit/08.utility-components/sizer",{"title":1533,"path":1534,"stem":1535,"children":1536},"Hosting","/hosting","4.hosting/0.index",[1537,1538,1544,1574,1592],{"title":1533,"path":1534,"stem":1535},{"title":1539,"path":1540,"stem":1541,"children":1542},"Laioutr Cloud","/hosting/laioutr-cloud","4.hosting/0.laioutr-cloud/0.index",[1543],{"title":1539,"path":1540,"stem":1541},{"title":1545,"path":1546,"stem":1547,"children":1548},"Hyperscaler","/hosting/hyperscaler","4.hosting/1.hyperscaler/0.index",[1549,1550,1554,1558,1562,1566,1570],{"title":1545,"path":1546,"stem":1547},{"title":1551,"path":1552,"stem":1553},"Akamai Adapter","/hosting/hyperscaler/akamai-adapter","4.hosting/1.hyperscaler/akamai-adapter",{"title":1555,"path":1556,"stem":1557},"AWS Adapter","/hosting/hyperscaler/aws-adapter","4.hosting/1.hyperscaler/aws-adapter",{"title":1559,"path":1560,"stem":1561},"Azure Adapter","/hosting/hyperscaler/azure-adapter","4.hosting/1.hyperscaler/azure-adapter",{"title":1563,"path":1564,"stem":1565},"Google Adapter","/hosting/hyperscaler/google-adapter","4.hosting/1.hyperscaler/google-adapter",{"title":1567,"path":1568,"stem":1569},"Netlify Adapter","/hosting/hyperscaler/netlify-adapter","4.hosting/1.hyperscaler/netlify-adapter",{"title":1571,"path":1572,"stem":1573},"Vercel Adapter","/hosting/hyperscaler/vercel-adapter","4.hosting/1.hyperscaler/vercel-adapter",{"title":1575,"path":1576,"stem":1577,"children":1578},"Native Hosting","/hosting/native-hosting-providers","4.hosting/2.native-hosting-providers/0.index",[1579,1580,1584,1588],{"title":1575,"path":1576,"stem":1577},{"title":1581,"path":1582,"stem":1583},"maxcluster","/hosting/native-hosting-providers/maxcluster","4.hosting/2.native-hosting-providers/maxcluster",{"title":1585,"path":1586,"stem":1587},"profihost","/hosting/native-hosting-providers/profihost","4.hosting/2.native-hosting-providers/profihost",{"title":1589,"path":1590,"stem":1591},"ScaleCommerce","/hosting/native-hosting-providers/scale-commerce","4.hosting/2.native-hosting-providers/scale-commerce",{"title":1593,"path":1594,"stem":1595,"children":1596},"Bring Your Own Server (BYOS)","/hosting/bring-your-own-server-byos","4.hosting/3.bring-your-own-server-byos/0.index",[1597,1598,1602,1606,1610,1614,1618],{"title":1593,"path":1594,"stem":1595},{"title":1599,"path":1600,"stem":1601},"BYOS Agent","/hosting/bring-your-own-server-byos/byos-agent","4.hosting/3.bring-your-own-server-byos/byos-agent",{"title":1603,"path":1604,"stem":1605},"Changelog","/hosting/bring-your-own-server-byos/changelog","4.hosting/3.bring-your-own-server-byos/changelog",{"title":1607,"path":1608,"stem":1609},"DevOps Components","/hosting/bring-your-own-server-byos/devops","4.hosting/3.bring-your-own-server-byos/devops",{"title":1611,"path":1612,"stem":1613},"Infrastructure Requirements","/hosting/bring-your-own-server-byos/infrastructure","4.hosting/3.bring-your-own-server-byos/infrastructure",{"title":1615,"path":1616,"stem":1617},"Software Requirements","/hosting/bring-your-own-server-byos/software","4.hosting/3.bring-your-own-server-byos/software",{"title":1619,"path":1620,"stem":1621},"Webhook Configuration","/hosting/bring-your-own-server-byos/webhook-config","4.hosting/3.bring-your-own-server-byos/webhook-config",{"title":1623,"path":1624,"stem":1625,"children":1626},"Checkout","/checkout","5.Checkout/0.index",[1627],{"title":1623,"path":1624,"stem":1625},{"title":1629,"path":1630,"stem":1631,"children":1632},"Larry AI","/larry-ai","6.Larry-AI/0.index",[1633],{"title":1629,"path":1630,"stem":1631},{"title":671,"path":1635,"stem":1636,"children":1637},"/figma-kit","7.Figma Kit/0.index",[1638,1639,1655],{"title":671,"path":1635,"stem":1636},{"title":121,"path":1640,"stem":1641,"children":1642,"page":55},"/figma-kit/introduction","7.Figma Kit/1.Introduction",[1643,1647,1651],{"title":1644,"path":1645,"stem":1646},"How to Start","/figma-kit/introduction/howtostart","7.Figma Kit/1.Introduction/0.howtostart",{"title":1648,"path":1649,"stem":1650},"Figma Variables","/figma-kit/introduction/figma-variables","7.Figma Kit/1.Introduction/figma-variables",{"title":1652,"path":1653,"stem":1654},"Library Connections","/figma-kit/introduction/library-connections","7.Figma Kit/1.Introduction/library-connections",{"title":1656,"path":1657,"stem":1658,"children":1659,"page":55},"Kits","/figma-kit/kits","7.Figma Kit/Kits",[1660,1663,1666,1669,1673,1676,1680,1684,1687,1690],{"title":686,"path":1661,"stem":1662},"/figma-kit/kits/b2b","7.Figma Kit/Kits/b2b",{"title":692,"path":1664,"stem":1665},"/figma-kit/kits/booking","7.Figma Kit/Kits/booking",{"title":698,"path":1667,"stem":1668},"/figma-kit/kits/cms","7.Figma Kit/Kits/cms",{"title":1670,"path":1671,"stem":1672},"Inpage Navigation","/figma-kit/kits/inpage-navigation","7.Figma Kit/Kits/inpage-navigation",{"title":903,"path":1674,"stem":1675},"/figma-kit/kits/marketplace","7.Figma Kit/Kits/marketplace",{"title":1677,"path":1678,"stem":1679},"Retail & Multichannel","/figma-kit/kits/multichannel","7.Figma Kit/Kits/multichannel",{"title":1681,"path":1682,"stem":1683},"Navigation","/figma-kit/kits/navigation","7.Figma Kit/Kits/navigation",{"title":969,"path":1685,"stem":1686},"/figma-kit/kits/saas","7.Figma Kit/Kits/saas",{"title":987,"path":1688,"stem":1689},"/figma-kit/kits/shop","7.Figma Kit/Kits/shop",{"title":1117,"path":1691,"stem":1692},"/figma-kit/kits/ui-kit","7.Figma Kit/Kits/ui-kit",{"title":1694,"path":1695,"stem":1696,"children":1697},"Cockpit","/cockpit","8.Cockpit/0.index",[1698,1699,1729,1746,1763],{"title":1694,"path":1695,"stem":1696},{"title":154,"path":1700,"stem":1701,"children":1702,"page":55},"/cockpit/features","8.Cockpit/1.Features",[1703,1706,1710,1714,1718,1721,1725],{"title":464,"path":1704,"stem":1705},"/cockpit/features/apps","8.Cockpit/1.Features/apps",{"title":1707,"path":1708,"stem":1709},"Content (Collections)","/cockpit/features/content-collections","8.Cockpit/1.Features/content-collections",{"title":1711,"path":1712,"stem":1713},"Deployments","/cockpit/features/deployments","8.Cockpit/1.Features/deployments",{"title":1715,"path":1716,"stem":1717},"Markets","/cockpit/features/markets","8.Cockpit/1.Features/markets",{"title":196,"path":1719,"stem":1720},"/cockpit/features/redirects","8.Cockpit/1.Features/redirects",{"title":1722,"path":1723,"stem":1724},"Studio","/cockpit/features/studio","8.Cockpit/1.Features/studio",{"title":1726,"path":1727,"stem":1728},"Translations","/cockpit/features/translations","8.Cockpit/1.Features/translations",{"title":1730,"path":1731,"stem":1732,"children":1733,"page":55},"Project Settings","/cockpit/project-settings","8.Cockpit/2.Project-Settings",[1734,1738,1742],{"title":1735,"path":1736,"stem":1737},"Delete a project","/cockpit/project-settings/delete-project","8.Cockpit/2.Project-Settings/delete-project",{"title":1739,"path":1740,"stem":1741},"NPM","/cockpit/project-settings/npm","8.Cockpit/2.Project-Settings/npm",{"title":1743,"path":1744,"stem":1745},"Project secret key","/cockpit/project-settings/project-secret-key","8.Cockpit/2.Project-Settings/project-secret-key",{"title":1747,"path":1748,"stem":1749,"children":1750,"page":55},"Account Settings","/cockpit/account-settings","8.Cockpit/3.Account-Settings",[1751,1755,1759],{"title":1752,"path":1753,"stem":1754},"Notifications","/cockpit/account-settings/notifications","8.Cockpit/3.Account-Settings/notifications",{"title":1756,"path":1757,"stem":1758},"Preferences","/cockpit/account-settings/preferences","8.Cockpit/3.Account-Settings/preferences",{"title":1760,"path":1761,"stem":1762},"Security","/cockpit/account-settings/security","8.Cockpit/3.Account-Settings/security",{"title":1764,"path":1765,"stem":1766,"children":1767,"page":55},"Organisation Settings","/cockpit/organisation-settings","8.Cockpit/4.Organisation-Settings",[1768,1772,1776,1780,1784,1788],{"title":1769,"path":1770,"stem":1771},"API keys","/cockpit/organisation-settings/api-keys","8.Cockpit/4.Organisation-Settings/api-keys",{"title":1773,"path":1774,"stem":1775},"Billing","/cockpit/organisation-settings/billing","8.Cockpit/4.Organisation-Settings/billing",{"title":1777,"path":1778,"stem":1779},"General settings","/cockpit/organisation-settings/general-settings","8.Cockpit/4.Organisation-Settings/general-settings",{"title":1781,"path":1782,"stem":1783},"Members","/cockpit/organisation-settings/members","8.Cockpit/4.Organisation-Settings/members",{"title":1785,"path":1786,"stem":1787},"Projects","/cockpit/organisation-settings/projects","8.Cockpit/4.Organisation-Settings/projects",{"title":1789,"path":1790,"stem":1791},"Roles","/cockpit/organisation-settings/roles","8.Cockpit/4.Organisation-Settings/roles",{"title":1793,"path":1794,"stem":1795,"children":1796},"Offering","/offering","9.Offering/0.index",[1797,1798,1830,1843,1856,1890,1899],{"title":1793,"path":1794,"stem":1795},{"title":1799,"path":1800,"stem":1801,"children":1802},"Products","/offering/products","9.Offering/1.Products/0.index",[1803,1804,1809,1814,1819,1825],{"title":1799,"path":1800,"stem":1801},{"title":137,"path":1805,"stem":1806,"children":1807},"/offering/products/frontend","9.Offering/1.Products/1.Frontend/0.index",[1808],{"title":137,"path":1805,"stem":1806},{"title":1694,"path":1810,"stem":1811,"children":1812},"/offering/products/cockpit","9.Offering/1.Products/2.Cockpit/0.index",[1813],{"title":1694,"path":1810,"stem":1811},{"title":1623,"path":1815,"stem":1816,"children":1817},"/offering/products/checkout","9.Offering/1.Products/3.Checkout/0.index",[1818],{"title":1623,"path":1815,"stem":1816},{"title":1820,"path":1821,"stem":1822,"children":1823},"Cloud","/offering/products/cloud","9.Offering/1.Products/4.cloud/0.index",[1824],{"title":1820,"path":1821,"stem":1822},{"title":1629,"path":1826,"stem":1827,"children":1828},"/offering/products/larry-ai","9.Offering/1.Products/5.larry-ai/0.index",[1829],{"title":1629,"path":1826,"stem":1827},{"title":1831,"path":1832,"stem":1833,"children":1834,"page":55},"Service Level Agreement","/offering/service-level-agreement","9.Offering/2.service-level-agreement",[1835,1839],{"title":1836,"path":1837,"stem":1838},"Standard Service Level Agreement Composable Frontend","/offering/service-level-agreement/standard-service-level-agreement","9.Offering/2.service-level-agreement/1.standard-service-level-agreement",{"title":1840,"path":1841,"stem":1842},"Backups","/offering/service-level-agreement/backups","9.Offering/2.service-level-agreement/backups",{"title":1844,"path":1845,"stem":1846,"children":1847,"page":55},"Customer Support","/offering/customer-support","9.Offering/3.customer-support",[1848,1852],{"title":1849,"path":1850,"stem":1851},"Standard Customer Support","/offering/customer-support/standard-customer-support","9.Offering/3.customer-support/1.standard-customer-support",{"title":1853,"path":1854,"stem":1855},"Customer Support Severity Levels of Laioutr products","/offering/customer-support/maximum-serverity-levels","9.Offering/3.customer-support/maximum-serverity-levels",{"title":1857,"path":1858,"stem":1859,"children":1860},"Trust Center","/offering/trust-center","9.Offering/4.trust-center/0.index",[1861,1862,1866,1870,1874,1878,1882,1886],{"title":1857,"path":1858,"stem":1859},{"title":1863,"path":1864,"stem":1865},"Data Protection (GDPR)","/offering/trust-center/data-protection","9.Offering/4.trust-center/1.data-protection",{"title":1867,"path":1868,"stem":1869},"Subprocessors","/offering/trust-center/subprocessors","9.Offering/4.trust-center/2.subprocessors",{"title":1871,"path":1872,"stem":1873},"Infrastructure & Hosting","/offering/trust-center/infrastructure","9.Offering/4.trust-center/3.infrastructure",{"title":1875,"path":1876,"stem":1877},"Security Measures","/offering/trust-center/security-measures","9.Offering/4.trust-center/4.security-measures",{"title":1879,"path":1880,"stem":1881},"Incident Response","/offering/trust-center/incident-response","9.Offering/4.trust-center/5.incident-response",{"title":1883,"path":1884,"stem":1885},"Compliance & Certifications","/offering/trust-center/compliance","9.Offering/4.trust-center/6.compliance",{"title":1887,"path":1888,"stem":1889},"FAQ","/offering/trust-center/faq","9.Offering/4.trust-center/7.faq",{"title":1891,"path":1892,"stem":1893,"children":1894,"page":55},"Policies","/offering/policies","9.Offering/5.policies",[1895],{"title":1896,"path":1897,"stem":1898},"Fair usage policy","/offering/policies/fair-usage-policy","9.Offering/5.policies/fair-usage-policy",{"title":1900,"path":1901,"stem":1902,"children":1903},"Academy","/offering/academy","9.Offering/6.academy/0.index",[1904],{"title":1900,"path":1901,"stem":1902},{"id":1906,"title":262,"aliases":1907,"body":1908,"changelogKeys":1907,"description":4538,"extension":4539,"links":1907,"meta":4540,"navigation":2030,"path":263,"playground":1907,"seo":4541,"sitemap":4544,"stem":264,"__hash__":4548},"docs/1.Frontend/4.Orchestr/99.recipes/system-bootstrap.md",null,{"type":1909,"value":1910,"toc":4527},"minimark",[1911,1936,1947,2230,2235,2241,2251,2255,2258,2840,2846,2850,2857,3169,3177,3181,3197,4012,4015,4019,4030,4419,4430,4435,4453,4467,4483,4487,4495,4499,4523],[1912,1913,1914,1915,1919,1920,1923,1924,1927,1928,1931,1932,1935],"p",{},"Your storefront passes ",[1916,1917,1918],"code",{},"clientEnv: { locale: 'de-DE', currency: 'EUR' }"," to every Orchestr request. Your backend has no idea what ",[1916,1921,1922],{},"de-DE"," or ",[1916,1925,1926],{},"EUR"," mean. It wants its own opaque IDs (",[1916,1929,1930],{},"sw-language-id: 0190a1b2c3...",", ",[1916,1933,1934],{},"sw-currency-id: 0190a1b2d4...",") on every API call. You can't hardcode them because they differ per installation, and asking the storefront to know them is a layering violation.",[1912,1937,1938,1939,1942,1943,1946],{},"The pattern: fetch the vendor metadata once on first request, cache it for a day, and resolve ",[1916,1940,1941],{},"clientEnv"," against it inside ",[1916,1944,1945],{},"extendRequest"," on every request. The resolved IDs go onto the API client's default headers, so handlers downstream can ignore localization entirely.",[1948,1949,1954],"pre",{"className":1950,"code":1951,"language":1952,"meta":1953,"style":1953},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight",".extendRequest(async ({ event, clientEnv }) => {\n  const storefrontClient = shopwareClientFactory(event);\n\n  const systemEntities = await getCachedSystemEntities(storefrontClient);    // 1. cached metadata\n  const current = getCurrentSystemEntities(systemEntities, clientEnv);       // 2. resolve clientEnv\n  storefrontClient.defaultHeaders['sw-currency-id'] = current.currency.id;   // 3. apply to client\n  storefrontClient.defaultHeaders['sw-language-id'] = current.locale.languageId;\n\n  return { context: { shopware: { storefrontClient, current } } };  // 4. scope under your app key\n});\n","ts","",[1916,1955,1956,1998,2025,2032,2063,2092,2138,2174,2179,2220],{"__ignoreMap":1953},[1957,1958,1961,1965,1968,1972,1976,1979,1983,1986,1989,1992,1995],"span",{"class":1959,"line":1960},"line",1,[1957,1962,1964],{"class":1963},"sMK4o",".",[1957,1966,1945],{"class":1967},"s2Zo4",[1957,1969,1971],{"class":1970},"sTEyZ","(",[1957,1973,1975],{"class":1974},"spNyl","async",[1957,1977,1978],{"class":1963}," ({",[1957,1980,1982],{"class":1981},"sHdIc"," event",[1957,1984,1985],{"class":1963},",",[1957,1987,1988],{"class":1981}," clientEnv",[1957,1990,1991],{"class":1963}," })",[1957,1993,1994],{"class":1974}," =>",[1957,1996,1997],{"class":1963}," {\n",[1957,1999,2001,2004,2007,2010,2013,2016,2019,2022],{"class":1959,"line":2000},2,[1957,2002,2003],{"class":1974},"  const",[1957,2005,2006],{"class":1970}," storefrontClient",[1957,2008,2009],{"class":1963}," =",[1957,2011,2012],{"class":1967}," shopwareClientFactory",[1957,2014,1971],{"class":2015},"swJcz",[1957,2017,2018],{"class":1970},"event",[1957,2020,2021],{"class":2015},")",[1957,2023,2024],{"class":1963},";\n",[1957,2026,2028],{"class":1959,"line":2027},3,[1957,2029,2031],{"emptyLinePlaceholder":2030},true,"\n",[1957,2033,2035,2037,2040,2042,2046,2049,2051,2054,2056,2059],{"class":1959,"line":2034},4,[1957,2036,2003],{"class":1974},[1957,2038,2039],{"class":1970}," systemEntities",[1957,2041,2009],{"class":1963},[1957,2043,2045],{"class":2044},"s7zQu"," await",[1957,2047,2048],{"class":1967}," getCachedSystemEntities",[1957,2050,1971],{"class":2015},[1957,2052,2053],{"class":1970},"storefrontClient",[1957,2055,2021],{"class":2015},[1957,2057,2058],{"class":1963},";",[1957,2060,2062],{"class":2061},"sHwdD","    // 1. cached metadata\n",[1957,2064,2066,2068,2071,2073,2076,2078,2081,2083,2085,2087,2089],{"class":1959,"line":2065},5,[1957,2067,2003],{"class":1974},[1957,2069,2070],{"class":1970}," current",[1957,2072,2009],{"class":1963},[1957,2074,2075],{"class":1967}," getCurrentSystemEntities",[1957,2077,1971],{"class":2015},[1957,2079,2080],{"class":1970},"systemEntities",[1957,2082,1985],{"class":1963},[1957,2084,1988],{"class":1970},[1957,2086,2021],{"class":2015},[1957,2088,2058],{"class":1963},[1957,2090,2091],{"class":2061},"       // 2. resolve clientEnv\n",[1957,2093,2095,2098,2100,2103,2106,2109,2113,2115,2118,2121,2123,2125,2128,2130,2133,2135],{"class":1959,"line":2094},6,[1957,2096,2097],{"class":1970},"  storefrontClient",[1957,2099,1964],{"class":1963},[1957,2101,2102],{"class":1970},"defaultHeaders",[1957,2104,2105],{"class":2015},"[",[1957,2107,2108],{"class":1963},"'",[1957,2110,2112],{"class":2111},"sfazB","sw-currency-id",[1957,2114,2108],{"class":1963},[1957,2116,2117],{"class":2015},"] ",[1957,2119,2120],{"class":1963},"=",[1957,2122,2070],{"class":1970},[1957,2124,1964],{"class":1963},[1957,2126,2127],{"class":1970},"currency",[1957,2129,1964],{"class":1963},[1957,2131,2132],{"class":1970},"id",[1957,2134,2058],{"class":1963},[1957,2136,2137],{"class":2061},"   // 3. apply to client\n",[1957,2139,2141,2143,2145,2147,2149,2151,2154,2156,2158,2160,2162,2164,2167,2169,2172],{"class":1959,"line":2140},7,[1957,2142,2097],{"class":1970},[1957,2144,1964],{"class":1963},[1957,2146,2102],{"class":1970},[1957,2148,2105],{"class":2015},[1957,2150,2108],{"class":1963},[1957,2152,2153],{"class":2111},"sw-language-id",[1957,2155,2108],{"class":1963},[1957,2157,2117],{"class":2015},[1957,2159,2120],{"class":1963},[1957,2161,2070],{"class":1970},[1957,2163,1964],{"class":1963},[1957,2165,2166],{"class":1970},"locale",[1957,2168,1964],{"class":1963},[1957,2170,2171],{"class":1970},"languageId",[1957,2173,2024],{"class":1963},[1957,2175,2177],{"class":1959,"line":2176},8,[1957,2178,2031],{"emptyLinePlaceholder":2030},[1957,2180,2182,2185,2188,2191,2194,2196,2199,2201,2203,2205,2207,2209,2212,2214,2217],{"class":1959,"line":2181},9,[1957,2183,2184],{"class":2044},"  return",[1957,2186,2187],{"class":1963}," {",[1957,2189,2190],{"class":2015}," context",[1957,2192,2193],{"class":1963},":",[1957,2195,2187],{"class":1963},[1957,2197,2198],{"class":2015}," shopware",[1957,2200,2193],{"class":1963},[1957,2202,2187],{"class":1963},[1957,2204,2006],{"class":1970},[1957,2206,1985],{"class":1963},[1957,2208,2070],{"class":1970},[1957,2210,2211],{"class":1963}," }",[1957,2213,2211],{"class":1963},[1957,2215,2216],{"class":1963}," };",[1957,2218,2219],{"class":2061},"  // 4. scope under your app key\n",[1957,2221,2223,2226,2228],{"class":1959,"line":2222},10,[1957,2224,2225],{"class":1963},"}",[1957,2227,2021],{"class":1970},[1957,2229,2024],{"class":1963},[2231,2232,2234],"h2",{"id":2233},"when-you-need-this-and-when-you-dont","When you need this (and when you don't)",[1912,2236,2237,2238,2240],{},"You need system bootstrap when your backend uses opaque internal IDs for entities that the storefront only knows by their canonical name (BCP47 locale, ISO 4217 currency, ISO 3166 country). Shopware is the case we hit hardest: every Storefront API call requires a ",[1916,2239,2153],{}," UUID, never a locale string.",[1912,2242,2243,2244,2247,2248,2250],{},"You don't need it when your backend accepts standard codes directly. The ",[1916,2245,2246],{},"defineShopify"," middleware just constructs its API clients (the Storefront API takes BCP47 locales and ISO currency codes through the request context, no resolution step needed). Adobe Commerce's middleware is the same shape. Reach for this pattern only when there's a real translation layer between ",[1916,2249,1941],{}," and your API client.",[2231,2252,2254],{"id":2253},"step-1-write-the-metadata-fetch","Step 1: write the metadata fetch",[1912,2256,2257],{},"The fetch retrieves every entity your handlers might need to translate against (currencies, locales, countries, salutations). One call per surface, run in parallel where the SDK allows it:",[1948,2259,2262],{"className":1950,"code":2260,"filename":2261,"language":1952,"meta":1953,"style":1953},"import { StorefrontClient } from '../../types/shopware';\nimport { swTranslated } from '../swTranslated';\n\nexport type SwSystemEntities = Awaited\u003CReturnType\u003Ctypeof getSystemEntities>>;\nexport type SwSystemLocale = SwSystemEntities['locales'][number];\n\nexport const getSystemEntities = async (client: StorefrontClient) => {\n  const [rawCurrencies, rawCountries, rawLanguages] = await Promise.all([\n    client.invoke('readCurrency post /currency'),\n    client.invoke('readCountry post /country'),\n    client.invoke('readLanguages post /language'),\n  ]);\n\n  return {\n    currencies: rawCurrencies.data.map((c) => ({\n      id: c.id,\n      iso: swTranslated(c, 'isoCode'),\n    })),\n    countries: rawCountries.data.elements?.map((c) => ({ id: c.id, iso: c.iso })) ?? [],\n    locales:\n      rawLanguages.data.elements?.map((lang) => ({\n        id: lang.localeId,\n        languageId: lang.id,\n        iso: swTranslated(lang.locale, 'code'),\n      })) ?? [],\n  };\n};\n","server/shopware-helper/system/getSystemEntities.ts",[1916,2263,2264,2289,2311,2315,2347,2380,2384,2415,2452,2476,2497,2519,2527,2532,2539,2576,2593,2620,2631,2708,2717,2750,2768,2784,2814,2828,2834],{"__ignoreMap":1953},[1957,2265,2266,2269,2271,2274,2276,2279,2282,2285,2287],{"class":1959,"line":1960},[1957,2267,2268],{"class":2044},"import",[1957,2270,2187],{"class":1963},[1957,2272,2273],{"class":1970}," StorefrontClient",[1957,2275,2211],{"class":1963},[1957,2277,2278],{"class":2044}," from",[1957,2280,2281],{"class":1963}," '",[1957,2283,2284],{"class":2111},"../../types/shopware",[1957,2286,2108],{"class":1963},[1957,2288,2024],{"class":1963},[1957,2290,2291,2293,2295,2298,2300,2302,2304,2307,2309],{"class":1959,"line":2000},[1957,2292,2268],{"class":2044},[1957,2294,2187],{"class":1963},[1957,2296,2297],{"class":1970}," swTranslated",[1957,2299,2211],{"class":1963},[1957,2301,2278],{"class":2044},[1957,2303,2281],{"class":1963},[1957,2305,2306],{"class":2111},"../swTranslated",[1957,2308,2108],{"class":1963},[1957,2310,2024],{"class":1963},[1957,2312,2313],{"class":1959,"line":2027},[1957,2314,2031],{"emptyLinePlaceholder":2030},[1957,2316,2317,2320,2323,2327,2329,2332,2335,2338,2341,2344],{"class":1959,"line":2034},[1957,2318,2319],{"class":2044},"export",[1957,2321,2322],{"class":1974}," type",[1957,2324,2326],{"class":2325},"sBMFI"," SwSystemEntities",[1957,2328,2009],{"class":1963},[1957,2330,2331],{"class":2325}," Awaited",[1957,2333,2334],{"class":1963},"\u003C",[1957,2336,2337],{"class":2325},"ReturnType",[1957,2339,2340],{"class":1963},"\u003Ctypeof",[1957,2342,2343],{"class":1970}," getSystemEntities",[1957,2345,2346],{"class":1963},">>;\n",[1957,2348,2349,2351,2353,2356,2358,2360,2362,2364,2367,2369,2372,2375,2378],{"class":1959,"line":2065},[1957,2350,2319],{"class":2044},[1957,2352,2322],{"class":1974},[1957,2354,2355],{"class":2325}," SwSystemLocale",[1957,2357,2009],{"class":1963},[1957,2359,2326],{"class":2325},[1957,2361,2105],{"class":1970},[1957,2363,2108],{"class":1963},[1957,2365,2366],{"class":2111},"locales",[1957,2368,2108],{"class":1963},[1957,2370,2371],{"class":1970},"][",[1957,2373,2374],{"class":2325},"number",[1957,2376,2377],{"class":1970},"]",[1957,2379,2024],{"class":1963},[1957,2381,2382],{"class":1959,"line":2094},[1957,2383,2031],{"emptyLinePlaceholder":2030},[1957,2385,2386,2388,2391,2394,2396,2399,2402,2405,2407,2409,2411,2413],{"class":1959,"line":2140},[1957,2387,2319],{"class":2044},[1957,2389,2390],{"class":1974}," const",[1957,2392,2393],{"class":1970}," getSystemEntities ",[1957,2395,2120],{"class":1963},[1957,2397,2398],{"class":1974}," async",[1957,2400,2401],{"class":1963}," (",[1957,2403,2404],{"class":1981},"client",[1957,2406,2193],{"class":1963},[1957,2408,2273],{"class":2325},[1957,2410,2021],{"class":1963},[1957,2412,1994],{"class":1974},[1957,2414,1997],{"class":1963},[1957,2416,2417,2419,2422,2425,2427,2430,2432,2435,2437,2439,2441,2444,2446,2449],{"class":1959,"line":2176},[1957,2418,2003],{"class":1974},[1957,2420,2421],{"class":1963}," [",[1957,2423,2424],{"class":1970},"rawCurrencies",[1957,2426,1985],{"class":1963},[1957,2428,2429],{"class":1970}," rawCountries",[1957,2431,1985],{"class":1963},[1957,2433,2434],{"class":1970}," rawLanguages",[1957,2436,2377],{"class":1963},[1957,2438,2009],{"class":1963},[1957,2440,2045],{"class":2044},[1957,2442,2443],{"class":2325}," Promise",[1957,2445,1964],{"class":1963},[1957,2447,2448],{"class":1967},"all",[1957,2450,2451],{"class":2015},"([\n",[1957,2453,2454,2457,2459,2462,2464,2466,2469,2471,2473],{"class":1959,"line":2181},[1957,2455,2456],{"class":1970},"    client",[1957,2458,1964],{"class":1963},[1957,2460,2461],{"class":1967},"invoke",[1957,2463,1971],{"class":2015},[1957,2465,2108],{"class":1963},[1957,2467,2468],{"class":2111},"readCurrency post /currency",[1957,2470,2108],{"class":1963},[1957,2472,2021],{"class":2015},[1957,2474,2475],{"class":1963},",\n",[1957,2477,2478,2480,2482,2484,2486,2488,2491,2493,2495],{"class":1959,"line":2222},[1957,2479,2456],{"class":1970},[1957,2481,1964],{"class":1963},[1957,2483,2461],{"class":1967},[1957,2485,1971],{"class":2015},[1957,2487,2108],{"class":1963},[1957,2489,2490],{"class":2111},"readCountry post /country",[1957,2492,2108],{"class":1963},[1957,2494,2021],{"class":2015},[1957,2496,2475],{"class":1963},[1957,2498,2500,2502,2504,2506,2508,2510,2513,2515,2517],{"class":1959,"line":2499},11,[1957,2501,2456],{"class":1970},[1957,2503,1964],{"class":1963},[1957,2505,2461],{"class":1967},[1957,2507,1971],{"class":2015},[1957,2509,2108],{"class":1963},[1957,2511,2512],{"class":2111},"readLanguages post /language",[1957,2514,2108],{"class":1963},[1957,2516,2021],{"class":2015},[1957,2518,2475],{"class":1963},[1957,2520,2522,2525],{"class":1959,"line":2521},12,[1957,2523,2524],{"class":2015},"  ])",[1957,2526,2024],{"class":1963},[1957,2528,2530],{"class":1959,"line":2529},13,[1957,2531,2031],{"emptyLinePlaceholder":2030},[1957,2533,2535,2537],{"class":1959,"line":2534},14,[1957,2536,2184],{"class":2044},[1957,2538,1997],{"class":1963},[1957,2540,2542,2545,2547,2550,2552,2555,2557,2560,2562,2564,2567,2569,2571,2573],{"class":1959,"line":2541},15,[1957,2543,2544],{"class":2015},"    currencies",[1957,2546,2193],{"class":1963},[1957,2548,2549],{"class":1970}," rawCurrencies",[1957,2551,1964],{"class":1963},[1957,2553,2554],{"class":1970},"data",[1957,2556,1964],{"class":1963},[1957,2558,2559],{"class":1967},"map",[1957,2561,1971],{"class":2015},[1957,2563,1971],{"class":1963},[1957,2565,2566],{"class":1981},"c",[1957,2568,2021],{"class":1963},[1957,2570,1994],{"class":1974},[1957,2572,2401],{"class":2015},[1957,2574,2575],{"class":1963},"{\n",[1957,2577,2579,2582,2584,2587,2589,2591],{"class":1959,"line":2578},16,[1957,2580,2581],{"class":2015},"      id",[1957,2583,2193],{"class":1963},[1957,2585,2586],{"class":1970}," c",[1957,2588,1964],{"class":1963},[1957,2590,2132],{"class":1970},[1957,2592,2475],{"class":1963},[1957,2594,2596,2599,2601,2603,2605,2607,2609,2611,2614,2616,2618],{"class":1959,"line":2595},17,[1957,2597,2598],{"class":2015},"      iso",[1957,2600,2193],{"class":1963},[1957,2602,2297],{"class":1967},[1957,2604,1971],{"class":2015},[1957,2606,2566],{"class":1970},[1957,2608,1985],{"class":1963},[1957,2610,2281],{"class":1963},[1957,2612,2613],{"class":2111},"isoCode",[1957,2615,2108],{"class":1963},[1957,2617,2021],{"class":2015},[1957,2619,2475],{"class":1963},[1957,2621,2623,2626,2629],{"class":1959,"line":2622},18,[1957,2624,2625],{"class":1963},"    }",[1957,2627,2628],{"class":2015},"))",[1957,2630,2475],{"class":1963},[1957,2632,2634,2637,2639,2641,2643,2645,2647,2650,2653,2655,2657,2659,2661,2663,2665,2667,2670,2673,2675,2677,2679,2681,2683,2686,2688,2690,2692,2695,2697,2700,2703,2706],{"class":1959,"line":2633},19,[1957,2635,2636],{"class":2015},"    countries",[1957,2638,2193],{"class":1963},[1957,2640,2429],{"class":1970},[1957,2642,1964],{"class":1963},[1957,2644,2554],{"class":1970},[1957,2646,1964],{"class":1963},[1957,2648,2649],{"class":1970},"elements",[1957,2651,2652],{"class":1963},"?.",[1957,2654,2559],{"class":1967},[1957,2656,1971],{"class":2015},[1957,2658,1971],{"class":1963},[1957,2660,2566],{"class":1981},[1957,2662,2021],{"class":1963},[1957,2664,1994],{"class":1974},[1957,2666,2401],{"class":2015},[1957,2668,2669],{"class":1963},"{",[1957,2671,2672],{"class":2015}," id",[1957,2674,2193],{"class":1963},[1957,2676,2586],{"class":1970},[1957,2678,1964],{"class":1963},[1957,2680,2132],{"class":1970},[1957,2682,1985],{"class":1963},[1957,2684,2685],{"class":2015}," iso",[1957,2687,2193],{"class":1963},[1957,2689,2586],{"class":1970},[1957,2691,1964],{"class":1963},[1957,2693,2694],{"class":1970},"iso",[1957,2696,2211],{"class":1963},[1957,2698,2699],{"class":2015},")) ",[1957,2701,2702],{"class":1963},"??",[1957,2704,2705],{"class":2015}," []",[1957,2707,2475],{"class":1963},[1957,2709,2711,2714],{"class":1959,"line":2710},20,[1957,2712,2713],{"class":2015},"    locales",[1957,2715,2716],{"class":1963},":\n",[1957,2718,2720,2723,2725,2727,2729,2731,2733,2735,2737,2739,2742,2744,2746,2748],{"class":1959,"line":2719},21,[1957,2721,2722],{"class":1970},"      rawLanguages",[1957,2724,1964],{"class":1963},[1957,2726,2554],{"class":1970},[1957,2728,1964],{"class":1963},[1957,2730,2649],{"class":1970},[1957,2732,2652],{"class":1963},[1957,2734,2559],{"class":1967},[1957,2736,1971],{"class":2015},[1957,2738,1971],{"class":1963},[1957,2740,2741],{"class":1981},"lang",[1957,2743,2021],{"class":1963},[1957,2745,1994],{"class":1974},[1957,2747,2401],{"class":2015},[1957,2749,2575],{"class":1963},[1957,2751,2753,2756,2758,2761,2763,2766],{"class":1959,"line":2752},22,[1957,2754,2755],{"class":2015},"        id",[1957,2757,2193],{"class":1963},[1957,2759,2760],{"class":1970}," lang",[1957,2762,1964],{"class":1963},[1957,2764,2765],{"class":1970},"localeId",[1957,2767,2475],{"class":1963},[1957,2769,2771,2774,2776,2778,2780,2782],{"class":1959,"line":2770},23,[1957,2772,2773],{"class":2015},"        languageId",[1957,2775,2193],{"class":1963},[1957,2777,2760],{"class":1970},[1957,2779,1964],{"class":1963},[1957,2781,2132],{"class":1970},[1957,2783,2475],{"class":1963},[1957,2785,2787,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812],{"class":1959,"line":2786},24,[1957,2788,2789],{"class":2015},"        iso",[1957,2791,2193],{"class":1963},[1957,2793,2297],{"class":1967},[1957,2795,1971],{"class":2015},[1957,2797,2741],{"class":1970},[1957,2799,1964],{"class":1963},[1957,2801,2166],{"class":1970},[1957,2803,1985],{"class":1963},[1957,2805,2281],{"class":1963},[1957,2807,1916],{"class":2111},[1957,2809,2108],{"class":1963},[1957,2811,2021],{"class":2015},[1957,2813,2475],{"class":1963},[1957,2815,2817,2820,2822,2824,2826],{"class":1959,"line":2816},25,[1957,2818,2819],{"class":1963},"      }",[1957,2821,2699],{"class":2015},[1957,2823,2702],{"class":1963},[1957,2825,2705],{"class":2015},[1957,2827,2475],{"class":1963},[1957,2829,2831],{"class":1959,"line":2830},26,[1957,2832,2833],{"class":1963},"  };\n",[1957,2835,2837],{"class":1959,"line":2836},27,[1957,2838,2839],{"class":1963},"};\n",[1912,2841,2842,2843,2845],{},"Keep this function pure: it takes a client and returns plain data. No caching, no ",[1916,2844,1941],{},". The next step adds the cache layer.",[2231,2847,2849],{"id":2848},"step-2-cache-it-for-a-day-keyed-by-tenant","Step 2: cache it for a day, keyed by tenant",[1912,2851,2852,2853,2856],{},"Vendor metadata changes rarely (months apart) but must be invalidated when credentials rotate. Use ",[1916,2854,2855],{},"useUserlandCache"," keyed by your API token so a credential change naturally evicts the cache:",[1948,2858,2860],{"className":1950,"code":2859,"filename":2261,"language":1952,"meta":1953,"style":1953},"import { useRuntimeConfig, useUserlandCache } from '#imports';\n\nconst SYSTEM_ENTITIES_TTL = 60 * 60 * 24; // 1 day\n\nexport const getCachedSystemEntities = async (client: StorefrontClient) => {\n  const accessToken = useRuntimeConfig()['@laioutr-app/shopware'].accessToken;\n  const cache = useUserlandCache\u003CSwSystemEntities>(\n    `shopware:${accessToken}:system-entities`,\n  );\n\n  const cached = await cache.getItem('default');\n  if (cached) return cached;\n\n  const fresh = await getSystemEntities(client);\n  await cache.setItem('default', fresh, { ttl: SYSTEM_ENTITIES_TTL });\n  return fresh;\n};\n",[1916,2861,2862,2889,2893,2922,2926,2953,2983,3005,3028,3035,3039,3070,3090,3094,3115,3157,3165],{"__ignoreMap":1953},[1957,2863,2864,2866,2868,2871,2873,2876,2878,2880,2882,2885,2887],{"class":1959,"line":1960},[1957,2865,2268],{"class":2044},[1957,2867,2187],{"class":1963},[1957,2869,2870],{"class":1970}," useRuntimeConfig",[1957,2872,1985],{"class":1963},[1957,2874,2875],{"class":1970}," useUserlandCache",[1957,2877,2211],{"class":1963},[1957,2879,2278],{"class":2044},[1957,2881,2281],{"class":1963},[1957,2883,2884],{"class":2111},"#imports",[1957,2886,2108],{"class":1963},[1957,2888,2024],{"class":1963},[1957,2890,2891],{"class":1959,"line":2000},[1957,2892,2031],{"emptyLinePlaceholder":2030},[1957,2894,2895,2898,2901,2903,2907,2910,2912,2914,2917,2919],{"class":1959,"line":2027},[1957,2896,2897],{"class":1974},"const",[1957,2899,2900],{"class":1970}," SYSTEM_ENTITIES_TTL ",[1957,2902,2120],{"class":1963},[1957,2904,2906],{"class":2905},"sbssI"," 60",[1957,2908,2909],{"class":1963}," *",[1957,2911,2906],{"class":2905},[1957,2913,2909],{"class":1963},[1957,2915,2916],{"class":2905}," 24",[1957,2918,2058],{"class":1963},[1957,2920,2921],{"class":2061}," // 1 day\n",[1957,2923,2924],{"class":1959,"line":2034},[1957,2925,2031],{"emptyLinePlaceholder":2030},[1957,2927,2928,2930,2932,2935,2937,2939,2941,2943,2945,2947,2949,2951],{"class":1959,"line":2065},[1957,2929,2319],{"class":2044},[1957,2931,2390],{"class":1974},[1957,2933,2934],{"class":1970}," getCachedSystemEntities ",[1957,2936,2120],{"class":1963},[1957,2938,2398],{"class":1974},[1957,2940,2401],{"class":1963},[1957,2942,2404],{"class":1981},[1957,2944,2193],{"class":1963},[1957,2946,2273],{"class":2325},[1957,2948,2021],{"class":1963},[1957,2950,1994],{"class":1974},[1957,2952,1997],{"class":1963},[1957,2954,2955,2957,2960,2962,2964,2967,2969,2972,2974,2976,2978,2981],{"class":1959,"line":2094},[1957,2956,2003],{"class":1974},[1957,2958,2959],{"class":1970}," accessToken",[1957,2961,2009],{"class":1963},[1957,2963,2870],{"class":1967},[1957,2965,2966],{"class":2015},"()[",[1957,2968,2108],{"class":1963},[1957,2970,2971],{"class":2111},"@laioutr-app/shopware",[1957,2973,2108],{"class":1963},[1957,2975,2377],{"class":2015},[1957,2977,1964],{"class":1963},[1957,2979,2980],{"class":1970},"accessToken",[1957,2982,2024],{"class":1963},[1957,2984,2985,2987,2990,2992,2994,2996,2999,3002],{"class":1959,"line":2140},[1957,2986,2003],{"class":1974},[1957,2988,2989],{"class":1970}," cache",[1957,2991,2009],{"class":1963},[1957,2993,2875],{"class":1967},[1957,2995,2334],{"class":1963},[1957,2997,2998],{"class":2325},"SwSystemEntities",[1957,3000,3001],{"class":1963},">",[1957,3003,3004],{"class":2015},"(\n",[1957,3006,3007,3010,3013,3016,3018,3020,3023,3026],{"class":1959,"line":2176},[1957,3008,3009],{"class":1963},"    `",[1957,3011,3012],{"class":2111},"shopware:",[1957,3014,3015],{"class":1963},"${",[1957,3017,2980],{"class":1970},[1957,3019,2225],{"class":1963},[1957,3021,3022],{"class":2111},":system-entities",[1957,3024,3025],{"class":1963},"`",[1957,3027,2475],{"class":1963},[1957,3029,3030,3033],{"class":1959,"line":2181},[1957,3031,3032],{"class":2015},"  )",[1957,3034,2024],{"class":1963},[1957,3036,3037],{"class":1959,"line":2222},[1957,3038,2031],{"emptyLinePlaceholder":2030},[1957,3040,3041,3043,3046,3048,3050,3052,3054,3057,3059,3061,3064,3066,3068],{"class":1959,"line":2499},[1957,3042,2003],{"class":1974},[1957,3044,3045],{"class":1970}," cached",[1957,3047,2009],{"class":1963},[1957,3049,2045],{"class":2044},[1957,3051,2989],{"class":1970},[1957,3053,1964],{"class":1963},[1957,3055,3056],{"class":1967},"getItem",[1957,3058,1971],{"class":2015},[1957,3060,2108],{"class":1963},[1957,3062,3063],{"class":2111},"default",[1957,3065,2108],{"class":1963},[1957,3067,2021],{"class":2015},[1957,3069,2024],{"class":1963},[1957,3071,3072,3075,3077,3080,3083,3086,3088],{"class":1959,"line":2521},[1957,3073,3074],{"class":2044},"  if",[1957,3076,2401],{"class":2015},[1957,3078,3079],{"class":1970},"cached",[1957,3081,3082],{"class":2015},") ",[1957,3084,3085],{"class":2044},"return",[1957,3087,3045],{"class":1970},[1957,3089,2024],{"class":1963},[1957,3091,3092],{"class":1959,"line":2529},[1957,3093,2031],{"emptyLinePlaceholder":2030},[1957,3095,3096,3098,3101,3103,3105,3107,3109,3111,3113],{"class":1959,"line":2534},[1957,3097,2003],{"class":1974},[1957,3099,3100],{"class":1970}," fresh",[1957,3102,2009],{"class":1963},[1957,3104,2045],{"class":2044},[1957,3106,2343],{"class":1967},[1957,3108,1971],{"class":2015},[1957,3110,2404],{"class":1970},[1957,3112,2021],{"class":2015},[1957,3114,2024],{"class":1963},[1957,3116,3117,3120,3122,3124,3127,3129,3131,3133,3135,3137,3139,3141,3143,3146,3148,3151,3153,3155],{"class":1959,"line":2541},[1957,3118,3119],{"class":2044},"  await",[1957,3121,2989],{"class":1970},[1957,3123,1964],{"class":1963},[1957,3125,3126],{"class":1967},"setItem",[1957,3128,1971],{"class":2015},[1957,3130,2108],{"class":1963},[1957,3132,3063],{"class":2111},[1957,3134,2108],{"class":1963},[1957,3136,1985],{"class":1963},[1957,3138,3100],{"class":1970},[1957,3140,1985],{"class":1963},[1957,3142,2187],{"class":1963},[1957,3144,3145],{"class":2015}," ttl",[1957,3147,2193],{"class":1963},[1957,3149,3150],{"class":1970}," SYSTEM_ENTITIES_TTL",[1957,3152,2211],{"class":1963},[1957,3154,2021],{"class":2015},[1957,3156,2024],{"class":1963},[1957,3158,3159,3161,3163],{"class":1959,"line":2578},[1957,3160,2184],{"class":2044},[1957,3162,3100],{"class":1970},[1957,3164,2024],{"class":1963},[1957,3166,3167],{"class":1959,"line":2595},[1957,3168,2839],{"class":1963},[1912,3170,3171,3172,3176],{},"A 1-day TTL is the right ballpark for currency and language lists. For higher-churn data (price tier IDs, sales channel changes), drop to an hour. See ",[3173,3174,270],"a",{"href":3175},"./userland-cache-patterns#in-the-prefix-invalidate-as-a-unit"," for why the access token belongs in the cache prefix, not the value.",[2231,3178,3180],{"id":3179},"step-3-resolve-clientenv-against-the-metadata","Step 3: resolve clientEnv against the metadata",[1912,3182,3183,3184,3186,3187,1931,3190,1931,3193,3196],{},"Vendor locale formats rarely line up with BCP47 strings. A request for ",[1916,3185,1922],{}," might find ",[1916,3188,3189],{},"de_DE",[1916,3191,3192],{},"de-de",[1916,3194,3195],{},"de",", or no German at all. Apply a fallback ladder so a request never hard-fails on a locale mismatch:",[1948,3198,3201],{"className":1950,"code":3199,"filename":3200,"language":1952,"meta":1953,"style":1953},"import { ClientEnv } from '@laioutr-core/orchestr/types';\nimport { SwSystemEntities, SwSystemLocale } from './getSystemEntities';\n\nconst findBestLocale = (locales: SwSystemLocale[], clientLocale: string): SwSystemLocale => {\n  if (locales.length === 0) throw new Error('No locales available');\n\n  const normalize = (s: string) => s.replace('_', '-').toLowerCase();\n  const wanted = normalize(clientLocale);\n  const normalized = locales.map((l) => ({ ...l, isoNorm: normalize(l.iso) }));\n\n  // 1. Exact match (case-insensitive, treating de_DE and de-DE as equal).\n  const exact = normalized.find((l) => l.isoNorm === wanted);\n  if (exact) return exact;\n\n  // 2. Language-only match (de matches de-AT, de-CH).\n  const language = wanted.split('-')[0];\n  const byLanguage = normalized.find((l) => l.isoNorm.split('-')[0] === language);\n  if (byLanguage) return byLanguage;\n\n  // 3. Fall back to English in any region.\n  const english = normalized.find((l) => l.isoNorm.startsWith('en'));\n  if (english) return english;\n\n  // 4. Anything is better than nothing.\n  return locales[0];\n};\n\nexport const getCurrentSystemEntities = (system: SwSystemEntities, clientEnv: ClientEnv) => {\n  const locale = findBestLocale(system.locales, clientEnv.locale);\n  const currency = system.currencies.find((c) => c.iso === clientEnv.currency) ?? system.currencies[0];\n  const country = system.countries.find((c) => c.iso === new Intl.Locale(clientEnv.locale).region) ?? system.countries[0];\n  return { locale, currency, country };\n};\n","server/shopware-helper/system/getCurrentSystemEntities.ts",[1916,3202,3203,3225,3250,3254,3293,3336,3340,3400,3420,3481,3485,3490,3532,3549,3553,3558,3592,3650,3667,3671,3676,3725,3742,3746,3751,3765,3769,3773,3808,3841,3905,3987,4007],{"__ignoreMap":1953},[1957,3204,3205,3207,3209,3212,3214,3216,3218,3221,3223],{"class":1959,"line":1960},[1957,3206,2268],{"class":2044},[1957,3208,2187],{"class":1963},[1957,3210,3211],{"class":1970}," ClientEnv",[1957,3213,2211],{"class":1963},[1957,3215,2278],{"class":2044},[1957,3217,2281],{"class":1963},[1957,3219,3220],{"class":2111},"@laioutr-core/orchestr/types",[1957,3222,2108],{"class":1963},[1957,3224,2024],{"class":1963},[1957,3226,3227,3229,3231,3233,3235,3237,3239,3241,3243,3246,3248],{"class":1959,"line":2000},[1957,3228,2268],{"class":2044},[1957,3230,2187],{"class":1963},[1957,3232,2326],{"class":1970},[1957,3234,1985],{"class":1963},[1957,3236,2355],{"class":1970},[1957,3238,2211],{"class":1963},[1957,3240,2278],{"class":2044},[1957,3242,2281],{"class":1963},[1957,3244,3245],{"class":2111},"./getSystemEntities",[1957,3247,2108],{"class":1963},[1957,3249,2024],{"class":1963},[1957,3251,3252],{"class":1959,"line":2027},[1957,3253,2031],{"emptyLinePlaceholder":2030},[1957,3255,3256,3258,3261,3263,3265,3267,3269,3271,3274,3276,3279,3281,3284,3287,3289,3291],{"class":1959,"line":2034},[1957,3257,2897],{"class":1974},[1957,3259,3260],{"class":1970}," findBestLocale ",[1957,3262,2120],{"class":1963},[1957,3264,2401],{"class":1963},[1957,3266,2366],{"class":1981},[1957,3268,2193],{"class":1963},[1957,3270,2355],{"class":2325},[1957,3272,3273],{"class":1970},"[]",[1957,3275,1985],{"class":1963},[1957,3277,3278],{"class":1981}," clientLocale",[1957,3280,2193],{"class":1963},[1957,3282,3283],{"class":2325}," string",[1957,3285,3286],{"class":1963},"):",[1957,3288,2355],{"class":2325},[1957,3290,1994],{"class":1974},[1957,3292,1997],{"class":1963},[1957,3294,3295,3297,3299,3301,3303,3306,3309,3312,3314,3317,3320,3323,3325,3327,3330,3332,3334],{"class":1959,"line":2065},[1957,3296,3074],{"class":2044},[1957,3298,2401],{"class":2015},[1957,3300,2366],{"class":1970},[1957,3302,1964],{"class":1963},[1957,3304,3305],{"class":1970},"length",[1957,3307,3308],{"class":1963}," ===",[1957,3310,3311],{"class":2905}," 0",[1957,3313,3082],{"class":2015},[1957,3315,3316],{"class":2044},"throw",[1957,3318,3319],{"class":1963}," new",[1957,3321,3322],{"class":1967}," Error",[1957,3324,1971],{"class":2015},[1957,3326,2108],{"class":1963},[1957,3328,3329],{"class":2111},"No locales available",[1957,3331,2108],{"class":1963},[1957,3333,2021],{"class":2015},[1957,3335,2024],{"class":1963},[1957,3337,3338],{"class":1959,"line":2094},[1957,3339,2031],{"emptyLinePlaceholder":2030},[1957,3341,3342,3344,3347,3349,3351,3354,3356,3358,3360,3362,3365,3367,3370,3372,3374,3377,3379,3381,3383,3386,3388,3390,3392,3395,3398],{"class":1959,"line":2140},[1957,3343,2003],{"class":1974},[1957,3345,3346],{"class":1970}," normalize",[1957,3348,2009],{"class":1963},[1957,3350,2401],{"class":1963},[1957,3352,3353],{"class":1981},"s",[1957,3355,2193],{"class":1963},[1957,3357,3283],{"class":2325},[1957,3359,2021],{"class":1963},[1957,3361,1994],{"class":1974},[1957,3363,3364],{"class":1970}," s",[1957,3366,1964],{"class":1963},[1957,3368,3369],{"class":1967},"replace",[1957,3371,1971],{"class":2015},[1957,3373,2108],{"class":1963},[1957,3375,3376],{"class":2111},"_",[1957,3378,2108],{"class":1963},[1957,3380,1985],{"class":1963},[1957,3382,2281],{"class":1963},[1957,3384,3385],{"class":2111},"-",[1957,3387,2108],{"class":1963},[1957,3389,2021],{"class":2015},[1957,3391,1964],{"class":1963},[1957,3393,3394],{"class":1967},"toLowerCase",[1957,3396,3397],{"class":2015},"()",[1957,3399,2024],{"class":1963},[1957,3401,3402,3404,3407,3409,3411,3413,3416,3418],{"class":1959,"line":2176},[1957,3403,2003],{"class":1974},[1957,3405,3406],{"class":1970}," wanted",[1957,3408,2009],{"class":1963},[1957,3410,3346],{"class":1967},[1957,3412,1971],{"class":2015},[1957,3414,3415],{"class":1970},"clientLocale",[1957,3417,2021],{"class":2015},[1957,3419,2024],{"class":1963},[1957,3421,3422,3424,3427,3429,3432,3434,3436,3438,3440,3443,3445,3447,3449,3451,3454,3456,3458,3461,3463,3465,3467,3469,3471,3473,3475,3477,3479],{"class":1959,"line":2181},[1957,3423,2003],{"class":1974},[1957,3425,3426],{"class":1970}," normalized",[1957,3428,2009],{"class":1963},[1957,3430,3431],{"class":1970}," locales",[1957,3433,1964],{"class":1963},[1957,3435,2559],{"class":1967},[1957,3437,1971],{"class":2015},[1957,3439,1971],{"class":1963},[1957,3441,3442],{"class":1981},"l",[1957,3444,2021],{"class":1963},[1957,3446,1994],{"class":1974},[1957,3448,2401],{"class":2015},[1957,3450,2669],{"class":1963},[1957,3452,3453],{"class":1963}," ...",[1957,3455,3442],{"class":1970},[1957,3457,1985],{"class":1963},[1957,3459,3460],{"class":2015}," isoNorm",[1957,3462,2193],{"class":1963},[1957,3464,3346],{"class":1967},[1957,3466,1971],{"class":2015},[1957,3468,3442],{"class":1970},[1957,3470,1964],{"class":1963},[1957,3472,2694],{"class":1970},[1957,3474,3082],{"class":2015},[1957,3476,2225],{"class":1963},[1957,3478,2628],{"class":2015},[1957,3480,2024],{"class":1963},[1957,3482,3483],{"class":1959,"line":2222},[1957,3484,2031],{"emptyLinePlaceholder":2030},[1957,3486,3487],{"class":1959,"line":2499},[1957,3488,3489],{"class":2061},"  // 1. Exact match (case-insensitive, treating de_DE and de-DE as equal).\n",[1957,3491,3492,3494,3497,3499,3501,3503,3506,3508,3510,3512,3514,3516,3519,3521,3524,3526,3528,3530],{"class":1959,"line":2521},[1957,3493,2003],{"class":1974},[1957,3495,3496],{"class":1970}," exact",[1957,3498,2009],{"class":1963},[1957,3500,3426],{"class":1970},[1957,3502,1964],{"class":1963},[1957,3504,3505],{"class":1967},"find",[1957,3507,1971],{"class":2015},[1957,3509,1971],{"class":1963},[1957,3511,3442],{"class":1981},[1957,3513,2021],{"class":1963},[1957,3515,1994],{"class":1974},[1957,3517,3518],{"class":1970}," l",[1957,3520,1964],{"class":1963},[1957,3522,3523],{"class":1970},"isoNorm",[1957,3525,3308],{"class":1963},[1957,3527,3406],{"class":1970},[1957,3529,2021],{"class":2015},[1957,3531,2024],{"class":1963},[1957,3533,3534,3536,3538,3541,3543,3545,3547],{"class":1959,"line":2529},[1957,3535,3074],{"class":2044},[1957,3537,2401],{"class":2015},[1957,3539,3540],{"class":1970},"exact",[1957,3542,3082],{"class":2015},[1957,3544,3085],{"class":2044},[1957,3546,3496],{"class":1970},[1957,3548,2024],{"class":1963},[1957,3550,3551],{"class":1959,"line":2534},[1957,3552,2031],{"emptyLinePlaceholder":2030},[1957,3554,3555],{"class":1959,"line":2541},[1957,3556,3557],{"class":2061},"  // 2. Language-only match (de matches de-AT, de-CH).\n",[1957,3559,3560,3562,3565,3567,3569,3571,3574,3576,3578,3580,3582,3585,3588,3590],{"class":1959,"line":2578},[1957,3561,2003],{"class":1974},[1957,3563,3564],{"class":1970}," language",[1957,3566,2009],{"class":1963},[1957,3568,3406],{"class":1970},[1957,3570,1964],{"class":1963},[1957,3572,3573],{"class":1967},"split",[1957,3575,1971],{"class":2015},[1957,3577,2108],{"class":1963},[1957,3579,3385],{"class":2111},[1957,3581,2108],{"class":1963},[1957,3583,3584],{"class":2015},")[",[1957,3586,3587],{"class":2905},"0",[1957,3589,2377],{"class":2015},[1957,3591,2024],{"class":1963},[1957,3593,3594,3596,3599,3601,3603,3605,3607,3609,3611,3613,3615,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635,3637,3639,3641,3644,3646,3648],{"class":1959,"line":2595},[1957,3595,2003],{"class":1974},[1957,3597,3598],{"class":1970}," byLanguage",[1957,3600,2009],{"class":1963},[1957,3602,3426],{"class":1970},[1957,3604,1964],{"class":1963},[1957,3606,3505],{"class":1967},[1957,3608,1971],{"class":2015},[1957,3610,1971],{"class":1963},[1957,3612,3442],{"class":1981},[1957,3614,2021],{"class":1963},[1957,3616,1994],{"class":1974},[1957,3618,3518],{"class":1970},[1957,3620,1964],{"class":1963},[1957,3622,3523],{"class":1970},[1957,3624,1964],{"class":1963},[1957,3626,3573],{"class":1967},[1957,3628,1971],{"class":2015},[1957,3630,2108],{"class":1963},[1957,3632,3385],{"class":2111},[1957,3634,2108],{"class":1963},[1957,3636,3584],{"class":2015},[1957,3638,3587],{"class":2905},[1957,3640,2117],{"class":2015},[1957,3642,3643],{"class":1963},"===",[1957,3645,3564],{"class":1970},[1957,3647,2021],{"class":2015},[1957,3649,2024],{"class":1963},[1957,3651,3652,3654,3656,3659,3661,3663,3665],{"class":1959,"line":2622},[1957,3653,3074],{"class":2044},[1957,3655,2401],{"class":2015},[1957,3657,3658],{"class":1970},"byLanguage",[1957,3660,3082],{"class":2015},[1957,3662,3085],{"class":2044},[1957,3664,3598],{"class":1970},[1957,3666,2024],{"class":1963},[1957,3668,3669],{"class":1959,"line":2633},[1957,3670,2031],{"emptyLinePlaceholder":2030},[1957,3672,3673],{"class":1959,"line":2710},[1957,3674,3675],{"class":2061},"  // 3. Fall back to English in any region.\n",[1957,3677,3678,3680,3683,3685,3687,3689,3691,3693,3695,3697,3699,3701,3703,3705,3707,3709,3712,3714,3716,3719,3721,3723],{"class":1959,"line":2719},[1957,3679,2003],{"class":1974},[1957,3681,3682],{"class":1970}," english",[1957,3684,2009],{"class":1963},[1957,3686,3426],{"class":1970},[1957,3688,1964],{"class":1963},[1957,3690,3505],{"class":1967},[1957,3692,1971],{"class":2015},[1957,3694,1971],{"class":1963},[1957,3696,3442],{"class":1981},[1957,3698,2021],{"class":1963},[1957,3700,1994],{"class":1974},[1957,3702,3518],{"class":1970},[1957,3704,1964],{"class":1963},[1957,3706,3523],{"class":1970},[1957,3708,1964],{"class":1963},[1957,3710,3711],{"class":1967},"startsWith",[1957,3713,1971],{"class":2015},[1957,3715,2108],{"class":1963},[1957,3717,3718],{"class":2111},"en",[1957,3720,2108],{"class":1963},[1957,3722,2628],{"class":2015},[1957,3724,2024],{"class":1963},[1957,3726,3727,3729,3731,3734,3736,3738,3740],{"class":1959,"line":2752},[1957,3728,3074],{"class":2044},[1957,3730,2401],{"class":2015},[1957,3732,3733],{"class":1970},"english",[1957,3735,3082],{"class":2015},[1957,3737,3085],{"class":2044},[1957,3739,3682],{"class":1970},[1957,3741,2024],{"class":1963},[1957,3743,3744],{"class":1959,"line":2770},[1957,3745,2031],{"emptyLinePlaceholder":2030},[1957,3747,3748],{"class":1959,"line":2786},[1957,3749,3750],{"class":2061},"  // 4. Anything is better than nothing.\n",[1957,3752,3753,3755,3757,3759,3761,3763],{"class":1959,"line":2816},[1957,3754,2184],{"class":2044},[1957,3756,3431],{"class":1970},[1957,3758,2105],{"class":2015},[1957,3760,3587],{"class":2905},[1957,3762,2377],{"class":2015},[1957,3764,2024],{"class":1963},[1957,3766,3767],{"class":1959,"line":2830},[1957,3768,2839],{"class":1963},[1957,3770,3771],{"class":1959,"line":2836},[1957,3772,2031],{"emptyLinePlaceholder":2030},[1957,3774,3776,3778,3780,3783,3785,3787,3790,3792,3794,3796,3798,3800,3802,3804,3806],{"class":1959,"line":3775},28,[1957,3777,2319],{"class":2044},[1957,3779,2390],{"class":1974},[1957,3781,3782],{"class":1970}," getCurrentSystemEntities ",[1957,3784,2120],{"class":1963},[1957,3786,2401],{"class":1963},[1957,3788,3789],{"class":1981},"system",[1957,3791,2193],{"class":1963},[1957,3793,2326],{"class":2325},[1957,3795,1985],{"class":1963},[1957,3797,1988],{"class":1981},[1957,3799,2193],{"class":1963},[1957,3801,3211],{"class":2325},[1957,3803,2021],{"class":1963},[1957,3805,1994],{"class":1974},[1957,3807,1997],{"class":1963},[1957,3809,3811,3813,3816,3818,3821,3823,3825,3827,3829,3831,3833,3835,3837,3839],{"class":1959,"line":3810},29,[1957,3812,2003],{"class":1974},[1957,3814,3815],{"class":1970}," locale",[1957,3817,2009],{"class":1963},[1957,3819,3820],{"class":1967}," findBestLocale",[1957,3822,1971],{"class":2015},[1957,3824,3789],{"class":1970},[1957,3826,1964],{"class":1963},[1957,3828,2366],{"class":1970},[1957,3830,1985],{"class":1963},[1957,3832,1988],{"class":1970},[1957,3834,1964],{"class":1963},[1957,3836,2166],{"class":1970},[1957,3838,2021],{"class":2015},[1957,3840,2024],{"class":1963},[1957,3842,3844,3846,3849,3851,3854,3856,3859,3861,3863,3865,3867,3869,3871,3873,3875,3877,3879,3881,3883,3885,3887,3889,3891,3893,3895,3897,3899,3901,3903],{"class":1959,"line":3843},30,[1957,3845,2003],{"class":1974},[1957,3847,3848],{"class":1970}," currency",[1957,3850,2009],{"class":1963},[1957,3852,3853],{"class":1970}," system",[1957,3855,1964],{"class":1963},[1957,3857,3858],{"class":1970},"currencies",[1957,3860,1964],{"class":1963},[1957,3862,3505],{"class":1967},[1957,3864,1971],{"class":2015},[1957,3866,1971],{"class":1963},[1957,3868,2566],{"class":1981},[1957,3870,2021],{"class":1963},[1957,3872,1994],{"class":1974},[1957,3874,2586],{"class":1970},[1957,3876,1964],{"class":1963},[1957,3878,2694],{"class":1970},[1957,3880,3308],{"class":1963},[1957,3882,1988],{"class":1970},[1957,3884,1964],{"class":1963},[1957,3886,2127],{"class":1970},[1957,3888,3082],{"class":2015},[1957,3890,2702],{"class":1963},[1957,3892,3853],{"class":1970},[1957,3894,1964],{"class":1963},[1957,3896,3858],{"class":1970},[1957,3898,2105],{"class":2015},[1957,3900,3587],{"class":2905},[1957,3902,2377],{"class":2015},[1957,3904,2024],{"class":1963},[1957,3906,3908,3910,3913,3915,3917,3919,3922,3924,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946,3949,3951,3954,3956,3958,3960,3962,3964,3966,3969,3971,3973,3975,3977,3979,3981,3983,3985],{"class":1959,"line":3907},31,[1957,3909,2003],{"class":1974},[1957,3911,3912],{"class":1970}," country",[1957,3914,2009],{"class":1963},[1957,3916,3853],{"class":1970},[1957,3918,1964],{"class":1963},[1957,3920,3921],{"class":1970},"countries",[1957,3923,1964],{"class":1963},[1957,3925,3505],{"class":1967},[1957,3927,1971],{"class":2015},[1957,3929,1971],{"class":1963},[1957,3931,2566],{"class":1981},[1957,3933,2021],{"class":1963},[1957,3935,1994],{"class":1974},[1957,3937,2586],{"class":1970},[1957,3939,1964],{"class":1963},[1957,3941,2694],{"class":1970},[1957,3943,3308],{"class":1963},[1957,3945,3319],{"class":1963},[1957,3947,3948],{"class":1970}," Intl",[1957,3950,1964],{"class":1963},[1957,3952,3953],{"class":1967},"Locale",[1957,3955,1971],{"class":2015},[1957,3957,1941],{"class":1970},[1957,3959,1964],{"class":1963},[1957,3961,2166],{"class":1970},[1957,3963,2021],{"class":2015},[1957,3965,1964],{"class":1963},[1957,3967,3968],{"class":1970},"region",[1957,3970,3082],{"class":2015},[1957,3972,2702],{"class":1963},[1957,3974,3853],{"class":1970},[1957,3976,1964],{"class":1963},[1957,3978,3921],{"class":1970},[1957,3980,2105],{"class":2015},[1957,3982,3587],{"class":2905},[1957,3984,2377],{"class":2015},[1957,3986,2024],{"class":1963},[1957,3988,3990,3992,3994,3996,3998,4000,4002,4004],{"class":1959,"line":3989},32,[1957,3991,2184],{"class":2044},[1957,3993,2187],{"class":1963},[1957,3995,3815],{"class":1970},[1957,3997,1985],{"class":1963},[1957,3999,3848],{"class":1970},[1957,4001,1985],{"class":1963},[1957,4003,3912],{"class":1970},[1957,4005,4006],{"class":1963}," };\n",[1957,4008,4010],{"class":1959,"line":4009},33,[1957,4011,2839],{"class":1963},[1912,4013,4014],{},"The ladder is sequential, not heuristic. Each rung is a clear rule someone can debug if a customer reports the wrong locale rendering. Currency and country usually only need an exact match plus a \"first available\" fallback. There's no equivalent of language-only matching for ISO 4217.",[2231,4016,4018],{"id":4017},"step-4-wire-it-into-extendrequest","Step 4: wire it into extendRequest",[1912,4020,4021,4022,4025,4026,4029],{},"The full middleware combines all three pieces. Note that handlers downstream see ",[1916,4023,4024],{},"current"," on ",[1916,4027,4028],{},"context.shopware"," and never deal with the raw metadata or the fallback logic:",[1948,4031,4034],{"className":1950,"code":4032,"filename":4033,"language":1952,"meta":1953,"style":1953},"import { defineOrchestr } from '#imports';\nimport { shopwareClientFactory } from '../client/shopwareClientFactory';\nimport { getCachedSystemEntities } from '../shopware-helper/system/getSystemEntities';\nimport { getCurrentSystemEntities } from '../shopware-helper/system/getCurrentSystemEntities';\n\nexport const defineShopware = defineOrchestr\n  .meta({ app: '@laioutr-core/shopware', label: 'Shopware', logoUrl: '/app-shopware/shopware-logo.svg' })\n  .extendRequest(async ({ event, clientEnv }) => {\n    const storefrontClient = shopwareClientFactory(event);\n\n    const systemEntities = await getCachedSystemEntities(storefrontClient);\n    const current = getCurrentSystemEntities(systemEntities, clientEnv);\n\n    storefrontClient.defaultHeaders['sw-currency-id'] = current.currency.id;\n    storefrontClient.defaultHeaders['sw-language-id'] = current.locale.languageId;\n\n    return {\n      context: {\n        shopware: {\n          storefrontClient,\n          current,\n        },\n      },\n    };\n  });\n","server/middleware/defineShopware.ts",[1916,4035,4036,4057,4078,4099,4120,4124,4138,4194,4218,4237,4241,4261,4283,4287,4320,4352,4356,4363,4372,4381,4388,4395,4400,4405,4410],{"__ignoreMap":1953},[1957,4037,4038,4040,4042,4045,4047,4049,4051,4053,4055],{"class":1959,"line":1960},[1957,4039,2268],{"class":2044},[1957,4041,2187],{"class":1963},[1957,4043,4044],{"class":1970}," defineOrchestr",[1957,4046,2211],{"class":1963},[1957,4048,2278],{"class":2044},[1957,4050,2281],{"class":1963},[1957,4052,2884],{"class":2111},[1957,4054,2108],{"class":1963},[1957,4056,2024],{"class":1963},[1957,4058,4059,4061,4063,4065,4067,4069,4071,4074,4076],{"class":1959,"line":2000},[1957,4060,2268],{"class":2044},[1957,4062,2187],{"class":1963},[1957,4064,2012],{"class":1970},[1957,4066,2211],{"class":1963},[1957,4068,2278],{"class":2044},[1957,4070,2281],{"class":1963},[1957,4072,4073],{"class":2111},"../client/shopwareClientFactory",[1957,4075,2108],{"class":1963},[1957,4077,2024],{"class":1963},[1957,4079,4080,4082,4084,4086,4088,4090,4092,4095,4097],{"class":1959,"line":2027},[1957,4081,2268],{"class":2044},[1957,4083,2187],{"class":1963},[1957,4085,2048],{"class":1970},[1957,4087,2211],{"class":1963},[1957,4089,2278],{"class":2044},[1957,4091,2281],{"class":1963},[1957,4093,4094],{"class":2111},"../shopware-helper/system/getSystemEntities",[1957,4096,2108],{"class":1963},[1957,4098,2024],{"class":1963},[1957,4100,4101,4103,4105,4107,4109,4111,4113,4116,4118],{"class":1959,"line":2034},[1957,4102,2268],{"class":2044},[1957,4104,2187],{"class":1963},[1957,4106,2075],{"class":1970},[1957,4108,2211],{"class":1963},[1957,4110,2278],{"class":2044},[1957,4112,2281],{"class":1963},[1957,4114,4115],{"class":2111},"../shopware-helper/system/getCurrentSystemEntities",[1957,4117,2108],{"class":1963},[1957,4119,2024],{"class":1963},[1957,4121,4122],{"class":1959,"line":2065},[1957,4123,2031],{"emptyLinePlaceholder":2030},[1957,4125,4126,4128,4130,4133,4135],{"class":1959,"line":2094},[1957,4127,2319],{"class":2044},[1957,4129,2390],{"class":1974},[1957,4131,4132],{"class":1970}," defineShopware ",[1957,4134,2120],{"class":1963},[1957,4136,4137],{"class":1970}," defineOrchestr\n",[1957,4139,4140,4143,4146,4148,4150,4153,4155,4157,4160,4162,4164,4167,4169,4171,4173,4175,4177,4180,4182,4184,4187,4189,4191],{"class":1959,"line":2140},[1957,4141,4142],{"class":1963},"  .",[1957,4144,4145],{"class":1967},"meta",[1957,4147,1971],{"class":1970},[1957,4149,2669],{"class":1963},[1957,4151,4152],{"class":2015}," app",[1957,4154,2193],{"class":1963},[1957,4156,2281],{"class":1963},[1957,4158,4159],{"class":2111},"@laioutr-core/shopware",[1957,4161,2108],{"class":1963},[1957,4163,1985],{"class":1963},[1957,4165,4166],{"class":2015}," label",[1957,4168,2193],{"class":1963},[1957,4170,2281],{"class":1963},[1957,4172,620],{"class":2111},[1957,4174,2108],{"class":1963},[1957,4176,1985],{"class":1963},[1957,4178,4179],{"class":2015}," logoUrl",[1957,4181,2193],{"class":1963},[1957,4183,2281],{"class":1963},[1957,4185,4186],{"class":2111},"/app-shopware/shopware-logo.svg",[1957,4188,2108],{"class":1963},[1957,4190,2211],{"class":1963},[1957,4192,4193],{"class":1970},")\n",[1957,4195,4196,4198,4200,4202,4204,4206,4208,4210,4212,4214,4216],{"class":1959,"line":2176},[1957,4197,4142],{"class":1963},[1957,4199,1945],{"class":1967},[1957,4201,1971],{"class":1970},[1957,4203,1975],{"class":1974},[1957,4205,1978],{"class":1963},[1957,4207,1982],{"class":1981},[1957,4209,1985],{"class":1963},[1957,4211,1988],{"class":1981},[1957,4213,1991],{"class":1963},[1957,4215,1994],{"class":1974},[1957,4217,1997],{"class":1963},[1957,4219,4220,4223,4225,4227,4229,4231,4233,4235],{"class":1959,"line":2181},[1957,4221,4222],{"class":1974},"    const",[1957,4224,2006],{"class":1970},[1957,4226,2009],{"class":1963},[1957,4228,2012],{"class":1967},[1957,4230,1971],{"class":2015},[1957,4232,2018],{"class":1970},[1957,4234,2021],{"class":2015},[1957,4236,2024],{"class":1963},[1957,4238,4239],{"class":1959,"line":2222},[1957,4240,2031],{"emptyLinePlaceholder":2030},[1957,4242,4243,4245,4247,4249,4251,4253,4255,4257,4259],{"class":1959,"line":2499},[1957,4244,4222],{"class":1974},[1957,4246,2039],{"class":1970},[1957,4248,2009],{"class":1963},[1957,4250,2045],{"class":2044},[1957,4252,2048],{"class":1967},[1957,4254,1971],{"class":2015},[1957,4256,2053],{"class":1970},[1957,4258,2021],{"class":2015},[1957,4260,2024],{"class":1963},[1957,4262,4263,4265,4267,4269,4271,4273,4275,4277,4279,4281],{"class":1959,"line":2521},[1957,4264,4222],{"class":1974},[1957,4266,2070],{"class":1970},[1957,4268,2009],{"class":1963},[1957,4270,2075],{"class":1967},[1957,4272,1971],{"class":2015},[1957,4274,2080],{"class":1970},[1957,4276,1985],{"class":1963},[1957,4278,1988],{"class":1970},[1957,4280,2021],{"class":2015},[1957,4282,2024],{"class":1963},[1957,4284,4285],{"class":1959,"line":2529},[1957,4286,2031],{"emptyLinePlaceholder":2030},[1957,4288,4289,4292,4294,4296,4298,4300,4302,4304,4306,4308,4310,4312,4314,4316,4318],{"class":1959,"line":2534},[1957,4290,4291],{"class":1970},"    storefrontClient",[1957,4293,1964],{"class":1963},[1957,4295,2102],{"class":1970},[1957,4297,2105],{"class":2015},[1957,4299,2108],{"class":1963},[1957,4301,2112],{"class":2111},[1957,4303,2108],{"class":1963},[1957,4305,2117],{"class":2015},[1957,4307,2120],{"class":1963},[1957,4309,2070],{"class":1970},[1957,4311,1964],{"class":1963},[1957,4313,2127],{"class":1970},[1957,4315,1964],{"class":1963},[1957,4317,2132],{"class":1970},[1957,4319,2024],{"class":1963},[1957,4321,4322,4324,4326,4328,4330,4332,4334,4336,4338,4340,4342,4344,4346,4348,4350],{"class":1959,"line":2541},[1957,4323,4291],{"class":1970},[1957,4325,1964],{"class":1963},[1957,4327,2102],{"class":1970},[1957,4329,2105],{"class":2015},[1957,4331,2108],{"class":1963},[1957,4333,2153],{"class":2111},[1957,4335,2108],{"class":1963},[1957,4337,2117],{"class":2015},[1957,4339,2120],{"class":1963},[1957,4341,2070],{"class":1970},[1957,4343,1964],{"class":1963},[1957,4345,2166],{"class":1970},[1957,4347,1964],{"class":1963},[1957,4349,2171],{"class":1970},[1957,4351,2024],{"class":1963},[1957,4353,4354],{"class":1959,"line":2578},[1957,4355,2031],{"emptyLinePlaceholder":2030},[1957,4357,4358,4361],{"class":1959,"line":2595},[1957,4359,4360],{"class":2044},"    return",[1957,4362,1997],{"class":1963},[1957,4364,4365,4368,4370],{"class":1959,"line":2622},[1957,4366,4367],{"class":2015},"      context",[1957,4369,2193],{"class":1963},[1957,4371,1997],{"class":1963},[1957,4373,4374,4377,4379],{"class":1959,"line":2633},[1957,4375,4376],{"class":2015},"        shopware",[1957,4378,2193],{"class":1963},[1957,4380,1997],{"class":1963},[1957,4382,4383,4386],{"class":1959,"line":2710},[1957,4384,4385],{"class":1970},"          storefrontClient",[1957,4387,2475],{"class":1963},[1957,4389,4390,4393],{"class":1959,"line":2719},[1957,4391,4392],{"class":1970},"          current",[1957,4394,2475],{"class":1963},[1957,4396,4397],{"class":1959,"line":2752},[1957,4398,4399],{"class":1963},"        },\n",[1957,4401,4402],{"class":1959,"line":2770},[1957,4403,4404],{"class":1963},"      },\n",[1957,4406,4407],{"class":1959,"line":2786},[1957,4408,4409],{"class":1963},"    };\n",[1957,4411,4412,4415,4417],{"class":1959,"line":2816},[1957,4413,4414],{"class":1963},"  }",[1957,4416,2021],{"class":1970},[1957,4418,2024],{"class":1963},[1912,4420,4421,4422,4425,4426,4429],{},"A handler now reads ",[1916,4423,4424],{},"context.shopware.current.currency.iso"," if it needs the ISO code, or ",[1916,4427,4428],{},"context.shopware.current.locale.languageId"," for vendor IDs, but it never runs the bootstrap. The cache means only the first request after a TTL eviction pays the network cost; the rest are an in-memory map lookup.",[4431,4432,4434],"h3",{"id":4433},"scope-your-context-under-an-app-key","Scope your context under an app key",[1912,4436,4437,4438,4440,4441,4443,4444,4447,4448,1923,4450,4452],{},"The context returned from ",[1916,4439,1945],{}," is shared between every installed app. Orchestr runs all apps' ",[1916,4442,1945],{}," callbacks on each request and shallow-merges their ",[1916,4445,4446],{},"context"," objects into the single arguments object every handler receives. Two apps that both write a top-level ",[1916,4449,4024],{},[1916,4451,2053],{}," key would clobber each other, and the loser depends on registration order.",[1912,4454,4455,4456,4459,4460,1931,4463,4466],{},"Scope everything you contribute under a single app-specific key (",[1916,4457,4458],{},"shopware"," above) or prefix each key with your app's name (",[1916,4461,4462],{},"swStorefrontClient",[1916,4464,4465],{},"swCurrent","). A nested object is usually cleaner: one namespace to read from in handlers, and no chance of a name collision with another connector.",[4468,4469,4470,4471,1931,4473,1931,4475,4478,4479,4482],"warning",{},"Never write generic top-level context keys like ",[1916,4472,2404],{},[1916,4474,4024],{},[1916,4476,4477],{},"config",", or ",[1916,4480,4481],{},"settings",". They are the first names another app will pick too, and the collision surfaces as a hard-to-trace bug where one app's client ends up handling another app's request.",[2231,4484,4486],{"id":4485},"cost-discipline-in-extendrequest","Cost discipline in extendRequest",[1912,4488,4489,4491,4492,4494],{},[1916,4490,1945],{}," runs on every Orchestr request (actions, queries, links, and component resolvers all share the same per-request middleware chain), so the bootstrap call has to stay cheap. The cache layer is what makes that safe: without it, every response would carry the metadata fetch's latency, and a slow vendor would slow the entire storefront. Treat any uncached work in ",[1916,4493,1945],{}," as a hot-path performance bug.",[2231,4496,4498],{"id":4497},"related","Related",[4500,4501,4502,4510,4517],"ul",{},[4503,4504,4505,4509],"li",{},[3173,4506,4508],{"href":4507},"/frontend/orchestr/middleware#extendrequest-per-request-setup","Middleware: extendRequest",": base mechanics of per-request setup.",[4503,4511,4512,4516],{},[3173,4513,4515],{"href":4514},"/frontend/orchestr/caching#userland-cache","Caching: Userland cache",": the cache the bootstrap uses.",[4503,4518,4519,4522],{},[3173,4520,270],{"href":4521},"./userland-cache-patterns"," (recipe): the prefix-vs-key composition rule the bootstrap cache follows.",[4524,4525,4526],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":1953,"searchDepth":2000,"depth":2000,"links":4528},[4529,4530,4531,4532,4533,4536,4537],{"id":2233,"depth":2000,"text":2234},{"id":2253,"depth":2000,"text":2254},{"id":2848,"depth":2000,"text":2849},{"id":3179,"depth":2000,"text":3180},{"id":4017,"depth":2000,"text":4018,"children":4534},[4535],{"id":4433,"depth":2027,"text":4434},{"id":4485,"depth":2000,"text":4486},{"id":4497,"depth":2000,"text":4498},"When your backend needs internal IDs for currency, locale, or sales channel that aren't part of clientEnv, fetch and cache the metadata once, then resolve it on each request.","md",{},{"title":4542,"description":4543},"System bootstrap in extendRequest | Laioutr","When your backend needs internal IDs for currency, locale, or sales channel that aren't in clientEnv, fetch and cache the metadata once, then resolve it on each request.",{"loc":263,"lastmod":4545,"changefreq":4546,"priority":4547},"2026-05-05","monthly",0.9,"2aj0680HWMrEejnrWpdkHsD1lidB8jWpXhNztZz3K_o",[4550,4552],{"title":258,"path":259,"stem":260,"description":4551,"children":-1},"Read-or-create-and-set patterns for cart, session, and visitor identity cookies. Where to put the bootstrap depends on when you need the ID.",{"title":266,"path":267,"stem":268,"description":4553,"children":-1},"Map raw backend errors into canonical Laioutr errors so the storefront UI can render them with no connector-specific code.",1783259601329]