An async Python wrapper for the WooCommerce REST API
Project description
woocommerceaio
An async Python wrapper for the WooCommerce REST API based on httpx.
This library is a fork of the original work by Claudio Sanches on wc-api-python.
Installation
pip install woocommerceaio
Getting started
Generate API credentials (Consumer Key & Consumer Secret) following this instructions at 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 woocommerceaio 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 |
user_agent |
string |
no | Set a custom User-Agent, default is woocommerceaio/<version> |
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 httpx 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 an httpx Response
object.
Example of returned data:
>>> r = await 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 woocommerceaio import API
async def example():
wcapi = API(
url="http://example.com",
consumer_key="ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
consumer_secret="cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
version="wc/v3"
)
# Force delete example.
response = await wcapi.delete("products/100", params={"force": True})
print(response.json())
# Query example.
response = await wcapi.get("products", params={"per_page": 20})
print(response.json())
if __name__ == "__main__":
import asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(example())
Changelog
See CHANGELOG.md
.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
woocommerceaio-1.1.2.tar.gz
(6.2 kB
view hashes)
Built Distribution
Close
Hashes for woocommerceaio-1.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef57558309439e1283c751bbb218f15ef0593299385c26b4647aba69c865e352 |
|
MD5 | 61694d6991496ad71d39ad7613f9d8bb |
|
BLAKE2b-256 | 145322c391b53361acfcbaf9ea081d671b9589ae9f72664e91526debc45717b1 |