Skip to content
Example Gatsby, BigCommerce and Netlify CMS project meant to jump start JAMStack ecommerce sites.
CSS JavaScript
Branch: master
Clone or download
becomevocal Merge pull request #9 from thirdandgrove/master
updated prices from API on site load.
Latest commit cecd252 Nov 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Added gatsby info command Jan 28, 2019
src no longer render prices unless fresh ones are fetched Nov 1, 2019
static Refresh styles and content Oct 16, 2019
.gitignore
LICENSE
README.md More polish Oct 16, 2019
SAMPLE.env
_headers
gatsby-browser.js updated prices from API on site load. Nov 1, 2019
gatsby-config.js Clean up unused CMS content on product page Oct 15, 2019
gatsby-node.js Use product custom urls instead of skus for page urls Oct 14, 2019
netlify.toml Netlify function support (init. version) Feb 28, 2019
package-lock.json
package.json
renovate.json feat(netlify-cms-app): Change Gatsby plugin to new version 4.0.0 (#234) May 10, 2019
yarn.lock

README.md

Gatsby + BigCommerce + Netlify CMS Starter

Note: This starter uses Gatsby v2.

Prerequisites

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

Deploy to Netlify

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

Full details here

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.

You can’t perform that action at this time.