gatsby-bigcommerce-netlify-cms-starter
Gatsby + BigCommerce + Netlify CMS Starter
Note: This starter uses Gatsby v2.
Demo store
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.
Prerequisites
- Node (v10.16.3) Recommended
- Gatsby CLI
- Netlify CLI
- A BigCommerce Instance with API keys
Setting up BigCommerce
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
-
Getting Started (Recommended – Netlify CLI)
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
-
“One Click” 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.
Access Locally
$ 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 (installed, but optional)
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);
Getting Started (Without Netlify)
$ gatsby new [SITE_DIRECTORY_NAME] https://github.com/netlify-templates/gatsby-starter-netlify-cms/
$ cd [SITE_DIRECTORY_NAME]
$ npm run build
$ npm run serve
Setting up the CMS
Follow the Netlify CMS Quick Start Guide to set up authentication, and hosting.
Debugging
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
Purgecss
This plugin uses gatsby-plugin-purgecss and bulma. The bulma builds are usually ~170K but reduced 90% by purgecss.
Kudos
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
CONTRIBUTING
Contributions are always welcome, no matter how large or small.