Socket
Book a DemoInstallSign in
Socket

@beardon/woocommerce-rest-api

Package Overview
Dependencies
Maintainers
0
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@beardon/woocommerce-rest-api

WooCommerce REST API - JavaScript Library

1.0.4
latest
Source
npmnpm
Version published
Weekly downloads
4
Maintainers
0
Weekly downloads
 
Created
Source

WooCommerce REST API - JavaScript Library

New JavaScript library for WooCommerce REST API, supports CommonJS (CJS) and Embedded System Module (ESM). This is a replacement for the now-defunct official woocommerce-rest-api NPM and GitHub repository.

Requests are made with Axios library with support to promises.

Installation

npm install --save @beardon/woocommerce-rest-api

Getting started

Generate API credentials (Consumer Key & Consumer Secret) following this instructions http://docs.woocommerce.com/document/woocommerce-rest-api/ .

Check out the WooCommerce API endpoints and data that can be manipulated in http://woocommerce.github.io/woocommerce-rest-api-docs/.

Setup

const { WooCommerceRestApi } = require('@beardon/woocommerce-rest-api');

const api = new WooCommerceRestApi({
  url: 'http://example.com',
  consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  version: 'wc/v3',
});

Options

OptionTypeRequiredDescription
urlStringyesYour Store URL, example: http://woo.dev/
consumerKeyStringyesYour API consumer key
consumerSecretStringyesYour API consumer secret
wpAPIPrefixStringnoCustom WP REST API URL prefix, used to support custom prefixes created with the rest_url_prefix filter
versionStringnoAPI version, default is v3
encodingStringnoEncoding, default is 'utf-8'
queryStringAuthBoolnoWhen true and using under HTTPS force Basic Authentication as query string, default is false
portstringnoProvide support for URLs with ports, eg: 8080
timeoutIntegernoDefine the request timeout
axiosConfigObjectnoDefine the custom Axios config, also override this library options

Methods

GET

  • .get(endpoint)
  • .get(endpoint, params)
ParamsTypeDescription
endpointStringWooCommerce API endpoint, example: customers or orders/12
paramsObjectQuery strings params, example: { per_page: 20 }

POST

  • .post(endpoint, data)
  • .post(endpoint, data, params)
ParamsTypeDescription
endpointStringWooCommerce API endpoint, example: customers or orders
dataObjectJS object to be converted into JSON and sent in the request
paramsObjectQuery strings params

PUT

  • .put(endpoint, data)
  • .put(endpoint, data, params)
ParamsTypeDescription
endpointStringWooCommerce API endpoint, example: customers/1 or orders/1234
dataObjectJS object to be converted into JSON and sent in the request
paramsObjectQuery strings params

DELETE

  • .delete(endpoint)
  • .delete(endpoint, params)
ParamsTypeDescription
endpointStringWooCommerce API endpoint, example: customers/2 or orders/12
paramsObjectQuery strings params, example: { force: true }

OPTIONS

  • .options(endpoint)
  • .options(endpoint, params)
ParamsTypeDescription
endpointStringWooCommerce API endpoint, example: customers/2 or orders/12
paramsObjectQuery strings params

Example of use

const { WooCommerceRestApi } = require('@woocommerce/woocommerce-rest-api');

const api = new WooCommerceRestApi({
  url: 'http://example.com',
  consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  version: 'wc/v3',
});

// List products
api.get('products', {
  per_page: 20, // 20 products per page
})
  .then((response) => {
    // Successful request
    console.log('Response Status:', response.status);
    console.log('Response Headers:', response.headers);
    console.log('Response Data:', response.data);
    console.log('Total of pages:', response.headers[ 'x-wp-totalpages' ]);
    console.log('Total of items:', response.headers[ 'x-wp-total' ]);
  })
  .catch((error) => {
    // Invalid request, for 4xx and 5xx statuses
    console.log('Response Status:', error.response.status);
    console.log('Response Headers:', error.response.headers);
    console.log('Response Data:', error.response.data);
  })
  .finally(() => {
    // Always executed.
  });

// Create a product
api.post('products', {
  name: 'Premium Quality', // See more in https://woocommerce.github.io/woocommerce-rest-api-docs/#product-properties
  type: 'simple',
  regular_price: '21.99',
})
  .then((response) => {
    // Successful request
    console.log('Response Status:', response.status);
    console.log('Response Headers:', response.headers);
    console.log('Response Data:', response.data);
  })
  .catch((error) => {
    // Invalid request, for 4xx and 5xx statuses
    console.log('Response Status:', error.response.status);
    console.log('Response Headers:', error.response.headers);
    console.log('Response Data:', error.response.data);
  })
  .finally(() => {
    // Always executed.
  });

// Edit a product
api.put('products/1', {
  sale_price: '11.99', // See more in https://woocommerce.github.io/woocommerce-rest-api-docs/#product-properties
})
  .then((response) => {
    // Successful request
    console.log('Response Status:', response.status);
    console.log('Response Headers:', response.headers);
    console.log('Response Data:', response.data);
  })
  .catch((error) => {
    // Invalid request, for 4xx and 5xx statuses
    console.log('Response Status:', error.response.status);
    console.log('Response Headers:', error.response.headers);
    console.log('Response Data:', error.response.data);
  })
  .finally(() => {
    // Always executed.
  });

// Delete a product
api.delete('products/1', {
  force: true, // Forces to delete instead of move to the Trash
})
  .then((response) => {
    // Successful request
    console.log('Response Status:', response.status);
    console.log('Response Headers:', response.headers);
    console.log('Response Data:', response.data);
  })
  .catch((error) => {
    // Invalid request, for 4xx and 5xx statuses
    console.log('Response Status:', error.response.status);
    console.log('Response Headers:', error.response.headers);
    console.log('Response Data:', error.response.data);
  })
  .finally(() => {
    // Always executed.
  });

Keywords

wordpress

FAQs

Package last updated on 07 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.