PyMagento
PyMagento is a Python client for the Magento 2 API. Its goal is to provide an easy-to-use Pythonic interface
to the Magento 2 API, while being lightweight and extendable.
Features:
- Lightweight: entities are returned as plain dictionaries; there is no custom
Order
or Product
class - Easy to extend: subclass
magento.Magento
and add your own methods - Transparent pagination: functions that make paginated queries return lazy iterables (generators)
- Fully typed: all functions have type hints if necessary
- Production-ready: at Bixoto, we use PyMagento in production since 2020
- Python 3.8+ support
- MIT license
Note: PyMagento is not affiliated to nor endorsed by Adobe or the Magento team.
Install
Pip
python -m pip install pymagento
Poetry
poetry add pymagento
Usage
import magento
client = magento.Magento(base_url="...", token="...", scope="all")
product = client.get_product("SKU123")
print(magento.get_custom_attribute(product, "description"))
for order in client.get_orders(status="processing"):
print(order["increment_id"], order["grand_total"])
query = magento.make_search_query([
[("customer_email", "billgates@example.com", "eq")],
[("status", "complete", "eq")],
])
for order in client.get_orders(query=query, limit=10):
print(order["increment_id"], len(order["items"]))
For more information, read the docs.
Note: not all endpoints are implemented with dedicated methods. You can call them with
client.get_json_api("/V1/...")
for GET
endpoints and client.post_json_api("/V1/...", json=...)
.
License
Copyright 2020-2024 Bixoto. See the LICENSE
.
Other projects