Skip to main content

A Python wrapper for the WooCommerce REST API. Easily interact with the WooCommerce REST API using this library.

https://secure.travis-ci.org/woocommerce/wc-api-python.svg https://img.shields.io/pypi/v/woocommerce.svg

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

Release files for WooCommerce 2.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for WooCommerce 2.1.1
File Size Uploaded
WooCommerce-2.1.1.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for WooCommerce 2.1.1
File Interpreter ABI Platform
WooCommerce-2.1.1-py2-none-any.whl Python 2 none any Details

Total release size: 14.0 kB

Release files / WooCommerce-2.1.1.tar.gz

Download URL WooCommerce-2.1.1.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9980f3cec3051830062bf1e5e101f759dd3a6db7b00e7f605355ce8f8f6e16ca
BLAKE2b-256 checksum
How to use checksums
bd44abdc600cba81bc8987545569263be4422cbb98cdb0dcef3b92a9a1623b53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

Release files / WooCommerce-2.1.1-py2-none-any.whl

Download URL WooCommerce-2.1.1-py2-none-any.whl
Size 7.3 kB
Tags Python 2
SHA-256 checksum
How to use checksums
68661ec4d6ebf4fa57450b1d363ec7a282775c60ac62dd9bbe4270858c9a8cc2
BLAKE2b-256 checksum
How to use checksums
7b6737757cb879c531eb2f4c5660d28a89c3e4d6d128cca29fd25521c97670b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

Release history Release notifications | RSS feed

3.0.0

2 release files

This release

2.1.1 This release

2 release files

2.0.0

2 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page