Code Monkey home page Code Monkey logo

bigcommerce-api-js's Introduction

BigCommerce JS API

This is a collection of clients, designed to connect to the Big Commerce APIs. There is one client per API.

https://developer.bigcommerce.com/api-reference/

Getting started

The clients are already built and tested, though this project is designed to easily rebuild and update clients as changes are made to the published BC apis. To get started though, that is not required.

Authentication

  • Create your BigCommerce Store and App if you haven't already
  • Obtain your store hash, client id and access token
  • Rename gulpfile.config.sample.json to gulpfile.config.json and fill in the values

Run tests

  • Clone this repo
  • Set your store up as described under Authentication
  • Use yarn/npm to install dependencies
  • Run the test suites

To run the full suite of tests:

cd clients
yarn install
yarn test

Or to test one api, for instance:

cd clients/Themes
yarn install
yarn test

Or one method:

cd clients/WishlistsApi
yarn install
yarn test --grep wishlistsGet

Including a client in your project

Create a new project or add deps to an existing project

npm init
npm install --save babel-cli babel-plugin-transform-builtin-extend babel-preset-env babel-preset-stage-0 bigcommerce-api-js

Add ES2015 presets .babelrc

{
  "plugins": [
    ["babel-plugin-transform-builtin-extend", {
      "globals": ["Error", "Array"]
    }]
  ],
  "presets": [["env", {"exclude": ["transform-regenerator"]}], ["stage-0"]]
}

Add authentication config.js

const config = {
  clientId: '<your client id>',
  accessToken: '<your access token>',
  storeId: '<your store id>',
};

module.exports = config;

Sample code index.js

import { Wishlists, BCApiClient } from 'bigcommerce-api-js';
import config from './config';

const api = new Wishlists.WishlistsApi(new BCApiClient(config));

const getWishlists = async () => {
  try {
    const wishlists = await api.wishlistsGet();
    console.info(wishlists);
  } catch (error) {
    console.error(error);
  }
}

getWishlists();

Run sample code

babel-node index.js

Updating the client libraries

You can either update a single library, or all of them. The spec files are grabbed from bigcommerce servers, and processed on the fly, so there is no need to download or maintain them. The swagger codegen tool will also be downloaded automatically if needed.

npm install
gulp buildAll
cd clients && npm install

or

gulp buildOne --name StoreInfoApi

Adding a new API

Make sure it is in the gulpfile.esm.js and in the index.js. Update as above.

Publishing

Update the version number in package.json.

npm install
gulp buildAll
cd clients && npm install && cd ..
npm run build
npm publish

bigcommerce-api-js's People

Contributors

jbrinley avatar jivewise avatar orinoco avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

dishadutta26

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.