-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initialize outgrow-reaction-commerce-provider
- Loading branch information
0 parents
commit 66a9ec5
Showing
607 changed files
with
94,449 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
root = true | ||
|
||
[*] | ||
indent_style = space | ||
indent_size = 2 | ||
tab_width = 4 | ||
end_of_line = lf | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
insert_final_newline = true | ||
|
||
[*.md] | ||
trim_trailing_whitespace = false | ||
|
||
[*.js] | ||
quote_type = single | ||
|
||
[{*.c,*.cc,*.h,*.hh,*.cpp,*.hpp,*.m,*.mm,*.mpp,*.js,*.java,*.go,*.rs,*.php,*.ng,*.jsx,*.ts,*.d,*.cs,*.swift}] | ||
curly_bracket_next_line = false | ||
spaces_around_operators = true | ||
spaces_around_brackets = outside | ||
# close enough to 1TB | ||
indent_brace_style = K&R |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Available providers: bigcommerce, shopify, swell | ||
COMMERCE_PROVIDER= | ||
|
||
BIGCOMMERCE_STOREFRONT_API_URL= | ||
BIGCOMMERCE_STOREFRONT_API_TOKEN= | ||
BIGCOMMERCE_STORE_API_URL= | ||
BIGCOMMERCE_STORE_API_TOKEN= | ||
BIGCOMMERCE_STORE_API_CLIENT_ID= | ||
BIGCOMMERCE_CHANNEL_ID= | ||
|
||
NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN= | ||
NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN= | ||
|
||
NEXT_PUBLIC_SWELL_STORE_ID= | ||
NEXT_PUBLIC_SWELL_PUBLIC_KEY= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
node_modules | ||
/.pnp | ||
.pnp.js | ||
|
||
# testing | ||
/coverage | ||
|
||
# next.js | ||
.next/ | ||
out/ | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
*.pem | ||
.idea | ||
|
||
# debug | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
# local env files | ||
.env | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
# vercel | ||
.vercel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
node_modules | ||
.next | ||
public |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"semi": false, | ||
"singleQuote": true, | ||
"tabWidth": 2, | ||
"useTabs": false | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"recommendations": ["esbenp.prettier-vscode"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
[](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fcommerce&project-name=commerce&repo-name=commerce&demo-title=Next.js%20Commerce&demo-description=An%20all-in-one%20starter%20kit%20for%20high-performance%20e-commerce%20sites.&demo-url=https%3A%2F%2Fdemo.vercel.store&demo-image=https%3A%2F%2Fbigcommerce-demo-asset-ksvtgfvnd.vercel.app%2Fbigcommerce.png&integration-ids=oac_MuWZiE4jtmQ2ejZQaQ7ncuDT) | ||
|
||
# Next.js Commerce | ||
|
||
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](https://nextjs.org/commerce) | ||
|
||
Demo live at: [demo.vercel.store](https://demo.vercel.store/) | ||
|
||
- Shopify Demo: https://shopify.vercel.store/ | ||
- Swell Demo: https://swell.vercel.store/ | ||
- BigCommerce Demo: https://bigcommerce.vercel.store/ | ||
- Vendure Demo: https://vendure.vercel.store | ||
|
||
## Features | ||
|
||
- Performant by default | ||
- SEO Ready | ||
- Internationalization | ||
- Responsive | ||
- UI Components | ||
- Theming | ||
- Standardized Data Hooks | ||
- Integrations - Integrate seamlessly with the most common ecommerce platforms. | ||
- Dark Mode Support | ||
|
||
## Integrations | ||
|
||
Next.js Commerce integrates out-of-the-box with BigCommerce and Shopify. We plan to support all major ecommerce backends. | ||
|
||
## Considerations | ||
|
||
- `framework/commerce` contains all types, helpers and functions to be used as base to build a new **provider**. | ||
- **Providers** live under `framework`'s root folder and they will extend Next.js Commerce types and functionality (`framework/commerce`). | ||
- We have a **Features API** to ensure feature parity between the UI and the Provider. The UI should update accordingly and no extra code should be bundled. All extra configuration for features will live under `features` in `commerce.config.json` and if needed it can also be accessed programatically. | ||
- Each **provider** should add its corresponding `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. | ||
- **Providers don't depend on anything that's specific to the application they're used in**. They only depend on `framework/commerce`, on their own framework folder and on some dependencies included in `package.json` | ||
|
||
## Configuration | ||
|
||
### How to change providers | ||
|
||
Open `.env.local` and change the value of `COMMERCE_PROVIDER` to the provider you would like to use, then set the environment variables for that provider (use `.env.template` as the base). | ||
|
||
The setup for Shopify would look like this for example: | ||
|
||
``` | ||
COMMERCE_PROVIDER=shopify | ||
NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx | ||
NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN=xxxxxxx.myshopify.com | ||
``` | ||
|
||
And change the `tsconfig.json` to resolve to the chosen provider: | ||
|
||
``` | ||
"@framework": ["framework/shopify"], | ||
"@framework/*": ["framework/shopify/*"] | ||
``` | ||
|
||
That's it! | ||
|
||
### Features | ||
|
||
Every provider defines the features that it supports under `framework/{provider}/commerce.config.json` | ||
|
||
#### How to turn Features on and off | ||
|
||
> 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) | ||
- Open `commerce.config.json` | ||
- You'll see a config file like this: | ||
```json | ||
{ | ||
"features": { | ||
"wishlist": false | ||
} | ||
} | ||
``` | ||
- Turn wishlist on by setting wishlist to true. | ||
- Run the app and the wishlist functionality should be back on. | ||
|
||
### How to create a new provider | ||
|
||
Follow our docs for [Adding a new Commerce Provider](framework/commerce/new-provider.md). | ||
|
||
If you succeeded building a provider, submit a PR with a valid demo and we'll review it asap. | ||
|
||
## Contribute | ||
|
||
Our commitment to Open Source can be found [here](https://vercel.com/oss). | ||
|
||
1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device. | ||
2. Create a new branch `git checkout -b MY_BRANCH_NAME` | ||
3. Install yarn: `npm install -g yarn` | ||
4. Install the dependencies: `yarn` | ||
5. Duplicate `.env.template` and rename it to `.env.local` | ||
6. Add proper store values to `.env.local` | ||
7. Run `yarn dev` to build and watch for code changes | ||
|
||
## Work in progress | ||
|
||
We're using Github Projects to keep track of issues in progress and todo's. Here is our [Board](https://github.com/vercel/commerce/projects/1) | ||
|
||
People actively working on this project: @okbel & @lfades. | ||
|
||
## Troubleshoot | ||
|
||
<details> | ||
<summary>I already own a BigCommerce store. What should I do?</summary> | ||
<br> | ||
First thing you do is: <b>set your environment variables</b> | ||
<br> | ||
<br> | ||
.env.local | ||
|
||
```sh | ||
BIGCOMMERCE_STOREFRONT_API_URL=<> | ||
BIGCOMMERCE_STOREFRONT_API_TOKEN=<> | ||
BIGCOMMERCE_STORE_API_URL=<> | ||
BIGCOMMERCE_STORE_API_TOKEN=<> | ||
BIGCOMMERCE_STORE_API_CLIENT_ID=<> | ||
BIGCOMMERCE_CHANNEL_ID=<> | ||
``` | ||
|
||
If your project was started with a "Deploy with Vercel" button, you can use Vercel's CLI to retrieve these credentials. | ||
|
||
1. Install Vercel CLI: `npm i -g vercel` | ||
2. Link local instance with Vercel and Github accounts (creates .vercel file): `vercel link` | ||
3. Download your environment variables: `vercel env pull .env.local` | ||
|
||
Next, you're free to customize the starter. More updates coming soon. Stay tuned. | ||
|
||
</details> | ||
|
||
<details> | ||
<summary>BigCommerce shows a Coming Soon page and requests a Preview Code</summary> | ||
<br> | ||
After Email confirmation, Checkout should be manually enabled through BigCommerce platform. Look for "Review & test your store" section through BigCommerce's dashboard. | ||
<br> | ||
<br> | ||
BigCommerce team has been notified and they plan to add more detailed about this subject. | ||
</details> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
:root { | ||
--primary: #ffffff; | ||
--primary-2: #f1f3f5; | ||
--secondary: #000000; | ||
--secondary-2: #111; | ||
--selection: var(--cyan); | ||
|
||
--text-base: #000000; | ||
--text-primary: #000000; | ||
--text-secondary: white; | ||
|
||
--hover: rgba(0, 0, 0, 0.075); | ||
--hover-1: rgba(0, 0, 0, 0.15); | ||
--hover-2: rgba(0, 0, 0, 0.25); | ||
--cyan: #22b8cf; | ||
--green: #37b679; | ||
--red: #da3c3c; | ||
--pink: #e64980; | ||
--purple: #f81ce5; | ||
--blue: #0070f3; | ||
--violet: #5f3dc4; | ||
--violet-light: #7048e8; | ||
--accents-0: #f8f9fa; | ||
--accents-1: #f1f3f5; | ||
--accents-2: #e9ecef; | ||
--accents-3: #dee2e6; | ||
--accents-4: #ced4da; | ||
--accents-5: #adb5bd; | ||
--accents-6: #868e96; | ||
--accents-7: #495057; | ||
--accents-8: #343a40; | ||
--accents-9: #212529; | ||
--font-sans: -apple-system, system-ui, BlinkMacSystemFont, 'Helvetica Neue', | ||
'Helvetica', sans-serif; | ||
} | ||
|
||
[data-theme='dark'] { | ||
--primary: #000000; | ||
--primary-2: #111; | ||
--secondary: #ffffff; | ||
--secondary-2: #f1f3f5; | ||
--hover: rgba(255, 255, 255, 0.075); | ||
--hover-1: rgba(255, 255, 255, 0.15); | ||
--hover-2: rgba(255, 255, 255, 0.25); | ||
--selection: var(--purple); | ||
|
||
--text-base: white; | ||
--text-primary: white; | ||
--text-secondary: black; | ||
|
||
--accents-0: #212529; | ||
--accents-1: #343a40; | ||
--accents-2: #495057; | ||
--accents-3: #868e96; | ||
--accents-4: #adb5bd; | ||
--accents-5: #ced4da; | ||
--accents-6: #dee2e6; | ||
--accents-7: #e9ecef; | ||
--accents-8: #f1f3f5; | ||
--accents-9: #f8f9fa; | ||
} | ||
|
||
*, | ||
*:before, | ||
*:after { | ||
box-sizing: inherit; | ||
} | ||
|
||
html { | ||
height: 100%; | ||
box-sizing: border-box; | ||
touch-action: manipulation; | ||
font-feature-settings: 'case' 1, 'rlig' 1, 'calt' 0; | ||
text-rendering: optimizeLegibility; | ||
-webkit-font-smoothing: antialiased; | ||
-moz-osx-font-smoothing: grayscale; | ||
} | ||
|
||
html, | ||
body { | ||
font-family: var(--font-sans); | ||
text-rendering: optimizeLegibility; | ||
-webkit-font-smoothing: antialiased; | ||
-moz-osx-font-smoothing: grayscale; | ||
background-color: var(--primary); | ||
color: var(--text-primary); | ||
} | ||
|
||
body { | ||
position: relative; | ||
min-height: 100%; | ||
margin: 0; | ||
} | ||
|
||
a { | ||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); | ||
} | ||
|
||
.animated { | ||
-webkit-animation-duration: 1s; | ||
animation-duration: 1s; | ||
-webkit-animation-fill-mode: both; | ||
animation-fill-mode: both; | ||
} | ||
|
||
.fadeIn { | ||
-webkit-animation-name: fadeIn; | ||
animation-name: fadeIn; | ||
} | ||
|
||
@-webkit-keyframes fadeIn { | ||
from { | ||
opacity: 0; | ||
} | ||
|
||
to { | ||
opacity: 1; | ||
} | ||
} | ||
|
||
@keyframes fadeIn { | ||
from { | ||
opacity: 0; | ||
} | ||
|
||
to { | ||
opacity: 1; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
/** | ||
* Chrome has a bug with transitions on load since 2012! | ||
* | ||
* To prevent a "pop" of content, you have to disable all transitions until | ||
* the page is done loading. | ||
* | ||
* https://lab.laukstein.com/bug/input | ||
* https://twitter.com/timer150/status/1345217126680899584 | ||
*/ | ||
body.loading * { | ||
transition: none !important; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
.fit { | ||
min-height: calc(100vh - 88px); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
@tailwind base; | ||
@import './base.css'; | ||
|
||
@tailwind components; | ||
@import './components.css'; | ||
|
||
@tailwind utilities; |
Oops, something went wrong.