A Shopify template for Headless Platform Blueprints.
This repository contains a starter Blueprint to get you up and running quickly on WP Engine's Headless Platform with a simple WordPress site that uses product data from Shopify.
- Check out the demo store here
- Try a sandbox version of Headless Platform to get started with this Blueprint
- Documentation can be found here
Copy .env.local.sample
to .env.local
in your local development environment to set environment variables locally. The sample env file points to the demo Shopify Blueprint Wordpress site, but you can change it to point to a local Wordpress site instead.
Add your Shopify variables to configure the Shopify Client.
Install dependencies with npm install
- if you run into issues try npm install --legacy-peer-deps
Make sure that any Wordpress site that is connected to this headless site has its Permalinks set to use this custom structure:
/posts/%postname%/
See the docs/adr
directory for a list of architectural decision records made so far.
Components are tested using React Testing Library and Jest
To run tests npm run test
Eslint and Prettier are used for linting and formatting. Please have Prettier installed in Vs Code when developing locally to adhere to formatting standards. For pre commit linting and formatting we use Husky. This will run when a you run a commit, if it fails check the Node logs for issues that need to be solved before committing again.
.nvmrc
is specifying that Node.js v18
should be used. Any developer could then run nvm use
to download, install, and switch to that version. nvm install
will then install dependencies in line with that version.
In addition to default environment variables the Shopify Blueprint needs to add 2 more as follows:
- NEXT_PUBLIC_SHOPIFY_HEADLESS_PUBLIC_ACCESS_TOKEN
- NEXT_PUBLIC_SHOPIFY_GRAPHQL_URL
For local development these can be added to .env.local
and for production deployments these can be added in Headless Platform Dashboard. See WP Engine headless docs for directions on how to configure Headless Platform Environment Variables.
The steps involved with creating a new release are as follows :
- Update the version in
package.json
- Run
npm install
and check the new version in the generatedpackage-lock.json
- Create a PR against
develop
with the version update. Review and merge the PR. - Create a PR from
develop
into themain
branch and make sure it includes all the changes that are intended to be in the release. Review and merge the PR. - In the User Portal (production), create a new Headless Platform App using the Shopify Blueprint and verify if changes are there and the version is correct.
- Create a new release in Github with the tag as the latest version with
main
as the target. (For description you can use thegenerate release notes
button) - Post a message to #team-pe-titan-public using the following template:
🚀 Headless Platform Shopify Blueprint - Version X.Y.Z 🚀 We have released a new version of the blueprint. . For more details, follow this link: https://github.com/wpengine/atlas-shopify-blueprint/releases/tag/X.Y.Z
For more information on this Blueprint please check out the following sources: