Note: This starter uses Gatsby v2.
Accompanying tutorial blog post: Building a JAMstack Ecommerce Storefront with BigCommerce & Netlify
Accompanying overview video: Building e-commerce storefronts on the JAMstack
This version of the starter is meant to power a simple, single language storefront. If you are looking for something more complex, there is also a branch that supports multiple regions within a single storefront here.
- Node (v10.16.3) Recommended
- Gatsby CLI
- Netlify CLI
- A BigCommerce Instance with API keys
The BigCommerce source plugin relies on API Keys. In this starter we are using the node project dotenv
to access these variables. Make a copy of the SAMPLE.env
file and fill in the variables from your BigCommerce API user details.
Note: You can sign up for a free trial on bigcommerce.com, which includes API access, if you don't already have an account. There is also a partner program which includes a sandbox account to play around in.
Once you have your API keys, do the following:
- Install dependencies
yarn
- Set up environment variables
cp SAMPLE.env .env
- Enter your API credentials in .env file
Netlify CMS can run in any frontend web environment, but the quickest way to try it out is by running it on a pre-configured starter site with Netlify. Because the app requires credentials for the BigCommerce API, the easiest way to get started with a working deploy is via the Netlify CLI. To do so, run the following commands:
- Link to your Netlify site
netlify link
- Build
npm run build
- Deploy to Netlify
netlify deploy
Alternative to the CLI, you can use the deploy button below to build and deploy your own copy of the repository. This is recommended if you have not already forked the repo (as it will make a copy of it).
Note: The initial deploy will fail, as you need to set build environment variables for your Netlify site
To set the variables:
- Navigate to your Netlify site's "Build & Deploy" settings
- Go to "Environment variables" > "Edit variables"
- Enter the environment variables specified in "SAMPLE.env" and your BC API credentials
After clicking that button, you’ll authenticate with GitHub and choose a repository name. Netlify will then automatically create a repository in your GitHub account with a copy of the files from the template. Next, it will build and deploy the new site on Netlify, bringing you to the site dashboard when the build is complete. Next, you’ll need to set up Netlify’s Identity service to authorize users to log in to the CMS.
$ git clone https://github.com/[GITHUB_USERNAME]/[REPO_NAME].git
$ cd [REPO_NAME]
$ yarn
$ npm run start
To test the CMS locally, you'll need run a production build of the site:
$ npm run build
$ npm run serve
Media Libraries have been included in this starter as a default. If you are not planning to use Uploadcare
or Cloudinary
in your project, you can remove them from module import and registration in src/cms/cms.js
. Here is an example of the lines to comment or remove them your project.
import CMS from 'netlify-cms-app';
// import uploadcare from 'netlify-cms-media-library-uploadcare'
// import cloudinary from 'netlify-cms-media-library-cloudinary'
import AboutPagePreview from './preview-templates/AboutPagePreview';
import BlogPostPreview from './preview-templates/BlogPostPreview';
import ProductPagePreview from './preview-templates/ProductPagePreview';
import IndexPagePreview from './preview-templates/IndexPagePreview';
// CMS.registerMediaLibrary(uploadcare);
// CMS.registerMediaLibrary(cloudinary);
CMS.registerPreviewTemplate('index', IndexPagePreview);
CMS.registerPreviewTemplate('about', AboutPagePreview);
CMS.registerPreviewTemplate('products', ProductPagePreview);
CMS.registerPreviewTemplate('blog', BlogPostPreview);
$ gatsby new [SITE_DIRECTORY_NAME] https://github.com/netlify-templates/gatsby-starter-netlify-cms/
$ cd [SITE_DIRECTORY_NAME]
$ npm run build
$ npm run serve
Follow the Netlify CMS Quick Start Guide to set up authentication, and hosting.
Windows users might encounter node-gyp
errors when trying to npm install.
To resolve, make sure that you have both Python 2.7 and the Visual C++ build environment installed.
npm config set python python2.7
npm install --global --production windows-build-tools
This plugin uses gatsby-plugin-purgecss and bulma. The bulma builds are usually ~170K but reduced 90% by purgecss.
This is based on the Gatsby Netlify CMS Starter repo. Major kudos!
Photos in starter from various photographers: Aden Ardenrich Pixabay Artem Beliaikin Daria Shevtsova Aleksandar Pasaric Naim Benjelloun Kiara Coll Artem Beliaikin Eric Montanah Sanketh Rao Artem Beliaikin Jamie Diaz
Contributions are always welcome, no matter how large or small.