JS Client for WooCommerce REST API CRUD Ops

Use @woocommerce/woocommerce-rest-api to GET, POST, PUT, DELETE WooCommerce data like products/orders via Axios promises; requires store URL, consumer key/secret.

Initialize with Store Credentials for v3 API

Install via npm install --save @woocommerce/woocommerce-rest-api. Create instance with required url (e.g., http://example.com), consumerKey (ck_...), consumerSecret (cs_...), and optional version: 'wc/v3'. Supports ESM (import WooCommerceRestApi) and CJS (require(...).default). Generate keys per WooCommerce docs; explore endpoints at woocommerce.github.io/woocommerce-rest-api-docs.

Optional configs include wpAPIPrefix for custom WP REST paths, encoding: 'utf-8', queryStringAuth: true for HTTPS Basic Auth in queries, port like '8080', timeout integer, and axiosConfig object to override Axios settings like requests.

Perform CRUD with Endpoint Methods and Params

All methods return Axios promises:

  • GET: api.get('products', { per_page: 20 }) fetches lists or singles like 'orders/12'.
  • POST: api.post('products', { name: 'Premium Quality', type: 'simple', regular_price: '21.99' }) creates; add params for queries.
  • PUT: api.put('products/1', { sale_price: '11.99' }) updates specifics.
  • DELETE: api.delete('products/1', { force: true }) removes (force skips trash).
  • OPTIONS: api.options('customers/2', params) for metadata.

Endpoints like 'customers', 'orders/1234'; data as JSON objects. Params as objects for queries like per_page, force.

Chain Promises for Response Handling

Loaded responses expose status, headers (e.g., 'x-wp-totalpages', 'x-wp-total'), data. Catch 4xx/5xx errors via error.response. Always use .finally():

const api = new WooCommerceRestApi({ /* options */ });
api.get('products', { per_page: 20 })
  .then(response => {
    console.log(response.status, response.headers, response.data);
  })
  .catch(error => {
    console.log(error.response.status, error.response.data);
  })
  .finally(() => { /* cleanup */ });

Same pattern for post/put/delete. View full changelog at GitHub for updates.

Summarized by x-ai/grok-4.1-fast via openrouter

5165 input / 1799 output tokens in 11365ms

© 2026 Edge