This section explains which values you need from Shopify and where to find them. You can either enter them yourself into the Laioutr project configuration, or hand them to your implementation partner.
To connect a Shopify store to Laioutr you need:
<store-id>.myshopify.commy-brand.myshopify.comhttps://<your-laioutr-domain>/oauth/callback)Your implementation partner might ask you to paste these values into a project setup form or send them via a secure channel.
This token is what Laioutr uses to read products, collections, carts, menus and content via the Storefront API.
If you want customers to log in on your Laioutr storefront using their Shopify account:
https://<your-laioutr-domain>/oauth/callbackLaioutr uses this information to run the OAuth2 login flow with Shopify.
To manage images and files from within Laioutr (for example in the media library of the Studio), a separate app with Admin API access is required:
write_filesread_filesread_themeswrite_themesread_online_store_navigationYour implementation partner may request additional scopes (for example to work with metaobjects or product data) depending on your project.
At this point you should have:
<store-id>.myshopify.comDevelopers will now wire these values into the Laioutr project. You do not need to change theme code in Shopify for the integration itself.
Developers integrate Shopify by adding the @laioutr-app/shopify module to the Nuxt app that powers the Laioutr frontend.
The module expects configuration under the key '@laioutr-app/shopify' in nuxt.config.ts (or via runtimeConfig). All options are required for the full feature set (Storefront, Admin, Customer Account).
| Option | Type | Description |
|---|---|---|
shopId | string | Shopify shop identifier. Use <store-id>.myshopify.com (e.g. my-brand.myshopify.com). Used to build Customer Account API URLs. |
storeDomain | string | Store domain in the same format: <store-id>.myshopify.com. Used by Storefront and Admin API clients. |
privateAccessKey | string | Storefront API private access token from the Headless sales channel. |
adminAccessToken | string | Admin API access token from the custom app created under Develop apps with the scopes listed above. |
customerAccountApiClientId | string | OAuth2 Client ID for the Customer Account API app (client type Confidential). |
customerAccountApiClientSecret | string | OAuth2 Client Secret for the same Customer Account API app. Keep this in private runtime config. |
redirectUri | string | OAuth2 redirect URI (callback URL) that you also configured in the Customer Account API app, e.g. https://your-frontend.com/api/orchestr/action/oauth/callback. |
nuxt.config.ts// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@laioutr-app/shopify', '@laioutr-core/orchestr', '@nuxt/image'],
'@laioutr-app/shopify': {
shopId: process.env.SHOPIFY_SHOP_ID!,
storeDomain: process.env.SHOPIFY_STORE_DOMAIN!,
privateAccessKey: process.env.SHOPIFY_STOREFRONT_PRIVATE_ACCESS_TOKEN!,
adminAccessToken: process.env.SHOPIFY_ADMIN_ACCESS_TOKEN!,
customerAccountApiClientId: process.env.SHOPIFY_CUSTOMER_ACCOUNT_API_CLIENT_ID!,
customerAccountApiClientSecret: process.env.SHOPIFY_CUSTOMER_ACCOUNT_API_CLIENT_SECRET!,
redirectUri: process.env.SHOPIFY_REDIRECT_URI!,
},
});
Use environment variables or a secret manager for all tokens and secrets; never commit them to version control.
storeDomain and privateAccessKey.shopify-cart-id; the package creates/updates carts and syncs the cookie.storeDomain and adminAccessToken.shopId, customerAccountApiClientId, customerAccountApiClientSecret and redirectUri to run an OAuth2 flow.shopify-access-tokenshopify-refresh-tokenshopify-id-tokenshopify-oauth-state, shopify-oauth-nonce) are cleared after the callback.Once configured, the @laioutr-app/shopify package implements Laioutr’s canonical ecommerce model through the orchestr. Your frontend can talk to Shopify without knowing its APIs directly.
shopify-cart-id cookie).shopify for https://cdn.shopify.com URLs.shopify for listing and uploading media via the Admin API.ShopifyContentPageBlock) and pagetype plugins for content pages backed by Shopify data.For exact type names and payloads, check the package source and the @laioutr-core canonical type definitions.
You can extend the Shopify integration in several ways while staying within Laioutr’s orchestr and canonical model.
shopify Nuxt Image provider for all Shopify CDN media to get automatic optimization.read_online_store_navigation).By combining these extension points, you can gradually grow from a standard Laioutr × Shopify storefront into a highly tailored commerce experience, without losing the benefits of a canonical, backend-agnostic frontend architecture.
OXID eShop
Developer documentation for the Laioutr OXID app package. Connect your Nuxt frontend to OXID eShop via the GraphQL API with token-based auth and basket cookie.
Shopware
Developer documentation for the Laioutr Shopware app package. Connect your Nuxt frontend to a Shopware backend via the Storefront API and Admin API.