[{"data":1,"prerenderedAt":872},["ShallowReactive",2],{"navigation_docs":3,"-docs-storefront-sdk-getting-started-installation":357,"-docs-storefront-sdk-getting-started-installation-surround":867,"docs-site-config":856},[4,74,135,139,161,195,273],{"title":5,"path":6,"stem":7,"children":8},"Assets API","\u002Fdocs\u002Fassets","docs\u002Fassets\u002Findex",[9,10,32,57],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"children":14,"page":31},"Getting Started","\u002Fdocs\u002Fassets\u002Fgetting-started","docs\u002Fassets\u002F1.getting-started",[15,19,23,27],{"title":16,"path":17,"stem":18},"Base URL","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fbase-url","docs\u002Fassets\u002F1.getting-started\u002F1.base-url",{"title":20,"path":21,"stem":22},"Important Notes","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fimportant-notes","docs\u002Fassets\u002F1.getting-started\u002F2.important-notes",{"title":24,"path":25,"stem":26},"URL Format","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Furl-format","docs\u002Fassets\u002F1.getting-started\u002F3.url-format",{"title":28,"path":29,"stem":30},"Custom Domains","\u002Fdocs\u002Fassets\u002Fgetting-started\u002Fcustom-domains","docs\u002Fassets\u002F1.getting-started\u002F4.custom-domains",false,{"title":33,"path":34,"stem":35,"children":36,"page":31},"Usage","\u002Fdocs\u002Fassets\u002Fusage","docs\u002Fassets\u002F2.usage",[37,41,45,49,53],{"title":38,"path":39,"stem":40},"Transforms","\u002Fdocs\u002Fassets\u002Fusage\u002Ftransforms","docs\u002Fassets\u002F2.usage\u002F1.transforms",{"title":42,"path":43,"stem":44},"Caching","\u002Fdocs\u002Fassets\u002Fusage\u002Fcaching","docs\u002Fassets\u002F2.usage\u002F2.caching",{"title":46,"path":47,"stem":48},"Recipes","\u002Fdocs\u002Fassets\u002Fusage\u002Frecipes","docs\u002Fassets\u002F2.usage\u002F3.recipes",{"title":50,"path":51,"stem":52},"Best Practices","\u002Fdocs\u002Fassets\u002Fusage\u002Fbest-practices","docs\u002Fassets\u002F2.usage\u002F4.best-practices",{"title":54,"path":55,"stem":56},"Reference","\u002Fdocs\u002Fassets\u002Fusage\u002Freference","docs\u002Fassets\u002F2.usage\u002F5.reference",{"title":58,"path":59,"stem":60,"children":61,"page":31},"Integration","\u002Fdocs\u002Fassets\u002Fintegration","docs\u002Fassets\u002F3.integration",[62,66,70],{"title":63,"path":64,"stem":65},"Nuxt","\u002Fdocs\u002Fassets\u002Fintegration\u002Fnuxt","docs\u002Fassets\u002F3.integration\u002F1.nuxt",{"title":67,"path":68,"stem":69},"Next.js","\u002Fdocs\u002Fassets\u002Fintegration\u002Fnextjs","docs\u002Fassets\u002F3.integration\u002F2.nextjs",{"title":71,"path":72,"stem":73},"Plain HTML","\u002Fdocs\u002Fassets\u002Fintegration\u002Fhtml","docs\u002Fassets\u002F3.integration\u002F3.html",{"title":75,"path":76,"stem":77,"children":78},"Avvyr CMS","\u002Fdocs\u002Fcms","docs\u002Fcms\u002Findex",[79,80,92,105,118,131],{"title":75,"path":76,"stem":77},{"title":11,"path":81,"stem":82,"children":83,"page":31},"\u002Fdocs\u002Fcms\u002Fgetting-started","docs\u002Fcms\u002F1.getting-started",[84,88],{"title":85,"path":86,"stem":87},"Quickstart","\u002Fdocs\u002Fcms\u002Fgetting-started\u002Fquickstart","docs\u002Fcms\u002F1.getting-started\u002F1.quickstart",{"title":89,"path":90,"stem":91},"Keys and access","\u002Fdocs\u002Fcms\u002Fgetting-started\u002Fkeys-and-access","docs\u002Fcms\u002F1.getting-started\u002F2.keys-and-access",{"title":93,"path":94,"stem":95,"children":96,"page":31},"Content Model","\u002Fdocs\u002Fcms\u002Fcontent-model","docs\u002Fcms\u002F2.content-model",[97,101],{"title":98,"path":99,"stem":100},"Types and fields","\u002Fdocs\u002Fcms\u002Fcontent-model\u002Ftypes-and-fields","docs\u002Fcms\u002F2.content-model\u002F1.types-and-fields",{"title":102,"path":103,"stem":104},"Entries and publishing","\u002Fdocs\u002Fcms\u002Fcontent-model\u002Fentries-and-publishing","docs\u002Fcms\u002F2.content-model\u002F2.entries-and-publishing",{"title":106,"path":107,"stem":108,"children":109,"page":31},"Delivery","\u002Fdocs\u002Fcms\u002Fdelivery","docs\u002Fcms\u002F3.delivery",[110,114],{"title":111,"path":112,"stem":113},"Delivery API","\u002Fdocs\u002Fcms\u002Fdelivery\u002Fdelivery-api","docs\u002Fcms\u002F3.delivery\u002F1.delivery-api",{"title":115,"path":116,"stem":117},"Preview and live editing","\u002Fdocs\u002Fcms\u002Fdelivery\u002Fpreview","docs\u002Fcms\u002F3.delivery\u002F2.preview",{"title":119,"path":120,"stem":121,"children":122,"page":31},"Frameworks","\u002Fdocs\u002Fcms\u002Fframeworks","docs\u002Fcms\u002F4.frameworks",[123,127],{"title":124,"path":125,"stem":126},"JavaScript client","\u002Fdocs\u002Fcms\u002Fframeworks\u002Fjavascript-client","docs\u002Fcms\u002F4.frameworks\u002F1.javascript-client",{"title":128,"path":129,"stem":130},"Nuxt layer","\u002Fdocs\u002Fcms\u002Fframeworks\u002Fnuxt","docs\u002Fcms\u002F4.frameworks\u002F2.nuxt",{"title":132,"path":133,"stem":134},"Management API","\u002Fdocs\u002Fcms\u002Fmanagement-api","docs\u002Fcms\u002F5.management-api",{"title":136,"path":137,"stem":138},"Early Access","\u002Fdocs\u002Fearly-access","docs\u002Fearly-access",{"title":140,"path":141,"stem":142,"children":143},"Events API","\u002Fdocs\u002Fevents","docs\u002Fevents\u002Findex",[144,145],{"title":140,"path":141,"stem":142},{"title":11,"path":146,"stem":147,"children":148,"page":31},"\u002Fdocs\u002Fevents\u002Fgetting-started","docs\u002Fevents\u002F1.getting-started",[149,153,157],{"title":150,"path":151,"stem":152},"Subscribing","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fsubscribing","docs\u002Fevents\u002F1.getting-started\u002F1.subscribing",{"title":154,"path":155,"stem":156},"Event Delivery","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fevent-delivery","docs\u002Fevents\u002F1.getting-started\u002F2.event-delivery",{"title":158,"path":159,"stem":160},"Event Reference","\u002Fdocs\u002Fevents\u002Fgetting-started\u002Fevent-reference","docs\u002Fevents\u002F1.getting-started\u002F3.event-reference",{"title":162,"path":163,"stem":164,"children":165},"Integrations API","\u002Fdocs\u002Fintegrations","docs\u002Fintegrations\u002Findex",[166,167],{"title":162,"path":163,"stem":164},{"title":11,"path":168,"stem":169,"children":170,"page":31},"\u002Fdocs\u002Fintegrations\u002Fgetting-started","docs\u002Fintegrations\u002F1.getting-started",[171,175,179,183,187,191],{"title":172,"path":173,"stem":174},"Why Use It?","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fwhy-integrations-api","docs\u002Fintegrations\u002F1.getting-started\u002F1.why-integrations-api",{"title":176,"path":177,"stem":178},"Use Cases","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fwho-is-it-for","docs\u002Fintegrations\u002F1.getting-started\u002F2.who-is-it-for",{"title":180,"path":181,"stem":182},"Pre-built Connectors","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fpre-built-integrations","docs\u002Fintegrations\u002F1.getting-started\u002F3.pre-built-integrations",{"title":184,"path":185,"stem":186},"Custom Inbound","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fcustom-inbound-api","docs\u002Fintegrations\u002F1.getting-started\u002F4.custom-inbound-api",{"title":188,"path":189,"stem":190},"Event Lifecycle","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fevent-lifecycle","docs\u002Fintegrations\u002F1.getting-started\u002F5.event-lifecycle",{"title":192,"path":193,"stem":194},"API Endpoints","\u002Fdocs\u002Fintegrations\u002Fgetting-started\u002Fmanagement-api-endpoints","docs\u002Fintegrations\u002F1.getting-started\u002F6.management-api-endpoints",{"title":196,"path":197,"stem":198,"children":199},"MCP Server","\u002Fdocs\u002Fmcp","docs\u002Fmcp\u002Findex",[200,201,225,234,244],{"title":196,"path":197,"stem":198},{"title":11,"path":202,"stem":203,"children":204,"page":31},"\u002Fdocs\u002Fmcp\u002Fgetting-started","docs\u002Fmcp\u002F1.getting-started",[205,209,213,217,221],{"title":206,"path":207,"stem":208},"Claude","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fclaude","docs\u002Fmcp\u002F1.getting-started\u002F1.claude",{"title":210,"path":211,"stem":212},"Claude Code","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fclaude-code","docs\u002Fmcp\u002F1.getting-started\u002F2.claude-code",{"title":214,"path":215,"stem":216},"VS Code","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fvscode","docs\u002Fmcp\u002F1.getting-started\u002F3.vscode",{"title":218,"path":219,"stem":220},"Cursor","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fcursor","docs\u002Fmcp\u002F1.getting-started\u002F4.cursor",{"title":222,"path":223,"stem":224},"Verify the connection","\u002Fdocs\u002Fmcp\u002Fgetting-started\u002Fverify","docs\u002Fmcp\u002F1.getting-started\u002F5.verify",{"title":226,"path":227,"stem":228,"children":229,"page":31},"Docs Server","\u002Fdocs\u002Fmcp\u002Fdocs-server","docs\u002Fmcp\u002F2.docs-server",[230],{"title":231,"path":232,"stem":233},"Docs server tools","\u002Fdocs\u002Fmcp\u002Fdocs-server\u002Ftools","docs\u002Fmcp\u002F2.docs-server\u002F1.tools",{"title":235,"path":236,"stem":237,"children":238},"API Server","\u002Fdocs\u002Fmcp\u002Fapi-server","docs\u002Fmcp\u002F3.api-server\u002Findex",[239,240],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"Available tools","\u002Fdocs\u002Fmcp\u002Fapi-server\u002Ftools","docs\u002Fmcp\u002F3.api-server\u002F1.tools",{"title":245,"path":246,"stem":247,"children":248,"page":31},"Examples","\u002Fdocs\u002Fmcp\u002Fexamples","docs\u002Fmcp\u002F4.examples",[249,253,257,261,265,269],{"title":250,"path":251,"stem":252},"Exploring an API","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fexploring-an-api","docs\u002Fmcp\u002F4.examples\u002F1.exploring-an-api",{"title":254,"path":255,"stem":256},"Building a Feature","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fbuilding-a-feature","docs\u002Fmcp\u002F4.examples\u002F2.building-a-feature",{"title":258,"path":259,"stem":260},"Understanding Models","\u002Fdocs\u002Fmcp\u002Fexamples\u002Funderstanding-models","docs\u002Fmcp\u002F4.examples\u002F3.understanding-models",{"title":262,"path":263,"stem":264},"Code Review","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fcode-review","docs\u002Fmcp\u002F4.examples\u002F4.code-review",{"title":266,"path":267,"stem":268},"Combining MCP Servers","\u002Fdocs\u002Fmcp\u002Fexamples\u002Fmulti-mcp","docs\u002Fmcp\u002F4.examples\u002F5.multi-mcp",{"title":270,"path":271,"stem":272},"Tips","\u002Fdocs\u002Fmcp\u002Fexamples\u002Ftips","docs\u002Fmcp\u002F4.examples\u002F6.tips",{"title":274,"path":275,"stem":276,"children":277,"page":31},"Storefront SDK","\u002Fdocs\u002Fstorefront-sdk","docs\u002Fstorefront-sdk",[278,290,323,338],{"title":11,"path":279,"stem":280,"children":281,"page":31},"\u002Fdocs\u002Fstorefront-sdk\u002Fgetting-started","docs\u002Fstorefront-sdk\u002F1.getting-started",[282,286],{"title":283,"path":284,"stem":285},"Installation","\u002Fdocs\u002Fstorefront-sdk\u002Fgetting-started\u002Finstallation","docs\u002Fstorefront-sdk\u002F1.getting-started\u002F1.installation",{"title":287,"path":288,"stem":289},"Configuration","\u002Fdocs\u002Fstorefront-sdk\u002Fgetting-started\u002Fconfiguration","docs\u002Fstorefront-sdk\u002F1.getting-started\u002F2.configuration",{"title":291,"path":292,"stem":293,"children":294,"page":31},"Resources","\u002Fdocs\u002Fstorefront-sdk\u002Fresources","docs\u002Fstorefront-sdk\u002F2.resources",[295,299,303,307,311,315,319],{"title":296,"path":297,"stem":298},"Products","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fproducts","docs\u002Fstorefront-sdk\u002F2.resources\u002F1.products",{"title":300,"path":301,"stem":302},"Cart","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fcart","docs\u002Fstorefront-sdk\u002F2.resources\u002F2.cart",{"title":304,"path":305,"stem":306},"Auth","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fauth","docs\u002Fstorefront-sdk\u002F2.resources\u002F3.auth",{"title":308,"path":309,"stem":310},"Checkout & Shipping","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fcheckout-shipping","docs\u002Fstorefront-sdk\u002F2.resources\u002F4.checkout-shipping",{"title":312,"path":313,"stem":314},"Orders, Returns & Reviews","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Forders-returns-reviews","docs\u002Fstorefront-sdk\u002F2.resources\u002F5.orders-returns-reviews",{"title":316,"path":317,"stem":318},"Customer assistant","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fassistant","docs\u002Fstorefront-sdk\u002F2.resources\u002F6.assistant",{"title":320,"path":321,"stem":322},"Products in images","\u002Fdocs\u002Fstorefront-sdk\u002Fresources\u002Fproducts-in-images","docs\u002Fstorefront-sdk\u002F2.resources\u002F7.products-in-images",{"title":128,"path":324,"stem":325,"children":326,"page":31},"\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer","docs\u002Fstorefront-sdk\u002F3.nuxt-layer",[327,331,335],{"title":328,"path":329,"stem":330},"Overview","\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer\u002Foverview","docs\u002Fstorefront-sdk\u002F3.nuxt-layer\u002F1.overview",{"title":332,"path":333,"stem":334},"Composables","\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer\u002Fcomposables","docs\u002Fstorefront-sdk\u002F3.nuxt-layer\u002F2.composables",{"title":316,"path":336,"stem":337},"\u002Fdocs\u002Fstorefront-sdk\u002Fnuxt-layer\u002Fassistant","docs\u002Fstorefront-sdk\u002F3.nuxt-layer\u002F3.assistant",{"title":67,"path":339,"stem":340,"children":341,"page":31},"\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs","docs\u002Fstorefront-sdk\u002F4.nextjs",[342,345,349,353],{"title":328,"path":343,"stem":344},"\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Foverview","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F1.overview",{"title":346,"path":347,"stem":348},"Hooks","\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Fhooks","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F2.hooks",{"title":350,"path":351,"stem":352},"Server helpers and proxy","\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Fserver","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F3.server",{"title":354,"path":355,"stem":356},"Components","\u002Fdocs\u002Fstorefront-sdk\u002Fnextjs\u002Fcomponents","docs\u002Fstorefront-sdk\u002F4.nextjs\u002F4.components",{"id":358,"title":283,"body":359,"description":854,"extension":855,"links":856,"meta":857,"navigation":601,"path":284,"seo":865,"stem":285,"__hash__":866},"docs\u002Fdocs\u002Fstorefront-sdk\u002F1.getting-started\u002F1.installation.md",{"type":360,"value":361,"toc":846},"minimark",[362,367,376,435,438,487,494,497,523,526,530,538,542,557,561,688,691,695,702,806,815,819,842],[363,364,366],"h2",{"id":365},"starter-templates","Starter templates",[368,369,370,371,375],"p",{},"The fastest way to launch a storefront is to start from an ",[372,373,374],"strong",{},"Avvyr Storefront Starter",". It is a complete project with product listing, search, cart, checkout, auth and account pages already wired up. There is one for each framework:",[377,378,379,395],"table",{},[380,381,382],"thead",{},[383,384,385,389,392],"tr",{},[386,387,388],"th",{},"Starter",[386,390,391],{},"Built on",[386,393,394],{},"Stack",[396,397,398,418],"tbody",{},[383,399,400,406,415],{},[401,402,403],"td",{},[372,404,405],{},"Nuxt Storefront Starter",[401,407,408],{},[409,410,411],"a",{"href":329},[412,413,414],"code",{},"@avvyr\u002Fstorefront-nuxt",[401,416,417],{},"Nuxt 4, Nuxt UI, Tailwind CSS",[383,419,420,425,432],{},[401,421,422],{},[372,423,424],{},"Next.js Storefront Starter",[401,426,427],{},[409,428,429],{"href":343},[412,430,431],{},"@avvyr\u002Fstorefront-next",[401,433,434],{},"Next.js 16 (App Router), React 19, Tailwind CSS",[368,436,437],{},"Ask your Avvyr contact for access to the starter repository, then:",[439,440,445],"pre",{"className":441,"code":442,"language":443,"meta":444,"style":444},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","cp .env.example .env   # Nuxt; for Next.js: cp .env.example .env.local\nnpm install\nnpm run dev\n","bash","",[412,446,447,467,476],{"__ignoreMap":444},[448,449,452,456,460,463],"span",{"class":450,"line":451},"line",1,[448,453,455],{"class":454},"sBMFI","cp",[448,457,459],{"class":458},"sfazB"," .env.example",[448,461,462],{"class":458}," .env",[448,464,466],{"class":465},"sHwdD","   # Nuxt; for Next.js: cp .env.example .env.local\n",[448,468,470,473],{"class":450,"line":469},2,[448,471,472],{"class":454},"npm",[448,474,475],{"class":458}," install\n",[448,477,479,481,484],{"class":450,"line":478},3,[448,480,472],{"class":454},[448,482,483],{"class":458}," run",[448,485,486],{"class":458}," dev\n",[368,488,489,490,493],{},"All pages and components are yours to customize. The SDK and the framework package are regular npm dependencies that you update with ",[412,491,492],{},"npm update",".",[368,495,496],{},"If you are integrating into an existing project instead:",[498,499,500,508,517],"ul",{},[501,502,503,505,506,493],"li",{},[372,504,63],{},": install the ",[409,507,128],{"href":329},[501,509,510,512,513,493],{},[372,511,67],{},": install ",[409,514,515],{"href":343},[412,516,431],{},[501,518,519,522],{},[372,520,521],{},"Anything else"," (plain React, Vue, Svelte, Node, edge functions): follow the steps below to use the SDK directly.",[524,525],"hr",{},[363,527,529],{"id":528},"requirements","Requirements",[498,531,532,535],{},[501,533,534],{},"Node.js 18 or later",[501,536,537],{},"TypeScript 5+ recommended (plain JS works too)",[363,539,541],{"id":540},"install","Install",[439,543,545],{"className":441,"code":544,"language":443,"meta":444,"style":444},"npm install @avvyr\u002Fstorefront-sdk\n",[412,546,547],{"__ignoreMap":444},[448,548,549,551,554],{"class":450,"line":451},[448,550,472],{"class":454},[448,552,553],{"class":458}," install",[448,555,556],{"class":458}," @avvyr\u002Fstorefront-sdk\n",[363,558,560],{"id":559},"create-a-client","Create a client",[439,562,566],{"className":563,"code":564,"language":565,"meta":444,"style":444},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createStorefrontClient } from '@avvyr\u002Fstorefront-sdk'\n\nconst client = createStorefrontClient({\n  publicKey: 'sfp_your_public_key',\n  baseUrl: 'https:\u002F\u002Fapi.avvyr.com',\n  marketId: '676140c4136218caaf97d79e',\n})\n","ts",[412,567,568,597,603,624,645,662,679],{"__ignoreMap":444},[448,569,570,574,578,582,585,588,591,594],{"class":450,"line":451},[448,571,573],{"class":572},"s7zQu","import",[448,575,577],{"class":576},"sMK4o"," {",[448,579,581],{"class":580},"sTEyZ"," createStorefrontClient",[448,583,584],{"class":576}," }",[448,586,587],{"class":572}," from",[448,589,590],{"class":576}," '",[448,592,593],{"class":458},"@avvyr\u002Fstorefront-sdk",[448,595,596],{"class":576},"'\n",[448,598,599],{"class":450,"line":469},[448,600,602],{"emptyLinePlaceholder":601},true,"\n",[448,604,605,609,612,615,618,621],{"class":450,"line":478},[448,606,608],{"class":607},"spNyl","const",[448,610,611],{"class":580}," client ",[448,613,614],{"class":576},"=",[448,616,581],{"class":617},"s2Zo4",[448,619,620],{"class":580},"(",[448,622,623],{"class":576},"{\n",[448,625,627,631,634,636,639,642],{"class":450,"line":626},4,[448,628,630],{"class":629},"swJcz","  publicKey",[448,632,633],{"class":576},":",[448,635,590],{"class":576},[448,637,638],{"class":458},"sfp_your_public_key",[448,640,641],{"class":576},"'",[448,643,644],{"class":576},",\n",[448,646,648,651,653,655,658,660],{"class":450,"line":647},5,[448,649,650],{"class":629},"  baseUrl",[448,652,633],{"class":576},[448,654,590],{"class":576},[448,656,657],{"class":458},"https:\u002F\u002Fapi.avvyr.com",[448,659,641],{"class":576},[448,661,644],{"class":576},[448,663,665,668,670,672,675,677],{"class":450,"line":664},6,[448,666,667],{"class":629},"  marketId",[448,669,633],{"class":576},[448,671,590],{"class":576},[448,673,674],{"class":458},"676140c4136218caaf97d79e",[448,676,641],{"class":576},[448,678,644],{"class":576},[448,680,682,685],{"class":450,"line":681},7,[448,683,684],{"class":576},"}",[448,686,687],{"class":580},")\n",[368,689,690],{},"The client is a plain object — create one per request in server contexts, or once at module level in the browser.",[363,692,694],{"id":693},"server-side-usage","Server-side usage",[368,696,697,698,701],{},"On the server you can optionally pass the ",[412,699,700],{},"privateKey"," to unlock server-only endpoints:",[439,703,705],{"className":563,"code":704,"language":565,"meta":444,"style":444},"const client = createStorefrontClient({\n  publicKey: process.env.STOREFRONT_PUBLIC_KEY!,\n  privateKey: process.env.STOREFRONT_PRIVATE_KEY!, \u002F\u002F never expose in the browser\n  baseUrl: 'https:\u002F\u002Fapi.avvyr.com',\n  marketId: process.env.MARKET_ID!,\n})\n",[412,706,707,721,743,767,781,800],{"__ignoreMap":444},[448,708,709,711,713,715,717,719],{"class":450,"line":451},[448,710,608],{"class":607},[448,712,611],{"class":580},[448,714,614],{"class":576},[448,716,581],{"class":617},[448,718,620],{"class":580},[448,720,623],{"class":576},[448,722,723,725,727,730,732,735,737,740],{"class":450,"line":469},[448,724,630],{"class":629},[448,726,633],{"class":576},[448,728,729],{"class":580}," process",[448,731,493],{"class":576},[448,733,734],{"class":580},"env",[448,736,493],{"class":576},[448,738,739],{"class":580},"STOREFRONT_PUBLIC_KEY",[448,741,742],{"class":576},"!,\n",[448,744,745,748,750,752,754,756,758,761,764],{"class":450,"line":478},[448,746,747],{"class":629},"  privateKey",[448,749,633],{"class":576},[448,751,729],{"class":580},[448,753,493],{"class":576},[448,755,734],{"class":580},[448,757,493],{"class":576},[448,759,760],{"class":580},"STOREFRONT_PRIVATE_KEY",[448,762,763],{"class":576},"!,",[448,765,766],{"class":465}," \u002F\u002F never expose in the browser\n",[448,768,769,771,773,775,777,779],{"class":450,"line":626},[448,770,650],{"class":629},[448,772,633],{"class":576},[448,774,590],{"class":576},[448,776,657],{"class":458},[448,778,641],{"class":576},[448,780,644],{"class":576},[448,782,783,785,787,789,791,793,795,798],{"class":450,"line":647},[448,784,667],{"class":629},[448,786,633],{"class":576},[448,788,729],{"class":580},[448,790,493],{"class":576},[448,792,734],{"class":580},[448,794,493],{"class":576},[448,796,797],{"class":580},"MARKET_ID",[448,799,742],{"class":576},[448,801,802,804],{"class":450,"line":664},[448,803,684],{"class":576},[448,805,687],{"class":580},[807,808,811,812,814],"callout",{"color":809,"icon":810},"amber","i-lucide-shield","Never send ",[412,813,700],{}," to the browser. Keep it in server-only environment variables.",[363,816,818],{"id":817},"next-steps","Next steps",[498,820,821,826,830,834,838],{},[501,822,823],{},[409,824,825],{"href":288},"Configuration reference",[501,827,828],{},[409,829,296],{"href":297},[501,831,832],{},[409,833,300],{"href":301},[501,835,836],{},[409,837,128],{"href":329},[501,839,840],{},[409,841,67],{"href":343},[843,844,845],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":444,"searchDepth":469,"depth":469,"links":847},[848,849,850,851,852,853],{"id":365,"depth":469,"text":366},{"id":528,"depth":469,"text":529},{"id":540,"depth":469,"text":541},{"id":559,"depth":469,"text":560},{"id":693,"depth":469,"text":694},{"id":817,"depth":469,"text":818},"Install @avvyr\u002Fstorefront-sdk in any JavaScript or TypeScript project","md",null,{"questions":858},{"en":859},[860,861,862,863,864],"How do I create a storefront client?","When should I pass the private key?","How do I get started with the Storefront Starter template?","Is there a Next.js or React starter?","Which Node.js version does the SDK require?",{"title":283,"description":854},"EY6mtHUqQyvKo26eOw2scIWsY4wjpqwVRWyQiougWXU",[868,870],{"title":270,"path":271,"stem":272,"description":869,"children":-1},"Best practices for getting the most out of MCP",{"title":287,"path":288,"stem":289,"description":871,"children":-1},"All StorefrontClientConfig options",1793388939414]