@chec/commerce.js
Version:
Easy to use JavaScript SDK for managing carts and selling products from your Chec store
113 lines (78 loc) • 4.59 kB
Markdown
<p align="center">
<img src="https://raw.githubusercontent.com/chec/commercejs-examples/master/assets/logo.svg" width="380" height="100" />
</p>
<p align="center">
Fast, powerful, and easy to use JavaScript SDK for building and managing carts, checkouts and receipts.
Build custom eCommerce experiences to sell physical and digital products from the Chec API.
</p>
<p align="center">
<a href="https://circleci.com/gh/chec/commerce.js/tree/master">
<img src="https://circleci.com/gh/chec/commerce.js/tree/master.svg?style=shield" alt="CircleCI" />
</a>
<a href="https://npmjs.org/package/@chec/commerce.js">
<img src="https://img.shields.io/npm/v/@chec/commerce.js.svg" alt="Version" />
</a>
<a href="https://npmjs.org/package/@chec/commerce.js">
<img src="https://img.shields.io/npm/dw/@chec/commerce.js.svg" alt="Downloads/week" />
</a>
<a href="https://github.com/chec/commerce.js/blob/master/package.json">
<img src="https://img.shields.io/npm/l/@chec/commerce.js.svg" alt="License" />
</a>
<br>
<a href="https://commercejs.com">commercejs.com</a> | <a href="https://twitter.com/commercejs">@commercejs</a> | <a href="http://slack.commercejs.com">Slack</a>
</p>
`npm install @chec/commerce.js` or `yarn add @chec/commerce.js`
You may also install our TypeScript definitions:
`npm install @types/chec__commerce.js` or `yarn add @types/chec__commerce.js`
Note that when using TypeScript, the definitions are always compliant with our latest version of the API. If you specify a custom API version, or your API
key uses an older version, you may get type errors.
See the [documentation webpage](https://commercejs.com/docs).
Our documentation module source code resides in `commerce.js/docs`
If you would like to make contributions to the Commerce.js documentation source, here is a [guide](https://github.com/chec/commerce.js/blob/master/CONTRIBUTING.md) in doing so.
The following configuration options are available to be defined as the third argument in the Commerce constructor:
* `disableStorage`: Whether to disable persistent storage (e.g. cookies). Enable for use in server-side environments. Default: false.
* `cartLifetime`: Number of days that a cart should be stored for (between 1 and 30). Default: 30.
* `timeoutMs`: The number of milliseconds before a request will time out. Default: 60000.
* `axiosConfig`: An optional object containing configuration options for axios, if used.
* `headers`: A list of request headers. Defining headers here will override the defaults.
* `allowSecretKey`: Commerce.js will prevent you from using a secret API key for authorization. Use this option to override. Default: false.
## Upgrading
### Upgrading to 2.4.0
Commerce.js 2.4.0 only supports API version 2021-03-31 when adding products to a cart with variants. Please consider
updating your API version, using the changes listed in the [API docs](https://commercejs.com/docs/api/#versioning) as
a guide.
### Upgrading to 2.0.0
The major change in Commerce.js v2 is that most methods now return a
[promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that is fulfilled
when the HTTP request is completed. Instead of providing callbacks to the methods in this module, you will have to use
promise syntax instead.
```diff
- Commerce.Cart.retrieve(function (data) {
+ Commerce.cart.retrieve().then(function (data) {
// ...
});
```
Additionally, the API for the various features are now lower-cased.
The `cart.add()` method now separates its arguments:
```diff
- Commerce.Cart.add({ productId: 1, quantity: 2, variant: { foo: 'bar'} })
+ Commerce.cart.add(1, 2, {foo: 'bar'})
```
Check out the [contributing guide](CONTRIBUTING.md)
Commerce.js is a project by [many contributors](https://github.com/chec/commerce.js/graphs/contributors). Reach us on [Slack](http://slack.commercejs.com) and [Twitter](https://twitter.com/commercejs).
The lib files are automatically compiled by our continuous integration pipeline. You only need to commit changes
to the `src` files.
You can run the unit tests for this library from your command line using `npm run test`, or `npm run test:watch`
to watch for changed and re-run the tests automatically.
We use the Airbnb JavaScript style guide, and Prettier as our linting tool. To lint your code, use `npm run lint`
or `npm run lint:fix` to automatically fix violations.