Skip to content

woocommerce/wc-api-python

Repository files navigation

WooCommerce API - Python Client

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

https://github.com/woocommerce/wc-api-python/actions/workflows/ci.yml/badge.svg?branch=trunk

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

fromwoocommerceimportAPIwcapi=API( url="http://example.com", consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", version="wc/v3" )

Options

OptionTypeRequiredDescription
urlstringyesYour Store URL, example: http://woo.dev/
consumer_keystringyesYour API consumer key
consumer_secretstringyesYour API consumer secret
versionstringnoAPI version, default is wc/v3
timeoutintegernoConnection timeout, default is 5
verify_sslboolnoVerify SSL when connect, use this option as False when need to test with self-signed certificates
query_string_authboolnoForce Basic Authentication as query string when True and using under HTTPS, default is False
user_agentstringnoSet a custom User-Agent, default is WooCommerce-Python-REST-API/3.0.0
oauth_timestampintegernoCustom timestamp for requests made with oAuth1.0a
wp_apiboolnoSet to False in order to use the legacy WooCommerce API (deprecated)

Methods

ParamsTypeDescription
endpointstringWooCommerce API endpoint, example: customers or order/12
datadictionaryData that will be converted to JSON
**kwargsdictionaryAccepts 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

fromwoocommerceimportAPIwcapi=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

See CHANGELOG.md.

About

A Python wrapper for the WooCommerce API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 8

Languages