This repository is an example demo application built with Shopware Frontends Framework and Nuxt 3.
- Nuxt 3 application
- Required libraries (API client, CMS components, composables, Nuxt 3 module)
- Pre-configured demo Shopware 6 API
Go to Documentation > Requirements to see the details.
To connect to a different API, adjust the API credentials in the nuxt.config.ts
file:
Shopware:
{endpoint
and accessToken
}.
pnpm i
to install dependenciespnpm dev
to run the project with the development server
By default API types are delivered from our demo instance. To generate your own types use @shopware/api-gen CLI.
- update
.env
file with your Shopware API information - load JSON schema from your instance
pnpx @shopware/api-gen loadSchema --apiType=store --filename=storeApiSchema.json
- generate types
pnpx @shopware/api-gen generateTypes --filename=storeApiSchema.json
Note
Do not edit your storeApiSchema.d.ts
file. It will be overwritten on the next schema generation. Instead use your shopware.d.ts
file to extend types.
Refer to to the Shopware documentation for best practices on deploying a production JavaScript application with Shopware: Best Practices > Deployment
Execute the build
script to build the application:
pnpm build
# or npm run build
# or yarn build
Execute the start
script to run the application:
pnpm start
# or npm run start
# or yarn start
The Dockerfile file in this template performs the following:
ARG NODE_VERSION=18-alpine
: Sets a default value for theNODE_VERSION
argument, which is used in the Docker build process.FROM node:${NODE_VERSION}
: Tells Docker to use the Node.js image specified byNODE_VERSION
as the base image for the build.ENV NODE_ENV production
: Sets theNODE_ENV
environment variable to production within the Docker container.RUN mkdir /app
: Creates a directory named/app
in the root of the Docker container's file system.COPY --chown=node:node ./ /app
: Copies all files from the current directory (where the Dockerfile is located) into the/app
directory inside the container. The--chown=node:node
option sets the ownership of the copied files to the node user and group.WORKDIR /app
: Sets the working directory for anyRUN
,CMD
,ENTRYPOINT
,COPY
, andADD
instructions that follow in the Dockerfile to/app
.USER node
: Switches the user context tonode
.EXPOSE 3000
: Informs Docker that the container listens on port3000
at runtime.CMD npm run start
: Specifies the command to run when the container starts.
Prepare the Docker image:
# run in a main template directory
docker build -t vue-demo-store .
Run a container from the image:
# the application is exposed on the 3000 port and mapped to 3000 port on host
docker run -p3000:3000 vue-demo-store
More information on generating different outputs can be found here.
Our recommendation is to use .env
file for changing platform presets