[{"data":1,"prerenderedAt":2099},["ShallowReactive",2],{"navigation_docs":3,"-essentials-customer-account":129,"-essentials-customer-account-surround":2094},[4,31,77,108],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":30},"Getting Started","i-lucide-play","\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-home",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-plug",{"title":21,"path":22,"stem":23,"icon":24},"Usage","\u002Fgetting-started\u002Fusage","1.getting-started\u002F4.usage","i-lucide-code",{"title":26,"path":27,"stem":28,"icon":29},"Editor","\u002Fgetting-started\u002Feditor","1.getting-started\u002F5.editor","i-lucide-wrench",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":30},"Essentials","i-lucide-book","\u002Fessentials","2.essentials",[37,42,47,52,57,62,67,72],{"title":38,"path":39,"stem":40,"icon":41},"Setup Shopify","\u002Fessentials\u002Fsetup-shopify","2.essentials\u002F1.setup-shopify","i-lucide-shopping-bag",{"title":43,"path":44,"stem":45,"icon":46},"Module Config","\u002Fessentials\u002Fconfiguration","2.essentials\u002F2.configuration","i-lucide-anvil",{"title":48,"path":49,"stem":50,"icon":51},"Storefront API","\u002Fessentials\u002Fstorefront","2.essentials\u002F3.storefront","i-lucide-store",{"title":53,"path":54,"stem":55,"icon":56},"Customer API","\u002Fessentials\u002Fcustomer-account","2.essentials\u002F4.customer-account","i-lucide-user",{"title":58,"path":59,"stem":60,"icon":61},"Admin API","\u002Fessentials\u002Fadmin","2.essentials\u002F5.admin","i-lucide-shield",{"title":63,"path":64,"stem":65,"icon":66},"Error Handling","\u002Fessentials\u002Ferror-handling","2.essentials\u002F6.error-handling","i-lucide-bug",{"title":68,"path":69,"stem":70,"icon":71},"Caching","\u002Fessentials\u002Fcaching","2.essentials\u002F7.caching","i-lucide-rabbit",{"title":73,"path":74,"stem":75,"icon":76},"Codegen","\u002Fessentials\u002Fcodegen","2.essentials\u002F8.codegen","i-lucide-wand-sparkles",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":30},"Recipes","i-lucide-chef-hat","\u002Frecipes","3.recipes",[83,88,93,98,103],{"title":84,"path":85,"stem":86,"icon":87},"Navigation Menu","\u002Frecipes\u002Fnavigation-tree","3.recipes\u002F1.navigation-tree","i-lucide-menu",{"title":89,"path":90,"stem":91,"icon":92},"Collection Page","\u002Frecipes\u002Fcollection-page","3.recipes\u002F2.collection-page","i-lucide-group",{"title":94,"path":95,"stem":96,"icon":97},"Collection Filters","\u002Frecipes\u002Fcollection-filters","3.recipes\u002F3.collection-filters","i-lucide-funnel",{"title":99,"path":100,"stem":101,"icon":102},"Product Page","\u002Frecipes\u002Fproduct-page","3.recipes\u002F4.product-page","i-lucide-shirt",{"title":104,"path":105,"stem":106,"icon":107},"Using the Cart","\u002Frecipes\u002Fcart","3.recipes\u002F5.cart","i-lucide-shopping-cart",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":30},"Going Further","i-lucide-pickaxe","\u002Fgoing-further","4.going-further",[114,119,124],{"title":115,"path":116,"stem":117,"icon":118},"Hooks","\u002Fgoing-further\u002Fhooks","4.going-further\u002F1.hooks","i-lucide-between-horizontal-start",{"title":120,"path":121,"stem":122,"icon":123},"GraphiQL Sandbox","\u002Fgoing-further\u002Fsandbox","4.going-further\u002F2.sandbox","i-lucide-app-window",{"title":125,"path":126,"stem":127,"icon":128},"Webhooks","\u002Fgoing-further\u002Fwebhooks","4.going-further\u002F3.webhooks","i-lucide-fishing-hook",{"id":130,"title":131,"body":132,"description":2087,"extension":2088,"links":2089,"meta":2090,"navigation":2091,"path":54,"seo":2092,"stem":55,"__hash__":2093},"docs\u002F2.essentials\u002F4.customer-account.md","Customer Account API",{"type":133,"value":134,"toc":2073},"minimark",[135,139,152,157,169,194,201,215,229,233,236,254,259,266,416,420,426,536,540,550,737,746,749,753,757,767,957,963,1065,1072,1079,1082,1085,1098,1308,1325,1329,1337,1561,1565,1568,1571,1574,1588,1591,1709,1715,1725,2019,2026,2063,2069],[136,137,138],"p",{},"The Customer Account API is a public API that allows you to access your Shopify store's customer data,\nsuch as customer profiles, addresses, and order history.\nIt is designed to be used in client-side applications, such as a Nuxt frontend.\nTo use the Customer Account API, you need to obtain a client id.\nConfidential client authentication is currently not supported, so a client secret is not required.",[140,141,142,143,147,148,151],"note",{},"See the ",[144,145,146],"a",{"href":44},"module configuration"," to see how to set up the module for the Customer Account API.\nIf you need help obtaining your client credentials, see the ",[144,149,150],{"href":39},"Shopify Setup Guide",".",[153,154,156],"h2",{"id":155},"setup","Setup",[136,158,159,160,164,165,168],{},"For the type generation to work correctly, make sure to install the ",[161,162,163],"code",{},"@shopify\u002Fhydrogen"," package for the appropriate version of the API\nyou are using (e.g. ",[161,166,167],{},"@shopify\u002Fhydrogen@2026.4.0"," for API version 2026-04).",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @shopify\u002Fhydrogen\n","bash","",[161,177,178],{"__ignoreMap":175},[179,180,183,187,191],"span",{"class":181,"line":182},"line",1,[179,184,186],{"class":185},"sBMFI","npm",[179,188,190],{"class":189},"sfazB"," install",[179,192,193],{"class":189}," @shopify\u002Fhydrogen\n",[136,195,196,197,200],{},"For the customer account authentication flow, also make sure to install the ",[161,198,199],{},"nuxt-auth-utils"," package:",[170,202,204],{"className":172,"code":203,"language":174,"meta":175,"style":175},"npm install nuxt-auth-utils\n",[161,205,206],{"__ignoreMap":175},[179,207,208,210,212],{"class":181,"line":182},[179,209,186],{"class":185},[179,211,190],{"class":189},[179,213,214],{"class":189}," nuxt-auth-utils\n",[136,216,217,218,221,222,225,226,228],{},"Then, once configured, you can use the Customer Account API in your Nuxt application via the ",[161,219,220],{},"useCustomerAccount","\nand ",[161,223,224],{},"useCustomerAccountData"," composables. The ",[161,227,220],{}," composable is available to both server and client-side.",[153,230,232],{"id":231},"authentication","Authentication",[136,234,235],{},"The module provides built-in routes for the OAuth authentication flow. You do not need to create these routes yourself.",[136,237,238,239,242,243,246,247,253],{},"To authenticate with Shopify, your app needs to have a publicly accessible URL where Shopify can redirect the user after they log in.\nThis means that the authentication flow will not work when running the app in development mode with ",[161,240,241],{},"nuxt dev",", since the app is only accessible at ",[161,244,245],{},"localhost",".\nTo work around this, you can use a tunneling service like ",[144,248,252],{"href":249,"rel":250},"https:\u002F\u002Fngrok.com\u002F",[251],"nofollow","ngrok"," to create a public URL for your local development server.",[255,256,258],"h3",{"id":257},"logging-in","Logging in",[136,260,261,262,265],{},"To initiate the login flow, redirect the user to ",[161,263,264],{},"\u002F_auth\u002Fcustomer-account\u002Fcallback",":",[170,267,272],{"className":268,"code":269,"filename":270,"language":271,"meta":175,"style":175},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nfunction login() {\n  navigateTo('\u002F_auth\u002Fcustomer-account\u002Fcallback')\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cbutton @click=\"login\">Log in\u003C\u002Fbutton>\n\u003C\u002Ftemplate>\n","~\u002Fapp\u002Fpages\u002Faccount.vue","vue",[161,273,274,305,321,340,346,356,363,373,407],{"__ignoreMap":175},[179,275,276,280,284,288,291,294,297,300,302],{"class":181,"line":182},[179,277,279],{"class":278},"sMK4o","\u003C",[179,281,283],{"class":282},"swJcz","script",[179,285,287],{"class":286},"spNyl"," setup",[179,289,290],{"class":286}," lang",[179,292,293],{"class":278},"=",[179,295,296],{"class":278},"\"",[179,298,299],{"class":189},"ts",[179,301,296],{"class":278},[179,303,304],{"class":278},">\n",[179,306,308,311,315,318],{"class":181,"line":307},2,[179,309,310],{"class":286},"function",[179,312,314],{"class":313},"s2Zo4"," login",[179,316,317],{"class":278},"()",[179,319,320],{"class":278}," {\n",[179,322,324,327,330,333,335,337],{"class":181,"line":323},3,[179,325,326],{"class":313},"  navigateTo",[179,328,329],{"class":282},"(",[179,331,332],{"class":278},"'",[179,334,264],{"class":189},[179,336,332],{"class":278},[179,338,339],{"class":282},")\n",[179,341,343],{"class":181,"line":342},4,[179,344,345],{"class":278},"}\n",[179,347,349,352,354],{"class":181,"line":348},5,[179,350,351],{"class":278},"\u003C\u002F",[179,353,283],{"class":282},[179,355,304],{"class":278},[179,357,359],{"class":181,"line":358},6,[179,360,362],{"emptyLinePlaceholder":361},true,"\n",[179,364,366,368,371],{"class":181,"line":365},7,[179,367,279],{"class":278},[179,369,370],{"class":282},"template",[179,372,304],{"class":278},[179,374,376,379,382,385,387,389,392,394,397,401,403,405],{"class":181,"line":375},8,[179,377,378],{"class":278},"  \u003C",[179,380,381],{"class":282},"button",[179,383,384],{"class":286}," @click",[179,386,293],{"class":278},[179,388,296],{"class":278},[179,390,391],{"class":189},"login",[179,393,296],{"class":278},[179,395,396],{"class":278},">",[179,398,400],{"class":399},"sTEyZ","Log in",[179,402,351],{"class":278},[179,404,381],{"class":282},[179,406,304],{"class":278},[179,408,410,412,414],{"class":181,"line":409},9,[179,411,351],{"class":278},[179,413,370],{"class":282},[179,415,304],{"class":278},[255,417,419],{"id":418},"logging-out","Logging out",[136,421,422,423,265],{},"To log the user out, redirect them to ",[161,424,425],{},"\u002F_auth\u002Fcustomer-account\u002Flogout",[170,427,429],{"className":268,"code":428,"filename":270,"language":271,"meta":175,"style":175},"\u003Cscript setup lang=\"ts\">\nfunction logout() {\n  navigateTo('\u002F_auth\u002Fcustomer-account\u002Flogout')\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cbutton @click=\"logout\">Log out\u003C\u002Fbutton>\n\u003C\u002Ftemplate>\n",[161,430,431,451,462,476,480,488,492,500,528],{"__ignoreMap":175},[179,432,433,435,437,439,441,443,445,447,449],{"class":181,"line":182},[179,434,279],{"class":278},[179,436,283],{"class":282},[179,438,287],{"class":286},[179,440,290],{"class":286},[179,442,293],{"class":278},[179,444,296],{"class":278},[179,446,299],{"class":189},[179,448,296],{"class":278},[179,450,304],{"class":278},[179,452,453,455,458,460],{"class":181,"line":307},[179,454,310],{"class":286},[179,456,457],{"class":313}," logout",[179,459,317],{"class":278},[179,461,320],{"class":278},[179,463,464,466,468,470,472,474],{"class":181,"line":323},[179,465,326],{"class":313},[179,467,329],{"class":282},[179,469,332],{"class":278},[179,471,425],{"class":189},[179,473,332],{"class":278},[179,475,339],{"class":282},[179,477,478],{"class":181,"line":342},[179,479,345],{"class":278},[179,481,482,484,486],{"class":181,"line":348},[179,483,351],{"class":278},[179,485,283],{"class":282},[179,487,304],{"class":278},[179,489,490],{"class":181,"line":358},[179,491,362],{"emptyLinePlaceholder":361},[179,493,494,496,498],{"class":181,"line":365},[179,495,279],{"class":278},[179,497,370],{"class":282},[179,499,304],{"class":278},[179,501,502,504,506,508,510,512,515,517,519,522,524,526],{"class":181,"line":375},[179,503,378],{"class":278},[179,505,381],{"class":282},[179,507,384],{"class":286},[179,509,293],{"class":278},[179,511,296],{"class":278},[179,513,514],{"class":189},"logout",[179,516,296],{"class":278},[179,518,396],{"class":278},[179,520,521],{"class":399},"Log out",[179,523,351],{"class":278},[179,525,381],{"class":282},[179,527,304],{"class":278},[179,529,530,532,534],{"class":181,"line":409},[179,531,351],{"class":278},[179,533,370],{"class":282},[179,535,304],{"class":278},[255,537,539],{"id":538},"checking-login-status","Checking login status",[136,541,542,543,549],{},"The module uses ",[144,544,547],{"href":545,"rel":546},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils",[251],[161,548,199],{}," under the hood to manage the session.\nYou can use its composables to check whether a user is currently authenticated:",[170,551,553],{"className":268,"code":552,"filename":270,"language":271,"meta":175,"style":175},"\u003Cscript setup lang=\"ts\">\nconst { loggedIn, user } = useUserSession()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"loggedIn\">\n    \u003Cp>Logged in as {{ user?.email }}\u003C\u002Fp>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else>\n    \u003Cbutton @click=\"navigateTo('\u002F_auth\u002Fcustomer-account\u002Fcallback')\">\n      Log in\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[161,554,555,575,604,612,616,624,645,663,672,683,703,709,719,728],{"__ignoreMap":175},[179,556,557,559,561,563,565,567,569,571,573],{"class":181,"line":182},[179,558,279],{"class":278},[179,560,283],{"class":282},[179,562,287],{"class":286},[179,564,290],{"class":286},[179,566,293],{"class":278},[179,568,296],{"class":278},[179,570,299],{"class":189},[179,572,296],{"class":278},[179,574,304],{"class":278},[179,576,577,580,583,586,589,592,595,598,601],{"class":181,"line":307},[179,578,579],{"class":286},"const",[179,581,582],{"class":278}," {",[179,584,585],{"class":399}," loggedIn",[179,587,588],{"class":278},",",[179,590,591],{"class":399}," user ",[179,593,594],{"class":278},"}",[179,596,597],{"class":278}," =",[179,599,600],{"class":313}," useUserSession",[179,602,603],{"class":399},"()\n",[179,605,606,608,610],{"class":181,"line":323},[179,607,351],{"class":278},[179,609,283],{"class":282},[179,611,304],{"class":278},[179,613,614],{"class":181,"line":342},[179,615,362],{"emptyLinePlaceholder":361},[179,617,618,620,622],{"class":181,"line":348},[179,619,279],{"class":278},[179,621,370],{"class":282},[179,623,304],{"class":278},[179,625,626,628,631,634,636,638,641,643],{"class":181,"line":358},[179,627,378],{"class":278},[179,629,630],{"class":282},"div",[179,632,633],{"class":286}," v-if",[179,635,293],{"class":278},[179,637,296],{"class":278},[179,639,640],{"class":189},"loggedIn",[179,642,296],{"class":278},[179,644,304],{"class":278},[179,646,647,650,652,654,657,659,661],{"class":181,"line":365},[179,648,649],{"class":278},"    \u003C",[179,651,136],{"class":282},[179,653,396],{"class":278},[179,655,656],{"class":399},"Logged in as {{ user?.email }}",[179,658,351],{"class":278},[179,660,136],{"class":282},[179,662,304],{"class":278},[179,664,665,668,670],{"class":181,"line":375},[179,666,667],{"class":278},"  \u003C\u002F",[179,669,630],{"class":282},[179,671,304],{"class":278},[179,673,674,676,678,681],{"class":181,"line":409},[179,675,378],{"class":278},[179,677,630],{"class":282},[179,679,680],{"class":286}," v-else",[179,682,304],{"class":278},[179,684,686,688,690,692,694,696,699,701],{"class":181,"line":685},10,[179,687,649],{"class":278},[179,689,381],{"class":282},[179,691,384],{"class":286},[179,693,293],{"class":278},[179,695,296],{"class":278},[179,697,698],{"class":189},"navigateTo('\u002F_auth\u002Fcustomer-account\u002Fcallback')",[179,700,296],{"class":278},[179,702,304],{"class":278},[179,704,706],{"class":181,"line":705},11,[179,707,708],{"class":399},"      Log in\n",[179,710,712,715,717],{"class":181,"line":711},12,[179,713,714],{"class":278},"    \u003C\u002F",[179,716,381],{"class":282},[179,718,304],{"class":278},[179,720,722,724,726],{"class":181,"line":721},13,[179,723,667],{"class":278},[179,725,630],{"class":282},[179,727,304],{"class":278},[179,729,731,733,735],{"class":181,"line":730},14,[179,732,351],{"class":278},[179,734,370],{"class":282},[179,736,304],{"class":278},[136,738,739,740,742,743,745],{},"Once the user is authenticated, you can use the ",[161,741,220],{}," and ",[161,744,224],{}," composables\nto fetch customer data from the Customer Account API.",[153,747,21],{"id":748},"usage",[255,750,752],{"id":751},"client-side","Client-side",[754,755,220],"h4",{"id":756},"usecustomeraccount",[136,758,759,760,763,764,766],{},"When setting the ",[161,761,762],{},"clientId"," for the customer account client in the module configuration, you can use\nthe ",[161,765,220],{}," composable in your client-side code. For example, in a page component:",[170,768,771],{"className":268,"code":769,"filename":770,"language":271,"meta":175,"style":175},"\u003Cscript setup lang=\"ts\">\nconst customerAccount = useCustomerAccount()\n\nconst { data } = await customerAccount.request(`#graphql\n  query GetCustomer {\n    customer {\n      firstName\n      lastName\n    }\n  }\n`)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"data\">\n    \u003Ch1>{{ data.customer.firstName }} {{ data.customer.lastName }}\u003C\u002Fh1>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","~\u002Fapp\u002Fpages\u002Fprofile.vue",[161,772,773,793,807,811,844,849,854,859,864,869,874,880,888,892,900,920,939,948],{"__ignoreMap":175},[179,774,775,777,779,781,783,785,787,789,791],{"class":181,"line":182},[179,776,279],{"class":278},[179,778,283],{"class":282},[179,780,287],{"class":286},[179,782,290],{"class":286},[179,784,293],{"class":278},[179,786,296],{"class":278},[179,788,299],{"class":189},[179,790,296],{"class":278},[179,792,304],{"class":278},[179,794,795,797,800,802,805],{"class":181,"line":307},[179,796,579],{"class":286},[179,798,799],{"class":399}," customerAccount ",[179,801,293],{"class":278},[179,803,804],{"class":313}," useCustomerAccount",[179,806,603],{"class":399},[179,808,809],{"class":181,"line":323},[179,810,362],{"emptyLinePlaceholder":361},[179,812,813,815,817,820,822,824,828,831,833,836,838,841],{"class":181,"line":342},[179,814,579],{"class":286},[179,816,582],{"class":278},[179,818,819],{"class":399}," data ",[179,821,594],{"class":278},[179,823,597],{"class":278},[179,825,827],{"class":826},"s7zQu"," await",[179,829,830],{"class":399}," customerAccount",[179,832,151],{"class":278},[179,834,835],{"class":313},"request",[179,837,329],{"class":399},[179,839,840],{"class":278},"`",[179,842,843],{"class":189},"#graphql\n",[179,845,846],{"class":181,"line":348},[179,847,848],{"class":189},"  query GetCustomer {\n",[179,850,851],{"class":181,"line":358},[179,852,853],{"class":189},"    customer {\n",[179,855,856],{"class":181,"line":365},[179,857,858],{"class":189},"      firstName\n",[179,860,861],{"class":181,"line":375},[179,862,863],{"class":189},"      lastName\n",[179,865,866],{"class":181,"line":409},[179,867,868],{"class":189},"    }\n",[179,870,871],{"class":181,"line":685},[179,872,873],{"class":189},"  }\n",[179,875,876,878],{"class":181,"line":705},[179,877,840],{"class":278},[179,879,339],{"class":399},[179,881,882,884,886],{"class":181,"line":711},[179,883,351],{"class":278},[179,885,283],{"class":282},[179,887,304],{"class":278},[179,889,890],{"class":181,"line":721},[179,891,362],{"emptyLinePlaceholder":361},[179,893,894,896,898],{"class":181,"line":730},[179,895,279],{"class":278},[179,897,370],{"class":282},[179,899,304],{"class":278},[179,901,903,905,907,909,911,913,916,918],{"class":181,"line":902},15,[179,904,378],{"class":278},[179,906,630],{"class":282},[179,908,633],{"class":286},[179,910,293],{"class":278},[179,912,296],{"class":278},[179,914,915],{"class":189},"data",[179,917,296],{"class":278},[179,919,304],{"class":278},[179,921,923,925,928,930,933,935,937],{"class":181,"line":922},16,[179,924,649],{"class":278},[179,926,927],{"class":282},"h1",[179,929,396],{"class":278},[179,931,932],{"class":399},"{{ data.customer.firstName }} {{ data.customer.lastName }}",[179,934,351],{"class":278},[179,936,927],{"class":282},[179,938,304],{"class":278},[179,940,942,944,946],{"class":181,"line":941},17,[179,943,667],{"class":278},[179,945,630],{"class":282},[179,947,304],{"class":278},[179,949,951,953,955],{"class":181,"line":950},18,[179,952,351],{"class":278},[179,954,370],{"class":282},[179,956,304],{"class":278},[136,958,959,960,962],{},"You can also wrap use the ",[161,961,220],{}," composable in another composable, to build an abstracted\ndata fetching method:",[170,964,968],{"className":965,"code":966,"filename":967,"language":299,"meta":175,"style":175},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export const useCustomerData = () => {\n  const customerAccount = useCustomerAccount()\n\n  return customerAccount.request(`#graphql\n    query GetCustomer {\n      customer {\n        firstName\n        lastName\n      }\n    }\n  `)\n}\n","~\u002Fcomposables\u002FuseCustomer.ts",[161,969,970,991,1004,1008,1025,1030,1035,1040,1045,1050,1054,1061],{"__ignoreMap":175},[179,971,972,975,978,981,983,986,989],{"class":181,"line":182},[179,973,974],{"class":826},"export",[179,976,977],{"class":286}," const",[179,979,980],{"class":399}," useCustomerData ",[179,982,293],{"class":278},[179,984,985],{"class":278}," ()",[179,987,988],{"class":286}," =>",[179,990,320],{"class":278},[179,992,993,996,998,1000,1002],{"class":181,"line":307},[179,994,995],{"class":286},"  const",[179,997,830],{"class":399},[179,999,597],{"class":278},[179,1001,804],{"class":313},[179,1003,603],{"class":282},[179,1005,1006],{"class":181,"line":323},[179,1007,362],{"emptyLinePlaceholder":361},[179,1009,1010,1013,1015,1017,1019,1021,1023],{"class":181,"line":342},[179,1011,1012],{"class":826},"  return",[179,1014,830],{"class":399},[179,1016,151],{"class":278},[179,1018,835],{"class":313},[179,1020,329],{"class":282},[179,1022,840],{"class":278},[179,1024,843],{"class":189},[179,1026,1027],{"class":181,"line":348},[179,1028,1029],{"class":189},"    query GetCustomer {\n",[179,1031,1032],{"class":181,"line":358},[179,1033,1034],{"class":189},"      customer {\n",[179,1036,1037],{"class":181,"line":365},[179,1038,1039],{"class":189},"        firstName\n",[179,1041,1042],{"class":181,"line":375},[179,1043,1044],{"class":189},"        lastName\n",[179,1046,1047],{"class":181,"line":409},[179,1048,1049],{"class":189},"      }\n",[179,1051,1052],{"class":181,"line":685},[179,1053,868],{"class":189},[179,1055,1056,1059],{"class":181,"line":705},[179,1057,1058],{"class":278},"  `",[179,1060,339],{"class":282},[179,1062,1063],{"class":181,"line":711},[179,1064,345],{"class":278},[136,1066,1067,1068,1071],{},"This way, you can reuse the ",[161,1069,1070],{},"useCustomerData"," composable in multiple places in your application.",[136,1073,1074,1075,1078],{},"By default, each request from the client side is proxied through the Nitro server.\nThis behaviour can be customized by setting ",[161,1076,1077],{},"proxy: false"," in the customer account client config.",[140,1080,1081],{},"Using the Customer Account API on the client side without a proxy is currently not supported.",[255,1083,224],{"id":1084},"usecustomeraccountdata",[136,1086,1087,1088,1090,1091,1094,1095,1097],{},"You can wrap the ",[161,1089,220],{}," call with Nuxt's ",[161,1092,1093],{},"useAsyncData"," composable to integrate into the hybrid rendering model.\nTo shorten the syntax, the module provides a composable called ",[161,1096,224],{}," that automatically does this for us:",[170,1099,1101],{"className":268,"code":1100,"filename":770,"language":271,"meta":175,"style":175},"\u003Cscript setup lang=\"ts\">\nconst { data: customer } = await useCustomerAccountData('customer', `#graphql\n  query GetCustomer {\n    customer {\n      id\n      firstName\n      lastName\n    }\n  }\n`, {\n  transform: (data) => data?.customer,\n})\n\u003C\u002Fscript> \n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"customer\">\n    \u003Ch1>Welcome, {{ customer.firstName }} {{ customer.lastName }}\u003C\u002Fh1>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[161,1102,1103,1123,1162,1166,1170,1175,1179,1183,1187,1191,1199,1227,1233,1244,1248,1256,1274,1291,1299],{"__ignoreMap":175},[179,1104,1105,1107,1109,1111,1113,1115,1117,1119,1121],{"class":181,"line":182},[179,1106,279],{"class":278},[179,1108,283],{"class":282},[179,1110,287],{"class":286},[179,1112,290],{"class":286},[179,1114,293],{"class":278},[179,1116,296],{"class":278},[179,1118,299],{"class":189},[179,1120,296],{"class":278},[179,1122,304],{"class":278},[179,1124,1125,1127,1129,1132,1134,1137,1139,1141,1143,1146,1148,1150,1153,1155,1157,1160],{"class":181,"line":307},[179,1126,579],{"class":286},[179,1128,582],{"class":278},[179,1130,1131],{"class":282}," data",[179,1133,265],{"class":278},[179,1135,1136],{"class":399}," customer ",[179,1138,594],{"class":278},[179,1140,597],{"class":278},[179,1142,827],{"class":826},[179,1144,1145],{"class":313}," useCustomerAccountData",[179,1147,329],{"class":399},[179,1149,332],{"class":278},[179,1151,1152],{"class":189},"customer",[179,1154,332],{"class":278},[179,1156,588],{"class":278},[179,1158,1159],{"class":278}," `",[179,1161,843],{"class":189},[179,1163,1164],{"class":181,"line":323},[179,1165,848],{"class":189},[179,1167,1168],{"class":181,"line":342},[179,1169,853],{"class":189},[179,1171,1172],{"class":181,"line":348},[179,1173,1174],{"class":189},"      id\n",[179,1176,1177],{"class":181,"line":358},[179,1178,858],{"class":189},[179,1180,1181],{"class":181,"line":365},[179,1182,863],{"class":189},[179,1184,1185],{"class":181,"line":375},[179,1186,868],{"class":189},[179,1188,1189],{"class":181,"line":409},[179,1190,873],{"class":189},[179,1192,1193,1195,1197],{"class":181,"line":685},[179,1194,840],{"class":278},[179,1196,588],{"class":278},[179,1198,320],{"class":278},[179,1200,1201,1204,1206,1209,1212,1215,1217,1219,1222,1224],{"class":181,"line":705},[179,1202,1203],{"class":313},"  transform",[179,1205,265],{"class":278},[179,1207,1208],{"class":278}," (",[179,1210,915],{"class":1211},"sHdIc",[179,1213,1214],{"class":278},")",[179,1216,988],{"class":286},[179,1218,1131],{"class":399},[179,1220,1221],{"class":278},"?.",[179,1223,1152],{"class":399},[179,1225,1226],{"class":278},",\n",[179,1228,1229,1231],{"class":181,"line":711},[179,1230,594],{"class":278},[179,1232,339],{"class":399},[179,1234,1235,1237,1239,1241],{"class":181,"line":721},[179,1236,351],{"class":278},[179,1238,283],{"class":282},[179,1240,396],{"class":278},[179,1242,1243],{"class":399}," \n",[179,1245,1246],{"class":181,"line":730},[179,1247,362],{"emptyLinePlaceholder":361},[179,1249,1250,1252,1254],{"class":181,"line":902},[179,1251,279],{"class":278},[179,1253,370],{"class":282},[179,1255,304],{"class":278},[179,1257,1258,1260,1262,1264,1266,1268,1270,1272],{"class":181,"line":922},[179,1259,378],{"class":278},[179,1261,630],{"class":282},[179,1263,633],{"class":286},[179,1265,293],{"class":278},[179,1267,296],{"class":278},[179,1269,1152],{"class":189},[179,1271,296],{"class":278},[179,1273,304],{"class":278},[179,1275,1276,1278,1280,1282,1285,1287,1289],{"class":181,"line":941},[179,1277,649],{"class":278},[179,1279,927],{"class":282},[179,1281,396],{"class":278},[179,1283,1284],{"class":399},"Welcome, {{ customer.firstName }} {{ customer.lastName }}",[179,1286,351],{"class":278},[179,1288,927],{"class":282},[179,1290,304],{"class":278},[179,1292,1293,1295,1297],{"class":181,"line":950},[179,1294,667],{"class":278},[179,1296,630],{"class":282},[179,1298,304],{"class":278},[179,1300,1302,1304,1306],{"class":181,"line":1301},19,[179,1303,351],{"class":278},[179,1305,370],{"class":282},[179,1307,304],{"class":278},[136,1309,1310,1311,1313,1314,1316,1317,1320,1321,1324],{},"Standard features of ",[161,1312,1093],{}," such as caching, revalidation, and error handling are all available when using ",[161,1315,224],{},".\nYou can also use ",[161,1318,1319],{},"transform",", ",[161,1322,1323],{},"pick",", and other options to further customize the behavior of the data fetching.",[255,1326,1328],{"id":1327},"server-side","Server-side",[136,1330,759,1331,1333,1334,1336],{},[161,1332,762],{}," for the customer account client in the module configuration,\nyou can use the ",[161,1335,220],{}," composable in your server-side code.\nFor example, in a server route:",[170,1338,1341],{"className":965,"code":1339,"filename":1340,"language":299,"meta":175,"style":175},"export default defineEventHandler((event) => {\n  const id = getRouterParam(event, 'id')\n\n  const customerAccount = useCustomerAccount()\n\n  return customerAccount.request(`#graphql\n    query GetOrder($id: ID!) {\n      order(id: $id) {\n        id\n        name\n        lineItems {\n          edges {\n            node {\n              title\n              quantity\n            }\n          }\n        }\n      }\n    }\n  `, {\n    variables: {\n      id: `gid:\u002F\u002Fshopify\u002FOrder\u002F${id}`,\n    }\n  })\n})\n","~\u002Fserver\u002Fapi\u002Fcustomer\u002Forder\u002F[id].ts",[161,1342,1343,1366,1394,1398,1410,1414,1430,1435,1440,1445,1450,1455,1460,1465,1470,1475,1480,1485,1490,1494,1499,1508,1518,1541,1546,1554],{"__ignoreMap":175},[179,1344,1345,1347,1350,1353,1355,1357,1360,1362,1364],{"class":181,"line":182},[179,1346,974],{"class":826},[179,1348,1349],{"class":826}," default",[179,1351,1352],{"class":313}," defineEventHandler",[179,1354,329],{"class":399},[179,1356,329],{"class":278},[179,1358,1359],{"class":1211},"event",[179,1361,1214],{"class":278},[179,1363,988],{"class":286},[179,1365,320],{"class":278},[179,1367,1368,1370,1373,1375,1378,1380,1382,1384,1387,1390,1392],{"class":181,"line":307},[179,1369,995],{"class":286},[179,1371,1372],{"class":399}," id",[179,1374,597],{"class":278},[179,1376,1377],{"class":313}," getRouterParam",[179,1379,329],{"class":282},[179,1381,1359],{"class":399},[179,1383,588],{"class":278},[179,1385,1386],{"class":278}," '",[179,1388,1389],{"class":189},"id",[179,1391,332],{"class":278},[179,1393,339],{"class":282},[179,1395,1396],{"class":181,"line":323},[179,1397,362],{"emptyLinePlaceholder":361},[179,1399,1400,1402,1404,1406,1408],{"class":181,"line":342},[179,1401,995],{"class":286},[179,1403,830],{"class":399},[179,1405,597],{"class":278},[179,1407,804],{"class":313},[179,1409,603],{"class":282},[179,1411,1412],{"class":181,"line":348},[179,1413,362],{"emptyLinePlaceholder":361},[179,1415,1416,1418,1420,1422,1424,1426,1428],{"class":181,"line":358},[179,1417,1012],{"class":826},[179,1419,830],{"class":399},[179,1421,151],{"class":278},[179,1423,835],{"class":313},[179,1425,329],{"class":282},[179,1427,840],{"class":278},[179,1429,843],{"class":189},[179,1431,1432],{"class":181,"line":365},[179,1433,1434],{"class":189},"    query GetOrder($id: ID!) {\n",[179,1436,1437],{"class":181,"line":375},[179,1438,1439],{"class":189},"      order(id: $id) {\n",[179,1441,1442],{"class":181,"line":409},[179,1443,1444],{"class":189},"        id\n",[179,1446,1447],{"class":181,"line":685},[179,1448,1449],{"class":189},"        name\n",[179,1451,1452],{"class":181,"line":705},[179,1453,1454],{"class":189},"        lineItems {\n",[179,1456,1457],{"class":181,"line":711},[179,1458,1459],{"class":189},"          edges {\n",[179,1461,1462],{"class":181,"line":721},[179,1463,1464],{"class":189},"            node {\n",[179,1466,1467],{"class":181,"line":730},[179,1468,1469],{"class":189},"              title\n",[179,1471,1472],{"class":181,"line":902},[179,1473,1474],{"class":189},"              quantity\n",[179,1476,1477],{"class":181,"line":922},[179,1478,1479],{"class":189},"            }\n",[179,1481,1482],{"class":181,"line":941},[179,1483,1484],{"class":189},"          }\n",[179,1486,1487],{"class":181,"line":950},[179,1488,1489],{"class":189},"        }\n",[179,1491,1492],{"class":181,"line":1301},[179,1493,1049],{"class":189},[179,1495,1497],{"class":181,"line":1496},20,[179,1498,868],{"class":189},[179,1500,1502,1504,1506],{"class":181,"line":1501},21,[179,1503,1058],{"class":278},[179,1505,588],{"class":278},[179,1507,320],{"class":278},[179,1509,1511,1514,1516],{"class":181,"line":1510},22,[179,1512,1513],{"class":282},"    variables",[179,1515,265],{"class":278},[179,1517,320],{"class":278},[179,1519,1521,1524,1526,1528,1531,1534,1536,1539],{"class":181,"line":1520},23,[179,1522,1523],{"class":282},"      id",[179,1525,265],{"class":278},[179,1527,1159],{"class":278},[179,1529,1530],{"class":189},"gid:\u002F\u002Fshopify\u002FOrder\u002F",[179,1532,1533],{"class":278},"${",[179,1535,1389],{"class":399},[179,1537,1538],{"class":278},"}`",[179,1540,1226],{"class":278},[179,1542,1544],{"class":181,"line":1543},24,[179,1545,868],{"class":278},[179,1547,1549,1552],{"class":181,"line":1548},25,[179,1550,1551],{"class":278},"  }",[179,1553,339],{"class":282},[179,1555,1557,1559],{"class":181,"line":1556},26,[179,1558,594],{"class":278},[179,1560,339],{"class":399},[255,1562,1564],{"id":1563},"using-validation","Using validation",[136,1566,1567],{},"Using Nitro's built-in input validation, you can match the variables of your GraphQL queries before sending them to the\nAPI.",[136,1569,1570],{},"For this example we'll use the Zod library, but you can use any validation library you like.",[136,1572,1573],{},"First, install the validation library:",[170,1575,1577],{"className":172,"code":1576,"language":174,"meta":175,"style":175},"npm install zod\n",[161,1578,1579],{"__ignoreMap":175},[179,1580,1581,1583,1585],{"class":181,"line":182},[179,1582,186],{"class":185},[179,1584,190],{"class":189},[179,1586,1587],{"class":189}," zod\n",[136,1589,1590],{},"Then, import it and create a schema:",[170,1592,1594],{"className":965,"code":1593,"language":299,"meta":175,"style":175},"import { z } from 'zod'\n\nconst schema = z.object({\n  id: z.string().min(1).transform((value) => `gid:\u002F\u002Fshopify\u002FOrder\u002F${value}`),\n})\n",[161,1595,1596,1620,1624,1645,1703],{"__ignoreMap":175},[179,1597,1598,1601,1603,1606,1609,1612,1614,1617],{"class":181,"line":182},[179,1599,1600],{"class":826},"import",[179,1602,582],{"class":278},[179,1604,1605],{"class":399}," z",[179,1607,1608],{"class":278}," }",[179,1610,1611],{"class":826}," from",[179,1613,1386],{"class":278},[179,1615,1616],{"class":189},"zod",[179,1618,1619],{"class":278},"'\n",[179,1621,1622],{"class":181,"line":307},[179,1623,362],{"emptyLinePlaceholder":361},[179,1625,1626,1628,1631,1633,1635,1637,1640,1642],{"class":181,"line":323},[179,1627,579],{"class":286},[179,1629,1630],{"class":399}," schema ",[179,1632,293],{"class":278},[179,1634,1605],{"class":399},[179,1636,151],{"class":278},[179,1638,1639],{"class":313},"object",[179,1641,329],{"class":399},[179,1643,1644],{"class":278},"{\n",[179,1646,1647,1650,1652,1654,1656,1659,1661,1663,1666,1668,1672,1674,1676,1678,1680,1682,1685,1687,1689,1691,1693,1695,1697,1699,1701],{"class":181,"line":342},[179,1648,1649],{"class":282},"  id",[179,1651,265],{"class":278},[179,1653,1605],{"class":399},[179,1655,151],{"class":278},[179,1657,1658],{"class":313},"string",[179,1660,317],{"class":399},[179,1662,151],{"class":278},[179,1664,1665],{"class":313},"min",[179,1667,329],{"class":399},[179,1669,1671],{"class":1670},"sbssI","1",[179,1673,1214],{"class":399},[179,1675,151],{"class":278},[179,1677,1319],{"class":313},[179,1679,329],{"class":399},[179,1681,329],{"class":278},[179,1683,1684],{"class":1211},"value",[179,1686,1214],{"class":278},[179,1688,988],{"class":286},[179,1690,1159],{"class":278},[179,1692,1530],{"class":189},[179,1694,1533],{"class":278},[179,1696,1684],{"class":399},[179,1698,1538],{"class":278},[179,1700,1214],{"class":399},[179,1702,1226],{"class":278},[179,1704,1705,1707],{"class":181,"line":348},[179,1706,594],{"class":278},[179,1708,339],{"class":399},[140,1710,1711,1712,1714],{},"The ",[161,1713,1319],{}," method is used here to convert a simple string input into the format required by the Shopify API.\nIn this case, it takes an order ID and transforms it into the global ID format that Shopify expects.",[136,1716,1717,1718,1721,1722,1724],{},"Next, we can use Nitro's built-in ",[161,1719,1720],{},"getValidatedRouterParams"," utility to validate the ",[161,1723,1389],{}," route parameter:",[170,1726,1728],{"className":965,"code":1727,"filename":1340,"language":299,"meta":175,"style":175},"import { z } from 'zod'\n\nconst schema = z.object({\n  id: z.string().min(1).transform((value) => `gid:\u002F\u002Fshopify\u002FOrder\u002F${value}`),\n})\n\nexport default defineEventHandler(async (event) => {\n  const variables = await getValidatedRouterParams(event, schema.parse)\n\n  const customerAccount = useCustomerAccount()\n\n  const query = `#graphql\n    query GetOrder($id: ID!) {\n      order(id: $id) {\n        id\n        name\n        lineItems {\n          edges {\n            node {\n              title\n              quantity\n            }\n          }\n        }\n      }\n    }\n  `\n\n  return storefront.request(query, { variables })\n})\n",[161,1729,1730,1748,1752,1770,1822,1828,1832,1855,1885,1889,1901,1905,1918,1922,1926,1930,1934,1938,1942,1946,1950,1954,1958,1962,1966,1970,1974,1980,1985,2012],{"__ignoreMap":175},[179,1731,1732,1734,1736,1738,1740,1742,1744,1746],{"class":181,"line":182},[179,1733,1600],{"class":826},[179,1735,582],{"class":278},[179,1737,1605],{"class":399},[179,1739,1608],{"class":278},[179,1741,1611],{"class":826},[179,1743,1386],{"class":278},[179,1745,1616],{"class":189},[179,1747,1619],{"class":278},[179,1749,1750],{"class":181,"line":307},[179,1751,362],{"emptyLinePlaceholder":361},[179,1753,1754,1756,1758,1760,1762,1764,1766,1768],{"class":181,"line":323},[179,1755,579],{"class":286},[179,1757,1630],{"class":399},[179,1759,293],{"class":278},[179,1761,1605],{"class":399},[179,1763,151],{"class":278},[179,1765,1639],{"class":313},[179,1767,329],{"class":399},[179,1769,1644],{"class":278},[179,1771,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820],{"class":181,"line":342},[179,1773,1649],{"class":282},[179,1775,265],{"class":278},[179,1777,1605],{"class":399},[179,1779,151],{"class":278},[179,1781,1658],{"class":313},[179,1783,317],{"class":399},[179,1785,151],{"class":278},[179,1787,1665],{"class":313},[179,1789,329],{"class":399},[179,1791,1671],{"class":1670},[179,1793,1214],{"class":399},[179,1795,151],{"class":278},[179,1797,1319],{"class":313},[179,1799,329],{"class":399},[179,1801,329],{"class":278},[179,1803,1684],{"class":1211},[179,1805,1214],{"class":278},[179,1807,988],{"class":286},[179,1809,1159],{"class":278},[179,1811,1530],{"class":189},[179,1813,1533],{"class":278},[179,1815,1684],{"class":399},[179,1817,1538],{"class":278},[179,1819,1214],{"class":399},[179,1821,1226],{"class":278},[179,1823,1824,1826],{"class":181,"line":348},[179,1825,594],{"class":278},[179,1827,339],{"class":399},[179,1829,1830],{"class":181,"line":358},[179,1831,362],{"emptyLinePlaceholder":361},[179,1833,1834,1836,1838,1840,1842,1845,1847,1849,1851,1853],{"class":181,"line":365},[179,1835,974],{"class":826},[179,1837,1349],{"class":826},[179,1839,1352],{"class":313},[179,1841,329],{"class":399},[179,1843,1844],{"class":286},"async",[179,1846,1208],{"class":278},[179,1848,1359],{"class":1211},[179,1850,1214],{"class":278},[179,1852,988],{"class":286},[179,1854,320],{"class":278},[179,1856,1857,1859,1862,1864,1866,1869,1871,1873,1875,1878,1880,1883],{"class":181,"line":375},[179,1858,995],{"class":286},[179,1860,1861],{"class":399}," variables",[179,1863,597],{"class":278},[179,1865,827],{"class":826},[179,1867,1868],{"class":313}," getValidatedRouterParams",[179,1870,329],{"class":282},[179,1872,1359],{"class":399},[179,1874,588],{"class":278},[179,1876,1877],{"class":399}," schema",[179,1879,151],{"class":278},[179,1881,1882],{"class":399},"parse",[179,1884,339],{"class":282},[179,1886,1887],{"class":181,"line":409},[179,1888,362],{"emptyLinePlaceholder":361},[179,1890,1891,1893,1895,1897,1899],{"class":181,"line":685},[179,1892,995],{"class":286},[179,1894,830],{"class":399},[179,1896,597],{"class":278},[179,1898,804],{"class":313},[179,1900,603],{"class":282},[179,1902,1903],{"class":181,"line":705},[179,1904,362],{"emptyLinePlaceholder":361},[179,1906,1907,1909,1912,1914,1916],{"class":181,"line":711},[179,1908,995],{"class":286},[179,1910,1911],{"class":399}," query",[179,1913,597],{"class":278},[179,1915,1159],{"class":278},[179,1917,843],{"class":189},[179,1919,1920],{"class":181,"line":721},[179,1921,1434],{"class":189},[179,1923,1924],{"class":181,"line":730},[179,1925,1439],{"class":189},[179,1927,1928],{"class":181,"line":902},[179,1929,1444],{"class":189},[179,1931,1932],{"class":181,"line":922},[179,1933,1449],{"class":189},[179,1935,1936],{"class":181,"line":941},[179,1937,1454],{"class":189},[179,1939,1940],{"class":181,"line":950},[179,1941,1459],{"class":189},[179,1943,1944],{"class":181,"line":1301},[179,1945,1464],{"class":189},[179,1947,1948],{"class":181,"line":1496},[179,1949,1469],{"class":189},[179,1951,1952],{"class":181,"line":1501},[179,1953,1474],{"class":189},[179,1955,1956],{"class":181,"line":1510},[179,1957,1479],{"class":189},[179,1959,1960],{"class":181,"line":1520},[179,1961,1484],{"class":189},[179,1963,1964],{"class":181,"line":1543},[179,1965,1489],{"class":189},[179,1967,1968],{"class":181,"line":1548},[179,1969,1049],{"class":189},[179,1971,1972],{"class":181,"line":1556},[179,1973,868],{"class":189},[179,1975,1977],{"class":181,"line":1976},27,[179,1978,1979],{"class":278},"  `\n",[179,1981,1983],{"class":181,"line":1982},28,[179,1984,362],{"emptyLinePlaceholder":361},[179,1986,1988,1990,1993,1995,1997,1999,2002,2004,2006,2008,2010],{"class":181,"line":1987},29,[179,1989,1012],{"class":826},[179,1991,1992],{"class":399}," storefront",[179,1994,151],{"class":278},[179,1996,835],{"class":313},[179,1998,329],{"class":282},[179,2000,2001],{"class":399},"query",[179,2003,588],{"class":278},[179,2005,582],{"class":278},[179,2007,1861],{"class":399},[179,2009,1608],{"class":278},[179,2011,339],{"class":282},[179,2013,2015,2017],{"class":181,"line":2014},30,[179,2016,594],{"class":278},[179,2018,339],{"class":399},[136,2020,2021,2022,2025],{},"Now we can call the API at ",[161,2023,2024],{},"\u002Fapi\u002Fcustomer\u002Forder\u002F[id]"," with the following variables:",[170,2027,2030],{"className":965,"code":2028,"filename":2029,"language":299,"meta":175,"style":175},"\u002F\u002F Requests \u002Fapi\u002Fcustomer\u002Forder\u002F1031437189199\nconst response = await useFetch('\u002Fapi\u002Fcustomer\u002Forder\u002F1031437189199')\n","~\u002Fpages\u002Fyour-page.vue",[161,2031,2032,2038],{"__ignoreMap":175},[179,2033,2034],{"class":181,"line":182},[179,2035,2037],{"class":2036},"sHwdD","\u002F\u002F Requests \u002Fapi\u002Fcustomer\u002Forder\u002F1031437189199\n",[179,2039,2040,2042,2045,2047,2049,2052,2054,2056,2059,2061],{"class":181,"line":307},[179,2041,579],{"class":286},[179,2043,2044],{"class":399}," response ",[179,2046,293],{"class":278},[179,2048,827],{"class":826},[179,2050,2051],{"class":313}," useFetch",[179,2053,329],{"class":399},[179,2055,332],{"class":278},[179,2057,2058],{"class":189},"\u002Fapi\u002Fcustomer\u002Forder\u002F1031437189199",[179,2060,332],{"class":278},[179,2062,339],{"class":399},[136,2064,2065,2066,2068],{},"With the validation, requests will fail before reaching Shopify if the variable ",[161,2067,1389],{}," is not a valid string.",[2070,2071,2072],"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 .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 .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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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}",{"title":175,"searchDepth":307,"depth":307,"links":2074},[2075,2076,2081],{"id":155,"depth":307,"text":156},{"id":231,"depth":307,"text":232,"children":2077},[2078,2079,2080],{"id":257,"depth":323,"text":258},{"id":418,"depth":323,"text":419},{"id":538,"depth":323,"text":539},{"id":748,"depth":307,"text":21,"children":2082},[2083,2084,2085,2086],{"id":751,"depth":323,"text":752},{"id":1084,"depth":323,"text":224},{"id":1327,"depth":323,"text":1328},{"id":1563,"depth":323,"text":1564},"Using the Shopify Customer Account API in Nuxt","md",null,{},{"title":53,"icon":56},{"title":131,"description":2087},"fedzL2boqkeC72oA-vwbN5KNmuFTkeEHgxU8mQA1bes",[2095,2097],{"title":48,"path":49,"stem":50,"description":2096,"icon":51,"children":-1},"Using the Shopify Storefront API in Nuxt",{"title":58,"path":59,"stem":60,"description":2098,"icon":61,"children":-1},"Using the Shopify Admin API in Nuxt",1776080708599]