The all-in-one starter kit for high-performance e-commerce sites. With a few clicks, Next.js developers can clone, deploy and fully customize their own store. Start right now at nextjs.org/commerce
Demo live at: demo.vercel.store
Next.js Commerce integrates out-of-the-box with BigCommerce and Shopify. We plan to support all major ecommerce backends.
framework/commerce
contains all types, helpers and functions to be used as base to build a new provider.framework
's root folder and they will extend Next.js Commerce types and functionality.features
in commerce.config.json
and if needed it can also be accessed programatically.next.config.js
and commerce.config.json
adding specific data related to the provider. For example in case of BigCommerce, the images CDN and additional API routes.framework/commerce
, on their own framework folder and on some dependencies included in package.json
env.template
file and a [readme.md](http://readme.md)
file.Next.js Commerce provides a set of utilities and functions to create new providers. This is how a provider structure looks like.
product
wishlist
auth
customer
cart
env.template
provider.ts
commerce.config.json
next.config.js
README.md
First, update the provider selected in commerce.config.json
:
{
"provider": "bigcommerce",
"features": {
"wishlist": true
}
}
Then, change the paths defined in tsconfig.json
and update the @framework
paths to point to the right folder provider:
"@framework": ["framework/bigcommerce"],
"@framework/*": ["framework/bigcommerce/*"]
Make sure to add the environment variables required by the new provider.
Every provider defines the features that it supports under framework/{provider}/commerce.config.json
NOTE: The selected provider should support the feature that you are toggling. (This means that you can't turn wishlist on if the provider doesn't support this functionality out the box)
commerce.config.json
{
"provider": "bigcommerce",
"features": {
"wishlist": false
}
}
We'd recommend to duplicate a provider folder and push your providers SDK.
If you succeeded building a provider, submit a PR so we can all enjoy it.
We're using Github Projects to keep track of issues in progress and todo's. Here is our Board
People actively working on this project: @okbel & @lfades.
Our commitment to Open Source can be found here.
git checkout -b MY_BRANCH_NAME
npm install -g yarn
yarn
.env.template
and rename it to .env.local
..env.local
.yarn dev
to build and watch for code changescanary
(this is the branch pull requests should be made against).
On a release, canary
branch is rebased into master
.