[{"data":1,"prerenderedAt":1035},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":396,"-getting-started-installation-surround":1030},[4,35,61,83],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":34},"Getting Started","lucide:rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22,26,30],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation",{"title":19,"path":20,"stem":21},"Project Structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure",{"title":23,"path":24,"stem":25},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F5.configuration",{"title":27,"path":28,"stem":29},"Requirements","\u002Fgetting-started\u002Frequirements","1.getting-started\u002F6.requirements",{"title":31,"path":32,"stem":33},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F7.troubleshooting",false,{"title":36,"icon":37,"path":38,"stem":39,"children":40,"page":34},"Guides","lucide:book-search","\u002Fguides","2.guides",[41,45,49,53,57],{"title":42,"path":43,"stem":44},"Authentication","\u002Fguides\u002Fauthentication","2.guides\u002F1.authentication",{"title":46,"path":47,"stem":48},"Webhooks","\u002Fguides\u002Fwebhooks","2.guides\u002F2.webhooks",{"title":50,"path":51,"stem":52},"App Bridge","\u002Fguides\u002Fapp-bridge","2.guides\u002F3.app-bridge",{"title":54,"path":55,"stem":56},"Polaris Components","\u002Fguides\u002Fpolaris-components","2.guides\u002F4.polaris-components",{"title":58,"path":59,"stem":60},"GraphQL Codegen","\u002Fguides\u002Fgraphql-codegen","2.guides\u002F5.graphql-codegen",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":34},"API Reference","lucide:square-dashed-bottom-code","\u002Fapi","3.api",[67,71,75,79],{"title":68,"path":69,"stem":70},"Server Utilities","\u002Fapi\u002Fserver-utilities","3.api\u002F1.server-utilities",{"title":72,"path":73,"stem":74},"Composables","\u002Fapi\u002Fcomposables","3.api\u002F2.composables",{"title":76,"path":77,"stem":78},"Middleware","\u002Fapi\u002Fmiddleware","3.api\u002F4.middleware",{"title":80,"path":81,"stem":82},"Types","\u002Fapi\u002Ftypes","3.api\u002F5.types",{"title":84,"icon":85,"path":86,"stem":87,"children":88},"Polaris Web Components","ic:baseline-shopify","\u002Fpolaris-wc","4.polaris-wc",[89,91,124,145,166,243,264,289,318,371,384],{"title":84,"path":86,"stem":90},"4.polaris-wc\u002Findex",{"title":92,"path":93,"stem":94,"children":95,"page":34},"Layout","\u002Fpolaris-wc\u002Flayout","4.polaris-wc\u002F1.layout",[96,100,104,108,112,116,120],{"title":97,"path":98,"stem":99},"Page","\u002Fpolaris-wc\u002Flayout\u002Fpage","4.polaris-wc\u002F1.layout\u002F1.page",{"title":101,"path":102,"stem":103},"Box","\u002Fpolaris-wc\u002Flayout\u002Fbox","4.polaris-wc\u002F1.layout\u002F2.box",{"title":105,"path":106,"stem":107},"Stack","\u002Fpolaris-wc\u002Flayout\u002Fstack","4.polaris-wc\u002F1.layout\u002F3.stack",{"title":109,"path":110,"stem":111},"Grid","\u002Fpolaris-wc\u002Flayout\u002Fgrid","4.polaris-wc\u002F1.layout\u002F4.grid",{"title":113,"path":114,"stem":115},"GridItem","\u002Fpolaris-wc\u002Flayout\u002Fgrid-item","4.polaris-wc\u002F1.layout\u002F5.grid-item",{"title":117,"path":118,"stem":119},"Section","\u002Fpolaris-wc\u002Flayout\u002Fsection","4.polaris-wc\u002F1.layout\u002F6.section",{"title":121,"path":122,"stem":123},"Divider","\u002Fpolaris-wc\u002Flayout\u002Fdivider","4.polaris-wc\u002F1.layout\u002F7.divider",{"title":125,"path":126,"stem":127,"children":128,"page":34},"App Bridge Ui","\u002Fpolaris-wc\u002Fapp-bridge-ui","4.polaris-wc\u002F10.app-bridge-ui",[129,133,137,141],{"title":130,"path":131,"stem":132},"UiModal","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-modal","4.polaris-wc\u002F10.app-bridge-ui\u002F1.ui-modal",{"title":134,"path":135,"stem":136},"UiTitleBar","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-title-bar","4.polaris-wc\u002F10.app-bridge-ui\u002F2.ui-title-bar",{"title":138,"path":139,"stem":140},"UiSaveBar","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-save-bar","4.polaris-wc\u002F10.app-bridge-ui\u002F3.ui-save-bar",{"title":142,"path":143,"stem":144},"UiNavMenu","\u002Fpolaris-wc\u002Fapp-bridge-ui\u002Fui-nav-menu","4.polaris-wc\u002F10.app-bridge-ui\u002F4.ui-nav-menu",{"title":146,"path":147,"stem":148,"children":149,"page":34},"Actions","\u002Fpolaris-wc\u002Factions","4.polaris-wc\u002F2.actions",[150,154,158,162],{"title":151,"path":152,"stem":153},"Button","\u002Fpolaris-wc\u002Factions\u002Fbutton","4.polaris-wc\u002F2.actions\u002F1.button",{"title":155,"path":156,"stem":157},"ButtonGroup","\u002Fpolaris-wc\u002Factions\u002Fbutton-group","4.polaris-wc\u002F2.actions\u002F2.button-group",{"title":159,"path":160,"stem":161},"Clickable","\u002Fpolaris-wc\u002Factions\u002Fclickable","4.polaris-wc\u002F2.actions\u002F3.clickable",{"title":163,"path":164,"stem":165},"Link","\u002Fpolaris-wc\u002Factions\u002Flink","4.polaris-wc\u002F2.actions\u002F4.link",{"title":167,"path":168,"stem":169,"children":170,"page":34},"Forms","\u002Fpolaris-wc\u002Fforms","4.polaris-wc\u002F3.forms",[171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239],{"title":172,"path":173,"stem":174},"TextField","\u002Fpolaris-wc\u002Fforms\u002Ftext-field","4.polaris-wc\u002F3.forms\u002F01.text-field",{"title":176,"path":177,"stem":178},"NumberField","\u002Fpolaris-wc\u002Fforms\u002Fnumber-field","4.polaris-wc\u002F3.forms\u002F02.number-field",{"title":180,"path":181,"stem":182},"EmailField","\u002Fpolaris-wc\u002Fforms\u002Femail-field","4.polaris-wc\u002F3.forms\u002F03.email-field",{"title":184,"path":185,"stem":186},"PasswordField","\u002Fpolaris-wc\u002Fforms\u002Fpassword-field","4.polaris-wc\u002F3.forms\u002F04.password-field",{"title":188,"path":189,"stem":190},"UrlField","\u002Fpolaris-wc\u002Fforms\u002Furl-field","4.polaris-wc\u002F3.forms\u002F05.url-field",{"title":192,"path":193,"stem":194},"MoneyField","\u002Fpolaris-wc\u002Fforms\u002Fmoney-field","4.polaris-wc\u002F3.forms\u002F06.money-field",{"title":196,"path":197,"stem":198},"ColorField","\u002Fpolaris-wc\u002Fforms\u002Fcolor-field","4.polaris-wc\u002F3.forms\u002F07.color-field",{"title":200,"path":201,"stem":202},"DateField","\u002Fpolaris-wc\u002Fforms\u002Fdate-field","4.polaris-wc\u002F3.forms\u002F08.date-field",{"title":204,"path":205,"stem":206},"TextArea","\u002Fpolaris-wc\u002Fforms\u002Ftext-area","4.polaris-wc\u002F3.forms\u002F09.text-area",{"title":208,"path":209,"stem":210},"Select","\u002Fpolaris-wc\u002Fforms\u002Fselect","4.polaris-wc\u002F3.forms\u002F10.select",{"title":212,"path":213,"stem":214},"Checkbox","\u002Fpolaris-wc\u002Fforms\u002Fcheckbox","4.polaris-wc\u002F3.forms\u002F11.checkbox",{"title":216,"path":217,"stem":218},"Switch","\u002Fpolaris-wc\u002Fforms\u002Fswitch","4.polaris-wc\u002F3.forms\u002F12.switch",{"title":220,"path":221,"stem":222},"ChoiceList","\u002Fpolaris-wc\u002Fforms\u002Fchoice-list","4.polaris-wc\u002F3.forms\u002F13.choice-list",{"title":224,"path":225,"stem":226},"Choice","\u002Fpolaris-wc\u002Fforms\u002Fchoice","4.polaris-wc\u002F3.forms\u002F14.choice",{"title":228,"path":229,"stem":230},"SearchField","\u002Fpolaris-wc\u002Fforms\u002Fsearch-field","4.polaris-wc\u002F3.forms\u002F15.search-field",{"title":232,"path":233,"stem":234},"DropZone","\u002Fpolaris-wc\u002Fforms\u002Fdrop-zone","4.polaris-wc\u002F3.forms\u002F16.drop-zone",{"title":236,"path":237,"stem":238},"ColorPicker","\u002Fpolaris-wc\u002Fforms\u002Fcolor-picker","4.polaris-wc\u002F3.forms\u002F17.color-picker",{"title":240,"path":241,"stem":242},"DatePicker","\u002Fpolaris-wc\u002Fforms\u002Fdate-picker","4.polaris-wc\u002F3.forms\u002F18.date-picker",{"title":244,"path":245,"stem":246,"children":247,"page":34},"Feedback","\u002Fpolaris-wc\u002Ffeedback","4.polaris-wc\u002F4.feedback",[248,252,256,260],{"title":249,"path":250,"stem":251},"Banner","\u002Fpolaris-wc\u002Ffeedback\u002Fbanner","4.polaris-wc\u002F4.feedback\u002F1.banner",{"title":253,"path":254,"stem":255},"Badge","\u002Fpolaris-wc\u002Ffeedback\u002Fbadge","4.polaris-wc\u002F4.feedback\u002F2.badge",{"title":257,"path":258,"stem":259},"Spinner","\u002Fpolaris-wc\u002Ffeedback\u002Fspinner","4.polaris-wc\u002F4.feedback\u002F3.spinner",{"title":261,"path":262,"stem":263},"Tooltip","\u002Fpolaris-wc\u002Ffeedback\u002Ftooltip","4.polaris-wc\u002F4.feedback\u002F4.tooltip",{"title":265,"path":266,"stem":267,"children":268,"page":34},"Navigation","\u002Fpolaris-wc\u002Fnavigation","4.polaris-wc\u002F5.navigation",[269,273,277,281,285],{"title":270,"path":271,"stem":272},"AppNav","\u002Fpolaris-wc\u002Fnavigation\u002Fapp-nav","4.polaris-wc\u002F5.navigation\u002F1.app-nav",{"title":274,"path":275,"stem":276},"Menu","\u002Fpolaris-wc\u002Fnavigation\u002Fmenu","4.polaris-wc\u002F5.navigation\u002F2.menu",{"title":278,"path":279,"stem":280},"Option","\u002Fpolaris-wc\u002Fnavigation\u002Foption","4.polaris-wc\u002F5.navigation\u002F3.option",{"title":282,"path":283,"stem":284},"OptionGroup","\u002Fpolaris-wc\u002Fnavigation\u002Foption-group","4.polaris-wc\u002F5.navigation\u002F4.option-group",{"title":286,"path":287,"stem":288},"Popover","\u002Fpolaris-wc\u002Fnavigation\u002Fpopover","4.polaris-wc\u002F5.navigation\u002F5.popover",{"title":290,"path":291,"stem":292,"children":293,"page":34},"Data","\u002Fpolaris-wc\u002Fdata","4.polaris-wc\u002F6.data",[294,298,302,306,310,314],{"title":295,"path":296,"stem":297},"Table","\u002Fpolaris-wc\u002Fdata\u002Ftable","4.polaris-wc\u002F6.data\u002F1.table",{"title":299,"path":300,"stem":301},"TableHeader","\u002Fpolaris-wc\u002Fdata\u002Ftable-header","4.polaris-wc\u002F6.data\u002F2.table-header",{"title":303,"path":304,"stem":305},"TableHeaderRow","\u002Fpolaris-wc\u002Fdata\u002Ftable-header-row","4.polaris-wc\u002F6.data\u002F3.table-header-row",{"title":307,"path":308,"stem":309},"TableBody","\u002Fpolaris-wc\u002Fdata\u002Ftable-body","4.polaris-wc\u002F6.data\u002F4.table-body",{"title":311,"path":312,"stem":313},"TableRow","\u002Fpolaris-wc\u002Fdata\u002Ftable-row","4.polaris-wc\u002F6.data\u002F5.table-row",{"title":315,"path":316,"stem":317},"TableCell","\u002Fpolaris-wc\u002Fdata\u002Ftable-cell","4.polaris-wc\u002F6.data\u002F6.table-cell",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Content","\u002Fpolaris-wc\u002Fcontent","4.polaris-wc\u002F7.content",[323,327,331,335,339,343,347,351,355,359,363,367],{"title":324,"path":325,"stem":326},"Text","\u002Fpolaris-wc\u002Fcontent\u002Ftext","4.polaris-wc\u002F7.content\u002F01.text",{"title":328,"path":329,"stem":330},"Heading","\u002Fpolaris-wc\u002Fcontent\u002Fheading","4.polaris-wc\u002F7.content\u002F02.heading",{"title":332,"path":333,"stem":334},"Paragraph","\u002Fpolaris-wc\u002Fcontent\u002Fparagraph","4.polaris-wc\u002F7.content\u002F03.paragraph",{"title":336,"path":337,"stem":338},"Icon","\u002Fpolaris-wc\u002Fcontent\u002Ficon","4.polaris-wc\u002F7.content\u002F04.icon",{"title":340,"path":341,"stem":342},"Image","\u002Fpolaris-wc\u002Fcontent\u002Fimage","4.polaris-wc\u002F7.content\u002F05.image",{"title":344,"path":345,"stem":346},"Thumbnail","\u002Fpolaris-wc\u002Fcontent\u002Fthumbnail","4.polaris-wc\u002F7.content\u002F06.thumbnail",{"title":348,"path":349,"stem":350},"Avatar","\u002Fpolaris-wc\u002Fcontent\u002Favatar","4.polaris-wc\u002F7.content\u002F07.avatar",{"title":352,"path":353,"stem":354},"Chip","\u002Fpolaris-wc\u002Fcontent\u002Fchip","4.polaris-wc\u002F7.content\u002F08.chip",{"title":356,"path":357,"stem":358},"ClickableChip","\u002Fpolaris-wc\u002Fcontent\u002Fclickable-chip","4.polaris-wc\u002F7.content\u002F09.clickable-chip",{"title":360,"path":361,"stem":362},"ListItem","\u002Fpolaris-wc\u002Fcontent\u002Flist-item","4.polaris-wc\u002F7.content\u002F10.list-item",{"title":364,"path":365,"stem":366},"OrderedList","\u002Fpolaris-wc\u002Fcontent\u002Fordered-list","4.polaris-wc\u002F7.content\u002F11.ordered-list",{"title":368,"path":369,"stem":370},"UnorderedList","\u002Fpolaris-wc\u002Fcontent\u002Funordered-list","4.polaris-wc\u002F7.content\u002F12.unordered-list",{"title":372,"path":373,"stem":374,"children":375,"page":34},"Overlays","\u002Fpolaris-wc\u002Foverlays","4.polaris-wc\u002F8.overlays",[376,380],{"title":377,"path":378,"stem":379},"Modal","\u002Fpolaris-wc\u002Foverlays\u002Fmodal","4.polaris-wc\u002F8.overlays\u002F1.modal",{"title":381,"path":382,"stem":383},"QueryContainer","\u002Fpolaris-wc\u002Foverlays\u002Fquery-container","4.polaris-wc\u002F8.overlays\u002F2.query-container",{"title":385,"path":386,"stem":387,"children":388,"page":34},"App","\u002Fpolaris-wc\u002Fapp","4.polaris-wc\u002F9.app",[389,392],{"title":385,"path":390,"stem":391},"\u002Fpolaris-wc\u002Fapp\u002Fapp","4.polaris-wc\u002F9.app\u002F1.app",{"title":393,"path":394,"stem":395},"LoadingIndicator","\u002Fpolaris-wc\u002Fapp\u002Floading-indicator","4.polaris-wc\u002F9.app\u002F2.loading-indicator",{"id":397,"title":15,"body":398,"description":1023,"extension":1024,"links":1025,"meta":1026,"navigation":555,"path":16,"seo":1027,"stem":17,"__hash__":1029},"docs\u002F1.getting-started\u002F3.installation.md",{"type":399,"value":400,"toc":1013},"minimark",[401,406,968,972,975,1004,1009],[402,403,405],"h2",{"id":404},"quick-start","Quick Start",[407,408,409,414,423,480,487,496,634,637,692,696,703,706,904,912,916,927,944,947,961],"steps",{},[410,411,413],"h3",{"id":412},"install-the-module","Install the module",[415,416,417,418,422],"p",{},"Add ",[419,420,421],"code",{},"shopify-app-nuxt"," to your Nuxt application:",[424,425,426,451,466],"code-group",{},[427,428,434],"pre",{"className":429,"code":430,"filename":431,"language":432,"meta":433,"style":433},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bun add shopify-app-nuxt\n","bun","bash","",[419,435,436],{"__ignoreMap":433},[437,438,441,444,448],"span",{"class":439,"line":440},"line",1,[437,442,431],{"class":443},"sBMFI",[437,445,447],{"class":446},"sfazB"," add",[437,449,450],{"class":446}," shopify-app-nuxt\n",[427,452,455],{"className":429,"code":453,"filename":454,"language":432,"meta":433,"style":433},"npm install shopify-app-nuxt\n","npm",[419,456,457],{"__ignoreMap":433},[437,458,459,461,464],{"class":439,"line":440},[437,460,454],{"class":443},[437,462,463],{"class":446}," install",[437,465,450],{"class":446},[427,467,470],{"className":429,"code":468,"filename":469,"language":432,"meta":433,"style":433},"yarn add shopify-app-nuxt\n","yarn",[419,471,472],{"__ignoreMap":433},[437,473,474,476,478],{"class":439,"line":440},[437,475,469],{"class":443},[437,477,447],{"class":446},[437,479,450],{"class":446},[410,481,483,484],{"id":482},"configure-nuxtconfigts","Configure ",[419,485,486],{},"nuxt.config.ts",[415,488,417,489,491,492,495],{},[419,490,421],{}," to the ",[419,493,494],{},"modules"," section and configure your Shopify credentials:",[427,497,501],{"className":498,"code":499,"filename":486,"language":500,"meta":433,"style":433},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['shopify-app-nuxt'],\n\n  shopify: {\n    apiKey: 'ApiKeyFromPartnersDashboard',\n    apiSecretKey: 'ApiSecretKeyFromPartnersDashboard',\n    appUrl: 'https:\u002F\u002Fyour-app-url.com'\n  }\n})\n","ts",[419,502,503,524,550,557,568,586,603,619,625],{"__ignoreMap":433},[437,504,505,509,512,516,520],{"class":439,"line":440},[437,506,508],{"class":507},"s7zQu","export",[437,510,511],{"class":507}," default",[437,513,515],{"class":514},"s2Zo4"," defineNuxtConfig",[437,517,519],{"class":518},"sTEyZ","(",[437,521,523],{"class":522},"sMK4o","{\n",[437,525,527,531,534,537,540,542,544,547],{"class":439,"line":526},2,[437,528,530],{"class":529},"swJcz","  modules",[437,532,533],{"class":522},":",[437,535,536],{"class":518}," [",[437,538,539],{"class":522},"'",[437,541,421],{"class":446},[437,543,539],{"class":522},[437,545,546],{"class":518},"]",[437,548,549],{"class":522},",\n",[437,551,553],{"class":439,"line":552},3,[437,554,556],{"emptyLinePlaceholder":555},true,"\n",[437,558,560,563,565],{"class":439,"line":559},4,[437,561,562],{"class":529},"  shopify",[437,564,533],{"class":522},[437,566,567],{"class":522}," {\n",[437,569,571,574,576,579,582,584],{"class":439,"line":570},5,[437,572,573],{"class":529},"    apiKey",[437,575,533],{"class":522},[437,577,578],{"class":522}," '",[437,580,581],{"class":446},"ApiKeyFromPartnersDashboard",[437,583,539],{"class":522},[437,585,549],{"class":522},[437,587,589,592,594,596,599,601],{"class":439,"line":588},6,[437,590,591],{"class":529},"    apiSecretKey",[437,593,533],{"class":522},[437,595,578],{"class":522},[437,597,598],{"class":446},"ApiSecretKeyFromPartnersDashboard",[437,600,539],{"class":522},[437,602,549],{"class":522},[437,604,606,609,611,613,616],{"class":439,"line":605},7,[437,607,608],{"class":529},"    appUrl",[437,610,533],{"class":522},[437,612,578],{"class":522},[437,614,615],{"class":446},"https:\u002F\u002Fyour-app-url.com",[437,617,618],{"class":522},"'\n",[437,620,622],{"class":439,"line":621},8,[437,623,624],{"class":522},"  }\n",[437,626,628,631],{"class":439,"line":627},9,[437,629,630],{"class":522},"}",[437,632,633],{"class":518},")\n",[415,635,636],{},"All values can also be set via environment variables:",[638,639,640,652],"table",{},[641,642,643],"thead",{},[644,645,646,649],"tr",{},[647,648,278],"th",{},[647,650,651],{},"Env Variable",[653,654,655,668,680],"tbody",{},[644,656,657,663],{},[658,659,660],"td",{},[419,661,662],{},"apiKey",[658,664,665],{},[419,666,667],{},"NUXT_SHOPIFY_API_KEY",[644,669,670,675],{},[658,671,672],{},[419,673,674],{},"apiSecretKey",[658,676,677],{},[419,678,679],{},"NUXT_SHOPIFY_API_SECRET_KEY",[644,681,682,687],{},[658,683,684],{},[419,685,686],{},"appUrl",[658,688,689],{},[419,690,691],{},"NUXT_SHOPIFY_APP_URL",[410,693,695],{"id":694},"set-up-session-storage-optional","Set up session storage (optional)",[415,697,698,699,702],{},"By default, the module provides an in-memory session storage (",[419,700,701],{},"MemorySessionStorage",") that works out of the box — no configuration needed. For production, use a persistent adapter.",[415,704,705],{},"Create a Nitro server plugin to override session storage or configure lifecycle hooks:",[427,707,710],{"className":498,"code":708,"filename":709,"language":500,"meta":433,"style":433},"import { configureShopify } from '#shopify\u002Fserver'\nimport { PrismaSessionStorage } from '@shopify\u002Fshopify-app-session-storage-prisma'\nimport { prisma } from '~\u002Fserver\u002Futils\u002Fprisma'\n\nexport default defineNitroPlugin(() => {\n  configureShopify({\n    sessionStorage: new PrismaSessionStorage(prisma),\n    hooks: {\n      afterAuth: async ({ session, admin }) => {\n        \u002F\u002F Register webhooks, seed data, etc.\n      }\n    }\n  })\n})\n","server\u002Fplugins\u002Fshopify.ts",[419,711,712,736,756,776,780,800,809,831,840,870,877,883,889,897],{"__ignoreMap":433},[437,713,714,717,720,723,726,729,731,734],{"class":439,"line":440},[437,715,716],{"class":507},"import",[437,718,719],{"class":522}," {",[437,721,722],{"class":518}," configureShopify",[437,724,725],{"class":522}," }",[437,727,728],{"class":507}," from",[437,730,578],{"class":522},[437,732,733],{"class":446},"#shopify\u002Fserver",[437,735,618],{"class":522},[437,737,738,740,742,745,747,749,751,754],{"class":439,"line":526},[437,739,716],{"class":507},[437,741,719],{"class":522},[437,743,744],{"class":518}," PrismaSessionStorage",[437,746,725],{"class":522},[437,748,728],{"class":507},[437,750,578],{"class":522},[437,752,753],{"class":446},"@shopify\u002Fshopify-app-session-storage-prisma",[437,755,618],{"class":522},[437,757,758,760,762,765,767,769,771,774],{"class":439,"line":552},[437,759,716],{"class":507},[437,761,719],{"class":522},[437,763,764],{"class":518}," prisma",[437,766,725],{"class":522},[437,768,728],{"class":507},[437,770,578],{"class":522},[437,772,773],{"class":446},"~\u002Fserver\u002Futils\u002Fprisma",[437,775,618],{"class":522},[437,777,778],{"class":439,"line":559},[437,779,556],{"emptyLinePlaceholder":555},[437,781,782,784,786,789,791,794,798],{"class":439,"line":570},[437,783,508],{"class":507},[437,785,511],{"class":507},[437,787,788],{"class":514}," defineNitroPlugin",[437,790,519],{"class":518},[437,792,793],{"class":522},"()",[437,795,797],{"class":796},"spNyl"," =>",[437,799,567],{"class":522},[437,801,802,805,807],{"class":439,"line":588},[437,803,804],{"class":514},"  configureShopify",[437,806,519],{"class":529},[437,808,523],{"class":522},[437,810,811,814,816,819,821,823,826,829],{"class":439,"line":605},[437,812,813],{"class":529},"    sessionStorage",[437,815,533],{"class":522},[437,817,818],{"class":522}," new",[437,820,744],{"class":514},[437,822,519],{"class":529},[437,824,825],{"class":518},"prisma",[437,827,828],{"class":529},")",[437,830,549],{"class":522},[437,832,833,836,838],{"class":439,"line":621},[437,834,835],{"class":529},"    hooks",[437,837,533],{"class":522},[437,839,567],{"class":522},[437,841,842,845,847,850,853,857,860,863,866,868],{"class":439,"line":627},[437,843,844],{"class":514},"      afterAuth",[437,846,533],{"class":522},[437,848,849],{"class":796}," async",[437,851,852],{"class":522}," ({",[437,854,856],{"class":855},"sHdIc"," session",[437,858,859],{"class":522},",",[437,861,862],{"class":855}," admin",[437,864,865],{"class":522}," })",[437,867,797],{"class":796},[437,869,567],{"class":522},[437,871,873],{"class":439,"line":872},10,[437,874,876],{"class":875},"sHwdD","        \u002F\u002F Register webhooks, seed data, etc.\n",[437,878,880],{"class":439,"line":879},11,[437,881,882],{"class":522},"      }\n",[437,884,886],{"class":439,"line":885},12,[437,887,888],{"class":522},"    }\n",[437,890,892,895],{"class":439,"line":891},13,[437,893,894],{"class":522},"  }",[437,896,633],{"class":529},[437,898,900,902],{"class":439,"line":899},14,[437,901,630],{"class":522},[437,903,633],{"class":518},[905,906,907,908,911],"tip",{},"Any config passed to ",[419,909,910],{},"configureShopify()"," is merged with the defaults — you only need to specify what you want to override.",[410,913,915],{"id":914},"start-your-dev-server","Start your dev server",[415,917,918,919,926],{},"Use the ",[920,921,925],"a",{"href":922,"rel":923},"https:\u002F\u002Fshopify.dev\u002Fdocs\u002Fapps\u002Ftools\u002Fcli",[924],"nofollow","Shopify CLI"," to start your development server with a tunnel:",[427,928,931],{"className":429,"code":929,"filename":930,"language":432,"meta":433,"style":433},"shopify app dev\n","Terminal",[419,932,933],{"__ignoreMap":433},[437,934,935,938,941],{"class":439,"line":440},[437,936,937],{"class":443},"shopify",[437,939,940],{"class":446}," app",[437,942,943],{"class":446}," dev\n",[415,945,946],{},"Or start the Nuxt dev server directly:",[427,948,950],{"className":429,"code":949,"filename":930,"language":432,"meta":433,"style":433},"bun run dev\n",[419,951,952],{"__ignoreMap":433},[437,953,954,956,959],{"class":439,"line":440},[437,955,431],{"class":443},[437,957,958],{"class":446}," run",[437,960,943],{"class":446},[415,962,963,964,967],{},"Your app will be running at ",[419,965,966],{},"http:\u002F\u002Flocalhost:3000",".",[402,969,971],{"id":970},"loading-your-app-in-shopify-admin","Loading your app in Shopify Admin",[415,973,974],{},"To load your app within the Shopify Admin:",[976,977,978,990,996],"ol",{},[979,980,981,982,987,988,828],"li",{},"Update your app's URL in the ",[920,983,986],{"href":984,"rel":985},"https:\u002F\u002Fpartners.shopify.com",[924],"Partners Dashboard"," app setup page to your app URL (e.g., ",[419,989,615],{},[979,991,992,993],{},"Update the callback URL to ",[419,994,995],{},"https:\u002F\u002Fyour-app-url.com\u002F_shopify\u002Fauth\u002Fcallback",[979,997,998,999,1003],{},"Go to ",[1000,1001,1002],"strong",{},"Test your app"," in Partners Dashboard and select your development store",[905,1005,1006,1007,967],{},"In development, the Shopify CLI creates a Cloudflare tunnel automatically. Use the tunnel URL as your ",[419,1008,686],{},[1010,1011,1012],"style",{},"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 .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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":433,"searchDepth":526,"depth":526,"links":1014},[1015,1022],{"id":404,"depth":526,"text":405,"children":1016},[1017,1018,1020,1021],{"id":412,"depth":552,"text":413},{"id":482,"depth":552,"text":1019},"Configure nuxt.config.ts",{"id":694,"depth":552,"text":695},{"id":914,"depth":552,"text":915},{"id":970,"depth":526,"text":971},"Install and configure shopify-app-nuxt in your Nuxt application.","md",null,{},{"description":1028,"title":15},"Install shopify-app-nuxt and configure it to build Shopify apps with Nuxt 4.","ZjDCh00G1LJZDj2eZ1DDM76_K3BO9VLovkLiAIAkTZc",[1031,1033],{"title":11,"path":12,"stem":13,"description":1032,"children":-1},"What is shopify-app-nuxt and why you should use it to build Shopify apps with Nuxt.",{"title":19,"path":20,"stem":21,"description":1034,"children":-1},"Typical file structure for a shopify-app-nuxt application.",1776217203525]