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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

WooCommerce-2.1.1.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

WooCommerce-2.1.1-py2-none-any.whl (7.3 kB view details)

Uploaded Python 2

File details

Details for the file WooCommerce-2.1.1.tar.gz.

File metadata

  • Download URL: WooCommerce-2.1.1.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for WooCommerce-2.1.1.tar.gz
Algorithm Hash digest
SHA256 9980f3cec3051830062bf1e5e101f759dd3a6db7b00e7f605355ce8f8f6e16ca
MD5 d515569909764bd49894485469d47735
BLAKE2b-256 bd44abdc600cba81bc8987545569263be4422cbb98cdb0dcef3b92a9a1623b53

See more details on using hashes here.

File details

Details for the file WooCommerce-2.1.1-py2-none-any.whl.

File metadata

  • Download URL: WooCommerce-2.1.1-py2-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 2
  • Uploaded using 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

File hashes

Hashes for WooCommerce-2.1.1-py2-none-any.whl
Algorithm Hash digest
SHA256 68661ec4d6ebf4fa57450b1d363ec7a282775c60ac62dd9bbe4270858c9a8cc2
MD5 db67093501a0e06213274b9cc765d673
BLAKE2b-256 7b6737757cb879c531eb2f4c5660d28a89c3e4d6d128cca29fd25521c97670b1

See more details on using hashes here.

Release history Release notifications | RSS feed

3.0.0

2 files

This release

2.1.1 This release

2 files

2.0.0

2 files

1.2.1

1 file

1.2.0

1 file

1.1.1

1 file

1.1.0

1 file

1.0.5

1 file

1.0.4

1 file

1.0.3

1 file

1.0.2

1 file

1.0.1

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page