magento2
Manage a Magento 2 / Adobe Commerce store via REST API. Use for orders, catalog, customers, inventory, promotions, and sales reporting. It can also discover and interact with custom modules (like blogs) by exploring the system's modules and REST schema. Triggers on requests like "show me today's orders", "update product stock", "check installed modules", "call custom api", "morning brief", "store health", "inventory risk", "stockout", "promotion audit", "stuck orders", "order exceptions", "pricing issues", or anything referencing a Magento store.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/caravanglory/magento2Magento 2 Skill
Connect to one or more Magento 2 / Adobe Commerce stores via REST API using OAuth 1.0a.
Authentication
All requests are signed with OAuth 1.0a. Credentials are read from environment variables — never ask the user to paste them in chat.
Single site (default)
MAGENTO_BASE_URL— e.g.https://store.example.comMAGENTO_CONSUMER_KEYMAGENTO_CONSUMER_SECRETMAGENTO_ACCESS_TOKENMAGENTO_ACCESS_TOKEN_SECRET
Multi-site setup
To connect to additional stores, define credentials with a site suffix (MAGENTO_<VAR>_<SITE>):
MAGENTO_BASE_URL_US=https://us.store.com
MAGENTO_CONSUMER_KEY_US=...
MAGENTO_CONSUMER_SECRET_US=...
MAGENTO_ACCESS_TOKEN_US=...
MAGENTO_ACCESS_TOKEN_SECRET_US=...
MAGENTO_BASE_URL_EU=https://eu.store.com
MAGENTO_CONSUMER_KEY_EU=...
...
All scripts accept --site <alias> to target a specific store. When omitted, the default (unsuffixed) credentials are used.
python3 orders.py list --site us --limit 10
python3 system.py sites # list all configured sites
Optional env vars
MAGENTO_TIMEOUT— Default is 30 seconds. Supports per-site override:MAGENTO_TIMEOUT_US.MAGENTO_DEBUG— Set to 1 to enable verbose logging to stderr.
All scripts import the shared client from scripts/magento_client.py. Never construct raw HTTP requests inline — always use the client.
Available commands
Run scripts with: python3 <skill_dir>/scripts/<script>.py [args]
Orders — scripts/orders.py
# List recent orders (default: last 20)
python3 orders.py list [--limit N] [--status pending|processing|complete|canceled|closed|holded|payment_review]
# Get a single order
python3 orders.py get <order_id>
# Update order status
python3 orders.py update-status <order_id> <status>
# Cancel an order
python3 orders.py cancel <order_id>
# Ship an order (optional: add tracking number and carrier)
python3 orders.py ship <order_id> [--track N] [--carrier carrier_code] [--title title]
# Invoice an order
python3 orders.py invoice <order_id>
Catalog — scripts/catalog.py
# Search products
python3 catalog.py search <query> [--limit N]
# Get product by SKU
python3 catalog.py get <sku>
# Update product price
python3 catalog.py update-price <sku> <price>
# Update product name / description
python3 catalog.py update-attribute <sku> <attribute> <value>
# Enable or disable a product
python3 catalog.py update-status <sku> {enabled|disabled}
# Delete a product
python3 catalog.py delete <sku>
# List categories
python3 catalog.py categories
Customers — scripts/customers.py
# Search customers by email or name
python3 customers.py search <query> [--limit N]
# Get customer by ID
python3 customers.py get <customer_id>
# Get customer orders
python3 customers.py orders <customer_id>
# Update customer group
python3 customers.py update-group <customer_id> <group_id>
Inventory — scripts/inventory.py
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-caravanglory-magento2": {
"enabled": true,
"auto_update": true
}
}
}