# woocommerce-api

> A Node.js wrapper for the WooCommerce REST API

Latest version **1.5.0** (published 2019-07-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install woocommerce-api
pnpm add woocommerce-api
yarn add woocommerce-api
bun add woocommerce-api
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.5.0 |
| Published | 2019-07-29 |
| First published | 2015-07-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Unpacked size | 23.2 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | Claudio Sanches @ Automattic.com |
| Maintainers | claudiosanches |
| Keywords | woocommerce, rest-api |

## Links

- npm: https://www.npmjs.com/package/woocommerce-api
- Repository: https://github.com/woocommerce/wc-api-node
- Homepage: https://github.com/woocommerce/wc-api-node#readme
- Issues: https://github.com/woocommerce/wc-api-node/issues
- npm.io page: https://npm.io/package/woocommerce-api

## Dependencies (5)

- [request](https://npm.io/package/request.md) 2.88.0
- [bluebird](https://npm.io/package/bluebird.md) 3.5.5
- [oauth-1.0a](https://npm.io/package/oauth-1.0a.md) 2.2.6
- [create-hmac](https://npm.io/package/create-hmac.md) 1.1.7
- [npm-check-updates](https://npm.io/package/npm-check-updates.md) 3.1.20

## Recent versions

- 1.5.0 (latest) — 2019-07-29
- 1.4.2 — 2016-12-14
- 1.4.1 — 2016-09-28
- 1.4.0 — 2016-06-30
- 1.3.2 — 2016-06-10
- 1.3.1 — 2016-06-08
- 1.3.0 — 2016-06-03
- 1.2.0 — 2016-05-09
- 1.1.1 — 2016-03-18
- 1.1.0 — 2016-02-22
- 1.0.4 — 2015-12-07
- 1.0.3 — 2015-12-07
- 1.0.2 — 2015-07-11
- 1.0.1 — 2015-07-11
- 1.0.0 — 2015-07-11

## README

# WooCommerce API - Node.js Client

A Node.js client for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.

**- 2019-07-29: This client is obsolete and will no longer receive updates, a new JavaScript library is available under the name of [`@woocommerce/woocommerce-rest-api`](https://github.com/woocommerce/woocommerce-rest-api-js-lib).**

[![build status](https://secure.travis-ci.org/woocommerce/wc-api-node.svg)](http://travis-ci.org/woocommerce/wc-api-node)
[![dependency status](https://david-dm.org/woocommerce/wc-api-node.svg)](https://david-dm.org/woocommerce/wc-api-node)
[![npm version](https://img.shields.io/npm/v/woocommerce-api.svg)](https://www.npmjs.com/package/woocommerce-api)

## Installation

```
npm install --save woocommerce-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

Setup for the new WP REST API integration (WooCommerce 2.6 or later):

```js
var WooCommerceAPI = require('woocommerce-api');

var WooCommerce = new WooCommerceAPI({
  url: 'http://example.com',
  consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  wpAPI: true,
  version: 'wc/v1'
});
```

Setup for the old WooCommerce legacy API:

```js
var WooCommerceAPI = require('woocommerce-api');

var WooCommerce = new WooCommerceAPI({
  url: 'http://example.com',
  consumerKey: 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  consumerSecret: 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
  version: 'v3'
});
```

### Options

| Option            | Type      | Required | Description                                                                                              |
|-------------------|-----------|----------|----------------------------------------------------------------------------------------------------------|
| `url`             | `String`  | yes      | Your Store URL, example: http://woo.dev/                                                                 |
| `consumerKey`     | `String`  | yes      | Your API consumer key                                                                                    |
| `consumerSecret`  | `String`  | yes      | Your API consumer secret                                                                                 |
| `wpAPI`           | `Bool`    | no       | Allow requests to the WP REST API (WooCommerce 2.6 or later)                                             |
| `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 `v3`                                                                             |
| `verifySsl`       | `Bool`    | no       | Verify SSL when connect, use this option as `false` when need to test with self-signed certificates      |
| `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`                                                          |
| `timeout`         | `Integer` | no       | Define the request timeout                                                                               |
| `agent`           | `Agent`   | no       | User agent instance.                                                                                     |

## Methods

| Params     | Type       | Description                                                  |
|------------|------------|--------------------------------------------------------------|
| `endpoint` | `String`   | WooCommerce API endpoint, example: `customers` or `order/12` |
| `data`     | `Object`   | JS object, will be converted to JSON                         |
| `callback` | `Function` | Callback function. Returns `err`, `data` and `res`           |

### GET

- `.get(endpoint)`
- `.get(endpoint, callback)`

### POST

- `.post(endpoint, data)`
- `.post(endpoint, data, callback)`

### PUT

- `.put(endpoint, data)`
- `.put(endpoint, data, callback)`

### DELETE

- `.delete(endpoint)`
- `.delete(endpoint, callback)`

### OPTIONS

- `.options(endpoint)`
- `.options(endpoint, callback)`

## Promified Methods

Every method can be used in a promified way just adding `Async` to the method name. Like in:

```js
WooCommerce.getAsync('products').then(function(result) {
  return JSON.parse(result.toJSON().body);
});
```

## Release History

- 2019-07-29 - v1.5.0 - Updated dependencies, and adds support for `agent`.
- 2016-12-14 - v1.4.2 - Fixed WordPress 4.7 compatibility.
- 2016-09-28 - v1.4.1 - Updated dependencies and updated/fixed oAuth1.0a.
- 2016-06-30 - v1.4.0 - Added `wpAPIPrefix` option to allow custom WP REST API Url prefix and support for promified methods.
- 2016-06-09 - v1.3.2 - Fixed oAuth signature for WP REST API.
- 2016-06-08 - v1.3.1 - Fixed README.md.
- 2016-06-03 - v1.3.0 - Added new `timeout` option and updated dependencies.
- 2016-05-09 - v1.2.0 - Added support for WP REST API and added method to do HTTP OPTIONS requests.
- 2016-03-18 - v1.1.1 - Added support for ports.
- 2016-02-22 - v1.1.0 - Added `queryStringAuth` option to allow Basic Authentication as query string.
- 2015-12-07 - v1.0.4 - Updated dependencies and fixed brackets when sorting query string.
- 2015-12-07 - v1.0.3 - Added method to properly sort query strings when using oAuth.
- 2015-07-11 - v1.0.2 - Fixed the examples on example.js and README.md.
- 2015-07-11 - v1.0.1 - Added unit tests, improved the main class and added full description on README.md.
- 2015-07-11 - v1.0.0 - Initial release.

---
_Source: https://npm.io/package/woocommerce-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
