Connect your Magento 1 store to EcomCentral using the built-in SOAP v2 API with an API user account.
This integration uses Magento 1's SOAP v2 API (also known as Magento API v2). Compatible with Magento 1.4–1.9 (Open Source and Commerce editions). Magento 1 reached End of Life in June 2020 but remains widely deployed.
{store_url}/api/v2_soap/?wsdl. Some stores with mod_rewrite disabled
use /index.php/api/v2_soap/?wsdl instead.
php.ini for extension=soap and confirm with
php -m | grep -i soap.
username credential) and an API Key (this becomes api_key)https://your-shop.com/api/v2_soap/?wsdl — it should return an XML WSDL document| Key | Required | Description | Example |
|---|---|---|---|
store_url |
Required | Full root URL of your Magento store. EcomCentral appends /api/v2_soap/?wsdl automatically. |
https://shop.example.com |
username |
Required | API user login name (from System → Web Services → SOAP/XML-RPC Users) | ecomcentral_api |
api_key |
Required | API key set for that user | •••••••• |
url for the store URL;
user for the username; apiKey or password for the API key.
| Operation | SOAP Method | Notes |
|---|---|---|
| Test connection | login() | Returns session token; confirms credentials |
| List orders | salesOrderList() | Returns all orders (no server-side pagination); sliced client-side |
| Order detail | salesOrderInfo() | By increment_id (e.g. "100000001"); includes addresses, items, tracks |
| List products | catalogProductList() | Returns product_id, sku, name, type; price and stock excluded from list |
| Product detail | catalogProductInfo() | By SKU; includes price, description, weight, status |
| List shipments | salesOrderShipmentList() | Filtered by order_increment_id |
| Create shipment | salesOrderShipmentCreate() | Auto-called when no shipment exists before adding tracking |
| Add tracking | salesOrderShipmentAddTrack() | Carrier codes: ups, usps, fedex, dhl, custom |
| Update stock | catalogInventoryStockItemUpdate() | By SKU; sets qty and is_in_stock=1 |
login()) as the first
argument. The session persists for the duration of a single EcomCentral request.
Magento 1 uses string status codes. EcomCentral displays them with colour-coded badges.
| Status Code | Label | Badge colour |
|---|---|---|
complete |
complete | Green |
closed |
closed | Green |
pending |
pending | Blue |
processing |
processing | Blue |
pending_payment |
pending_payment | Blue |
payment_review |
payment_review | Blue |
holded |
holded | Amber |
fraud |
fraud | Amber |
canceled / cancelled |
canceled | Red |
refunded / voided |
refunded | Red |
| Feature | Supported | Notes |
|---|---|---|
| View orders (paginated) | ✅ | Order increment_id, date, status, total + currency |
| View order detail | ✅ | Customer info, billing & shipping addresses, line items (sku, name, qty, price), existing tracking |
| Add tracking number | ✅ | Auto-creates a shipment if none exists, then calls salesOrderShipmentAddTrack |
| View products (paginated) | ✅ | Product ID, SKU, name; price and stock not in list (Magento 1 limitation) |
| View product detail | ✅ | Via SKU: price, weight, status, short description |
| Update stock quantity | ✅ | By SKU via catalogInventoryStockItemUpdate; sets qty and marks in-stock |
| Test connection | ✅ | Calls login() — success confirms store URL, username, and API key are valid |
The username or API key is wrong, or the API user has not been assigned a Role. Go to System → Web Services → SOAP/XML-RPC Users, open the user, check the User Role tab, and confirm a role with sufficient permissions is assigned.
EcomCentral requires the PHP soap extension. Enable it in php.ini
by adding or uncommenting extension=soap, then restart the web server.
Confirm with php -m | grep -i soap.
The WSDL endpoint is slow to load on some servers. Try opening
https://your-shop.com/api/v2_soap/?wsdl directly in a browser — it should return
an XML document within a few seconds. If it times out, check the store's server load or increase
PHP's default_socket_timeout. Some stores require
/index.php/api/v2_soap/?wsdl when mod_rewrite is disabled.
Magento 1 requires an order to be in a shippable state (typically processing) before a shipment can be created. Orders with status complete, closed, or canceled may not allow new shipments. Check the order status in the Magento back-end.
Enter only the store root URL — for example https://shop.example.com. Do
not append /api or /api/v2_soap/?wsdl;
EcomCentral adds that path automatically. A trailing slash is harmless and will be stripped.
https://your-shop.com/api/v2_soap/?wsdl
in a browser. An XML WSDL document means the API is accessible. A blank page or 404 means
the API URL path may differ — try prepending /index.php.