A Python wrapper for the WooCommerce REST API
Project description
A Python wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.
Installation
pip install woocommerce
Getting started
Generate API credentials (Consumer Key & Consumer Secret) following this instructions http://woocommerce.github.io/woocommerce-rest-api-docs/#rest-api-keys.
Check out the WooCommerce API endpoints and data that can be manipulated in http://woocommerce.github.io/woocommerce-rest-api-docs/.
Setup
from woocommerce import API
wcapi = API(
url="http://example.com",
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
version="wc/v3"
)
Options
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 |
version |
string |
no |
API version, default is wc/v3 |
timeout |
integer |
no |
Connection timeout, default is 5 |
verify_ssl |
bool |
no |
Verify SSL when connect, use this option as False when need to test with self-signed certificates |
query_string_auth |
bool |
no |
Force Basic Authentication as query string when True and using under HTTPS, default is False |
oauth_timestamp |
integer |
no |
Custom timestamp for requests made with oAuth1.0a |
wp_api |
bool |
no |
Set to False in order to use the legacy WooCommerce API (deprecated) |
Methods
Params |
Type |
Description |
---|---|---|
endpoint |
string |
WooCommerce API endpoint, example: customers or order/12 |
data |
dictionary |
Data that will be converted to JSON |
**kwargs |
dictionary |
Accepts params, also other Requests arguments |
GET
.get(endpoint, **kwargs)
POST
.post(endpoint, data, **kwargs)
PUT
.put(endpoint, data), **kwargs
DELETE
.delete(endpoint, **kwargs)
OPTIONS
.options(endpoint, **kwargs)
Response
All methods will return Response object.
Example of returned data:
>>> r = wcapi.get("products")
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=UTF-8'
>>> r.encoding
'UTF-8'
>>> r.text
u'{"products":[{"title":"Flying Ninja","id":70,...' // Json text
>>> r.json()
{u'products': [{u'sold_individually': False,... // Dictionary data
Request with params example
from woocommerce import API
wcapi = API(
url="http://example.com",
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
version="wc/v3"
)
# Force delete example.
print(wcapi.delete("products/100", params={"force": True}).json())
# Query example.
print(wcapi.get("products", params={"per_page": 20}).json())
Changelog
2.1.0 - 2019/01/15
Uses WP REST API by default, need to force wp_api as False in order to use the legacy WooCommerce API.
Updated default REST API version to wc/v3.
2.0.0 - 2019/01/15
Updated “Requests” library to version 2.20.0.
Added support for custom timestamps in oAuth1.0a requests with oauth_timestamp.
Allow pass custom arguments to “Requests” library.
1.2.1 - 2016/12/14
Fixed WordPress 4.7 compatibility.
1.2.0 - 2016/06/22
Added option query_string_auth to allow Basic Auth as query strings.
1.1.1 - 2016/06/03
Fixed oAuth signature for WP REST API.
1.1.0 - 2016/05/09
Added support for WP REST API.
Added method to do HTTP OPTIONS requests.
1.0.5 - 2015/12/07
Fixed oAuth filters sorting.
1.0.4 - 2015/09/25
Implemented timeout argument for API class.
1.0.3 - 2015/08/07
Forced utf-8 encoding on API.__request() to avoid UnicodeDecodeError
1.0.2 - 2015/08/05
Fixed handler for query strings
1.0.1 - 2015/07/13
Fixed support for Python 2.6
1.0.1 - 2015/07/12
Initial version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for WooCommerce-2.1.1-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68661ec4d6ebf4fa57450b1d363ec7a282775c60ac62dd9bbe4270858c9a8cc2 |
|
MD5 | db67093501a0e06213274b9cc765d673 |
|
BLAKE2b-256 | 7b6737757cb879c531eb2f4c5660d28a89c3e4d6d128cca29fd25521c97670b1 |