- Added
~.get_api
to login using credentials stored in environment variables- The environment variables
MAGENTO_USERNAME
,MAGENTO_PASSWORD
,MAGENTO_DOMAIN
will be used if thedomain
,username
orpassword
kwargs are missing
- The environment variables
import magento
>>> magento.get_api()
2023-02-08 03:34:20 INFO |[ MyMagento | 127_user ]|: Authenticating user on 127.0.0.1/path/to/magento
2023-02-08 03:34:23 INFO |[ MyMagento | 127_user ]|: Logged in to user
<magento.clients.Client object at 0x000001CA83E1A200>
...
- Added
local
kwarg toClient
to support locally hosted Magento stores and test environments- By default,
local=False
- By default,
from magento import Client
>>> api = Client("127.0.0.1/path/to/magento", "username", "password", local=True)
...
- Add
~.since
and~.until
method to~.SearchQuery
classes, which search thecreated_at
field- They can be chained together and also with
~.add_criteria
- They can be chained together and also with
Example
# Retrieve orders from the first 7 days of 2023
>>> api.orders.since("2023-01-01").until("2023-01-07").execute()
[<Magento Order: #000000012 placed on 2023-01-02 05:19:55>, ]
Example
# Retrieve orders over $50 placed since 2022
>>> api.orders.add_criteria(
... field="grand_total",
... value="50",
... condition="gteq"
... ).since("2022-01-01").execute()
[<Magento Order: #000000003 placed on 2022-12-21 08:09:33>, ...]
...
- Changed
~.add_criteria
to auto-increment the filter group by default if no group is specified (ie.AND
condition)
# Retrieving products that are over $10 AND in the category with id 15
#
# Before v2.1.0
>>> api.products.add_criteria('category_id','15').add_criteria('price','10','gteq', group=1)
# v2.1.0+
>>> api.products.add_criteria('category_id','15').add_criteria('price','10','gteq')
...
- Changed the
.Client.BASE_URL
to not include"www."
at the start (see #8) - Added unit tests for
~.url_for
- Added Jupyter notebook examples