E-commerce
Shopify, WooCommerce, BigCommerce, Magento, Amazon Seller, and other commerce toolsets.
#E-commerce
Shopping carts, marketplaces, and order management. Each toolset gives an agent a uniform surface over products, orders, customers, and inventory for one storefront or marketplace platform.
All commerce connectors follow the same agent-ready pattern: list_products, list_orders, list_customers, list_items, and search_items return compact summaries with response-local ordinal refs (product_ref, order_ref, customer_ref, item_ref) plus user-facing fields (title / name, sku / handle, status, total_price / price, customer_name, email). Raw provider IDs are hidden unless include_ids=True is passed; pass include_raw=True (Shopify / WooCommerce / BigCommerce / Magento / Amazon / eBay / Walmart) to receive the unmodified provider payload. List defaults vary by connector (commonly 25; Walmart uses 20). Write tools that take an ID accept either the raw ID or the dict returned by the corresponding list/get tool.
Tip: register with add_toolset(..., exclude_tags=["destructive"]) to drop irreversible tools (delete_product, cancel_order, retire_item).#ShopifyToolSet
from maivn_tools import ShopifyToolSet
connector = ShopifyToolSet(
shop="acme", # -> acme.myshopify.com
access_token=secrets["SHOPIFY_ADMIN_TOKEN"],
)Tools: get_shop, list_products(limit, page_info, status, include_ids, include_raw), get_product(product_id), create_product(product), update_product(product_id, product), delete_product(product_id) (destructive), list_orders(status, limit, financial_status, fulfillment_status, page_info, include_ids, include_raw), get_order(order_id), create_order(order), cancel_order(order_id, reason, refund, restock) (destructive), list_customers(limit, page_info, include_ids, include_raw), create_customer(customer), search_customers(query, ...), list_inventory_levels(...), set_inventory_level(...), create_fulfillment(order_id, fulfillment).
#Agent-ready behavior
list_products,list_orders,list_customersreturn compact summaries with display refs (product_ref,order_ref,customer_ref) plus user-facing fields (title,vendor,sku,price,status,order_number,customer_name,total_price,currency,financial_status,fulfillment_status).- Raw Shopify numeric IDs hidden by default; pass
include_ids=Trueto opt in (needed byupdate_product,delete_product,cancel_order,get_order). Passinclude_raw=Truefor the unmodified payload. - Default
limitis 25 (max 250). Pagination viapage_info(cursor from Shopify'sLinkresponse header). update_product,delete_product,cancel_orderaccept either a raw ID or a dict returned bylist_*(withinclude_ids=True) /get_*.- Destructive tools:
delete_product,cancel_order.
Example:
orders = connector.list_orders(status="open", financial_status="paid")
# {"orders": [{"order_ref": "order_1", "order_number": "#1042", "customer_name": "Alice", "total_price": "129.99", "currency": "USD", ...}], "count": 25}#WooCommerceToolSet
from maivn_tools import WooCommerceToolSet
connector = WooCommerceToolSet(
site_url="https://shop.example.com",
consumer_key=secrets["WOO_CK"],
consumer_secret=secrets["WOO_CS"],
)Tools: list_products(per_page, page, search, status, include_ids, include_raw), get_product(product_id), create_product(product), update_product(product_id, product), delete_product(product_id, force) (destructive), list_orders(per_page, page, status, customer, include_ids, include_raw), create_order(order), update_order(order_id, order), list_customers(per_page, page, search, include_ids, include_raw), create_coupon(coupon), list_reports(...).
#Agent-ready behavior
list_products,list_orders,list_customersreturn compact summaries with display refs (product_ref,order_ref,customer_ref) plus user-facing fields (name,sku,regular_price,status,number,total,customer_name,email).- Raw WooCommerce IDs hidden by default; pass
include_ids=Truefor follow-upupdate_*/delete_productcalls. Passinclude_raw=Truefor the unmodified payload. - Default
per_pageis 25. Pagination viapage. update_product,delete_product,update_orderaccept a raw ID or a dict fromlist_*(include_ids=True). WooCommerce treats cancellation asupdate_order(order_id, {"status": "cancelled"})-- also destructive in effect.- Destructive tools:
delete_product.
#BigCommerceToolSet
from maivn_tools import BigCommerceToolSet
connector = BigCommerceToolSet(
store_hash="abc",
access_token=secrets["BC_TOKEN"],
)Tools: list_products(limit, page, include_ids, include_raw), create_product(product), update_product(product_id, product), delete_product(product_id) (destructive), list_orders(limit, page, status_id, include_ids, include_raw), get_order(order_id), list_customers(limit, page, include_ids, include_raw), create_customers(customers) (bulk), list_carts(...).
#Agent-ready behavior
list_products,list_orders,list_customersreturn compact summaries with display refs (product_ref,order_ref,customer_ref) plus user-facing fields (name,sku,price,is_visible, order status / totals, customer name / email).- Raw IDs hidden by default; pass
include_ids=Trueto opt in. Passinclude_raw=Truefor the unmodified payload. - Default
limitis 25 (BigCommerce caps at 250 per page on v3). update_productanddelete_productaccept a raw ID or a dict fromlist_products(include_ids=True).- Destructive tools:
delete_product. The connector wraps the legacy v2 orders endpoint where there is no order-cancel tool; treat any order mutation as destructive in effect.
#MagentoToolSet
from maivn_tools import MagentoToolSet
connector = MagentoToolSet(
base_url="https://shop.example.com",
access_token=secrets["MAGENTO_TOKEN"],
)Tools: list_products(page_size, current_page, filters, include_ids, include_raw), get_product(sku), upsert_product(product), delete_product(sku) (destructive), list_orders(page_size, current_page, filters, include_ids, include_raw), get_order(order_id), list_customers(page_size, current_page, filters, include_ids, include_raw), set_stock_item(sku, stock_item).
#Agent-ready behavior
list_products,list_orders,list_customersreturn compact summaries with display refs plus user-facing fields. Products are addressed bysku(user-facing); orders showincrement_id(the customer-facing order number).- Raw Magento IDs hidden by default; pass
include_ids=Trueto opt in. Passinclude_raw=Truefor the unmodified payload. - Default
page_sizeis 25. Filters use Magento'ssearchCriteria[...]syntax. upsert_productanddelete_productare SKU-addressed (so the user-facing identifier is enough).delete_productaccepts either the raw SKU string or a dict returned bylist_products(include_ids=True).- Destructive tools:
delete_product.
#AmazonSellerToolSet
Wraps Amazon Selling Partner API. Caller supplies an LWA bearer token; pass a custom `AuthStrategy` for SigV4 if needed.
from maivn_tools import AmazonSellerToolSet
connector = AmazonSellerToolSet(access_token=secrets["LWA_ACCESS_TOKEN"])Tools: list_orders(marketplace_ids, created_after, ..., max_results, include_ids, include_raw), get_order(order_id), list_order_items(order_id), list_inventory_summaries(marketplace_ids, ...), get_catalog_item(asin, marketplace_ids), search_catalog_items(keywords, marketplace_ids, ...), create_report(...), get_report(report_id).
#Agent-ready behavior
list_ordersreturns compact summaries withorder_refplus the always-shown user-facingamazon_order_id(formatted like123-1234567-1234567-- these appear on packing slips and in Seller Central, so they are not hidden),purchase_date,order_status,fulfillment_channel,buyer_email,total_amount/total_currency, and shipped / unshipped item counts.include_ids=Trueaddsseller_order_id(the merchant-side ID). Passinclude_raw=Truefor the unmodified SP-API payload. TheNextTokenpagination cursor is preserved asnext_token.- Default
max_resultsis 25. - No
destructive=Truetools -- Amazon order cancellation and product retirement are handled via SP-API workflows that this surface does not expose.
#EbayToolSet
from maivn_tools import EbayToolSet
connector = EbayToolSet(access_token=secrets["EBAY_TOKEN"])Tools: search_items(q, category_ids, filter, limit, offset, include_ids, include_raw), get_item(item_id), list_inventory_items(limit, offset, include_ids, include_raw), upsert_inventory_item(sku, payload), create_offer(payload), publish_offer(offer_id), list_orders(limit, offset, filter, include_ids, include_raw), get_order(order_id), issue_refund(order_id, payload) (destructive).
#Agent-ready behavior
search_itemsreturns compact summaries withitem_refplus user-facingtitle,price,condition,seller_username,item_web_url.list_ordersreturnsorder_refplus user-facingorder_id(the eBay buyer-visible order number),buyer_username,creation_date,order_fulfillment_status,total_amount, andtotal_currency.- Raw eBay IDs hidden by default; pass
include_ids=Trueto opt in (needed forget_item,issue_refund). Passinclude_raw=Truefor the unmodified payload. - Default
limitis 25. issue_refundaccepts either the raw order ID or the dict fromlist_orders(include_ids=True).- Destructive tools:
issue_refund.publish_offeris destructive in effect (makes a listing live).
#WalmartMarketplaceToolSet
from maivn_tools import WalmartMarketplaceToolSet
connector = WalmartMarketplaceToolSet(access_token=secrets["WM_ACCESS_TOKEN"])Tools: list_items(limit, offset, include_ids, include_raw), get_item(sku), retire_item(sku) (destructive), list_orders(created_start_date, created_end_date, status, limit, include_ids, include_raw), get_order(purchase_order_id), acknowledge_order(purchase_order_id), get_inventory(sku), set_inventory(sku, quantity, unit), list_feeds(feed_id).
#Agent-ready behavior
list_itemsreturns compact summaries withitem_refplus user-facingsku,product_name,price,publish_status,lifecycle_status.list_ordersreturnsorder_refplus the user-facingpurchase_order_idandcustomer_order_id,order_date,customer_name,customer_email_id.include_ids=Trueadds the WPID / GTIN for items and a raw copy of the purchase-order ID. Passinclude_raw=Truefor the unmodified payload. The orders list also preserves thenext_cursorfor paging.- Default
limitis 20. retire_itemaccepts either the raw SKU or the dict fromlist_items/get_item. Other order / inventory write tools are SKU- / purchase-order-id-addressed (user-facing identifiers).- Destructive tools:
retire_item.