Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.
/ cocart-js-lib Public archive

JavaScript library for CoCart, supports CommonJS (CJS) and ECMAScript Modules (ESM).

License

Notifications You must be signed in to change notification settings

co-cart/cocart-js-lib

Repository files navigation

CoCart - JavaScript Library

CoCart

🍴 Forked from WooCommerce JavaScript Library and modified to support CoCart REST API instead. Authentication is optional.

JavaScript library for CoCart, supports CommonJS (CJS) and ECMAScript Modules (ESM).

Requests are made with Axios library with support to promises.

build status npm version

⚠️This library will NOT support the LEGACY API of CoCart.

Installation

npm install --save @cocart/cocart-rest-api

Getting started

Check out the CoCart API endpoints and data that can be manipulated in https://docs.cocart.xyz/.

Setup

ESM example

import CoCartAPI from "@cocart/cocart-rest-api";

const CoCart = new CoCartAPI({
  url: "https://example.com",
});

CJS example

const CoCartAPI = require("@cocart/cocart-rest-api").default;

const CoCart = new CoCartAPI({
  url: "https://example.com",
});

Options

Option Type Required Description
url String yes Your Store URL, example: https://example.com/
consumerKey String no Your API consumer key, username or email address.
consumerSecret String no Your API consumer secret or password.
wpAPIPrefix String no Custom WP REST API URL prefix, used to support custom prefixes created with the rest_url_prefix filter.
version String no API version, default is cocart/v2
encoding String no Encoding, default is 'utf-8'
queryStringAuth Bool no When true and using under HTTPS force Basic Authentication as query string, default is false
port string no Provide support for URLs with ports, eg: 8080
oauth Bool no When true authorize via OAuth 1.0a, default is false
timeout Integer no Define the request timeout
axiosConfig Object no Define the custom Axios config, also override this library options.

Methods

GET

  • .get(endpoint)
  • .get(endpoint, params)
Params Type Description
endpoint String CoCart API endpoint, example: cart or products/32
params Object Query strings params, example: { per_page: 20 }

POST

  • .post(endpoint, data)
  • .post(endpoint, data, params)
Params Type Description
endpoint String CoCart API endpoint, example: cart/add-item or cart/item
data Object JS object to be converted into JSON and sent in the request
params Object Query strings params

PUT

  • .put(endpoint, data)
  • .putt(endpoint, data, params)
Params Type Description
endpoint String CoCart API endpoint, example: cart/item/<item_key>
data Object JS object to be converted into JSON and sent in the request
params Object Query strings params

DELETE

  • .delete(endpoint)
  • .delete(endpoint, params)
Params Type Description
endpoint String CoCart API endpoint, example: cart/item or coupon
params Object Query strings params, example: { force: true }

Bug Reporting

If you think you have found a bug in the library, please open a new issue and I will do my best to help you out.

CoCart Channels

We have different channels at your disposal where you can find information about the CoCart project, discuss it and get involved:

Twitter: cart_co CoCart JS Lib Github Stars

  • 📖 Docs: this is the place to learn how to build amazing sites with CoCart. Get started!
  • 👪 Community: use our Slack chat room to share any doubts, feedback and meet great people. This is your place too to share how are you planning to use CoCart!
  • 🐞 GitHub: we use GitHub for bugs and pull requests, doubts are solved with the community.
  • 🐦 Social media: a more informal place to interact with CoCart users, reach out to us on Twitter.
  • 💌 Newsletter: do you want to receive the latest plugin updates and news? Subscribe here.

I'm not seeing X-COCART-API header returning

If you want this header to return then you need to enable CORS. Simply install CoCart CORS plugin for quick activation.

Changelog

See changelog for details

Credits

CoCart is developed and maintained by Sébastien Dumont.


sebastiendumont.com  ·  GitHub @seb86  ·  Twitter @sebd86