A Ruby wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.
gem install woocommerce_api
Generate API credentials (Consumer Key & Consumer Secret) following this instructions https://docs.woocommerce.com/document/woocommerce-rest-api/ .
Check out the WooCommerce API endpoints and data that can be manipulated in https://woocommerce.github.io/woocommerce-rest-api-docs/.
Setup for the new WP REST API integration (WooCommerce 2.6 or later):
require "woocommerce_api"
woocommerce = WooCommerce::API.new(
"https://example.com",
"ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
{
wp_api: true,
version: "wc/v1"
}
)
Setup for the WooCommerce legacy API:
require "woocommerce_api"
woocommerce = WooCommerce::API.new(
"https://example.com",
"ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
{
version: "v3"
}
)
Option | Type | Required | Description |
---|---|---|---|
url |
String |
yes | Your Store URL, example: https://woo.dev/ |
consumer_key |
String |
yes | Your API consumer key |
consumer_secret |
String |
yes | Your API consumer secret |
args |
Hash |
no | Extra arguments (see Args options table) |
Option | Type | Required | Description |
---|---|---|---|
wp_api |
Bool |
no | Allow requests to the WP REST API (WooCommerce 2.6 or later) |
version |
String |
no | API version, default is v3 |
verify_ssl |
Bool |
no | Verify SSL when connect, use this option as false when need to test with self-signed certificates |
signature_method |
String |
no | Signature method used for oAuth requests, works with HMAC-SHA1 and HMAC-SHA256 , default is HMAC-SHA256 |
query_string_auth |
Bool |
no | Force Basic Authentication as query string when true and using under HTTPS, default is false |
debug_mode |
Bool |
no | Enables HTTParty debug mode |
httparty_args |
Hash |
no | Allows extra HTTParty args |
Params | Type | Description |
---|---|---|
endpoint |
String |
WooCommerce API endpoint, example: customers or order/12 |
data |
Hash |
Only for POST and PUT, data that will be converted to JSON |
query |
Hash |
Only for GET and DELETE, request query string |
.get(endpoint, query)
.post(endpoint, data)
.put(endpoint, data)
.delete(endpoint, query)
.options(endpoint)
All methods will return HTTParty::Response object.
response = api.get "customers"
puts response.parsed_response # A Hash of the parsed JSON response
# Example: {"customers"=>[{"id"=>8, "created_at"=>"2015-05-06T17:43:51Z", "email"=>
puts response.code # A Integer of the HTTP code response
# Example: 200
puts response.headers["x-wc-total"] # Total of items
# Example: 2
puts response.headers["x-wc-totalpages"] # Total of pages
# Example: 1
- 2016-12-14 - 1.4.0 - Introduces
httparty_args
arg and fixed compatibility with WordPress 4.7. - 2016-09-15 - 1.3.0 - Added the
query_string_auth
anddebug_mode
options. - 2016-06-26 - 1.2.1 - Fixed oAuth signature for WP REST API.
- 2016-05-09 - 1.2.0 - Added support for WP REST API and added method to do HTTP OPTIONS requests.
- 2015-12-07 - 1.1.2 - Stop send
body
in GET and DELETE requests. - 2015-12-07 - 1.1.1 - Fixed the encode when have spaces in the URL parameters.
- 2015-08-27 - 1.1.0 - Added
query
argument for GET and DELETE methods, reduced chance of nonce collisions and added support for urls including ports - 2015-08-27 - 1.0.3 - Encode all % characters in query string for OAuth 1.0a.
- 2015-08-12 - 1.0.2 - Fixed the release date.
- 2015-08-12 - 1.0.1 - Escaped oauth_signature in url query string.
- 2015-07-15 - 1.0.0 - Stable release.
- 2015-07-15 - 0.0.1 - Beta release.