Appearance
Third party integrations
Third party integrations are ready-made connections to specific platforms. You do not build anything: you enter the credentials of the other system, choose a few options, and Boxture takes care of importing orders, exporting stock levels and reporting shipments. This page gives an overview of all integration types, explains the screens they share, and describes Le New Black, which has no page of its own.
Integration types
| Type (as shown in the create menu) | Platform | Orders in | Products in | Stock out | Shipment feedback | Details |
|---|---|---|---|---|---|---|
| ShopifyApp Shop | Shopify, through the Boxture app | Every 5 min (polling) | Every 10 min and webhooks | Every 10 min | Fulfillment with tracking | Shopify |
| Shopify Shop | Shopify, through a custom app | Fulfillment requests | Setup Products and webhooks | On request by Shopify, and Sync Inventory | Fulfillment with tracking | Shopify |
| Woocommerce | WooCommerce web shop | Webhooks | Webhooks and scheduled import | Every 30 min, full nightly | Order status and tracking | WooCommerce |
| Netsuite | Oracle NetSuite ERP | Every 15 min (sales, purchase, transfer, vendor return) | Every 6 hours | Inventory adjustments every 6 hours, full nightly | Item fulfillments, item receipts, vendor bills | NetSuite |
| Le New Black | Le New Black wholesale platform | Every 15 min | No | Every 10 min, full nightly | No | below |
For connections to other systems (EDI, SFTP file exchange, custom webhooks), use integration flows or the REST API.
Who can manage integrations
The Admin › Integration › Third party screens are only available to users with the Admin role. You see the integrations of the account you are working in and of the accounts below it. Integrations cannot be deleted from the user interface; to stop one, remove or invalidate its credentials, or switch off its webhooks and processes.
The integrations list
Admin › Integration › Third party shows Third Party Integrations, newest first:
| Column | Meaning |
|---|---|
| Name | The name you gave the integration |
| Integration type | The type, for example woocommerce or shopify_app_shop |
| Integration account | The account ID in the other system, where applicable (NetSuite) |
| Endpoint | The address of the other system |
| Account | The Boxture account the integration belongs to (only shown when the account has sub-accounts; can be filtered) |
| Created at | When the integration was created |
| Last order at | When the integration last brought in an order |
| Connection status | The traffic light, see below |
Click a row to open the integration. Use the create menu in the sidebar to add one.
The integration screen
The card is titled with the integration type and name. The Basic tab holds the fields every type shares, plus the type's own fields:
| Field | Meaning |
|---|---|
| Name | For your own reference. |
| Endpoint | The address of the other system. Required. |
| Consumer key, Consumer secret | The API credentials of the other system (not used by every type). |
| User | The Boxture user the integration works as. It determines the account the orders are created for, which locations can be used, and it is recorded as the creator of imported orders. |
| Metadata | Optional YAML with type-specific options, described on each type's page. |
Save with Submit, or Continue to save and stay on the screen. Some types have extra tabs (webhooks, URLs, location mappings) or menu actions (Setup Products, Sync Inventory); these are described on the type's page.
How integrations work together with Boxture
Channels
Each integration places its orders on its own sales channel: "Shopify", "WooCommerce", "NetSuite" or "Le New Black". Use these channels to:
- give integration orders their own default shipping method, business model or delivery terms (see Shipping settings);
- give products a different SKU for one platform with a product alias on that channel; the integrations use these aliases when matching products;
- report only part of the stock to a platform with the inventory reporting percentage.
See Channels.
Product matching
Integrations never guess. A line on an incoming order must match a Boxture product, by the link Boxture stored earlier, by the product number, or by a product alias on the integration's channel (the exact rules differ per type). What happens to an order with an unknown product also differs:
| Type | Unknown product |
|---|---|
| Shopify (both) | The fulfillment request is rejected in Shopify with a message |
| WooCommerce | The line is left out; the order is skipped if no lines remain |
| NetSuite | The order is created and put on hold ("invalid order details") |
| Le New Black | The whole order is skipped |
External IDs
For every record exchanged, Boxture stores the ID it has in the other system: the order, its lines, the product or variant, and the location. These links prevent an order from being imported twice and make sure updates (tracking numbers, fulfillments, stock) go to the right record in the other system.
Invalid orders
All integrations save an order with invalid details, such as an incomplete address, and put it on hold with the reason "invalid order details" so it cannot be overlooked. Correct the order and release the hold. See Holds.
Inventory reporting percentage
Sometimes a customer does not want to offer all of its stock on a sales channel, for example to keep a safety stock for wholesale customers or to avoid overselling while stock levels are synchronised. The setting Inventory › Reporting percent ("Percentage of available inventory to report in API") controls which share of the available inventory is reported.
- The default is 100: the full available quantity is reported.
- The setting can be made specific per channel, location and product, so you can report 80% to Shopify and 100% elsewhere, or 50% of one scarce product.
- Boxture applies the percentage per inventory row and rounds down: 75% of 10 available is reported as 7.
- For kits, the percentage is applied to the kit's own inventory and to the inventory of its components.
The percentage is used by:
| Where | Channel used |
|---|---|
| Shopify (both types) | "Shopify" |
| Le New Black | "Le New Black" |
REST API GET /inventories with channel_id | The channel you pass (see Inventory) |
WooCommerce and NetSuite always receive the full available quantity.
Connection status (traffic light)
The Connection status column on the integrations list shows at a glance whether an integration is healthy. Boxture counts the errors recorded for the integration in the last 24 hours (the same errors you find under Exceptions):
| Light | When |
|---|---|
| Red | At least the red threshold (default 15), and at least 5 |
| Orange | At least the orange threshold (default 5) |
| Green | Fewer errors |
The thresholds are the settings Traffic light › Orange and Red. They can be set per Traffic Light Models value, which is the integration type (for example woocommerce) or Vorto (for flows), so a busy integration can have higher thresholds than a quiet one.
TIP
Combine the traffic light with Last order at. A green light with no new orders for a day usually means orders are not reaching Boxture at all, for example because a webhook was switched off on the other side.
Le New Black
Le New Black is a B2B wholesale ordering platform used by fashion and lifestyle brands. The integration imports confirmed wholesale orders into Boxture and keeps the stock levels in Le New Black up to date.
What is synchronised
| Data | Direction | When |
|---|---|---|
| Orders | Le New Black → Boxture | Every 15 minutes |
| Stock levels | Boxture → Le New Black | Every 10 minutes for products whose inventory changed, and all products daily at 01:00 |
Products and shipment details are not synchronised.
Setting up
Go to Admin › Integration › Third party and choose Le New Black in the create menu.
Fill in the Basic tab:
Field What to enter Name A name to recognise the connection by. Endpoint The base address of the Le New Black API. Consumer key, Consumer secret The API client ID and secret from Le New Black. User The Boxture user the integration works as. Sales order search YAML with the query parameters used to fetch orders, see below. Metadata Optional YAML. Save. Boxture requests an access token from Le New Black with the key and secret, stores it, and renews it automatically shortly before it expires.
The Sales order search contains the query parameters sent to Le New Black when fetching orders, as YAML. It may contain Liquid: the variable last_order_at holds the date of the previous fetch, so you can ask Le New Black for recent orders only. Which parameters Le New Black accepts is defined by its API; ask Le New Black which filters to use.
Orders
Every 15 minutes Boxture fetches the orders matching the search, page by page, and imports the orders with status confirmed that it has not imported before.
| Boxture | Taken from Le New Black |
|---|---|
| Order type and channel | Sales order on the channel "Le New Black" |
| Customer reference number | The Le New Black order reference |
| Notes | The order comment |
| Delivery terms | The delivery incoterm |
| Delivery and billing contacts | The delivery and billing address, with the contact name split into first and last name, and the VAT number |
| Products | Matched by SKU against the product number or a product alias on the "Le New Black" channel |
No customer record or shipping method is set from Le New Black; the default shipping method for the channel applies (see Shipping › Default shipping method). Valid orders are confirmed; orders with invalid details are put on hold.
WARNING
If any line of an order has no SKU or an unknown SKU, the whole order is skipped. Make sure every SKU used in Le New Black exists in Boxture as product number or Le New Black alias.
Last order at on the integrations list shows when the most recent fetch started, not when the last order was placed.
Stock levels
Boxture sends each product's SKU (the Le New Black alias if there is one, otherwise the product number) with its available quantity as "in stock". The inventory reporting percentage for the channel "Le New Black" is applied. When Le New Black limits the number of requests, Boxture waits and tries again.