woojs v1.0.4
wooJS
JavaScript Library for WooCommerce REST API
Extends @woocommerce/woocommerce-rest-api
with more descriptive methods.
Table of Contents
- Installation
- Usage
- Coupons
- Customers
- Orders
- Order Notes
- Order Refunds
- Products
- Product Variations
- Product Attributes
- Product Attribute Terms
- Product Categories
Installation
npm i woojs
Usage
const Woo = require("woojs");
const woo = new Woo(url, consumerKey, consumerSecret);
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);
});
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);
});
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);
});
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: "john.doe2@example.com",
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: "john.doe@example.com",
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: "joao.silva2@example.com",
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: "joao.silva@example.com",
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);
});
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 |