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 http://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("http://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("http://example.com","ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",{version: "v3"})| Option | Type | Required | Description |
|---|---|---|---|
url | String | yes | Your Store URL, example: http://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"putsresponse.parsed_response# A Hash of the parsed JSON response# Example: {"customers"=>[{"id"=>8, "created_at"=>"2015-05-06T17:43:51Z", "email"=>putsresponse.code# A Integer of the HTTP code response# Example: 200putsresponse.headers["x-wc-total"]# Total of items# Example: 2putsresponse.headers["x-wc-totalpages"]# Total of pages# Example: 1- 2016-12-14 - 1.4.0 - Introduces
httparty_argsarg and fixed compatibility with WordPress 4.7. - 2016-09-15 - 1.3.0 - Added the
query_string_authanddebug_modeoptions. - 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
bodyin 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
queryargument 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.