# Configuration
In this section, you will find information how to change the default static configuration of your project (not a backend side).
Shopware PWA, as it's built upon a NuxtJS, provides many options of configuration in the Nuxtjs style, accepting a nuxt.config.js
file entirely!
Furthermore, the Shopware PWA part, which is delivered as a Nuxt module, also has its own config file named shopware-pwa.config.js
. Both files are located in the root dir of a project.
# shopware-pwa.config.js
The configuration that is required by the PWA nuxt-module (opens new window), which Shopware PWA is generally made of.
Let's see the config's interface:
// packages/commons/src/defaultConfig.ts
export interface ShopwarePwaConfigFile {
/**
* list of allowed domains for this pwa instance from saleschannel configuration
*/
shopwareDomainsAllowList?: string[];
/**
* default domain prefix
*/
fallbackDomain?: string;
/**
* Shopware6 URL
*/
shopwareEndpoint: string;
/**
* id specific for each sales channel
*/
shopwareAccessToken: string;
/**
* theme code: npm package name or local one (directory name)
*/
theme: string;
/**
* default locale used in application
*/
defaultLanguageCode?: string;
/**
* {ShopwareApiClientConfig}
*/
shopwareApiClient?: ShopwareApiClientConfig;
/**
* List of the plugins that are installed on Shopware instance but should not be loaded.
*/
disabledPlugins?: string[];
}
# Basic setup
// shopware-pwa.config.js
module.exports = {
shopwareEndpoint: "https://pwa-demo-api.shopware.com/trunk",
shopwareAccessToken: "SWSCMDAZUUG5Z05VWKXIDWPSEQ",
shopwareApiClient: {
// optional, allow to override the default settings
timeout: 5000, // timeout limit in ms
},
shopwareDomainsAllowList: [
"http://localhost:3000",
"http://localhost:3000/de",
"https://pwa-shop.com",
],
};
# nuxt.config.js
As default setup, you will probably not need to customize the origin nuxt.config.js
file as it's described in the Official Documentation (opens new window). The project has its own preconfigured nuxt configuration to work with PWA in the best setup. You can easily extend it by using extendNuxtConfig
method (RECOMMENDED).
// nuxt.config.js
import extendNuxtConfig from "@shopware-pwa/nuxt-module/config";
export default extendNuxtConfig({
head: {
// the title and meta sections of head area is using now values from this files.
title: "Shopware PWA",
meta: [{ hid: "description", name: "description", content: "" }],
},
// everything else is inherited
});
You can also provide the entire config on your own (but then, don't forget to ensure what's required in the base Shopware PWA config (opens new window) - it's NOT RECOMMENDED anyway, because doing this, you will loose compatibility with core api during further upgrades).
# API defaults
In progres...
Temporarly visit a dedicated Cookbook's section
# Custom theme
In progress.
Temporarly visit a dedicated Cookbook's section.
# Routing
In progress.
Temporarly visit a dedicated Routing concept, or Cookbook's secion describing parts of the concept.
# Environment variables
This guide will help you to configure your shopware-pwa project using environment variables (opens new window).
# Usage
Environment variables can be used within the application in many places, in the runtime as same as the build time. In nodejs-based application they can be accessed by using process.env.[VARIABLE_CODE]
, process.env.NODE_ENV
for instance. Nuxt and shopware-pwa itself uses some predefined variables to customize the application.
The great example is a helper for getting images with optional image processor (treated like a proxy), the helper contains the piece of code:
if (!process.env.EXPERIMENTAL_IMAGE_PROCESSING_SERVER) return originalImageSrc
...
let url = `${process.env.EXPERIMENTAL_IMAGE_PROCESSING_SERVER}?url=${mediaUrl}`
Shopware-pwa provides the optional way of setting env variables by using .env
file, instead of setting them up using system environment variables explicitly like:
EXPERIMENTAL_IMAGE_PROCESSING_SERVER=https://someserver.com/img/ shopware-pwa dev
or even before running the nodejs process, manually.
# Setup
A generated project contains .env.template
among other files placed in root directory.
TIP
Remember that the .env
file is listed in .gitignore
and shouldn't be versioned because it may contain some sensitive data.
The .env.template
file's content may look similar to this one:
HOST=0.0.0.0
PORT=3000
ADMIN_USER=admin
ADMIN_PASSWORD=shopware
ENABLE_DEVTOOLS=false
NODE_ENV=production
EXPERIMENTAL_IMAGE_PROCESSING_SERVER
In order to activate the variables from the file, change the template's name to just .env
# Description
The default environment variables
HOST
- nuxt server host name (0.0.0.0
by default)PORT
- nuxt server port number (3000
by default)ADMIN_USER
- Shopware 6 admin user name (admin
by default)ADMIN_PASSWORD
- Shopware 6 admin password (shopware
by default)ENABLE_DEVTOOLS
- config turning on the nuxt dev tools (true
by default)NODE_ENV
- application mode: dev or production (dev
by default)EXPERIMENTAL_IMAGE_PROCESSING_SERVER
- URL to the custom image processor (well described here (opens new window))
TIP
shopware-pwa CLI tool can also detect the current state of environment variables and use given ADMIN_USER
and ADMIN_PASSWORD
values in plugins
and domains
commands (suggest credentials).