npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

woojs

v1.0.4

Published

JavaScript Library for WooCommerce REST API

Downloads

10

Readme

wooJS

JavaScript Library for WooCommerce REST API

Extends @woocommerce/woocommerce-rest-api with more descriptive methods.


Table of Contents


Installation

npm i woojs

Usage

const Woo = require("woojs");
const woo = new Woo(url, consumerKey, consumerSecret);

How to generate REST API keys

Constructor Parameters

Woo(url, key, secret {options})

| Parameter | Type | Required | Description | | --------- | ------ | -------- | --------------------- | | url | string | yes | WooCommerce store URL | | key | string | yes | Consumer Key | | secret | string | yes | Consumer Secret | | options | object | no | Options object |

Options

| Option | Type | Default | Description | | ----------------- | ------- | ------- | -------------------------------------------------------------------------- | | version | string | 'wc/v3' | WooCommerce REST API version | | queryStringAuth | boolean | false | Use query string authentication instead of using the Authorization header. | | timeout | number | 5000 | Request timeout in milliseconds. | | encoding | string | 'utf8' | Request encoding. | | port | string | '' | Request port. |

Coupons

Coupon Properties

| Attribute | Type | Description | | ----------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------ | | id | integer | Unique identifier for the object READ-ONLY | | code | string | Coupon code. MANDATORY | | amount | string | Amount of discount. | | date_created | date-time | The date the coupon was created. READ-ONLY | | date_created_gmt | date-time | The date the coupon was created, as GMT. READ-ONLY | | date_modified | date-time | The date the coupon was last modified. READ-ONLY | | date_modified_gmt | date-time | The date the coupon was last modified, as GMT. READ-ONLY | | discount_type | string | Determines the type of discount that will be applied. Options: percent, fixed_cart and fixed_product. Default is fixed_cart. | | description | string | Coupon description. | | date_expires | date-time | Coupon expiry date. | | date_expires_gmt | date-time | Coupon expiry date, as GMT. | | usage_count | integer | Number of times the coupon has been used already. READ-ONLY | | individual_use | boolean | If true, the coupon can only be used individually. Other applied coupons will be removed from the cart. Default is false. | | product_ids | array | List of product IDs the coupon can be used on. | | excluded_product_ids | array | List of product IDs the coupon cannot be used on. | | usage_limit | integer | How many times the coupon can be used in total. | | usage_limit_per_user | integer | How many times the coupon can be used per customer. | | limit_usage_to_x_items | integer | Maximum number of items in the cart the coupon can be applied to. | | free_shipping | boolean | If true and if the free shipping method requires a coupon, this coupon will enable free shipping. Default is false. | | product_categories | array | List of category IDs the coupon can be used on. | | excluded_product_categories | array | List of category IDs the coupon cannot be used on. | | exclude_sale_items | boolean | If true, the coupon will not apply to items that have sale prices. Default is false. | | minimum_amount | string | Minimum order amount that needs to be in the cart before coupon applies. | | maximum_amount | string | Maximum order amount allowed when using the coupon. | | email_restrictions | array | List of email addresses that can use this coupon. | | used_by | array | List of user IDs who have used the coupon. READ-ONLY | | meta_data | array | Meta data. See Coupon - Meta data properties |

Coupon - Meta Data Properties

| Attribute | Type | Description | | --------- | ------- | ----------- | | id | integer | Meta ID. | | key | string | Meta key. | | value | string | Meta value. |

Coupon Methods

Create Coupon

.couponCreate() or .couponAdd()

(method) Woo.couponCreate(data: object): object

(method) Woo.couponAdd(data: object): object

Creates a new coupon.

Example:

woo
  .couponCreate(data)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

data props

Retrieve Coupon

.couponRetrieve() or .couponGet()

(method) Woo.couponRetrieve(id: number): object

(method) Woo.couponGet(id: number): object

Retrieve and view a specific coupon by ID.

Example:

woo
  .couponRetrieve(id)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
woo
  .couponGet(id)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

List Coupons

.couponList() or .couponGetAll()

(method) Woo.couponList(params?: object): object

(method) Woo.couponGetAll(params?: object): object

List all coupons.

Example:

woo
  .couponList()
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
woo
  .couponGetAll()
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
List Coupons parameters:

| Parameter | Type | Description | | ----------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- | | context | string | Scope under which the request is made; determines fields present in response. Options: view and edit. Default is view. | | page | integer | Current page of the collection. Default is 1. | | per_page | integer | Maximum number of items to be returned in result set. Default is 10. | | search | string | Limit results to those matching a string. | | after | string | Limit response to resources published after a given ISO8601 compliant date. | | before | string | Limit response to resources published before a given ISO8601 compliant date. | | modified_after | string | Limit response to resources modified after a given ISO8601 compliant date. | | modified_before | string | Limit response to resources modified before a given ISO8601 compliant date. | | dates_are_gmt | boolean | Whether to consider GMT post dates when limiting response by published or modified date. | | exclude | array | Ensure result set excludes specific IDs. | | include | array | Limit result set to specific ids. | | offset | integer | Offset the result set by a specific number of items. | | order | string | Order sort attribute ascending or descending. Options: asc and desc. Default is asc. | | orderby | string | Sort collection by object attribute. Options: date, id, include, title, slug. Default is date. | | code | string | Limit result set to coupons with a specific code. |

Update Coupon

.couponUpdate() or .couponEdit()

(method) Woo.couponUpdate(id: number, data: object): object

(method) Woo.couponEdit(id: number, data: object): object

Make changes to a coupon.

Example:

woo
  .couponUpdate(id, data)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

data props

Delete Coupon

.couponDelete() or .couponRemove()

(method) Woo.couponDelete(id: number, params?: object): object

(method) Woo.couponRemove(id: number, params?: object): object

Delete a coupon.

Example:

woo
  .couponDelete(id, { force: true }})
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
Delete Coupon parameters:

| Parameter | Type | Description | | --------- | ------- | ------------------------------------------------------------------------ | | force | boolean | Use true whether to permanently delete the coupon, Default is false. |

Batch Update Coupons

Note: By default it's limited to up to 100 objects to be created, updated or deleted.

.couponBatchUpdate() or .couponBatch()

(method) Woo.couponBatchUpdate(data: object): object

(method) Woo.couponBatch(data: object): object

Update multiple coupons.

Example:

const data = {
  create: [
    {
      code: "20off",
      discount_type: "percent",
      amount: "20",
      individual_use: true,
      exclude_sale_items: true,
      minimum_amount: "100.00"
    },
    {
      code: "30off",
      discount_type: "percent",
      amount: "30",
      individual_use: true,
      exclude_sale_items: true,
      minimum_amount: "100.00"
    }
  ],
  update: [
    {
      id: 719,
      minimum_amount: "50.00"
    }
  ],
  delete: [
    720
  ]
};

woo.couponBatchUpdate(, data)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

Customers

Customer properties

| Property | Type | Description | | -------------------- | --------- | ---------------------------------------------------------------------------------------------------- | | id | integer | Unique identifier for the resource. READ-ONLY | | date_created | date-time | The date the customer was created, in the site's timezone. READ-ONLY | | date_created_gmt | date-time | The date the customer was created, as GMT. READ-ONLY | | date_modified | date-time | The date the customer was last modified, in the site's timezone. READ-ONLY | | date_modified_gmt | date-time | The date the customer was last modified, as GMT. READ-ONLY | | email | string | Customer email address. MANDATORY | | first_name | string | Customer first name. | | last_name | string | Customer last name. | | role | string | Customer role. READ-ONLY | | username | string | Customer login name. | | password | string | Customer password. WRITE-ONLY | | billing | object | List of billing address data. See Customer - Billing Properties | | shipping | object | List of shipping address data. See Customer - Shipping Properties | | is_paying_customer | boolean | Shows if the customer is a paying customer. READ-ONLY | | avatar_url | string | Avatar URL. READ-ONLY | | meta_data | array | Meta data. See Customer - Meta data properties |

Customer - Billing Properties

| Attribute | Type | Description | | ------------ | ------ | ---------------------------------------------------- | | first_name | string | First name. | | last_name | string | Last name. | | company | string | Company name. | | address_1 | string | Address line 1. | | address_2 | string | Address line 2. | | city | string | City name. | | state | string | ISO code or name of the state, province or district. | | postcode | string | Postal code. | | country | string | ISO code of the country. | | email | string | Email address. | | phone | string | Phone number. |

Customer - Shipping Properties

| Attribute | Type | Description | | ------------ | ------ | ---------------------------------------------------- | | first_name | string | First name. | | last_name | string | Last name. | | company | string | Company name. | | address_1 | string | Address line 1. | | address_2 | string | Address line 2. | | city | string | City name. | | state | string | ISO code or name of the state, province or district. | | postcode | string | Postal code. | | country | string | ISO code of the country. |

Customer - Meta data properties

| Attribute | Type | Description | | --------- | ------ | -------------------- | | id | number | Meta ID. READ-ONLY | | key | string | Meta key. | | value | string | Meta value. |

Customer methods

Create Customer

.customerCreate() or .customerAdd()

(method) Woo.customerCreate(data: object): object

(method) Woo.customerAdd(data: object): object

Create a customer.

Example:

woo
  .customerCreate(data)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

Retrieve Customer

.customerRetrieve() or .customerGet()

(method) Woo.customerRetrieve(id: number): object

(method) Woo.customerGet(id: number): object

Retrieve and view a specific customer by ID.

Example:

woo
  .customerRetrieve(1)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

List Customers

.customerList() or .customerGetAll()

(method) Woo.customerList(params?: object): object

(method) Woo.customerGetAll(params?: object): object

View all the customers.

Example:

woo
  .customerList()
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
List Customers parameters

| Parameter | Type | Description | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | context | string | Scope under which the request is made; determines fields present in response. Options: view and edit. Default is view. | | page | integer | Current page of the collection. Default is 1. | | per_page | integer | Maximum number of items to be returned in result set. Default is 10. | | search | string | Limit results to those matching a string. | | exclude | array | Ensure result set excludes specific IDs. | | include | array | Limit result set to specific ids. | | offset | integer | Offset the result set by a specific number of items. | | order | string | Order sort attribute ascending or descending. Options: asc and desc. Default is asc. | | orderby | string | Sort collection by object attribute. Options: id, include, name and registered_date. Default is name. | | email | string | Limit result set to resources with a specific email. | | role | string | Limit result set to resources with a specific role. Options: all, administrator, editor, author, contributor, subscriber, customer and shop_manager. Default is customer. |

Update Customer

.customerUpdate() or .customerEdit()

(method) Woo.customerUpdate(id: number, data: object): object

(method) Woo.customerEdit(id: number, data: object): object

Update a customer.

Example:

woo
  .customerUpdate(1, data)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

data options

Delete Customer

.customerDelete() or .customerRemove()

(method) Woo.customerDelete(id: number, params?: object): object

(method) Woo.customerRemove(id: number, params?: object): object

Delete a customer.

Example:

woo
  .customerDelete(1)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });
Delete Customer parameters

| Parameter | Type | Description | | ---------- | ------- | ------------------------------------------------------------- | | force | boolean | Required to be true, as resource does not support trashing. | | reassign | integer | User ID to reassign posts to. |

Batch Update Customers

Note: By default it's limited to up to 100 objects to be created, updated or deleted.

.customerBatch() or .customerBatchUpdate()

(method) Woo.customerBatch(data: object): object

(method) Woo.customerBatchUpdate(data: object): object

Update multiple customers in a single request.

Example:

const data = {
  create: [
    {
      email: "[email protected]",
      first_name: "John",
      last_name: "Doe",
      username: "john.doe2",
      billing: {
        first_name: "John",
        last_name: "Doe",
        company: "",
        address_1: "969 Market",
        address_2: "",
        city: "San Francisco",
        state: "CA",
        postcode: "94103",
        country: "US",
        email: "[email protected]",
        phone: "(555) 555-5555",
      },
      shipping: {
        first_name: "John",
        last_name: "Doe",
        company: "",
        address_1: "969 Market",
        address_2: "",
        city: "San Francisco",
        state: "CA",
        postcode: "94103",
        country: "US",
      },
    },
    {
      email: "[email protected]",
      first_name: "João",
      last_name: "Silva",
      username: "joao.silva2",
      billing: {
        first_name: "João",
        last_name: "Silva",
        company: "",
        address_1: "Av. Brasil, 432",
        address_2: "",
        city: "Rio de Janeiro",
        state: "RJ",
        postcode: "12345-000",
        country: "BR",
        email: "[email protected]",
        phone: "(55) 5555-5555",
      },
      shipping: {
        first_name: "João",
        last_name: "Silva",
        company: "",
        address_1: "Av. Brasil, 432",
        address_2: "",
        city: "Rio de Janeiro",
        state: "RJ",
        postcode: "12345-000",
        country: "BR",
      },
    },
  ],
  update: [
    {
      id: 26,
      billing: {
        phone: "(11) 1111-1111",
      },
    },
  ],
  delete: [11],
};

woo
  .customerBatch(data)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

data options

Retrieve Customer Downloads

.customerDownloads()

(method) Woo.customerDownloads(id: number): object

Retrieve customer downloads permissions.

Example:

woo
  .customerDownloads(1)
  .then((response) => {
    console.log(response);
  })
  .catch((error) => {
    console.log(error);
  });

Orders

Order properties

| Attribute | Type | Description | | ---------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | id | integer | Unique identifier for the resource. READ-ONLY | | parent_id | integer | Order parent ID. | | number | string | Order number. READ-ONLY | | order_key | string | Order key. READ-ONLY | | created_via | string | Shows where the order was created. READ-ONLY | | version | string | Version of WooCommerce which last updated the order. READ-ONLY | | status | string | Order status. Options: pending, processing, on-hold, completed, cancelled, refunded, failed and trash. Default is pending. | | currency | string | Currency the order was created with, in ISO format. Options: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTC, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IMP, INR, IQD, IRR, IRT, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PRB, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STD, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XOF, XPF, YER, ZAR and ZMW. Default is USD. | | date_created | date-time | The date the order was created, in the site's timezone. READ-ONLY | | date_created_gmt | date-time | The date the order was created, as GMT. READ-ONLY | | date_modified | date-time | The date the order was last modified, in the site's timezone. READ-ONLY | | date_modified_gmt | date-time | The date the order was last modified, as GMT. READ-ONLY | | discount_total | string | Order discount total. READ-ONLY | | discount_tax | string | Order discount tax. READ-ONLY | | shipping_total | string | Order shipping total. READ-ONLY | | shipping_tax | string | Order shipping tax. READ-ONLY | | cart_tax | string | Order cart tax. READ-ONLY | | total | string | Order total. READ-ONLY | | total_tax | string | Order total tax. READ-ONLY | | prices_include_tax | boolean | Are prices inclusive of tax. READ-ONLY | | customer_id | integer | User ID who owns the order. 0 for guests. Default is 0. | | customer_ip_address | string | Customer IP address. READ-ONLY | | customer_user_agent | string | Customer user agent. READ-ONLY