Overview
Introduction
The BladePRO Public API allows fulfilment customers to view and create orders, products and purchase orders. We have developed the API to be powerful, but simple to integrate with. It is available over HTTPS using REST architecture to accept and return data in JSON format, making it compatible with most scripting languages.
Getting Help
For help or assistance with the Public API please contact technical support team at techops@i-fulfilment.co.uk providing as much detail about your issue as possible.
Where applicable please include:
- The full endpoint address you are trying to access
- Any error messages you are receiving
- The payload you are sending with the request.
- The date & time of your request
- The username you are making the request with
- The request_reference value ( if returned inside the response metadata )
Environments
There are two environments that developers can use when using the BladePRO Public API: Production or Sandbox. The Sandbox environment uses anonymised live data sampled from the production environment for each organisation to provide developers a realistic dataset to test with. No personal or sensitive data is kept within this data. This dataset is refresh every Sunday and any data created on the Sandbox during the week will be reset.
Along with an API access you can also request a regular user account for the BladePRO web portal. This will allow you to see the product and order data you are dealing and can often be helpful when debugging an issue.
Sandbox Details
- Public API URL: https://public-api-sandbox.staging.bladepro.co.uk
- BladePRO Web Portal: https://sandbox.staging.bladepro.co.uk
- Data Refresh: Every Sunday
Production Details
- Public API URL: https://public-api.bladepro.io
- BladePRO Web Portal: https://blade.i-fulfilment.co.uk
REST
The API uses REST architecture over HTTPS. To request, modify, create, or delete data you must select the appropriate HTTP method, shown below.
| Method | Action | Description |
|---|---|---|
| GET | Read | Retrieve a list of records, or a single record |
| POST | Create | Add a new record |
| PUT | Update | Update an existing record |
| DELETE | Delete | Remove a record |
Rate Limits
The BladePRO API uses a leaky bucket algorithm to limit the number of API calls per user in a given time period. A full bucket contains 500 possible connections, and each API endpoint called will deduct one connection from the bucket. An additional five connections will be added to the bucket every minute until it reaches the maximum.
If your bucket becomes empty, API calls will be rejected until more connections are added, i.e. you will be limited to five calls per minute.
Error Codes
The BladePRO API uses the following error codes:
| Error Code | Name | Meaning |
|---|---|---|
| 400 | Bad Request | Your request is incorrectly formatted |
| 401 | Unauthorized | Your API key is wrong |
| 403 | Forbidden | You do not have access to the specified endpoint |
| 404 | Not Found | The specified endpoint could not be found |
| 500 | Internal Server Error | There is a problem with the API, please try again later |
Scopes
The BladePRO API uses the following permission scopes:
| Module | Scope | Description |
|---|---|---|
| Orders | APP::ORDERS::READ | View READ ONLY order records |
| Orders | APP::ORDERS::MANAGE | Read, create, update and delete order records |
| Products | APP::PRODUCTS::READ | View READ ONLY product records |
| Products | APP:PRODUCTS::MANAGE | Read, create, update and delete product records |
| Purchase Orders | APP::PURCHASE-ORDERS::READ | View READ ONLY purchase order records |
| Purchase Orders | APP::PURCHASE-ORDERS::MANAGE | Read, create, update and delete purchase order records |
| Returns | APP::RETURNS::READ | View READ ONLY return records |
| Returns | APP::RETURNS::MANAGE | Read, create, update and delete return records |
| Vendors | APP::VENDORS-ORDERS::READ | View READ ONLY vendor records |
| Vendors | APP::VENDORS-ORDERS::MANAGE | Read, create, update and delete vendor records |
Structure
BladePRO’s Public API works using pre-defined structures for accepting input and its response format. For each endpoint there will be descriptions for the following elements, when appropriate:
-
Method and URL: Each endpoint is defined by its HTTP method and URL. The URL will never have query string requirements, the base part is always enough to use the endpoint. Segments of the URL with a leading colon character (
:) are parameters. These parameters are always syntax checked using regular expressions. -
Description: What the endpoint does.
-
Parameter Regular Expressions: A list of parameters and their regular expressions that need to match the value in order to successfully use the endpoint.
-
Request Body: The type of input the endpoint requires in the request body, JSON encoded. Some endpoints perform actions that do not require further data, in these cases this section will state that the request body will be ignored.
-
Types for the Request Body: A list of types and their definitions, describing the endpoint’s validation rules.
Please note that the request types are local to the endpoint. -
Return Type: The type of output the endpoint returns. In most cases, this is well defined and this section will contain a link to the type’s definition. These can be found in the Return Types section.
Please note that the return types are global to the API. -
Filters: Lists retrieved can usually be filtered. Each filter works on a field on the return type, with one or more allowed operators. To filter by the field
created, include the query parameter?created[MORE_THAN]=2020-01-15in the URL. This section includes a table of fields, and their accepted operators. -
Sortings: Lists retrieved can usually be sorted. This section will contain the fields the results can be sorted by. To sort by the field
createdascending, include the URL parameter?sorting=created. For descending sorting include?sorting=-created. -
Available expands: The API can return related data based on what is allowed for the particular type and the endpoint being used. Include the URL parameter
?expand=…. In case of nested objects, use the dot (.) character to access inside the structure. Multiple relationships can be expanded by separating them with a comma (,).
For example, if the main type is a goodsout, and you want to see the warehouse, the warehouse country, and the lines on the goodsout, adding?expand=warehouse.country,linesis the way to do that. Notice that you do not need to includewarehouseseparately. -
Scopes: This section defines which permissions (scopes) a user will be required to have in order to access the endpoint.
Types for the Request Body
If present, this section will have one or more subsections. The first will be the one being used as the main type for the endpoint, and will be marked with the text "(root level)". The rest will follow in alphabetical order.
There will be a table in each of these sections, describing the
type and listing the fields with description, allowed types and
restrictions for validating the values. Fields are optional
unless the required restriction is present. Also, fields can
accept the value null, unless not null is present.
Possible types include:
integer: An integer, appearing as a number. Can not be a string containing an integer.number: Any number, appearing as a number. Can not be a string containing a number.string: A string of characters.date: ISO formatted date in a string.any: Any value.object: Any object.boolean:trueorfalse.array<type>: An array made of type elements.map<string, type>: A key-value map made of string keys and type elements.enum(value list): An enum, with the allowed values provided inside the brackets. Only the values’ string representations are valid, referencing them by indices is not.Type: An object of type Type. Type will hold the name of the object and its definition will be included in the same section and will be clickable. These types can also appear in arrays and maps.
For most fields, there will be requirements for which values are valid.
For fields with multiple allowed types, some restrictions might only
apply to some types. In this case, the requirement text will say
“if type is type, then …". Possible requirements include:
required: The field must be present in the request body.not null: The field cannot have the valuenull.optionally required: The field is required in some cases. The description will always specify these cases.min count: For arrays, the number of items that are required to appear. By default, array types are not required to have items.min length: Minimum number of characters for strings.max length: Maximum number of characters for strings.match: Regular expression validation for strings.min: Minimum value for numbers.max: Minimum value for numbers.
Endpoint Filters
The filters section contain tables that describe which fields are filterable, what operators are allowed, and where the possible values can be retrieved from. It is possible to not filter at all, to filter by one or more different fields, and to filter each field by multiple operators, but it is not possible to filter by the same field and operator by multiple values.
This is valid: ?reference[NOT_EQUALS]=asdf&reference[LIKE]=asd, but
this is invalid: ?reference[NOT_EQUALS]=asdf&reference[NOT_EQUALS]=zxcv
as it contains two NOT_EQUALS operators.
For operators that allow multiple values, use a comma separated list:
?status[IN]=draft,active. Date types will require ISO strings for values.
The following operators are available:
| Operator | Availability |
|---|---|
| EQUALS | strings, numbers, enums, booleans |
| NOT_EQUALS | strings, numbers, enums, booleans |
| IN | strings, numbers, enums |
| NOT_IN | strings, numbers, enums |
| LESS_THAN | strings, numbers, dates |
| MORE_THAN | strings, numbers, dates |
| LIKE | strings |
| NOT_LIKE | strings |
| ON_DATE | dates |
Some fields reference library data, such as IDs for channels, warehouses etc. For such fields the Value List URL column of the filter specification will define the URL for the available values.
Authentication
<?php
// For this example we are using the popular library Guzzle.
// Details on how to install and use Guzzle can be found at:
// http://docs.guzzlephp.org/en/latest/
// Load up Guzzle to perform the http request
$client = new GuzzleHttp\Client();
// Request an access token
$tokenRequest = $client->request('POST', 'https://public-api.bladepro.io/v1/auth/login', [
'body' => json_encode([
'username' => 'geminize-direct',
'password' => 'API_SECRET_KEY'
]),
]);
// Get the access token
$auth = json_decode($tokenRequest->getBody(), true);
// Did we receive a token?
if(empty($auth["data"]["token"])) {
throw new \Exception("Failed to get an access token");
}
require 'rest-client'
require 'json'
# Request an access token
auth = RestClient.post 'https://public-api.bladepro.io/v1/auth/login', {
'username' => 'geminize-direct',
'password' => 'API_SECRET_KEY'
}.to_json, {
content_type: :json,
accept: :json
}
auth = JSON.parse(auth)
# Did we receive a token?
if ( !auth['data']['token'] )
raise RuntimeError, "Failed to get an access token"
end// Require the node HTTP module
var request = require('request');
// Request an access token
request({method: 'POST', json:true, uri: 'https://public-api.bladepro.io/v1/auth/login', body: {username: 'geminize-direct', password: 'API_SECRET_KEY'}}, function (error, response, body) {
// Get the access token
var auth = body;
// Did we receive a token?
if ( !auth || !auth.data || !auth.data.token ) {
throw "Failed to get an access token";
}
});
# Request an access token
curl -XPOST -H "Content-type: application/json" -d '{"username":"geminize-direct","password":"API_SECRET_KEY"}' 'https://public-api.bladepro.io/v1/auth/login'Make sure to replace
API_SECRET_KEYwith your API key. The endpoint returns a JSON user object, structured like this:
{
"meta": {
"request_reference": "1vd88ym25-c893v8t"
},
"data": {
"session_token": "9nYQgN1Z7M8Fj15CjXDmSDAC4SIPItcD5I0enaZ5bVLHUKvn6sGfstYadhSpnBGurEBZ3L4es9ZWIrlFBviBBBxXrah1FcnHS43Q",
"expiry": "2020-01-15T17:09:15.000Z"
}
}Before accessing the API, you will need a personal API key from i-Fulfilment. This key is used to identify yourself to the API and receive an access token, required to access any of the API endpoints. These tokens are temporary and will auto expire after 30 minutes of no use.
To generate an authentication token, perform an authentication request, sending your personal and private keys. The API will generate an authentication token which is valid for one hour.
You must send this token in the header of any subsequent requests.
There is no limit to the number of authentication requests you make – you can perform one authentication request, store the token and use it until it expires, or perform a separate authentication request to generate a new token before each separate API call.
Login
POST /v1/auth/login
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/auth/login", [
"body" => json_encode([
"username" => "my-login",
"password" => "my-password",
]),
"headers" => [
"Content-Type" => "application/json",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/auth/login', {
username: "my-login",
password: "my-password",
}, {
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/auth/login",
body: {
"username": "my-login",
"password": "my-password"
},
headers: {
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/auth/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "my-login",
"password": "my-password"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"session_token": "W4B8rXsW1qAFHxddCCAP4IEDGGlgxxVrHKhlDpO7DUDEnN0qWocYi6skJK8dwvCo3zjhA7kzR91pkvyzBCXQ21bWbfUZA22RYtXS",
"expiry": "2025-10-31T15:24:10.000Z"
}
}
Log into BladePRO.
Request Body
Return Type
Types for the Request Body
Login (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
username |
The username. | string |
requirednot nullmin length is 2 |
password |
The password. | string |
requirednot nullmin length is 3 |
Scopes
This endpoint is available to all users.
Revoke Token
DELETE /v1/auth/revoke-token
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/auth/revoke-token", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/auth/revoke-token', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/auth/revoke-token",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/auth/revoke-token' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Revoke session token.
Return Type
Empty.
Scopes
This endpoint is available to all users.
GDPR
Dealing with GDPR requests.
GDPR Request
POST /v1/gdpr
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/gdpr", [
"body" => json_encode([
"message" => "Customer John Smith (#23) has requested a redaction.",
"details" => [
"name" => "John Smith",
"id" => "23",
"email" => "john.smith@nowhere.com",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/gdpr', {
message: "Customer John Smith (#23) has requested a redaction.",
details: {
name: "John Smith",
id: "23",
email: "john.smith@nowhere.com",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/gdpr",
body: {
"message": "Customer John Smith (#23) has requested a redaction.",
"details": {
"name": "John Smith",
"id": "23",
"email": "john.smith@nowhere.com"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/gdpr' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Customer John Smith (#23) has requested a redaction.",
"details": {
"name": "John Smith",
"id": "23",
"email": "john.smith@nowhere.com"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 34
}
}
Submit a GDPR request.
Request Body
Return Type
Types for the Request Body
GdprRequest (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
Details regarding the request. | string |
requirednot null |
details |
Specific request details in a Key/Value object. | object |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Orders
Working with orders.
List Goodsouts
GET /v1/orders/despatched
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/despatched?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/despatched?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/despatched?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/despatched?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1049789,
"status": "despatched",
"bid": "1049789-1049789",
"despatch_date": null,
"courier": {
"name": "Royal Mail",
"code": "RM",
"service": {
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"tracked": false,
"signed": false
},
"tracking": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
},
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"order": {
"id": 1234567,
"reference": "CustomerReference #154254",
"status": "open",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
}
]
}
List order goodsouts. Please note that all expands will be applied automatically.
Return Type
array<DespatchedOrders>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS |
|
| order.reference | IN |
|
| order.channel.short_code | IN, NOT_IN |
/v1/orders/channels |
| order.channel.id | IN, NOT_IN |
|
| despatch_date | LESS_THAN, ON_DATE, MORE_THAN |
|
| order.currency.code | IN, NOT_IN |
|
| attributes.name | IN, NOT_IN |
Sortings
Results can be sorted by the following keys: bid, despatch_date, order.channel.name, order.status, placed_date, status, warehouse.name.
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
courier |
CachedCourier |
A courier. |
courier.service |
CachedShippingService |
Holds data about a shipping service. |
courier.tracking |
array<CachedCourierTracking> |
Tracking details. |
order |
CachedOrder |
An order. |
order.currency |
SummarisedCurrency |
A currency. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
List Goodsouts
GET /v1/orders/goodsouts
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1049789,
"bid": "1234567-1049789",
"creator": "Support Team",
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"despatch_on_date": null,
"warehouse": "CHR",
"courier": {
"name": "Royal Mail",
"code": "RM",
"service": {
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"tracked": false,
"signed": false
},
"tracking": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
},
"tags": [
{
"name": "Processed",
"shortcode": "processed",
"description": "Processed by a 3rd party system"
}
],
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": null,
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH234FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": null,
"telephone": null,
"secondary_telephone": null,
"contact": {
"name": "Support Team",
"group": "I-Fulfilment"
},
"country": {
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"order": {
"id": 1234567,
"reference": "CustomerReference #154254",
"status": "open",
"channel": {
"id": 342,
"short_code": "DEMO",
"name": "Demo Channel"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"brand": {
"name": "Demo Brand"
}
},
"lines": {
"id": 3450345,
"product_variation_id": 1,
"sku": "DEMO-SKU-01",
"name": "Example product",
"quantity": 1
}
}
]
}
List order goodsouts. Please note that all expands will be applied automatically.
Return Type
array<CachedGoodsout>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS |
|
| status | IN, NOT_IN |
|
| order.reference | IN |
|
| order.channel.short_code | IN, NOT_IN |
/v1/orders/channels |
| order.channel.id | IN, NOT_IN |
|
| shipping_address.country.iso_2 | IN, NOT_IN |
|
| date_placed | LESS_THAN, ON_DATE, MORE_THAN |
|
| despatch_date | LESS_THAN, ON_DATE, MORE_THAN |
|
| order.currency.code | IN, NOT_IN |
|
| tags.shortcode | IN, NOT_IN |
|
| attributes.name | IN, NOT_IN |
Sortings
Results can be sorted by the following keys: bid, despatch_date, order.channel.name, order.status, placed_date, status, warehouse.name.
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
courier |
CachedCourier |
A courier. |
courier.service |
CachedShippingService |
Holds data about a shipping service. |
courier.tracking |
array<CachedCourierTracking> |
Tracking details. |
lines |
array<CachedGoodsoutLine> |
An order goodsout line summary. |
order |
CachedOrder |
An order. |
order.brand |
CachedBrand |
A brand. |
order.channel |
CachedOrderChannel |
An order channel. |
order.currency |
SummarisedCurrency |
A currency. |
shipping_address |
CachedAddress |
An address. |
shipping_address.contact |
CachedAddressContact |
A BladePRO contact. |
shipping_address.country |
SummarisedCountry |
A country. |
tags |
array<SummarisedTag> |
A tag. |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Create Order
POST /v1/orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders?expand=*", [
"body" => json_encode([
"channel" => "DEMO",
"reference" => "#154254",
"currency" => "GBP",
"goodsouts" => [
[
"warehouse" => "CHR",
"date_placed" => "2020-03-31",
"shipping_address" => [
"title" => "Mr",
"first_name" => "Support",
"last_name" => "Team",
"company" => "ACME LTD",
"address_one" => "Unit 4",
"address_two" => "Radar Way",
"address_three" => "Ind Est",
"town" => "Christchurch",
"country_id" => "GB",
"county" => "Dorset",
"postcode" => "BH23 4FL",
"email" => "support.team@i-fulfilment.co.uk",
"mobile" => "00000000000",
"telephone" => "00000000000",
"secondary_telephone" => "0000000000000",
"vat_number" => "GB999 9999 73",
],
"lines" => [
[
"variation" => [
"sku" => "GREEN-BALL",
"channel" => 1,
],
"net_unit_principal" => 12.55,
"principal_tax" => 12,
"discount" => 0,
"discount_type" => "value",
"quantity" => 4,
"expiry_date" => "2025-03-31",
"batch_code" => "ABC154254",
"packing_requirements" => [
"pack_together_reference" => "ABC1234",
],
],
],
"attributes" => [
[
"name" => "my-attribute",
"value" => "LoremIpsum",
],
],
"picking_instructions" => null,
"delivery_instructions" => "When not home put in shed.",
"gift_message" => null,
"shipping" => [
"customer_principal" => 0.99,
"shipping_code" => null,
"duty_paid" => true,
],
"bulk_options" => [
"requires_palletisation" => true,
"single_sku_cartons_only" => true,
"distribution_branch_id" => "BRANCH_01",
"department_number" => "DEP01",
"store_location_number" => "41440",
"distribution_centre" => "DC49004",
"purchase_order_reference" => "PO6548967-46531",
"carton_label" => [
"type_id" => 1,
"references" => [
"dc" => "ABC",
"store" => "ABC",
],
],
],
"tags" => [
"JIT",
"MyTag",
],
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders?expand=*', {
channel: "DEMO",
reference: "#154254",
currency: "GBP",
goodsouts: [
{
warehouse: "CHR",
date_placed: "2020-03-31",
shipping_address: {
title: "Mr",
first_name: "Support",
last_name: "Team",
company: "ACME LTD",
address_one: "Unit 4",
address_two: "Radar Way",
address_three: "Ind Est",
town: "Christchurch",
country_id: "GB",
county: "Dorset",
postcode: "BH23 4FL",
email: "support.team@i-fulfilment.co.uk",
mobile: "00000000000",
telephone: "00000000000",
secondary_telephone: "0000000000000",
vat_number: "GB999 9999 73",
},
lines: [
{
variation: {
sku: "GREEN-BALL",
channel: 1,
},
net_unit_principal: 12.55,
principal_tax: 12,
discount: 0,
discount_type: "value",
quantity: 4,
expiry_date: "2025-03-31",
batch_code: "ABC154254",
packing_requirements: {
pack_together_reference: "ABC1234",
},
},
],
attributes: [
{
name: "my-attribute",
value: "LoremIpsum",
},
],
picking_instructions: nil,
delivery_instructions: "When not home put in shed.",
gift_message: nil,
shipping: {
customer_principal: 0.99,
shipping_code: nil,
duty_paid: true,
},
bulk_options: {
requires_palletisation: true,
single_sku_cartons_only: true,
distribution_branch_id: "BRANCH_01",
department_number: "DEP01",
store_location_number: "41440",
distribution_centre: "DC49004",
purchase_order_reference: "PO6548967-46531",
carton_label: {
type_id: 1,
references: {
dc: "ABC",
store: "ABC",
},
},
},
tags: [
"JIT",
"MyTag",
],
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders?expand=*",
body: {
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP",
"goodsouts": [
{
"warehouse": "CHR",
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"expiry_date": "2025-03-31",
"batch_code": "ABC154254",
"packing_requirements": {
"pack_together_reference": "ABC1234"
}
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"picking_instructions": null,
"delivery_instructions": "When not home put in shed.",
"gift_message": null,
"shipping": {
"customer_principal": 0.99,
"shipping_code": null,
"duty_paid": false
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP",
"goodsouts": [
{
"warehouse": "CHR",
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"expiry_date": "2025-03-31",
"batch_code": "ABC154254",
"packing_requirements": {
"pack_together_reference": "ABC1234"
}
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"picking_instructions": null,
"delivery_instructions": "When not home put in shed.",
"gift_message": null,
"shipping": {
"customer_principal": 0.99,
"shipping_code": null,
"duty_paid": false
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"goodsouts": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipments": [
{
"shipping_service": [
{
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"courier_account": [
{
"name": "Royal Mail",
"courier": {
"name": "Royal Mail",
"code": "RM"
}
}
]
}
]
}
],
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active",
"variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
],
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU",
"region": {}
}
}
}
}
}
Creates an order.
Request Body
Return Type
Types for the Request Body
CreateOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
channel |
Channel’s unique short code or ID. | stringor integer |
requirednot nullif type is string, then min length is 3if type is integer, then min is 1 |
reference |
Order specific reference. | string |
requirednot nullmin length is 1 |
currency |
Currency ISO code. | string |
requirednot nullmin length is 3 |
goodsouts |
List of goodsouts to create on the order. | array<Goodsout> |
requirednot nullmin count is 1 |
Address
| Key | Description | Types | Restrictions |
|---|---|---|---|
title |
Title. | string |
not null |
first_name |
First name. | string |
requirednot null |
last_name |
Last name. | string |
requirednot null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
requirednot null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
requirednot null |
country_id |
Country ISO 2 or ISO 3 code. | string |
requirednot nullmin length is 2max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
requirednot null |
email |
Email. | string |
not null |
mobile |
Mobile number. | string |
not null |
telephone |
Landline number. | string |
not null |
secondary_telephone |
Secondary telephone number. | string |
not null |
vat_number |
VAT number. | string |
not null |
Attribute
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name of the attribute | string |
requirednot nullmin length is 1 |
value |
Value of the attribute | string |
requirednot null |
BulkOptions
| Key | Description | Types | Restrictions |
|---|---|---|---|
requires_palletisation |
Whether the goodsout needs palletisation. | boolean |
|
single_sku_cartons_only |
Are packed boxes only allowed to have a single SKU in them? | boolean |
|
distribution_branch_id |
Distribution branch ID. | string |
|
department_number |
Department number. | string |
|
store_location_number |
Store location number. | string |
|
distribution_centre |
Distribution centre. | string |
|
purchase_order_reference |
Purchase order reference. | string |
|
carton_label |
Carton label details. | CartonLabel |
CartonLabel
| Key | Description | Types | Restrictions |
|---|---|---|---|
type_id |
Carton label type’s ID. | integer |
requirednot nullmin is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
requirednot null |
CreateOrderGoodsoutLinePackingRequirements
| Key | Description | Types | Restrictions |
|---|---|---|---|
pack_together_reference |
The reference used to group items together that must be packed in the same box. | string |
Goodsout
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse |
Warehouse short code. | string |
requirednot nullmin length is 3 |
date_placed |
Customer placed date. | date |
requirednot null |
shipping_address |
Customer shipping address. | Address |
requirednot null |
lines |
The list of products. | array<Line> |
requirednot nullmin count is 1 |
attributes |
List of attributes. | array<Attribute> |
not null |
picking_instructions |
Picking instructions. | string |
not null |
despatch_instructions |
Despatch instructions. | string |
not null |
delivery_instructions |
Delivery instructions. | string |
not null |
gift_message |
Gift message. If presented, gift_message_template_shortcode is required. | string |
optionally requirednot null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally requirednot null |
shipping |
Shipping data. | Shipping |
not null |
bulk_options |
Options for bulk goodsouts. | BulkOptions |
|
tags |
List of tags to be applied to the goodsout. | array<string> |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
variation |
Product description | Variation |
requirednot null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
requirednot nullmin is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
requirednot nullmin is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not nullmin is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
requirednot nullmin is 1 |
expiry_date |
The required expiry date that must be picked. | date |
not null |
batch_code |
The required batch code that must be picked. | string |
not nullmin length is 1 |
packing_requirements |
Packing Requirements | CreateOrderGoodsoutLinePackingRequirements |
Shipping
| Key | Description | Types | Restrictions |
|---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
requirednot nullmin is 0 |
shipping_code |
Shipping code. | string |
not nullmin length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
channel |
The product channel’s ID. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
goodsouts |
array<OrderGoodsouts> |
Customer order shipments. |
goodsouts.attributes |
array<CachedAttribute> |
An attribute. |
goodsouts.lines |
array<OrderGoodsoutLines> |
An order for a product. |
goodsouts.shipments |
array<Shipments> |
Data related to a shipment. |
goodsouts.shipments.shipping_service |
ShippingServices |
Customer order shipments. |
goodsouts.shipments.shipping_service.courier_account |
ShippingCourierAccounts |
Shipping courier account data. |
goodsouts.shipments.shipping_service.courier_account.courier |
CachedNameAndCode |
Holds a name and a code field. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Create Goodsout
POST /v1/orders/goodsouts
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*", [
"body" => json_encode([
"warehouse" => "CHR",
"order" => [
"channel" => "DEMO",
"reference" => "#154254",
"currency" => "GBP",
],
"date_placed" => "2020-03-31",
"shipping_address" => [
"title" => "Mr",
"first_name" => "Support",
"last_name" => "Team",
"company" => "ACME LTD",
"address_one" => "Unit 4",
"address_two" => "Radar Way",
"address_three" => "Ind Est",
"town" => "Christchurch",
"country_id" => "GB",
"county" => "Dorset",
"postcode" => "BH23 4FL",
"email" => "support.team@i-fulfilment.co.uk",
"mobile" => "00000000000",
"telephone" => "00000000000",
"secondary_telephone" => "0000000000000",
"vat_number" => "GB999 9999 73",
"location_id" => "00000000",
],
"lines" => [
[
"variation" => [
"sku" => "GREEN-BALL",
"channel" => 1,
],
"net_unit_principal" => 12.55,
"principal_tax" => 12,
"discount" => 0,
"discount_type" => "value",
"quantity" => 4,
"packing_requirements" => [
"pack_together_reference" => "ABC1234",
],
"expiry_date" => "2025-03-31",
"batch_code" => "ABC154254",
],
],
"attributes" => [
[
"name" => "my-attribute",
"value" => "LoremIpsum",
],
],
"delivery_instructions" => "When not home put in shed.",
"shipping" => [
"customer_principal" => 0.99,
"duty_paid" => true,
],
"import_options" => [
"fraud" => true,
],
"bulk_options" => [
"requires_palletisation" => true,
"single_sku_cartons_only" => true,
"distribution_branch_id" => "BRANCH_01",
"department_number" => "DEP01",
"store_location_number" => "41440",
"distribution_centre" => "DC49004",
"purchase_order_reference" => "PO6548967-46531",
"carton_label" => [
"type_id" => 1,
"references" => [
"dc" => "ABC",
"store" => "ABC",
],
],
],
"tags" => [
"JIT",
"MyTag",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*', {
warehouse: "CHR",
order: {
channel: "DEMO",
reference: "#154254",
currency: "GBP",
},
date_placed: "2020-03-31",
shipping_address: {
title: "Mr",
first_name: "Support",
last_name: "Team",
company: "ACME LTD",
address_one: "Unit 4",
address_two: "Radar Way",
address_three: "Ind Est",
town: "Christchurch",
country_id: "GB",
county: "Dorset",
postcode: "BH23 4FL",
email: "support.team@i-fulfilment.co.uk",
mobile: "00000000000",
telephone: "00000000000",
secondary_telephone: "0000000000000",
vat_number: "GB999 9999 73",
location_id: "00000000",
},
lines: [
{
variation: {
sku: "GREEN-BALL",
channel: 1,
},
net_unit_principal: 12.55,
principal_tax: 12,
discount: 0,
discount_type: "value",
quantity: 4,
packing_requirements: {
pack_together_reference: "ABC1234",
},
expiry_date: "2025-03-31",
batch_code: "ABC154254",
},
],
attributes: [
{
name: "my-attribute",
value: "LoremIpsum",
},
],
delivery_instructions: "When not home put in shed.",
shipping: {
customer_principal: 0.99,
duty_paid: true,
},
import_options: {
fraud: true,
},
bulk_options: {
requires_palletisation: true,
single_sku_cartons_only: true,
distribution_branch_id: "BRANCH_01",
department_number: "DEP01",
store_location_number: "41440",
distribution_centre: "DC49004",
purchase_order_reference: "PO6548967-46531",
carton_label: {
type_id: 1,
references: {
dc: "ABC",
store: "ABC",
},
},
},
tags: [
"JIT",
"MyTag",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*",
body: {
"warehouse": "CHR",
"order": {
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP"
},
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"location_id": "00000000"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"packing_requirements": {
"pack_together_reference": "ABC1234"
},
"expiry_date": "2025-03-31",
"batch_code": "ABC154254"
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"delivery_instructions": "When not home put in shed.",
"shipping": {
"customer_principal": 0.99,
"duty_paid": false
},
"import_options": {
"fraud": true
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse": "CHR",
"order": {
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP"
},
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"location_id": "00000000"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"packing_requirements": {
"pack_together_reference": "ABC1234"
},
"expiry_date": "2025-03-31",
"batch_code": "ABC154254"
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"delivery_instructions": "When not home put in shed.",
"shipping": {
"customer_principal": 0.99,
"duty_paid": false
},
"import_options": {
"fraud": true
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipments": [
{
"shipping_service": [
{
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"courier_account": [
{
"name": "Royal Mail",
"courier": {
"name": "Royal Mail",
"code": "RM"
}
}
]
}
]
}
],
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active",
"variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
],
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU",
"region": {}
}
}
}
}
Creates an order goodsout.
Request Body
Return Type
Types for the Request Body
CreateGoodsout (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse |
Warehouse short code. | string |
requirednot nullmin length is 3 |
order |
Order. | Order |
requirednot null |
date_placed |
Customer placed date. | date |
requirednot null |
shipping_address |
Customer shipping address. | Address |
requirednot null |
lines |
The list of products. | array<Line> |
requirednot nullmin count is 1 |
attributes |
List of attributes. | array<Attribute> |
not null |
picking_instructions |
Picking instructions. | string |
not null |
despatch_instructions |
Despatch instructions. | string |
not null |
delivery_instructions |
Delivery instructions. | string |
not null |
gift_message |
Gift message. If presented, gift_message_template_shortcode is required. | string |
optionally requirednot null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally requirednot null |
shipping |
Shipping data. | Shipping |
not null |
import_options |
Import options. | ImportOptions |
|
metadata |
Goodsout metadata. | array<OrderResourceMetadata> |
|
bulk_options |
Options for bulk goodsouts. | BulkOptions |
|
tags |
List of tags to be applied to the goodsout. | array<string> |
Address
| Key | Description | Types | Restrictions |
|---|---|---|---|
title |
Title. | string |
|
first_name |
First name. | string |
|
last_name |
Last name. | string |
|
company |
Company name. | string |
|
address_one |
First line of address. | string |
|
address_two |
Second line of address. | string |
|
address_three |
Third line of address. | string |
|
town |
Town. | string |
|
country_id |
Country ISO 2 or ISO 3 code. | string |
min length is 0max length is 3 |
county |
County. | string |
|
postcode |
Postcode. | string |
|
email |
Email. | string |
|
mobile |
Mobile number. | string |
|
telephone |
Landline number. | string |
|
secondary_telephone |
Secondary telephone number. | string |
|
vat_number |
VAT number. | string |
|
location_id |
Location ID. | string |
Attribute
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name of the attribute | string |
requirednot nullmin length is 1 |
value |
Value of the attribute | string |
requirednot null |
BulkOptions
| Key | Description | Types | Restrictions |
|---|---|---|---|
requires_palletisation |
Whether the goodsout needs palletisation. | boolean |
|
single_sku_cartons_only |
Are packed boxes only allowed to have a single SKU in them? | boolean |
|
distribution_branch_id |
Distribution branch ID. | string |
|
department_number |
Department number. | string |
|
store_location_number |
Store location number. | string |
|
distribution_centre |
Distribution centre. | string |
|
purchase_order_reference |
Purchase order reference. | string |
|
carton_label |
Carton label details. | CartonLabel |
CartonLabel
| Key | Description | Types | Restrictions |
|---|---|---|---|
type_id |
Carton label type’s ID. | integer |
requirednot nullmin is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
requirednot null |
CreateOrderGoodsoutLinePackingRequirements
| Key | Description | Types | Restrictions |
|---|---|---|---|
pack_together_reference |
The reference used to group items together that must be packed in the same box. | string |
ImportOptions
| Key | Description | Types | Restrictions |
|---|---|---|---|
fraud |
If the order came in as a possible fraud order, set this to true. The order will be put on hold. | boolean |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
variation |
Product description | Variation |
requirednot null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
requirednot nullmin is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
requirednot nullmin is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not nullmin is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
requirednot nullmin is 1 |
packing_requirements |
Packing Requirements | CreateOrderGoodsoutLinePackingRequirements |
|
expiry_date |
The required expiry date that must be picked. | date |
not null |
batch_code |
The required batch code that must be picked. | string |
not nullmin length is 1 |
Order
| Key | Description | Types | Restrictions |
|---|---|---|---|
channel |
Channel’s unique short code or ID. | stringor integer |
requirednot nullif type is string, then min length is 3if type is integer, then min is 1 |
reference |
Order specific reference. | string |
requirednot nullmin length is 1 |
currency |
Currency ISO code. | string |
requirednot nullmin length is 3 |
OrderResourceMetadata
| Key | Description | Types | Restrictions |
|---|---|---|---|
key |
Metadata key. | string |
requirednot null |
value |
Metadata value. | string |
requirednot null |
Shipping
| Key | Description | Types | Restrictions |
|---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
requirednot nullmin is 0 |
shipping_code |
Shipping code. | string |
not nullmin length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
channel |
The product channel’s ID. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
lines |
array<OrderGoodsoutLines> |
An order for a product. |
lines.variation |
ProductVariations |
Marketplace listable products’ data. |
lines.variation.descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
lines.variation.descriptions.locale |
Locales |
Locale data. |
lines.variation.type |
ProductVariationTypes |
Product variation type data. |
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
shipments |
array<Shipments> |
Data related to a shipment. |
shipments.shipping_service |
ShippingServices |
Customer order shipments. |
shipments.shipping_service.courier_account |
ShippingCourierAccounts |
Shipping courier account data. |
shipments.shipping_service.courier_account.courier |
CachedNameAndCode |
Holds a name and a code field. |
shipping_address |
OrderGoodsoutAddresses |
Data related to an address. |
shipping_address.country |
Countries |
A country. |
shipping_address.country.region |
Regions |
Geographical region data. |
tags |
array<Tags> |
A tag. |
warehouse |
SummarisedWarehouse |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Bulk Import Orders
POST /v1/orders/goodsouts/from_file
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/from_file", [
"body" => json_encode([
"file" => ":: FILE CONTENTS ::",
"name" => "my_document.pdf",
"extension" => "pdf",
"mime" => "application/pdf",
"category" => "document",
"paper_size" => "A4",
"print_at_despatch" => 1,
"mapping_template_id" => 123,
"organisation_id" => 123,
"order_channel_id" => 123,
"brand_id" => 123,
"currency_id" => 123,
"fields" => "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
"slug" => "order",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/from_file', {
file: ":: FILE CONTENTS ::",
name: "my_document.pdf",
extension: "pdf",
mime: "application/pdf",
category: "document",
paper_size: "A4",
print_at_despatch: 1,
mapping_template_id: 123,
organisation_id: 123,
order_channel_id: 123,
brand_id: 123,
currency_id: 123,
fields: "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
slug: "order",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/from_file",
body: {
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1,
"mapping_template_id": 123,
"organisation_id": 123,
"order_channel_id": 123,
"brand_id": 123,
"currency_id": 123,
"fields": "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
"slug": "order"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/from_file' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1,
"mapping_template_id": 123,
"organisation_id": 123,
"order_channel_id": 123,
"brand_id": 123,
"currency_id": 123,
"fields": "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
"slug": "order"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Uploads a file to be imported.
Request Body
Return Type
Types for the Request Body
BulkImportOrders (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
file |
The file contents Base64 encoded. | string |
requirednot nullmin length is 1 |
name |
The file name. | string |
requirednot nullmin length is 1 |
extension |
The file extension. | string |
requirednot nullmin length is 1 |
mime |
The file mime. | string |
requirednot nullmin length is 1 |
category |
The document category. | enum(document) |
requirednot null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not nullmin is 0 |
mapping_template_id |
The ID for the mapping template. | integer |
requirednot nullmin is 1 |
organisation_id |
The ID for the organisation. | integer |
requirednot nullmin is 1 |
order_channel_id |
The ID for the order channel. | integer |
requirednot nullmin is 1 |
brand_id |
The ID for the brand. | integer |
requirednot nullmin is 1 |
currency_id |
The ID for the currency. | integer |
requirednot nullmin is 1 |
fields |
The array of fields of the file. | string |
requirednot null |
slug |
The slug. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
View Goodsout
GET /v1/orders/goodsouts/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipments": [
{
"shipping_service": [
{
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"courier_account": [
{
"name": "Royal Mail",
"courier": {
"name": "Royal Mail",
"code": "RM"
}
}
]
}
]
}
],
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active",
"variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
],
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU",
"region": {}
}
}
}
}
Retrieves a single goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
lines |
array<OrderGoodsoutLines> |
An order for a product. |
lines.items |
array<OrderGoodsoutLineItems> |
An item inside a goodsout line. |
lines.items.batch |
ProductComponentBatches |
Description of a batch. |
lines.items.component |
ProductComponents |
Product component. |
lines.items.despatched_stocks |
array<OrderGoodsoutLineItemDespatchedStocks> |
Stock despatched for an specific line item. |
lines.items.despatched_stocks.batch |
ProductComponentBatches |
Description of a batch. |
lines.principal_tax |
OrganisationTaxes |
Organisation tax data. |
lines.variation |
ProductVariations |
Marketplace listable products’ data. |
lines.variation.descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
lines.variation.descriptions.locale |
Locales |
Locale data. |
lines.variation.type |
ProductVariationTypes |
Product variation type data. |
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
shipments |
array<Shipments> |
Data related to a shipment. |
shipments.shipping_service |
ShippingServices |
Customer order shipments. |
shipments.shipping_service.courier_account |
ShippingCourierAccounts |
Shipping courier account data. |
shipments.shipping_service.courier_account.courier |
CachedNameAndCode |
Holds a name and a code field. |
shipping_address |
OrderGoodsoutAddresses |
Data related to an address. |
shipping_address.country |
Countries |
A country. |
shipping_address.country.region |
Regions |
Geographical region data. |
tags |
array<Tags> |
A tag. |
warehouse |
SummarisedWarehouse |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Upload Document
POST /v1/orders/goodsouts/:id/documents
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents", [
"body" => json_encode([
"file" => ":: FILE CONTENTS ::",
"name" => "my_document.pdf",
"extension" => "pdf",
"mime" => "application/pdf",
"category" => "document",
"paper_size" => "A4",
"print_at_despatch" => 1,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents', {
file: ":: FILE CONTENTS ::",
name: "my_document.pdf",
extension: "pdf",
mime: "application/pdf",
category: "document",
paper_size: "A4",
print_at_despatch: 1,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents",
body: {
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Uploads a Base64 encoded document to a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
OrderGoodsoutDocumentUploadConfirmation
Types for the Request Body
Document (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
file |
The file contents Base64 encoded. | string |
requirednot nullmin length is 1 |
name |
The file name. | string |
requirednot nullmin length is 1 |
extension |
The file extension. | string |
requirednot nullmin length is 1 |
mime |
The file mime. | string |
requirednot nullmin length is 1 |
category |
The document category. | enum(document) |
requirednot null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not nullmin is 0 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Cancel Goodsout
PUT /v1/orders/goodsouts/:id/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel", [
"body" => json_encode([
"reason" => "Example reason.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel', {
reason: "Example reason.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel",
body: {
"reason": "Example reason."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Example reason."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Cancels an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Reason (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Delivery Instructions
PUT /v1/orders/goodsouts/:id/delivery_instructions
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions", [
"body" => json_encode([
"delivery_instructions" => "When not home put in shed.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions', {
delivery_instructions: "When not home put in shed.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions",
body: {
"delivery_instructions": "When not home put in shed."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"delivery_instructions": "When not home put in shed."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Updates a goodsout’s delivery instructions.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
DeliveryInstructions (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
delivery_instructions |
Delivery instructions. | string |
requirednot nullmin length is 0max length is 30 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Gift Message
PUT /v1/orders/goodsouts/:id/gift_message
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message", [
"body" => json_encode([
"message" => "Happy birthday Sam!<br/>Hope you enjoy this gift.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message', {
message: "Happy birthday Sam!<br/>Hope you enjoy this gift.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message",
body: {
"message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Updates a goodsout’s gift message.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateGoodsoutGiftMessage (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
Gift Message. | string |
requirednot nullmin length is 0max length is 800 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Shipping Address
PUT /v1/orders/goodsouts/:id/shipping_address
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address", [
"body" => json_encode([
"title" => "Mr",
"first_name" => "Support",
"last_name" => "Team",
"company" => "ACME LTD",
"address_one" => "Unit 4",
"address_two" => "Radar Way",
"address_three" => "Ind Est",
"town" => "Christchurch",
"country_id" => "GB",
"county" => "Dorset",
"postcode" => "BH23 4FL",
"email" => "support.team@i-fulfilment.co.uk",
"mobile" => "00000000000",
"telephone" => "00000000000",
"secondary_telephone" => "0000000000000",
"vat_number" => "GB999 9999 73",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address', {
title: "Mr",
first_name: "Support",
last_name: "Team",
company: "ACME LTD",
address_one: "Unit 4",
address_two: "Radar Way",
address_three: "Ind Est",
town: "Christchurch",
country_id: "GB",
county: "Dorset",
postcode: "BH23 4FL",
email: "support.team@i-fulfilment.co.uk",
mobile: "00000000000",
telephone: "00000000000",
secondary_telephone: "0000000000000",
vat_number: "GB999 9999 73",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address",
body: {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
}
}
Updates the shipping address of a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Address (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
title |
Title. | string |
not null |
first_name |
First name. | string |
requirednot null |
last_name |
Last name. | string |
requirednot null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
requirednot null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
requirednot null |
country_id |
Country ISO 2 or ISO 3 code. | string |
requirednot nullmin length is 2max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
requirednot null |
email |
Email. | string |
not null |
mobile |
Mobile number. | string |
not null |
telephone |
Landline number. | string |
not null |
secondary_telephone |
Secondary telephone number. | string |
not null |
vat_number |
VAT number. | string |
not null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Goodsout Warehouse
PUT /v1/orders/goodsouts/:id/warehouse
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*", [
"body" => json_encode([
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*', {
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*",
body: {
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
]
}
}
Updates a goodsout’s warehouse.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateGoodsoutWarehousee (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse_code |
The warehouse short code. | string |
requirednot nullmin length is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
warehouse |
SummarisedWarehouse |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Hold Goodsout
PUT /v1/orders/goodsouts/:id/hold
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold", [
"body" => json_encode([
"reason" => "Example reason.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold', {
reason: "Example reason.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold",
body: {
"reason": "Example reason."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Example reason."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Holds an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Reason (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Unhold Goodsout
PUT /v1/orders/goodsouts/:id/unhold
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold", [
"body" => json_encode([
"reason" => "Example reason.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold', {
reason: "Example reason.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold",
body: {
"reason": "Example reason."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Example reason."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Unholds an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Reason (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Get Goodsout Despatch Attributes
GET /v1/orders/goodsouts/:id/despatch_attributes
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"sku": "DEMO-SKU-01",
"product_name": "Example Product",
"attribute_name": "Color",
"attribute_value": "Red"
}
]
}
Get all despatch attributes for a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderGoodsoutDespatchAttributes>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Require Quote on Goodsout
PUT /v1/orders/goodsouts/:id/require_quote
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote", [
"body" => json_encode([
"require_quote" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote', {
require_quote: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote",
body: {
"require_quote": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"require_quote": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Require quote to an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
RequireQuote (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
require_quote |
Require quote | boolean |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Booking In Required
PUT /v1/orders/goodsouts/:id/set_booking_in_required
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required", [
"body" => json_encode([
"booking_in_required" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required', {
booking_in_required: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required",
body: {
"booking_in_required": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"booking_in_required": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Add Booking In required tag to goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
BookingInRequired (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
booking_in_required |
Set booking in required tag. | boolean |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Add Goodsout Timeline
POST /v1/orders/goodsouts/:id/timeline
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline", [
"body" => json_encode([
"message" => "Marked as processed with in system XYZ.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline', {
message: "Marked as processed with in system XYZ.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline",
body: {
"message": "Marked as processed with in system XYZ."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Marked as processed with in system XYZ."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Marked as processed with in system XYZ."
}
}
Add a message or note to the timeline.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateAudit (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message or note to be added to the timeline. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Apply Goodsout Tag
POST /v1/orders/goodsouts/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Remove Goodsout Tag
DELETE /v1/orders/goodsouts/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Bulk List Tracking Numbers
PUT /v1/orders/goodsouts/bulk_tracking_numbers
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*", [
"body" => json_encode([
"order_goodsout_ids" => [
1,
2,
3,
4,
5,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*', {
order_goodsout_ids: [
1,
2,
3,
4,
5,
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*",
body: {
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_goodsout_id": 1049789,
"despatch_date": "2021-01-26T14:52:56.000Z",
"courier": "Royal Mail",
"external_tracking_enabled": true,
"service": "Tracked 48H Hour",
"tracking_numbers": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
}
]
}
Fetches all the tracking numbers for a set list of order goodsouts. This endpoint always expands all expandables.
Request Body
Return Type
array<BulkOrderTrackingNumbers>
Types for the Request Body
BulkGetGoodsoutData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_goodsout_ids |
List of order goodsout ID’s. | array<number> |
requirednot nullmin count is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
tracking_numbers |
array<CachedCourierTracking> |
Tracking details. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk List Tracking Numbers by Reference
PUT /v1/orders/goodsouts/bulk_tracking_numbers/by_reference
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*", [
"body" => json_encode([
"references" => [
"#154254",
"#154234",
"AB12314",
],
"statuses" => [
"awaiting_despatch",
"despatched",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*', {
references: [
"#154254",
"#154234",
"AB12314",
],
statuses: [
"awaiting_despatch",
"despatched",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*",
body: {
"references": [
"#154254",
"#154234",
"AB12314"
],
"statuses": [
"awaiting_despatch",
"despatched"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"references": [
"#154254",
"#154234",
"AB12314"
],
"statuses": [
"awaiting_despatch",
"despatched"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"reference": "#154254",
"order_goodsout_id": 1049789,
"despatch_date": "2021-01-26T14:52:56.000Z",
"status": "despatched",
"courier": "Royal Mail",
"service": "Tracked 48H Hour",
"external_tracking_enabled": true,
"tracking_numbers": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
}
]
}
Fetches all the tracking numbers for a set list of order goodsouts. This endpoint always expands all expandables.
Request Body
BulkGetGoodsoutDataByReference
Return Type
array<BulkOrderTrackingNumbersByReference>
Types for the Request Body
BulkGetGoodsoutDataByReference (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
references |
List of order references. | array<string> |
requirednot nullmin count is 1 |
statuses |
Limit to certain goodsout statuses. | array<enum(draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched)> |
min count is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
tracking_numbers |
array<CachedCourierTracking> |
Tracking details. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk List Goodsout Statuses
PUT /v1/orders/goodsouts/bulk_statuses
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses", [
"body" => json_encode([
"order_goodsout_ids" => [
1,
2,
3,
4,
5,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses', {
order_goodsout_ids: [
1,
2,
3,
4,
5,
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses",
body: {
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_goodsout_id": 1049789,
"status": "awaiting_despatch"
}
]
}
Fetches the statuses for a set list of order goodsouts.
Request Body
Return Type
array<BulkOrderStatuses>
Types for the Request Body
BulkGetGoodsoutData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_goodsout_ids |
List of order goodsout ID’s. | array<number> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk Check Order Exists
PUT /v1/orders/exists
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/exists", [
"body" => json_encode([
"order_channel_id" => 1,
"order_references" => [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/exists', {
order_channel_id: 1,
order_references: [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/exists",
body: {
"order_channel_id": 1,
"order_references": [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/exists' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_channel_id": 1,
"order_references": [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_reference": "8674-7893278932798-68723",
"order_id": 4374739234,
"exists": false
}
]
}
Check to see if an order reference exists on a specific channel.
Request Body
Return Type
array<BulkCheckOrderExists>
Types for the Request Body
BulkCheckOrderExistsData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_channel_id |
Order channel to check against. | integer |
requirednot nullmin is 1 |
order_references |
List of order references to check. | array<string> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk List All Open Orders
PUT /v1/orders/open
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/open?expand=*", [
"body" => json_encode([
"order_channel_id" => 1,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/open?expand=*', {
order_channel_id: 1,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/open?expand=*",
body: {
"order_channel_id": 1
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/open?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_channel_id": 1
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_id": "2333",
"reference": "8674-7893278932798-68723",
"goodsouts": [
{
"order_goodsout_id": "2333",
"status": "awaiting_picking",
"metadata": [
{
"key": "import_data",
"value": "..."
}
]
}
]
}
]
}
List all the ‘open’ orders for a given channel. Can be used to do a pre-cursive check when importing to filter quickly filter out known references.
Request Body
BulkListAllOpenOrderReferencesInput
Return Type
array<BulkListAllOpenOrders>
Types for the Request Body
BulkListAllOpenOrderReferencesInput (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_channel_id |
Order channel to check against. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
goodsouts |
array<BulkListAllOpenOrdersGoodsout> |
undefined |
goodsouts.metadata |
array<BulkListAllOpenOrdersGoodsoutMetadata> |
undefined |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Get packing list.
GET /v1/orders/goodsouts/:id/packing_list
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"pallet": {
"pallet_product_variation_id": 1,
"pallet_reference": 1,
"sku": "STD-PALLET",
"weight_kg": "1.000"
},
"carton_reference": 1,
"carton_product_variation_id": 1,
"sku": "OWNPACK",
"sscc_18": "012345600064565487",
"weight": "1.421",
"height": 200,
"width": 300,
"depth": 150,
"contains": {
"product_component_id": 1,
"sku": "BLUE_CAR",
"name": "Blue Toy Car",
"quantity": 25,
"colour": "Blue",
"size": "1:46",
"style": "Standard",
"type": null,
"quality": "medium"
}
}
]
}
Fetches all boxes the goodsout was packed into. This endpoint always expands all expandables.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderGoodsoutPackingListBox>
Available expands
| Field | Return Type | Description |
|---|---|---|
contains |
array<OrderGoodsoutPackingListProduct> |
A pallet on a packing list. |
pallet |
OrderGoodsoutPackingListPallet |
A pallet on a packing list. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Save Goodsout Shipment Tracking Update
POST /v1/shipping/tracking_update
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/shipping/tracking_update", [
"body" => json_encode([
"message" => "Shipment has arrived at regional facility.",
"location" => "Christchurch",
"tracking_number" => "123ABC",
"timestamp_utc" => "2024-10-07T14:52:56.000Z",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/shipping/tracking_update', {
message: "Shipment has arrived at regional facility.",
location: "Christchurch",
tracking_number: "123ABC",
timestamp_utc: "2024-10-07T14:52:56.000Z",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/shipping/tracking_update",
body: {
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp_utc": "2024-10-07T14:52:56.000Z"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/shipping/tracking_update' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp_utc": "2024-10-07T14:52:56.000Z"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp": "2024-10-07T14:52:56.000Z"
}
}
Receives goodsout shipment tracking update.
Request Body
SaveGoodsoutShipmentTrackingUpdate
Return Type
Types for the Request Body
SaveGoodsoutShipmentTrackingUpdate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
A summary text that describes the tracking event. | string |
requirednot nullmin length is 1 |
location |
A text summary of where (location) the update has occurred. | string |
requirednot nullmin length is 1 |
tracking_number |
The specific tracking number for the update. | string |
requirednot nullmin length is 1 |
timestamp_utc |
The date/time of when the update was created (UTC format only). | date |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
List Goodsout Shipment Tracking Updates
GET /v1/orders/goodsouts/:id/shipping/tracking_updates
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp": "2024-10-07T14:52:56.000Z"
}
]
}
List goodsout shipment tracking updates.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderGoodsoutShipmentTracking>
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Order Lines
Working with order lines.
Create Order Line
POST /v1/orders/goodsouts/:id/lines
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines", [
"body" => json_encode([
"variation" => [
"sku" => "GREEN-BALL",
"channel" => 1,
],
"net_unit_principal" => 12.55,
"principal_tax" => 12,
"discount" => 0,
"discount_type" => "value",
"quantity" => 4,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines', {
variation: {
sku: "GREEN-BALL",
channel: 1,
},
net_unit_principal: 12.55,
principal_tax: 12,
discount: 0,
discount_type: "value",
quantity: 4,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines",
body: {
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active"
}
}
Adds a new line to an existing goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateOrderGoodsoutLine (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
variation |
Product description | Variation |
requirednot null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
requirednot nullmin is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
requirednot nullmin is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not nullmin is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
requirednot nullmin is 1 |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
channel |
The product channel’s ID. | integer |
requirednot nullmin is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Order Line Quantity
PUT /v1/orders/goodsouts/:id/lines/:lineId/quantity
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity", [
"body" => json_encode([
"quantity" => 4,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity', {
quantity: 4,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity",
body: {
"quantity": 4
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"quantity": 4
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active"
}
}
Updates the quantity of an order goodsout line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateGoodsoutLineQuantity (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
quantity |
Quantity. | integer |
requirednot nullmin is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Cancel Order Line
PUT /v1/orders/goodsouts/:id/lines/:lineId/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel", [
"body" => json_encode([
"reason" => "Item no longer wanted.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel', {
reason: "Item no longer wanted.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel",
body: {
"reason": "Item no longer wanted."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Item no longer wanted."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active"
}
}
Cancel a order goodsout line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CancelGoodsoutLine (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
Reason for canceling the line. | string |
requirednot nullmin length is 1max length is 250 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Order Channels
Working with order channels.
List Order Channels
GET /v1/orders/channels
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/channels?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/channels?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/channels?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/channels?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"brands": [
{
"id": 5,
"name": "Demo Brand"
}
],
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"tax": {
"id": 1,
"name": "standard",
"code": "20",
"rate": 20,
"description": "standard 20%",
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
List order channels
Return Type
array<OrderChannels>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| status | EQUALS |
Available expands
| Field | Return Type | Description |
|---|---|---|
brands |
array<Brands> |
Brand data. |
organisation |
Organisations |
Organisation data. |
tax |
OrganisationTaxes |
Organisation tax data. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Order Metadata
Working with order metadata.
List Order Metadata
GET /v1/orders/goodsouts/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Get Order Metadata
GET /v1/orders/goodsouts/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Set Order Metadata
PUT /v1/orders/goodsouts/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Delete Order Metadata
DELETE /v1/orders/goodsouts/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Products
Working with products.
Create Product
POST /v1/products/variations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/variations?expand=*", [
"body" => json_encode([
"sku" => "RED-BIKE-01A",
"name" => "Red bike",
"barcode" => "0793573679000",
"brand" => 1,
"channel" => 1,
"new_component" => [
"perishable" => true,
"organic" => true,
"dangerous" => true,
"dutiable" => true,
"hygiene" => true,
"battery" => true,
"fragile" => true,
"what_is_it" => "Bicycle.",
"made_of" => "metal, rubber, plastic",
"used_for" => "sports",
"customs_country_of_origin_country" => "GBR",
"product_component_customs_code_id" => 1,
"doqs" => [
[
"length" => 2500,
"width" => 1000,
"height" => 4500,
"weight" => 1.45,
"quantity" => 10,
"type" => "INNER_PACK",
"shippable" => true,
"barcode" => "0793573679000",
],
],
"batch_codes_enabled" => "enabled",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/variations?expand=*', {
sku: "RED-BIKE-01A",
name: "Red bike",
barcode: "0793573679000",
brand: 1,
channel: 1,
new_component: {
perishable: true,
organic: true,
dangerous: true,
dutiable: true,
hygiene: true,
battery: true,
fragile: true,
what_is_it: "Bicycle.",
made_of: "metal, rubber, plastic",
used_for: "sports",
customs_country_of_origin_country: "GBR",
product_component_customs_code_id: 1,
doqs: [
{
length: 2500,
width: 1000,
height: 4500,
weight: 1.45,
quantity: 10,
type: "INNER_PACK",
shippable: true,
barcode: "0793573679000",
},
],
batch_codes_enabled: "enabled",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations?expand=*",
body: {
"sku": "RED-BIKE-01A",
"name": "Red bike",
"barcode": "0793573679000",
"brand": 1,
"channel": 1,
"new_component": {
"perishable": false,
"organic": false,
"dangerous": false,
"dutiable": false,
"hygiene": false,
"battery": false,
"fragile": false,
"what_is_it": "Bicycle.",
"made_of": "metal, rubber, plastic",
"used_for": "sports",
"customs_country_of_origin_country": "GBR",
"product_component_customs_code_id": 1,
"doqs": [
{
"length": 2500,
"width": 1000,
"height": 4500,
"weight": 1.45,
"quantity": 10,
"type": "INNER_PACK",
"shippable": true,
"barcode": "0793573679000"
}
],
"batch_codes_enabled": "enabled"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/variations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"sku": "RED-BIKE-01A",
"name": "Red bike",
"barcode": "0793573679000",
"brand": 1,
"channel": 1,
"new_component": {
"perishable": false,
"organic": false,
"dangerous": false,
"dutiable": false,
"hygiene": false,
"battery": false,
"fragile": false,
"what_is_it": "Bicycle.",
"made_of": "metal, rubber, plastic",
"used_for": "sports",
"customs_country_of_origin_country": "GBR",
"product_component_customs_code_id": 1,
"doqs": [
{
"length": 2500,
"width": 1000,
"height": 4500,
"weight": 1.45,
"quantity": 10,
"type": "INNER_PACK",
"shippable": true,
"barcode": "0793573679000"
}
],
"batch_codes_enabled": "enabled"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
Creates a product.
Request Body
Return Type
Types for the Request Body
CreateProduct (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s Stock Keeping Unit. | string |
requirednot nullmatch is /^[a-z0-9\-_.]{2,}$/i |
name |
The product’s name. | string |
requirednot nullmin length is 3 |
barcode |
The product barcode. | string |
requirednot nullmatch is /^\d{3,20}$/ |
brand |
Product brand id. | integer |
requirednot nullmin is 1 |
channel |
Product channel id. | integer |
requirednot nullmin is 1 |
new_component |
Component data. Required when creating a new warehouse product. It can’t appear in the payload along with existing_components. |
NewComponent |
optionally requirednot null |
existing_components |
Components to use. Required when creating a new virtual product. It can’t appear in the payload along with new_component. |
array<ExistingComponent> |
optionally requirednot nullmin count is 1 |
Doq
| Key | Description | Types | Restrictions |
|---|---|---|---|
length |
Length in MM. | integer |
requirednot nullmin is 1 |
width |
Width in MM. | integer |
requirednot nullmin is 1 |
height |
Height in MM. | integer |
requirednot nullmin is 1 |
weight |
Weight in KG. | number |
requirednot nullmin is 0.001 |
quantity |
Quantity. | integer |
requirednot nullmin is 1 |
type |
Short code for the DOQ. | enum(INNER_PACK, MASTER_CASE, PALLET, SINGLE_PRODUCT) |
requirednot null |
shippable |
Is this a shippable item? | boolean |
requirednot null |
barcode |
Barcode. | string |
not nullmatch is /^[0-9]{6,}$/ |
ExistingComponent
| Key | Description | Types | Restrictions |
|---|---|---|---|
id |
The product component ID. | integer |
requirednot nullmin is 1 |
quantity |
The quantity required to build the virtual product. | integer |
requirednot nullmin is 1 |
NewComponent
| Key | Description | Types | Restrictions |
|---|---|---|---|
perishable |
Is the product perishable? | boolean |
requirednot null |
organic |
Is the product organic? | boolean |
requirednot null |
dangerous |
Is the product dangerous? | boolean |
not null |
dutiable |
Is the product dutiable? | boolean |
not null |
hygiene |
Is the product for hygiene? | boolean |
not null |
battery |
Does the product have battery? | boolean |
not null |
fragile |
Is the product fragile? | boolean |
not null |
what_is_it |
Part of customs details: What is the product? | string |
requirednot nullmin length is 1 |
made_of |
Part of customs details: What is the product made of? | string |
requirednot nullmin length is 1 |
used_for |
Part of customs details: What is the product used for? | string |
requirednot nullmin length is 1 |
customs_country_of_origin_country |
The ISO2 or ISO3 code or the ID of the country of origin. | stringor integer |
requirednot nullif type is string, then min length is 1if type is string, then max length is 3if type is integer, then min is 1 |
product_component_customs_code_id |
Customs code ID. | integer |
requirednot nullmin is 1 |
doqs |
List of product DOQs. | array<Doq> |
requirednot nullmin count is 1 |
batch_codes_enabled |
Enable batch codes? | string |
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
List Product Variations
GET /v1/products/variations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"sku": "DEMO-SKU-01",
"name": "Example product",
"is_primary": false,
"status": "active",
"created": {},
"product": {
"id": 1,
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false,
"organisation": {
"id": 1,
"name": "Demo Organisation"
}
}
},
"tags": [
{
"name": "Processed",
"shortcode": "processed",
"description": "Processed by a 3rd party system"
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example Product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"components": [
{
"id": 1,
"sku": "DEMO-SKU-01",
"name": "Example Product",
"barcode": 1234567891020,
"quantity": 1
}
],
"type": {
"id": 1,
"name": "Standard Product",
"type": "product"
},
"primary_product_category": {
"id": 4,
"name": "Bicycles"
}
}
]
}
Get a list of product variations. Please note that all expands will be applied automatically.
Return Type
array<CachedProductVariation>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS, IN |
|
| product.channel.id | IN, NOT_IN |
|
| tags.shortcode | IN, NOT_IN |
|
| status | IN, NOT_IN |
|
| sku | EQUALS, IN |
|
| type.id | IN |
|
| is_primary | EQUALS |
|
| order_channel_id | IN |
/v1/orders/channels |
Sortings
Results can be sorted by the following keys: created, product.channel.name, sku, status.
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<CachedProductVariationComponent> |
Variation component. |
created |
CachedProductVariationCreated |
Variation specific data. |
descriptions |
array<CachedProductVariationDescription> |
Variation descriptions. |
descriptions.locale |
SummarisedLocale |
Locale / Language. |
primary_product_category |
SummarisedProductCategory |
Summary of a product category. |
product |
CachedProduct |
Top level product data. |
product.channel |
CachedProductChannel |
Cached product channel. |
product.channel.organisation |
CachedProductChannelOrganisation |
Top level product data. |
tags |
array<SummarisedTag> |
A tag. |
type |
SummarisedProductVariationType |
Top level product data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
View Product Variation
GET /v1/products/variations/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/:id?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/:id?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/:id?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/:id?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
View a single product variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Update Name and Description
PUT /v1/products/variations/:id/description
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*", [
"body" => json_encode([
"locale" => "en",
"name" => "Red Ball",
"full_description" => "A beautiful red ball.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*', {
locale: "en",
name: "Red Ball",
full_description: "A beautiful red ball.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*",
body: {
"locale": "en",
"name": "Red Ball",
"full_description": "A beautiful red ball."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"locale": "en",
"name": "Red Ball",
"full_description": "A beautiful red ball."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
}
Updates product’s name and description.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
UpdateVariationNameAndDescription
Return Type
Types for the Request Body
UpdateVariationNameAndDescription (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
locale |
ID or code of locale. | stringor integer |
requirednot nullif type is string, then min length is 2if type is string, then max length is 2if type is integer, then min is 1 |
name |
Name. | string |
requirednot nullmin length is 1 |
full_description |
Description. | string |
requirednot nullmin length is 0 |
Available expands
| Field | Return Type | Description |
|---|---|---|
locale |
Locales |
Locale data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Activate Product Variation
PUT /v1/products/variations/:id/activate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
Set the product variation’s status to “active”.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Discontinue Product Variation
PUT /v1/products/variations/:id/discontinue
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
Set the product variation’s status to “discontinued”.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Add Product Timeline
POST /v1/products/variations/:id/timeline
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/variations/1234567/timeline", [
"body" => json_encode([
"message" => "Marked as processed with in system XYZ.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/variations/1234567/timeline', {
message: "Marked as processed with in system XYZ.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/timeline",
body: {
"message": "Marked as processed with in system XYZ."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/variations/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Marked as processed with in system XYZ."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Marked as processed with in system XYZ."
}
}
Add a message or note to the timeline.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateAudit (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message or note to be added to the timeline. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Apply Product Tag
POST /v1/products/variations/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/variations/12345/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/variations/12345/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/12345/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/variations/12345/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a product variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Remove Product Tag
DELETE /v1/products/variations/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a product variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Find variations with suppliers
GET /v1/products/variations/suppliers
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/suppliers", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/suppliers', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/suppliers",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/suppliers' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"channel": 123,
"sku": "DEMO-SKU-01",
"product_component_sku": "DEMO-SKU-01",
"product_component_supplier_id": 123,
"product_component_id": 123,
"warehouse_id": 123
}
]
}
Retrieves basic data about the list of available marketplace listable products.
Return Type
array<ProductChannelVariations>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| sku | LIKE, NOT_LIKE, IN |
|
| channel | IN, NOT_IN |
Scopes
This endpoint is available to all users.
Bulk List Stock
PUT /v1/products/variations/stocks
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/stocks", [
"body" => json_encode([
"product_variation_id" => [
1,
],
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/stocks', {
product_variation_id: [
1,
],
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stocks",
body: {
"product_variation_id": [
1
],
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/stocks' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_variation_id": [
1
],
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
Fetches stock data for a set list of products.
Request Body
Return Type
array<ProductVariationStockDataSummary>
Types for the Request Body
BulkGetVariationStockData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
List of product variation ID’s. | array<number> |
requirednot nullmin count is 1 |
warehouse_code |
Warehouse code to limit the results to. If omitted or null, it won’t be applied as a filter. | string |
min length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Bulk List Stock with Expiry
PUT /v1/products/variations/stocks/expiry
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/stocks/expiry", [
"body" => json_encode([
"product_variation_id" => [
1,
],
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/stocks/expiry', {
product_variation_id: [
1,
],
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stocks/expiry",
body: {
"product_variation_id": [
1
],
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/stocks/expiry' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_variation_id": [
1
],
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
Fetches perishable stock data for a set list of products.
Request Body
BulkGetVariationPerishableStockData
Return Type
array<ProductVariationPerishableStockDataSummary>
Types for the Request Body
BulkGetVariationPerishableStockData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
List of product variation ID’s. | array<number> |
requirednot nullmin count is 1 |
warehouse_code |
Warehouse code to limit the results to. If omitted or null, it won’t be applied as a filter. | string |
min length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Bulk List Stock with Batch Codes
PUT /v1/products/variations/stocks/batch_code
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/stocks/batch_code", [
"body" => json_encode([
"product_variation_id" => [
1,
],
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/stocks/batch_code', {
product_variation_id: [
1,
],
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stocks/batch_code",
body: {
"product_variation_id": [
1
],
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/stocks/batch_code' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_variation_id": [
1
],
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"product_variation_id": 1,
"batch_code": "1234",
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
Fetches batch stock data for a set list of products.
Request Body
BulkGetVariationBatchStockData
Return Type
array<ProductVariationBatchStockDataSummary>
Types for the Request Body
BulkGetVariationBatchStockData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
List of product variation ID’s. | array<number> |
requirednot nullmin count is 1 |
warehouse_code |
Warehouse code to limit the results to. If omitted or null, it won’t be applied as a filter. | string |
min length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
List Product Variations
GET /v1/products/variations/stock_availability
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"stocks": {
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"total": 156,
"available": 121
}
}
]
}
Get a list of product variations. Please note that all expands will be applied automatically.
Return Type
array<StockAvailability>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS, IN |
|
| sku | EQUALS, IN |
|
| order_channel_id | IN |
/v1/orders/channels |
Sortings
Results can be sorted by the following keys: created, product.channel.name, sku, status.
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Product Brands
Working with product brands.
List Product Brands
GET /v1/products/brands
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/brands", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/brands', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/brands",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/brands' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
Retrieves a list of all the product brands.
Return Type
array<ProductBrands>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Create Product Brand
POST /v1/products/brands
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/brands", [
"body" => json_encode([
"name" => "Demo Brand Name.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/brands', {
name: "Demo Brand Name.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/brands",
body: {
"name": "Demo Brand Name."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/brands' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"name": "Demo Brand Name."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Create a new product brand.
Request Body
Return Type
Types for the Request Body
CreateProductBrand (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
The name of the product brand. | string |
requirednot nullmax length is 200 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Product Channels
Working with product channels.
List Product Channels
GET /v1/products/channels
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/channels", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/channels', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/channels",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/channels' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Product Channels.
Return Type
array<ProductChannels>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Product Metadata
Working with product metadata.
List Product Metadata
GET /v1/products/variations/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<ProductResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Get Product Metadata
GET /v1/products/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Set Product Metadata
PUT /v1/products/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Delete Product Metadata
DELETE /v1/products/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Product Custom Codes
Working with product custom codes.
List Customs Codes
GET /v1/products/customs
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/customs?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/customs?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/customs?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/customs?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5,
"organisation_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Customs Codes.
Return Type
array<ProductComponentCustomsCodes>
Available expands
| Field | Return Type | Description |
|---|---|---|
organisation |
Organisations |
Organisation data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Create Customs Code
POST /v1/products/customs
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/customs", [
"body" => json_encode([
"code" => "8471",
"name" => "Personal computers",
"duty_rate" => 1.5,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/customs', {
code: "8471",
name: "Personal computers",
duty_rate: 1.5,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/customs",
body: {
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/customs' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5,
"organisation_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Create a new customs code.
Request Body
Return Type
Types for the Request Body
CreateProductCustomsCode (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
code |
HS Code. | string |
requirednot nullmin length is 4 |
name |
Name of the code. | string |
requirednot nullmin length is 1 |
duty_rate |
The duty rate applied to this customs code. | number |
requirednot nullmin is 0 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Product DOQ Types
Working with product DOQ Types.
List Product DOQ Types
GET /v1/products/doqs
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/doqs", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/doqs', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/doqs",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/doqs' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"code": "INNER_PACK",
"name": "Inner"
}
]
}
List product DOQ types.
Return Type
array<ProductComponentDoqTypes>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Product Suppliers
Working with product suppliers.
List Product Suppliers
GET /v1/products/suppliers
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/suppliers", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/suppliers', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/suppliers",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/suppliers' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
}
]
}
List product suppliers.
Return Type
array<ProductComponentSuppliers>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Purchase Orders
Working with purchase orders.
List Purchase Orders
GET /v1/purchase_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
List purchase orders.
Return Type
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| product_channel_id | IN, NOT_IN |
/v1/products/channels |
| product_component_supplier_id | IN, NOT_IN |
|
| status | IN, NOT_IN |
|
| purchase_order_type_id | IN, NOT_IN |
|
| completed_date | LESS_THAN, ON_DATE, MORE_THAN |
Sortings
Results can be sorted by the following keys: created, id, warehouse.name.
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Create Purchase Order
POST /v1/purchase_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders?expand=*", [
"body" => json_encode([
"product_channel_id" => 1,
"product_component_supplier_id" => 6,
"references" => [
[
"name" => "Supplier",
"value" => "SO25115481514",
],
],
"warehouse_code" => "CHR",
"currency_code" => "GBP",
"goodsin" => [
"expected_pallets" => 32,
"expected_cartons" => 3200,
"shipping_company" => "DHL",
"tracking_number" => "DHL-TN-1209341234",
"shipping_method" => "sea",
"expected_delivery_date" => "2025-09-05T14:32:45.375Z",
],
"lines" => [
[
"sku" => "DEMO-SKU-01",
"product_component_id" => null,
"quantity" => 3200,
"cost_price" => 156.5,
"duty" => 14.5,
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders?expand=*', {
product_channel_id: 1,
product_component_supplier_id: 6,
references: [
{
name: "Supplier",
value: "SO25115481514",
},
],
warehouse_code: "CHR",
currency_code: "GBP",
goodsin: {
expected_pallets: 32,
expected_cartons: 3200,
shipping_company: "DHL",
tracking_number: "DHL-TN-1209341234",
shipping_method: "sea",
expected_delivery_date: "2025-09-05T14:32:45.375Z",
},
lines: [
{
sku: "DEMO-SKU-01",
product_component_id: nil,
quantity: 3200,
cost_price: 156.5,
duty: 14.5,
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders?expand=*",
body: {
"product_channel_id": 1,
"product_component_supplier_id": 6,
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
],
"warehouse_code": "CHR",
"currency_code": "GBP",
"goodsin": {
"expected_pallets": 32,
"expected_cartons": 3200,
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"shipping_method": "sea",
"expected_delivery_date": "2025-09-05T14:32:45.375Z"
},
"lines": [
{
"sku": "DEMO-SKU-01",
"product_component_id": null,
"quantity": 3200,
"cost_price": 156.5,
"duty": 14.5
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_channel_id": 1,
"product_component_supplier_id": 6,
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
],
"warehouse_code": "CHR",
"currency_code": "GBP",
"goodsin": {
"expected_pallets": 32,
"expected_cartons": 3200,
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"shipping_method": "sea",
"expected_delivery_date": "2025-09-05T14:32:45.375Z"
},
"lines": [
{
"sku": "DEMO-SKU-01",
"product_component_id": null,
"quantity": 3200,
"cost_price": 156.5,
"duty": 14.5
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"lines": {
"id": 3423,
"product_component_id": 34309,
"name": "Green ball",
"quantity": 5000,
"cost_price": 12.4,
"duty": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"last_cost": {
"id": 2923,
"product_component_instance_id": 44309,
"product_component_id": 34309,
"net_cost_price": 12.4,
"cost_price_currency_code": "GBP",
"cost_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"cost_price_duty_rate": 1,
"notes": "Example notes.",
"landed_price_currency_code": "GBP",
"landed_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock": 1354,
"created": "2019-11-25T14:52:56.000Z",
"landed_price": 12.9
},
"stock": {
"total": 35,
"total_saleable": 34,
"saleable": 34,
"pickable": 34,
"available": 34,
"allocated": 0,
"reserved": 0,
"misc": 1,
"gistock": 0,
"expected": 5,
"picked": 0,
"under_investigation": 1
},
"count_product_component_batches": 1,
"sales": {
"1_week": 54,
"1_month": 220,
"3_months": 583,
"6_months": 1124,
"1_year": 2930,
"lifetime": 2930
},
"batch_codes_enabled": "enabled"
},
"doq": {
"id": 1,
"quantity": 1,
"weight": 1.45,
"depth": 1000,
"width": 1500,
"height": 1000,
"shippable": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"payments": [
{
"id": 94324,
"name": "30% deposit",
"amount": 10000,
"currency_code": "GBP",
"effective_date": "2019-11-25T14:52:56.000Z",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
],
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
Creates a purchase order.
Request Body
Return Type
Types for the Request Body
CreatePurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_channel_id |
Product channel ID. | number |
requirednot null |
product_component_supplier_id |
Supplier ID. | number |
requirednot null |
references |
List of references. | array<Reference> |
not null |
warehouse_code |
Warehouse code. | string |
requirednot nullmin length is 1 |
currency_code |
Currency code | string |
requirednot nullmin length is 3max length is 3 |
goodsin |
First goodsin. | Goodsin |
requirednot null |
lines |
Products ordered. | array<Line> |
not null |
Goodsin
| Key | Description | Types | Restrictions |
|---|---|---|---|
expected_pallets |
Number of expected pallets. | integer |
requirednot nullmin is 0 |
expected_cartons |
Number of expected cartons. | integer |
requirednot nullmin is 0 |
shipping_company |
Name of the shipping company. | string |
not null |
tracking_number |
Tracking number for the shipment. | string |
not null |
shipping_method |
Method of travel. | enum(air, sea, road) |
requirednot null |
expected_delivery_date |
Expected delivery date. | date |
requirednot null |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
Product SKU. | string |
optionally requirednot nullmin length is 1match is /^[0-9a-z_.-]+$/i |
product_component_id |
Product component ID. | integer |
optionally requirednot nullmin is 1 |
quantity |
Ordered quantity. | integer |
requirednot nullmin is 1 |
cost_price |
Cost price. | number |
not nullmin is 0 |
duty |
Duty rate. | number |
not nullmin is 0 |
Reference
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name. | string |
requirednot null |
value |
Value. | string |
requirednot null |
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.consignment_qualities |
array<ConsignmentQualities> |
Consignment quality description. |
goodsins.containers |
array<PurchaseOrderGoodsinContainers> |
A container for a goodsin. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
goodsins.items.batch |
ProductComponentBatches |
Description of a batch. |
goodsins.items.component |
ProductComponents |
Product component. |
goodsins.items.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
goodsins.items.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
goodsins.items.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
goodsins.items.component.last_cost.cost_currency |
Currencies |
Currency data. |
goodsins.items.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
goodsins.items.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
goodsins.items.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
goodsins.items.cost |
ProductComponentCostPrices |
A cost price. |
goodsins.items.cost.currency |
SummarisedCurrency |
A currency. |
goodsins.items.cost.transports |
ProductComponentCostPriceTransports |
Transport costs. |
goodsins.port |
Ports |
Shipping ports. |
lines |
array<PurchaseOrderLines> |
An item ordered in a purchase order. |
lines.component |
ProductComponents |
Product component. |
lines.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
lines.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
lines.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
lines.component.last_cost.cost_currency |
Currencies |
Currency data. |
lines.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
lines.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
lines.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
lines.doq |
ProductComponentDoqs |
Product component DOQ. |
payments |
array<PurchaseOrderPayments> |
Payments made towards purchase order suppliers. |
payments.currency |
SummarisedCurrency |
A currency. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
tags |
array<Tags> |
A tag. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Create Fast-Track Purchase Order
POST /v1/purchase_orders/fast_track
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*", [
"body" => json_encode([
"warehouse_code" => "CHR",
"product_channel_id" => 1,
"currency_code" => "GBP",
"reference" => "SO25115481514",
"lines" => [
[
"sku" => "DEMO-SKU-01",
"quantity" => 3200,
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*', {
warehouse_code: "CHR",
product_channel_id: 1,
currency_code: "GBP",
reference: "SO25115481514",
lines: [
{
sku: "DEMO-SKU-01",
quantity: 3200,
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*",
body: {
"warehouse_code": "CHR",
"product_channel_id": 1,
"currency_code": "GBP",
"reference": "SO25115481514",
"lines": [
{
"sku": "DEMO-SKU-01",
"quantity": 3200
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse_code": "CHR",
"product_channel_id": 1,
"currency_code": "GBP",
"reference": "SO25115481514",
"lines": [
{
"sku": "DEMO-SKU-01",
"quantity": 3200
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"lines": {
"id": 3423,
"product_component_id": 34309,
"name": "Green ball",
"quantity": 5000,
"cost_price": 12.4,
"duty": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"last_cost": {
"id": 2923,
"product_component_instance_id": 44309,
"product_component_id": 34309,
"net_cost_price": 12.4,
"cost_price_currency_code": "GBP",
"cost_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"cost_price_duty_rate": 1,
"notes": "Example notes.",
"landed_price_currency_code": "GBP",
"landed_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock": 1354,
"created": "2019-11-25T14:52:56.000Z",
"landed_price": 12.9
},
"stock": {
"total": 35,
"total_saleable": 34,
"saleable": 34,
"pickable": 34,
"available": 34,
"allocated": 0,
"reserved": 0,
"misc": 1,
"gistock": 0,
"expected": 5,
"picked": 0,
"under_investigation": 1
},
"count_product_component_batches": 1,
"sales": {
"1_week": 54,
"1_month": 220,
"3_months": 583,
"6_months": 1124,
"1_year": 2930,
"lifetime": 2930
},
"batch_codes_enabled": "enabled"
},
"doq": {
"id": 1,
"quantity": 1,
"weight": 1.45,
"depth": 1000,
"width": 1500,
"height": 1000,
"shippable": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"payments": [
{
"id": 94324,
"name": "30% deposit",
"amount": 10000,
"currency_code": "GBP",
"effective_date": "2019-11-25T14:52:56.000Z",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
],
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
Creates a fast-track purchase order.
Fast track Purchase Orders are a simplified purchase order that can only be used if enabled in a warehouse and on an organisation using our SaaS product.They should only be used with authorisation from your SaaS Account Manager. For further details please contact the SaaS team.
Request Body
Return Type
Types for the Request Body
CreateFastTrackPurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse_code |
Warehouse code. | string |
requirednot nullmin length is 1 |
product_channel_id |
Product channel ID. | number |
requirednot null |
currency_code |
Currency code | string |
requirednot nullmin length is 3max length is 3 |
reference |
Reference value. | string |
requirednot null |
lines |
Products ordered. | array<Line> |
requirednot nullmin count is 1 |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
Product SKU. | string |
requirednot nullmin length is 1match is /^[0-9a-z_-]+$/i |
quantity |
Ordered quantity. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.consignment_qualities |
array<ConsignmentQualities> |
Consignment quality description. |
goodsins.containers |
array<PurchaseOrderGoodsinContainers> |
A container for a goodsin. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
goodsins.items.batch |
ProductComponentBatches |
Description of a batch. |
goodsins.items.component |
ProductComponents |
Product component. |
goodsins.items.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
goodsins.items.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
goodsins.items.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
goodsins.items.component.last_cost.cost_currency |
Currencies |
Currency data. |
goodsins.items.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
goodsins.items.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
goodsins.items.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
goodsins.items.cost |
ProductComponentCostPrices |
A cost price. |
goodsins.items.cost.currency |
SummarisedCurrency |
A currency. |
goodsins.items.cost.transports |
ProductComponentCostPriceTransports |
Transport costs. |
goodsins.port |
Ports |
Shipping ports. |
lines |
array<PurchaseOrderLines> |
An item ordered in a purchase order. |
lines.component |
ProductComponents |
Product component. |
lines.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
lines.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
lines.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
lines.component.last_cost.cost_currency |
Currencies |
Currency data. |
lines.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
lines.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
lines.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
lines.doq |
ProductComponentDoqs |
Product component DOQ. |
payments |
array<PurchaseOrderPayments> |
Payments made towards purchase order suppliers. |
payments.currency |
SummarisedCurrency |
A currency. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
tags |
array<Tags> |
A tag. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
View Purchase Order
GET /v1/purchase_orders/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders/125?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders/125?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/125?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders/125?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"lines": {
"id": 3423,
"product_component_id": 34309,
"name": "Green ball",
"quantity": 5000,
"cost_price": 12.4,
"duty": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"last_cost": {
"id": 2923,
"product_component_instance_id": 44309,
"product_component_id": 34309,
"net_cost_price": 12.4,
"cost_price_currency_code": "GBP",
"cost_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"cost_price_duty_rate": 1,
"notes": "Example notes.",
"landed_price_currency_code": "GBP",
"landed_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock": 1354,
"created": "2019-11-25T14:52:56.000Z",
"landed_price": 12.9
},
"stock": {
"total": 35,
"total_saleable": 34,
"saleable": 34,
"pickable": 34,
"available": 34,
"allocated": 0,
"reserved": 0,
"misc": 1,
"gistock": 0,
"expected": 5,
"picked": 0,
"under_investigation": 1
},
"count_product_component_batches": 1,
"sales": {
"1_week": 54,
"1_month": 220,
"3_months": 583,
"6_months": 1124,
"1_year": 2930,
"lifetime": 2930
},
"batch_codes_enabled": "enabled"
},
"doq": {
"id": 1,
"quantity": 1,
"weight": 1.45,
"depth": 1000,
"width": 1500,
"height": 1000,
"shippable": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"payments": [
{
"id": 94324,
"name": "30% deposit",
"amount": 10000,
"currency_code": "GBP",
"effective_date": "2019-11-25T14:52:56.000Z",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
],
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
Retrieve one purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.consignment_qualities |
array<ConsignmentQualities> |
Consignment quality description. |
goodsins.containers |
array<PurchaseOrderGoodsinContainers> |
A container for a goodsin. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
goodsins.items.batch |
ProductComponentBatches |
Description of a batch. |
goodsins.items.component |
ProductComponents |
Product component. |
goodsins.items.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
goodsins.items.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
goodsins.items.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
goodsins.items.component.last_cost.cost_currency |
Currencies |
Currency data. |
goodsins.items.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
goodsins.items.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
goodsins.items.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
goodsins.items.cost |
ProductComponentCostPrices |
A cost price. |
goodsins.items.cost.currency |
SummarisedCurrency |
A currency. |
goodsins.items.cost.transports |
ProductComponentCostPriceTransports |
Transport costs. |
goodsins.port |
Ports |
Shipping ports. |
lines |
array<PurchaseOrderLines> |
An item ordered in a purchase order. |
lines.component |
ProductComponents |
Product component. |
lines.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
lines.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
lines.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
lines.component.last_cost.cost_currency |
Currencies |
Currency data. |
lines.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
lines.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
lines.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
lines.doq |
ProductComponentDoqs |
Product component DOQ. |
payments |
array<PurchaseOrderPayments> |
Payments made towards purchase order suppliers. |
payments.currency |
SummarisedCurrency |
A currency. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
tags |
array<Tags> |
A tag. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Cancel a Purchase Order
PUT /v1/purchase_orders/:id/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/purchase_orders/:id/cancel", [
"body" => json_encode([
"reason" => "No longer needed",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/purchase_orders/:id/cancel', {
reason: "No longer needed",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/:id/cancel",
body: {
"reason": "No longer needed"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/purchase_orders/:id/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "No longer needed"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Cancel a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CancelPurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
Reason for cancellation. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Apply Purchase Order Tag
POST /v1/purchase_orders/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/:id/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/:id/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/:id/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Remove Purchase Order Tag
DELETE /v1/purchase_orders/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Add Purchase Order Timeline
POST /v1/purchase_orders/:id/timeline
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline", [
"body" => json_encode([
"message" => "Marked as processed with in system XYZ.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline', {
message: "Marked as processed with in system XYZ.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline",
body: {
"message": "Marked as processed with in system XYZ."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Marked as processed with in system XYZ."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Marked as processed with in system XYZ."
}
}
Add a message or note to the timeline.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateAudit (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message or note to be added to the timeline. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Confirm and Book In Purchase Order
POST /v1/purchase_orders/:id/arrange_goods_in
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in", [
"body" => json_encode([
"container_shipment" => true,
"shipment_size" => [
"expected_pallets" => 10,
"expected_cartons" => 10,
"expected_20ft_containers" => 10,
"expected_40ft_containers" => 10,
"expected_40ft_HC_containers" => 10,
],
"delivery_date" => [
"preferred_delivery_date" => "2024-11-25T14:52:56.000Z",
"preferred_time_slot" => "AM",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in', {
container_shipment: true,
shipment_size: {
expected_pallets: 10,
expected_cartons: 10,
expected_20ft_containers: 10,
expected_40ft_containers: 10,
expected_40ft_HC_containers: 10,
},
delivery_date: {
preferred_delivery_date: "2024-11-25T14:52:56.000Z",
preferred_time_slot: "AM",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in",
body: {
"container_shipment": true,
"shipment_size": {
"expected_pallets": 10,
"expected_cartons": 10,
"expected_20ft_containers": 10,
"expected_40ft_containers": 10,
"expected_40ft_HC_containers": 10
},
"delivery_date": {
"preferred_delivery_date": "2024-11-25T14:52:56.000Z",
"preferred_time_slot": "AM"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"container_shipment": true,
"shipment_size": {
"expected_pallets": 10,
"expected_cartons": 10,
"expected_20ft_containers": 10,
"expected_40ft_containers": 10,
"expected_40ft_HC_containers": 10
},
"delivery_date": {
"preferred_delivery_date": "2024-11-25T14:52:56.000Z",
"preferred_time_slot": "AM"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"purchase_order_id": 123456,
"goods_in_id": 987654,
"expected_date": "2025-08-30",
"expected_time_slot": "AM"
}
}
Confirm a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ConfirmPurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
container_shipment |
Container shipment. | boolean |
requirednot null |
shipment_size |
Shipment size. | ShipmentSize |
requirednot null |
delivery_date |
Delivery date. | DeliveryDate |
requirednot null |
DeliveryDate
| Key | Description | Types | Restrictions |
|---|---|---|---|
preferred_delivery_date |
Preferred delivery date. | date |
requirednot null |
preferred_time_slot |
Preferred delivery time slot. | enum(AM, PM) |
requirednot null |
ShipmentSize
| Key | Description | Types | Restrictions |
|---|---|---|---|
expected_pallets |
Number of expected pallets. | integer |
optionally requirednot nullmin is 0 |
expected_cartons |
Number of expected cartons. | integer |
optionally requirednot nullmin is 0 |
expected_20ft_containers |
Number of expected 20ft containers. | integer |
optionally requirednot nullmin is 0 |
expected_40ft_containers |
Number of expected 40ft containers. | integer |
optionally requirednot nullmin is 0 |
expected_40ft_HC_containers |
Number of expected 40ft HC containers. | integer |
optionally requirednot nullmin is 0 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Cancel Goodsin
PUT /v1/purchase_orders/goodsin/:id/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel", [
"body" => json_encode([
"reason" => "No longer needed",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel', {
reason: "No longer needed",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel",
body: {
"reason": "No longer needed"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "No longer needed"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Cancel a goodsin.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CancelPurchaseOrderGoodsin (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
Reason for cancellation. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Purchase Order Metadata
Working with purchase orders metadata.
List Purchase Order Metadata
GET /v1/purchase_orders/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<PurchaseOrderResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Get Purchase Order Metadata
GET /v1/purchase_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
PurchaseOrderResourceMetadatas
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Set Purchase Order Metadata
PUT /v1/purchase_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Purchase Order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
PurchaseOrderResourceMetadatas
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Delete Purchase Order Metadata
DELETE /v1/purchase_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Returns
Working with returns.
List Order Returns
GET /v1/orders/returns
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"order_id": 1,
"shipping_address_id": 1,
"warehouse_id": 1,
"status": "pending",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"order_return_items": [
{
"id": 1,
"order_return_id": 1,
"order_goodsout_line_item_id": 1,
"order_goodsout_line_id": 1,
"product_component_id": 1,
"sku": "DEMO-SKU-01",
"exchanged_product_component_id": 1,
"expected_quantity": 2,
"received_quantity": 2,
"expiry_date": "2019-11-25T14:52:56.000Z",
"received_date": "2019-11-25T14:52:56.000Z",
"action": "refund",
"order_return_item_reason_id": 1,
"description": "Damaged in box",
"correct_item": "YES",
"resellable": "NO",
"status": "pending",
"authorisation_required": "NO",
"rejected_reason": "Outside agreed return window",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
],
"tags": [
{
"name": "Processed",
"shortcode": "processed",
"description": "Processed by a 3rd party system"
}
]
}
]
}
List order returns
Return Type
array<OrderReturns>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| status | IN, NOT_IN |
|
| order.channel.organisation.id | IN, NOT_IN |
|
| order.channel.id | IN, NOT_IN |
|
| warehouse.id | IN |
|
| tags.shortcode | IN, NOT_IN |
Sortings
Results can be sorted by the following keys: id, received_date.
Available expands
| Field | Return Type | Description |
|---|---|---|
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
order_return_items |
array<OrderReturnItems> |
Order Return Items. |
order_return_items.component |
ProductComponents |
Product component. |
order_return_items.exchange_component |
ProductComponents |
Product component. |
order_return_items.reason |
OrderReturnItemReasons |
Order Return Item Reasons. |
tags |
array<SummarisedTag> |
A tag. |
warehouse |
Warehouses |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::RETURNS::READ.
View Order Return
GET /v1/orders/returns/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"order_id": 1,
"shipping_address_id": 1,
"warehouse_id": 1,
"status": "pending",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"order_return_items": [
{
"id": 1,
"order_return_id": 1,
"order_goodsout_line_item_id": 1,
"order_goodsout_line_id": 1,
"product_component_id": 1,
"sku": "DEMO-SKU-01",
"exchanged_product_component_id": 1,
"expected_quantity": 2,
"received_quantity": 2,
"expiry_date": "2019-11-25T14:52:56.000Z",
"received_date": "2019-11-25T14:52:56.000Z",
"action": "refund",
"order_return_item_reason_id": 1,
"description": "Damaged in box",
"correct_item": "YES",
"resellable": "NO",
"status": "pending",
"authorisation_required": "NO",
"rejected_reason": "Outside agreed return window",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
}
View order return
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
order_return_items |
array<OrderReturnItems> |
Order Return Items. |
order_return_items.component |
ProductComponents |
Product component. |
order_return_items.exchange_component |
ProductComponents |
Product component. |
order_return_items.reason |
OrderReturnItemReasons |
Order Return Item Reasons. |
warehouse |
Warehouses |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::RETURNS::READ.
Create Return
POST /v1/orders/returns
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/returns?expand=*", [
"body" => json_encode([
"reference" => "#154254",
"items" => [
[
"sku" => "GREEN-BALL",
"quantity" => 4,
"action" => "Refund",
"reason" => "Size and fit - too large",
"description" => "I need a size XL",
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/returns?expand=*', {
reference: "#154254",
items: [
{
sku: "GREEN-BALL",
quantity: 4,
action: "Refund",
reason: "Size and fit - too large",
description: "I need a size XL",
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns?expand=*",
body: {
"reference": "#154254",
"items": [
{
"sku": "GREEN-BALL",
"quantity": 4,
"action": "Refund",
"reason": "Size and fit - too large",
"description": "I need a size XL"
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/returns?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reference": "#154254",
"items": [
{
"sku": "GREEN-BALL",
"quantity": 4,
"action": "Refund",
"reason": "Size and fit - too large",
"description": "I need a size XL"
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"order_id": 1,
"shipping_address_id": 1,
"warehouse_id": 1,
"status": "pending",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"order_return_items": [
{
"id": 1,
"order_return_id": 1,
"order_goodsout_line_item_id": 1,
"order_goodsout_line_id": 1,
"product_component_id": 1,
"sku": "DEMO-SKU-01",
"exchanged_product_component_id": 1,
"expected_quantity": 2,
"received_quantity": 2,
"expiry_date": "2019-11-25T14:52:56.000Z",
"received_date": "2019-11-25T14:52:56.000Z",
"action": "refund",
"order_return_item_reason_id": 1,
"description": "Damaged in box",
"correct_item": "YES",
"resellable": "NO",
"status": "pending",
"authorisation_required": "NO",
"rejected_reason": "Outside agreed return window",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
}
Creates a return.
Request Body
Return Type
Types for the Request Body
CreateReturn (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reference |
Order specific reference. | string |
requirednot nullmin length is 1 |
items |
List of items. | array<Item> |
requirednot nullmin count is 1 |
Item
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
quantity |
The quantity to return. | integer |
requirednot nullmin is 1 |
action |
The return action. | enum(refund, exchange, stock) |
requirednot null |
reason |
The reason for return. | string |
requirednot nullmin length is 1 |
description |
The description of why the item is being returned. | string |
not nullmin length is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
order_return_items |
array<OrderReturnItems> |
Order Return Items. |
Scopes
This endpoint is only available for users with scope APP::RETURNS::MANAGE.
Apply Return Tag
POST /v1/orders/returns/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/returns/:id/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/returns/:id/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/:id/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/returns/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::RETURNS::MANAGE.
Remove Return Tag
DELETE /v1/orders/returns/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::RETURNS::MANAGE.
Return Metadata
Working with return metadata.
List Return Metadata
GET /v1/orders/returns/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<ReturnResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP:RETURNS::READ.
Get Return Metadata
GET /v1/orders/returns/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP:RETURNS::READ.
Set Return Metadata
PUT /v1/orders/returns/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP:RETURNS::MANAGE.
Delete Return Metadata
DELETE /v1/orders/returns/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP:RETURNS::MANAGE.
Vendors Orders
Working with vendor orders.
List Vendor Orders
GET /v1/vendor_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.462Z",
"deliver_from": "2025-09-05T15:24:10.463Z",
"deliver_to": "2025-09-10T15:24:10.463Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.463Z",
"modified": "2025-08-31T15:24:10.463Z"
}
]
}
Retrieves a list of stored vendor orders.
Return Type
array<VendorOrders>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| status | IN, NOT_IN |
|
| order_channel_id | IN, NOT_IN |
|
| ordered_on | ON_DATE, LESS_THAN, MORE_THAN |
|
| finalised | ON_DATE, LESS_THAN, MORE_THAN |
|
| code | EQUALS, LIKE |
Sortings
Results can be sorted by the following keys: finalised, ordered_on.
Available expands
| Field | Return Type | Description |
|---|---|---|
address_country |
Countries |
A country. |
currency |
Currencies |
Currency data. |
items |
array<VendorOrderItems> |
A line in a vendor order. |
items.product_variation |
ProductVariations |
Marketplace listable products’ data. |
items.status |
VendorOrderItemStatuses |
A status for a vendor order item. |
order_channel |
OrderChannels |
Customer order groups. |
warehouse |
Warehouses |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Create Vendor Order
POST /v1/vendor_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/vendor_orders", [
"body" => json_encode([
"order_channel_id" => 3,
"vendor_order" => [
"code" => "QWER123ASD",
"vendor" => "VEN-01",
"warehouse" => "CHR",
"ordered_on" => "2025-11-07T00:00:00.000Z",
"deliver_from" => "2025-11-07T00:00:00.000Z",
"deliver_to" => "2025-11-14T00:00:00.000Z",
"freight_terms" => null,
"payment_method" => null,
"payment_terms" => null,
"purchasing_entity" => "#",
"delivery_party" => "#",
"currency_id" => "GBP",
"items" => [
[
"product_variation_id" => 1,
"model_number" => "MODEL_30845",
"asin" => "ASIN34w5-068",
"sku" => "SKU_01",
"name" => "Example Product 01",
"expected_delivery_date" => "2025-09-05T15:24:10.465Z",
"submitted_quantity" => 1000,
"unit_cost" => 12.34,
],
],
"address_first_name" => "Amazon",
"address_last_name" => "Inc.",
"address_company" => null,
"address_line_one" => "1 Amazon Rd",
"address_line_two" => null,
"address_line_three" => null,
"address_postcode" => "BH23 4FL",
"address_town" => "Christchurch",
"address_country" => "GB",
"address_county" => "Dorset",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/vendor_orders', {
order_channel_id: 3,
vendor_order: {
code: "QWER123ASD",
vendor: "VEN-01",
warehouse: "CHR",
ordered_on: "2025-11-07T00:00:00.000Z",
deliver_from: "2025-11-07T00:00:00.000Z",
deliver_to: "2025-11-14T00:00:00.000Z",
freight_terms: nil,
payment_method: nil,
payment_terms: nil,
purchasing_entity: "#",
delivery_party: "#",
currency_id: "GBP",
items: [
{
product_variation_id: 1,
model_number: "MODEL_30845",
asin: "ASIN34w5-068",
sku: "SKU_01",
name: "Example Product 01",
expected_delivery_date: "2025-09-05T15:24:10.465Z",
submitted_quantity: 1000,
unit_cost: 12.34,
},
],
address_first_name: "Amazon",
address_last_name: "Inc.",
address_company: nil,
address_line_one: "1 Amazon Rd",
address_line_two: nil,
address_line_three: nil,
address_postcode: "BH23 4FL",
address_town: "Christchurch",
address_country: "GB",
address_county: "Dorset",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders",
body: {
"order_channel_id": 3,
"vendor_order": {
"code": "QWER123ASD",
"vendor": "VEN-01",
"warehouse": "CHR",
"ordered_on": "2025-11-07T00:00:00.000Z",
"deliver_from": "2025-11-07T00:00:00.000Z",
"deliver_to": "2025-11-14T00:00:00.000Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": "#",
"delivery_party": "#",
"currency_id": "GBP",
"items": [
{
"product_variation_id": 1,
"model_number": "MODEL_30845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.465Z",
"submitted_quantity": 1000,
"unit_cost": 12.34
}
],
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_country": "GB",
"address_county": "Dorset"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/vendor_orders' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_channel_id": 3,
"vendor_order": {
"code": "QWER123ASD",
"vendor": "VEN-01",
"warehouse": "CHR",
"ordered_on": "2025-11-07T00:00:00.000Z",
"deliver_from": "2025-11-07T00:00:00.000Z",
"deliver_to": "2025-11-14T00:00:00.000Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": "#",
"delivery_party": "#",
"currency_id": "GBP",
"items": [
{
"product_variation_id": 1,
"model_number": "MODEL_30845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.465Z",
"submitted_quantity": 1000,
"unit_cost": 12.34
}
],
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_country": "GB",
"address_county": "Dorset"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.464Z",
"deliver_from": "2025-09-05T15:24:10.464Z",
"deliver_to": "2025-09-10T15:24:10.464Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.464Z",
"modified": "2025-08-31T15:24:10.464Z"
}
}
Creates a new vendor order.
Request Body
Return Type
Types for the Request Body
CreateVendorOrderPayload (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_channel_id |
Target order channel ID. | integer |
requirednot nullmin is 1 |
vendor_order |
The vendor order. | VendorOrder |
requirednot null |
Item
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
ID of the product variation. | integer |
requiredmin is 1 |
model_number |
Model number. | string |
requiredmin length is 1max length is 191 |
asin |
ASIN. | string |
requiredmin length is 1max length is 191 |
sku |
SKU. | string |
requiredmin length is 1max length is 191 |
name |
Product name. | string |
requiredmin length is 1max length is 191 |
expected_delivery_date |
Expected delivery date. | date |
required |
submitted_quantity |
Submitted quantity. | integer |
requirednot nullmin is 1 |
unit_cost |
Unit cost. | number |
requirednot null |
VendorOrder
| Key | Description | Types | Restrictions |
|---|---|---|---|
code |
Third party ID. | string |
requirednot nullmin length is 1max length is 100 |
vendor |
Description of the vendor. | string |
requirednot nullmin length is 1max length is 191 |
warehouse |
Delivery destination. | string |
requiredmin length is 1max length is 191 |
ordered_on |
Date of ordering as described by the third party. | date |
requirednot null |
deliver_from |
Start date of requested delivery window. | date |
requirednot null |
deliver_to |
End date of requested delivery window. | date |
requirednot null |
freight_terms |
Freight terms. | string |
requiredmin length is 1max length is 191 |
payment_method |
Payment method. | string |
requiredmin length is 1max length is 191 |
payment_terms |
Payment terms. | string |
requiredmin length is 1max length is 191 |
purchasing_entity |
Purchasing entity. | string |
requiredmin length is 1max length is 191 |
delivery_party |
Delivery Party. | string |
requiredmin length is 1max length is 191 |
currency_id |
ISO code of currency. | string |
requirednot nullmin length is 2max length is 3match is /^[A-Z]{2,3}$/i |
items |
Vendor order items. | array<Item> |
requirednot nullmin count is 1 |
address_first_name |
First name of address. | string |
required |
address_last_name |
Last name of address. | string |
required |
address_company |
Company name of address. | string |
required |
address_line_one |
Address line one. | string |
required |
address_line_two |
Address line two. | string |
required |
address_line_three |
Address line three. | string |
required |
address_postcode |
Postcode of address. | string |
required |
address_town |
Town of address. | string |
required |
address_country |
Country ISO of address. | string |
requiredmin length is 2max length is 3match is /^[a-z]{2,3}$/i |
address_county |
County or region of address. | string |
required |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
Get Vendor Order
GET /v1/vendor_orders/:vendorOrderId
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/123", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/123', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/123' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.465Z",
"deliver_from": "2025-09-05T15:24:10.465Z",
"deliver_to": "2025-09-10T15:24:10.465Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.465Z",
"modified": "2025-08-31T15:24:10.466Z"
}
}
Retrieves a single vendor order.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Confirm Vendor Order
PUT /v1/vendor_orders/:vendorOrderId/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/vendor_orders/123/complete", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/vendor_orders/123/complete', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/complete",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/vendor_orders/123/complete' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.466Z",
"deliver_from": "2025-09-05T15:24:10.466Z",
"deliver_to": "2025-09-10T15:24:10.466Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.466Z",
"modified": "2025-08-31T15:24:10.466Z"
}
}
Marks a vendor order as confirmed.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope vendor-orders.
Vendor Order Items
Working with vendor orders items.
List Vendor Order Items
GET /v1/vendor_orders/:vendorOrderId/items
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 4567,
"vendor_order_id": 123,
"vendor_order_item_status_id": 1,
"model_number": "MODEL_309845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"product_variation_id": 687,
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.467Z",
"confirmed_delivery_date": "2025-09-06T15:24:10.467Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-08-31T15:24:10.467Z",
"modified": "2025-08-31T15:24:10.467Z"
}
]
}
Extracts a list of items in a given vendor order.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
Return Type
array<VendorOrderItems>
Available expands
| Field | Return Type | Description |
|---|---|---|
product_variation |
ProductVariations |
Marketplace listable products’ data. |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Get Vendor Order Item
GET /v1/vendor_orders/:vendorOrderId/items/:vendorOrderItemId
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 4567,
"vendor_order_id": 123,
"vendor_order_item_status_id": 1,
"model_number": "MODEL_309845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"product_variation_id": 687,
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.467Z",
"confirmed_delivery_date": "2025-09-06T15:24:10.467Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-08-31T15:24:10.467Z",
"modified": "2025-08-31T15:24:10.467Z"
}
}
Retrieves a single vendor order item.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
- :vendorOrderItemId: [1-9][0-9]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Update Vendor Order Item
PUT /v1/vendor_orders/:vendorOrderId/items/:vendorOrderItemId
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567", [
"body" => json_encode([
"vendor_order_item_status_id" => 1,
"accepted_quantity" => 850,
"expected_delivery_date" => "2025-09-05T15:24:10.468Z",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567', {
vendor_order_item_status_id: 1,
accepted_quantity: 850,
expected_delivery_date: "2025-09-05T15:24:10.468Z",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567",
body: {
"vendor_order_item_status_id": 1,
"accepted_quantity": 850,
"expected_delivery_date": "2025-09-05T15:24:10.468Z"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"vendor_order_item_status_id": 1,
"accepted_quantity": 850,
"expected_delivery_date": "2025-09-05T15:24:10.468Z"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 4567,
"vendor_order_id": 123,
"vendor_order_item_status_id": 1,
"model_number": "MODEL_309845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"product_variation_id": 687,
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.468Z",
"confirmed_delivery_date": "2025-09-06T15:24:10.468Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-08-31T15:24:10.468Z",
"modified": "2025-08-31T15:24:10.468Z"
}
}
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
- :vendorOrderItemId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateVendorOrderItem (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
vendor_order_item_status_id |
ID of the status the item needs to take. | integer |
requirednot nullmin is 1 |
accepted_quantity |
Accepted quantity. | integer |
requirednot nullmin is 0 |
expected_delivery_date |
Expected delivery date. | date |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
Vendor Order Metadata
Working with vendor orders metadata.
List Vendor Order Metadata
GET /v1/vendor_orders/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a vendor order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<VendorOrderResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Get Vendor Order Metadata
GET /v1/vendor_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a vendor order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Set Vendor Order Metadata
PUT /v1/vendor_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Vendor.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
Delete Vendor Order Metadata
DELETE /v1/vendor_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a vendor order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
Virtual Warehouses
Working with virtual warehouses
List Virtual Warehouses
GET /v1/warehouses/virtual
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/virtual", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/virtual', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/virtual' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z"
}
]
}
Lists virtual warehouses.
Return Type
array<VirtualWarehouses>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| active | EQUALS |
Sortings
Results can be sorted by the following keys: name.
Scopes
This endpoint is only available for users with scope APP::MISC.
Create Virtual Warehouse
POST /v1/warehouses/virtual
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/warehouses/virtual?expand=*", [
"body" => json_encode([
"warehouse" => [
"name" => "Amazon FBA",
"description" => "Stock shipped to Amazon.",
"api_managed_only" => true,
"location_creation_enabled" => true,
],
"location" => [
"barcode" => "SHOWROOM",
"sellable" => true,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/warehouses/virtual?expand=*', {
warehouse: {
name: "Amazon FBA",
description: "Stock shipped to Amazon.",
api_managed_only: true,
location_creation_enabled: true,
},
location: {
barcode: "SHOWROOM",
sellable: true,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual?expand=*",
body: {
"warehouse": {
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"api_managed_only": true,
"location_creation_enabled": true
},
"location": {
"barcode": "SHOWROOM",
"sellable": true
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/warehouses/virtual?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse": {
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"api_managed_only": true,
"location_creation_enabled": true
},
"location": {
"barcode": "SHOWROOM",
"sellable": true
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z",
"locations": [
{
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
]
}
}
Create virtual warehouses.
Request Body
Return Type
Types for the Request Body
CreateVirtualWarehouse (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse |
Warehouse details. | Warehouse |
requirednot null |
location |
Location details. | CreateVirtualWarehouseLocation |
requirednot null |
CreateVirtualWarehouseLocation
| Key | Description | Types | Restrictions |
|---|---|---|---|
barcode |
Identifier of the location the virtual warehouse starts out with. | string |
requirednot nullmin length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
requirednot null |
Warehouse
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name. | string |
requirednot nullmin length is 1 |
description |
Description. | string |
requirednot nullmin length is 0 |
api_managed_only |
Is this warehouse managed by an API? | boolean |
requirednot null |
location_creation_enabled |
Is creating additional locations allowed? | boolean |
requirednot null |
Available expands
| Field | Return Type | Description |
|---|---|---|
locations |
array<VirtualWarehouseLocations> |
A location in a virtual warehouse. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Void Virtual Warehouse
PUT /v1/warehouses/virtual/:warehouseId/void
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/void", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/void', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/void",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/void' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z"
}
}
Deactivates a virtual warehouse.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
List Locations
GET /v1/warehouses/virtual/:warehouseId/locations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
]
}
Lists virtual warehouse locations.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Return Type
array<VirtualWarehouseLocations>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| active | EQUALS |
|
| barcode | EQUALS, LIKE, NOT_LIKE, IN, NOT_IN |
|
| sellable | EQUALS |
Sortings
Results can be sorted by the following keys: barcode.
Scopes
This endpoint is only available for users with scope APP::MISC.
Create Location
POST /v1/warehouses/virtual/:warehouseId/locations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations", [
"body" => json_encode([
"barcode" => "SHOWROOM",
"sellable" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations', {
barcode: "SHOWROOM",
sellable: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations",
body: {
"barcode": "SHOWROOM",
"sellable": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"barcode": "SHOWROOM",
"sellable": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
}
Create a location for a virtual warehouse.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
CreateVirtualWarehouseLocation
Return Type
Types for the Request Body
CreateVirtualWarehouseLocation (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
barcode |
Identifier of the location the virtual warehouse starts out with. | string |
requirednot nullmin length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Void Virtual Warehouse Location
PUT /v1/warehouses/virtual/:warehouseId/locations/:locationId/void
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
}
Deactivates a virtual warehouse location.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
- :locationId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
List Virtual Stock
GET /v1/warehouses/virtual/stocks
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"virtual_warehouse_location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"location": {
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z",
"warehouse": {
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z"
}
},
"product_variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
Lists virtual stock.
Return Type
array<VirtualStocks>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| quantity | LESS_THAN, EQUALS, MORE_THAN |
|
| expiry_date | LESS_THAN, MORE_THAN, ON_DATE |
|
| location.barcode | EQUALS, LIKE, NOT_LIKE, IN, NOT_IN |
|
| location.virtual_warehouse_id | IN |
|
| product_variation.sku | LIKE, NOT_LIKE, IN |
Available expands
| Field | Return Type | Description |
|---|---|---|
location |
VirtualWarehouseLocations |
A location in a virtual warehouse. |
location.warehouse |
VirtualWarehouses |
Storages that are outside of BladePRO’s control, such as showrooms, or stock at Amazon’s warehouse. |
product_variation |
ProductVariations |
Marketplace listable products’ data. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Adjust Virtual Stock - Delta
PUT /v1/warehouses/virtual/:warehouseId/locations/:locationId/stocks/:variationId/adjust
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust", [
"body" => json_encode([
"quantity" => -10,
"expiry_date" => null,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust', {
quantity: -10,
expiry_date: nil,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust",
body: {
"quantity": -10,
"expiry_date": null
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"quantity": -10,
"expiry_date": null
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"virtual_warehouse_location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Adjusts stock by a delta value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
- :locationId: [1-9][0-9]{0,}
- :variationId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
AdjustVirtualStockDelta (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
quantity |
Quantity to adjust the stock by. | integer |
requirednot nullnot equals is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Adjust Virtual Stock - Absolute
PUT /v1/warehouses/virtual/:warehouseId/locations/:locationId/stocks/:variationId/set
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set", [
"body" => json_encode([
"quantity" => 1000,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set', {
quantity: 1000,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set",
body: {
"quantity": 1000
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"quantity": 1000
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"virtual_warehouse_location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Adjusts stock to an absolute value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
- :locationId: [1-9][0-9]{0,}
- :variationId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
AdjustVirtualStockAbsolute (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
quantity |
Quantity to set the value to. | integer |
requirednot nullmin is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Bulk Adjust Virtual Stock - Delta
PUT /v1/warehouses/virtual/:warehouseId/stocks/adjust
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust", [
"body" => json_encode([
[
"location_id" => 1,
"product_variation_id" => 1,
"quantity" => -15,
"expiry_date" => null,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust', [
{
location_id: 1,
product_variation_id: 1,
quantity: -15,
expiry_date: nil,
},
], {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust",
body: [
{
"location_id": 1,
"product_variation_id": 1,
"quantity": -15,
"expiry_date": null
}
],
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '[
{
"location_id": 1,
"product_variation_id": 1,
"quantity": -15,
"expiry_date": null
}
]'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"affected": 15
}
}
Adjust stock by a delta value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
array<BulkAdjustVirtualStockDelta>
Return Type
Types for the Request Body
BulkAdjustVirtualStockDelta
| Key | Description | Types | Restrictions |
|---|---|---|---|
location_id |
Virtual warehouse location ID. Required if the warehouse allows for multiple locations. | integer |
not nullmin is 1 |
product_variation_id |
Product variation ID. | integer |
requirednot nullmin is 1 |
quantity |
Quantity to adjust the stock by. | integer |
requirednot nullnot equals is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Bulk Adjust Virtual Stock - Absolute
PUT /v1/warehouses/virtual/:warehouseId/stocks/set
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set", [
"body" => json_encode([
"stocks" => [
[
"location_id" => 1,
"product_variation_id" => 1,
"quantity" => 1000,
"expiry_date" => null,
],
],
"set_skipped_skus_to_zero" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set', {
stocks: [
{
location_id: 1,
product_variation_id: 1,
quantity: 1000,
expiry_date: nil,
},
],
set_skipped_skus_to_zero: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set",
body: {
"stocks": [
{
"location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null
}
],
"set_skipped_skus_to_zero": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"stocks": [
{
"location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null
}
],
"set_skipped_skus_to_zero": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"affected": 15
}
}
Adjust stock to an absolute value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
BulkAdjustVirtualStockAbsolute
Return Type
Types for the Request Body
BulkAdjustVirtualStockAbsolute (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
stocks |
Values to be set. | array<Stock> |
requirednot nullmin count is 1 |
set_skipped_skus_to_zero |
Should unlisted products in the listed locations be set to 0 quantity? | boolean |
requirednot null |
Stock
| Key | Description | Types | Restrictions |
|---|---|---|---|
location_id |
Virtual warehouse location ID. Required if the warehouse allows for multiple locations. | integer |
not nullmin is 1 |
product_variation_id |
Product variation ID. | integer |
requirednot nullmin is 1 |
quantity |
Quantity to set the stock to. | integer |
requirednot nullmin is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Warehouses
Working with warehouses
List Warehouses
GET /v1/warehouses
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU"
}
}
]
}
List all warehouses.
Return Type
array<Warehouses>
Available expands
| Field | Return Type | Description |
|---|---|---|
country |
Countries |
A country. |
currency |
Currencies |
Currency data. |
Scopes
This endpoint is only available for users with scope APP::MISC.
List Carton Label Types
GET /v1/warehouses/carton_label_types
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 1,
"name": "Nordstrom",
"active": 1,
"carton_label_type_references": [
{
"name": "Carrier",
"code": "CARR",
"type": "text",
"validation_pattern": "[a-zA-Z0-9_ -]*"
}
]
}
]
}
Lists carton label types.
Return Type
array<CartonLabelTypes>
Available expands
| Field | Return Type | Description |
|---|---|---|
carton_label_type_references |
array<CartonLabelTypeReferences> |
References for carton label types. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Marketplaces
Marketplaces
Sync marketplace listings
POST /v1/marketplaces/listings/sync
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/marketplaces/listings/sync", [
"body" => json_encode([
[
"listing_reference" => "ABC-123",
"listing_variation_reference" => "ABC-123",
"sku" => "ACME_BICY",
"title" => "ACME Bicycle",
"quantity" => 50,
"price" => 122.99,
"status" => "live",
"metadata" => [
[
"key" => "GRAPHQL_ID",
"value" => "http://my-graphql-id/132163",
],
],
"locations" => [
[
"marketplace_location_id" => 81,
"quantity" => 0,
"marketplace_reference" => null,
],
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/marketplaces/listings/sync', [
{
listing_reference: "ABC-123",
listing_variation_reference: "ABC-123",
sku: "ACME_BICY",
title: "ACME Bicycle",
quantity: 50,
price: 122.99,
status: "live",
metadata: [
{
key: "GRAPHQL_ID",
value: "http://my-graphql-id/132163",
},
],
locations: [
{
marketplace_location_id: 81,
quantity: 0,
marketplace_reference: nil,
},
],
},
], {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/sync",
body: [
{
"listing_reference": "ABC-123",
"listing_variation_reference": "ABC-123",
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"quantity": 50,
"price": 122.99,
"status": "live",
"metadata": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
],
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/marketplaces/listings/sync' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '[
{
"listing_reference": "ABC-123",
"listing_variation_reference": "ABC-123",
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"quantity": 50,
"price": 122.99,
"status": "live",
"metadata": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
]'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"listing_reference": "ABC-123",
"listing_variation_reference": "ABC-123",
"sku": "ABC",
"result": "updated",
"error": "Failed to look up SKU: ABC-XYX. Please ensure this product is set in BladePRO before importing the listing."
}
]
}
Sync listings from the marketplace down to BladePRO.
Request Body
array<SyncMarketplaceListingValidator>
Return Type
array<SyncedMarketplaceListing>
Types for the Request Body
Location
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_location_id |
ID of the marketplace location mapping. | integer |
requirednot nullmin is 1 |
quantity |
Current quantity. | integer |
requirednot nullmin is 0 |
marketplace_reference |
Marketplace reference for the link between the listing variation and the marketplace location. | string |
ResourceMetadata
| Key | Description | Types | Restrictions |
|---|---|---|---|
key |
Key of the resource metadata. | string |
requirednot nullmin length is 1 |
value |
Value of the resource metadata. | string |
requirednot nullmin length is 1 |
SyncMarketplaceListingValidator
| Key | Description | Types | Restrictions |
|---|---|---|---|
listing_reference |
Parent or first reference provided by the 3rd party marketplace. | string |
requirednot nullmin length is 1 |
listing_variation_reference |
Child or second reference provided by the 3rd party marketplace. You may repeat the first reference if there’s only one. | string |
requirednot nullmin length is 1 |
sku |
Current marketplace SKU. | string |
requirednot nullmin length is 1 |
title |
Current marketplace title. | string |
requirednot nullmin length is 1 |
quantity |
Current marketplace stock level. | integer |
requirednot nullmin is 0 |
price |
Current marketplace price. | number |
requirednot nullmin is 0 |
status |
Current marketplace status. | string |
not null |
metadata |
List of resource metadatas. | array<ResourceMetadata> |
|
locations |
List of resource locations. | array<Location> |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Import marketplace listings
POST /v1/marketplaces/listings/import
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*", [
"body" => json_encode([
"marketplace_reference" => "FOREIGN_ID",
"attributes" => [
[
"code" => "ASIN",
"value" => "ASODAIY12371938",
"label" => "ASIN",
],
],
"options" => [
"Frame Colour",
],
"resource_metadatas" => [
[
"key" => "GRAPHQL_ID",
"value" => "http://my-graphql-id/132163",
],
],
"variations" => [
[
"product_variation_id" => 8435,
"sku" => "ACME_BICY",
"title" => "ACME Bicycle",
"subtitle" => null,
"description" => "A brand new ACME bicycle.",
"marketplace_reference" => "FOREIGN_ID",
"quantity" => 50,
"price" => 122.99,
"status" => "live",
"keep_price" => true,
"keep_title" => true,
"keep_description" => true,
"options" => [
"Sky Blue",
],
"attributes" => [
[
"code" => "ASIN",
"value" => "ASODAIY12371938",
"label" => "ASIN",
],
],
"resource_metadatas" => [
[
"key" => "GRAPHQL_ID",
"value" => "http://my-graphql-id/132163",
],
],
"images" => [
"https://some-cdn/image01.jpeg",
],
"locations" => [
[
"marketplace_location_id" => 81,
"quantity" => 0,
"marketplace_reference" => null,
],
],
],
],
"product_category_id" => 8435,
"images" => [
"https://some-cdn/image01.jpeg",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*', {
marketplace_reference: "FOREIGN_ID",
attributes: [
{
code: "ASIN",
value: "ASODAIY12371938",
label: "ASIN",
},
],
options: [
"Frame Colour",
],
resource_metadatas: [
{
key: "GRAPHQL_ID",
value: "http://my-graphql-id/132163",
},
],
variations: [
{
product_variation_id: 8435,
sku: "ACME_BICY",
title: "ACME Bicycle",
subtitle: nil,
description: "A brand new ACME bicycle.",
marketplace_reference: "FOREIGN_ID",
quantity: 50,
price: 122.99,
status: "live",
keep_price: true,
keep_title: true,
keep_description: true,
options: [
"Sky Blue",
],
attributes: [
{
code: "ASIN",
value: "ASODAIY12371938",
label: "ASIN",
},
],
resource_metadatas: [
{
key: "GRAPHQL_ID",
value: "http://my-graphql-id/132163",
},
],
images: [
"https://some-cdn/image01.jpeg",
],
locations: [
{
marketplace_location_id: 81,
quantity: 0,
marketplace_reference: nil,
},
],
},
],
product_category_id: 8435,
images: [
"https://some-cdn/image01.jpeg",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*",
body: {
"marketplace_reference": "FOREIGN_ID",
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"options": [
"Frame Colour"
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"variations": [
{
"product_variation_id": 8435,
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"subtitle": null,
"description": "A brand new ACME bicycle.",
"marketplace_reference": "FOREIGN_ID",
"quantity": 50,
"price": 122.99,
"status": "live",
"keep_price": true,
"keep_title": true,
"keep_description": true,
"options": [
"Sky Blue"
],
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"images": [
"https://some-cdn/image01.jpeg"
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
],
"product_category_id": 8435,
"images": [
"https://some-cdn/image01.jpeg"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"marketplace_reference": "FOREIGN_ID",
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"options": [
"Frame Colour"
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"variations": [
{
"product_variation_id": 8435,
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"subtitle": null,
"description": "A brand new ACME bicycle.",
"marketplace_reference": "FOREIGN_ID",
"quantity": 50,
"price": 122.99,
"status": "live",
"keep_price": true,
"keep_title": true,
"keep_description": true,
"options": [
"Sky Blue"
],
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"images": [
"https://some-cdn/image01.jpeg"
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
],
"product_category_id": 8435,
"images": [
"https://some-cdn/image01.jpeg"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"marketplace_reference": "FOREIGN_ID",
"product_category_id": 4,
"marketplace_listing_variations": [
{
"id": 1235,
"title": "ACME Bicycle",
"subtitle": null,
"description": "A brand new ACME bicycle.",
"listing_mode": "keep_in_sync",
"stock_mode": "keep_in_sync",
"marketplace_reference": "FOREIGN_ID",
"price": 122.99,
"product_variation_id": 8435,
"quantity": 50,
"sku": "ACME_BICY",
"status": "live",
"options": [
{
"id": 34512,
"marketplace_listing_option_id": 9745,
"value": "Sky Blue"
}
]
}
],
"options": [
{
"id": 9745,
"name": "Frame colour"
}
]
}
}
Creates a marketplace listings with all the marketplace references. This endpoint always expands all expandables.
Request Body
Return Type
Types for the Request Body
ImportMarketplaceListing (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_reference |
Marketplace ID. | string |
requirednot nullmin length is 1 |
attributes |
List of attributes. | array<Attribute> |
|
options |
List of option labels. | array<string> |
|
resource_metadatas |
List of resource metadatas. | array<ResourceMetadata> |
|
variations |
List of marketplace listing variations. | array<Variation> |
|
product_category_id |
The ID for the product category. | integer |
requiredmin is 1 |
images |
List of image URLs. | array<string> |
Attribute
| Key | Description | Types | Restrictions |
|---|---|---|---|
code |
Code to reference the attribute by. | string |
requirednot nullmin length is 1 |
value |
Value of the attribute. | string |
requiredmin length is 0 |
label |
Label of the attribute. | string |
requiredmin length is 0 |
MarketplaceLocation
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_location_id |
ID of the marketplace location mapping. | integer |
requirednot nullmin is 1 |
quantity |
Current quantity. | integer |
requirednot nullmin is 0 |
marketplace_reference |
Marketplace reference for the link between the listing variation and the marketplace location. | string |
ResourceMetadata
| Key | Description | Types | Restrictions |
|---|---|---|---|
key |
Key of the resource metadata. | string |
requirednot nullmin length is 1 |
value |
Value of the resource metadata. | string |
requirednot nullmin length is 1 |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
The ID for the product variation. | integer |
requirednot nullmin is 1 |
sku |
Current marketplace SKU. | string |
requirednot nullmin length is 1 |
title |
Current marketplace title. | string |
requirednot nullmin length is 1 |
subtitle |
Current marketplace subtitle. | string |
min length is 1 |
description |
Current marketplace description. | string |
min length is 0 |
marketplace_reference |
The marketplace reference. | string |
requirednot nullmin length is 1 |
quantity |
Current marketplace stock level. | integer |
requirednot nullmin is 0 |
price |
Current marketplace price. | number |
requirednot nullmin is 0 |
status |
The listing status. | enum(draft, live, void, pending_live, pending_void) |
requirednot null |
keep_price |
Should BladePRO keep the price. | boolean |
requirednot null |
keep_title |
Should BladePRO keep the title. | boolean |
requirednot null |
keep_description |
Should BladePRO keep the description. | boolean |
requirednot null |
options |
List of option values. | array<string> |
|
attributes |
List of attributes | array<Attribute> |
|
resource_metadatas |
List of resource metadatas. | array<ResourceMetadata> |
|
images |
List of image URLs. | array<string> |
|
locations |
List of marketplace location mappings. | array<MarketplaceLocation> |
Available expands
| Field | Return Type | Description |
|---|---|---|
marketplace_listing_variations |
array<ImportMarketplaceListingVariation> |
A marketplace listing variation during import. |
marketplace_listing_variations.options |
array<ImportMarketplaceListingVariationOption> |
A marketplace listing variation option during import. |
options |
array<ImportMarketplaceListingOption> |
A marketplace listing option during import. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Get marketplace listing variations
GET /v1/marketplaces/listings/variations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": "123",
"marketplace_listing_id": "123",
"marketplace_reference": "123456",
"sku": "ABC_123",
"price": "12.99",
"status": "live",
"listing_mode": "keep_in_sync",
"stock_mode": "keep_in_sync",
"marketplace_listing": {
"id": "123",
"marketplace_reference": "123456",
"attributes": [
{
"label_json": "{}",
"value": "f376ji34G4F",
"attribute": {
"id": "4324",
"name": "External Product Code",
"description": "The code of the product as defined on Amazon.",
"code": "EXTERNAL_PRODUCT_CODE"
}
}
],
"options": [
{
"id": 1234,
"name": "Colour"
}
],
"images": [
{
"primary": false,
"sequence": false,
"url": false
}
],
"related_listing_variations": [
{
"id": 67834,
"marketplace_reference": "ABC123",
"status": "pending_live",
"sku": "RED-CAR-001"
}
]
},
"product_variation": {
"id": 432,
"sku": "RED-CAR-001",
"aspects": [
{
"value": "red",
"label": "Red",
"aspect": {
"name": "Colour",
"code": "21234_CAR_COLOUR",
"required": true,
"type": "dropdown"
}
}
],
"category": {
"id": 32,
"name": "Bikes",
"preferences": [
{
"value": "red",
"label": "Red",
"preference": {
"name": "Colour",
"code": "21234_CAR_COLOUR"
}
}
]
}
},
"attributes": [
{
"label_json": "{}",
"value": "f376ji34G4F",
"attribute": {
"id": "4324",
"name": "External Product Code",
"description": "The code of the product as defined on Amazon.",
"code": "EXTERNAL_PRODUCT_CODE"
}
}
],
"options": [
{
"id": 12345,
"marketplace_listing_option_id": 1234,
"value": "Sky blue",
"option": {
"id": 1234,
"name": "Colour"
}
}
],
"images": [
{
"primary": false,
"sequence": false,
"url": false
}
]
}
]
}
Retrieves a list of marketplace listing variations.
Return Type
array<CachedMarketplaceListingVariation>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| id | IN |
|
| marketplace_reference | IN |
|
| sku | IN |
|
| marketplace_listing_id | IN |
|
| status | IN, NOT_IN |
|
| product_variation.id | IN |
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedMarketplaceListingVariationAttribute> |
Marketplace listing variation attributes |
attributes.attribute |
CachedApplicationMarketplaceAttribute |
Marketplace attribute |
images |
array<CachedMarketplaceListingVariationImage> |
Marketplace listing variation images |
marketplace_listing |
CachedMarketplaceListing |
Marketplace listing |
marketplace_listing.attributes |
array<CachedMarketplaceListingAttribute> |
Marketplace listing attributes |
marketplace_listing.attributes.attribute |
CachedApplicationMarketplaceAttribute |
Marketplace attribute |
marketplace_listing.images |
array<CachedMarketplaceListingImage> |
Marketplace listing variation images |
marketplace_listing.options |
array<CachedMarketplaceListingOption> |
Marketplace listing option definition. |
marketplace_listing.related_listing_variations |
array<CachedMarketplaceListingVariationRelatedVariation> |
Related listing variations that belong to the same parent marketplace_listing |
options |
array<CachedMarketplaceListingVariationOption> |
Value for a marketplace listing option. |
options.option |
CachedMarketplaceListingOption |
Marketplace listing option definition. |
product_variation |
CachedMarketplaceListingVariationProductVariation |
Marketplace listing variation attributes |
product_variation.aspects |
array<CachedMarketplaceListingVariationProductVariationAspects> |
Marketplace listing variation aspects |
product_variation.aspects.aspect |
CachedApplicationMarketplaceAttribute |
Marketplace attribute |
product_variation.category |
CachedMarketplaceListingVariationProductVariationCategory |
Marketplace listing variation category |
product_variation.category.preferences |
array<CachedMarketplaceListingVariationProductVariationCategoryPreferences> |
Marketplace listing variation category preferences |
product_variation.category.preferences.preference |
CachedMarketplaceListingVariationProductVariationCategoryPreferencesPreference |
Marketplace listing variation aspects |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Purge marketplace listings
PUT /v1/marketplaces/listings/variations/purge
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Detach all listings in BladePRO from the marketplace.
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Set reference
PUT /v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0",
"price": "11.99",
"status": "LIVE",
"sku": "RED_CAR_01",
"product_variation_id": "21",
"quantity": "323"
}
}
Set the listing variation marketplace reference.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
SetMarketplaceReference (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_reference |
The new reference. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Mark As Live
PUT /v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0",
"price": "11.99",
"status": "LIVE",
"sku": "RED_CAR_01",
"product_variation_id": "21",
"quantity": "323"
}
}
Set the listing variation status to live.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Mark As Void
PUT /v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0",
"price": "11.99",
"status": "LIVE",
"sku": "RED_CAR_01",
"product_variation_id": "21",
"quantity": "323"
}
}
Set the listing variation status to void.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Set reference
PUT /v1/marketplaces/listings/:listingId/marketplace_reference
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0"
}
}
Set the listing marketplace reference.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
SetMarketplaceReference (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_reference |
The new reference. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Bulk get marketplace listing stock
GET /v1/marketplaces/listings/stock/:mode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"marketplace_reference": "123456",
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
],
"variations": [
{
"id": 123,
"marketplace_reference": "123456",
"sku": "DEMO-SKU-01",
"product_variation_id": "456",
"current_listed_quantity": 12,
"quantity_to_list": 10,
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
],
"marketplace_locations": [
{
"marketplace_location_id": 567,
"current_listed_quantity": 12,
"quantity_to_list": 10
}
]
}
]
}
]
}
Retrieves a simplified list of every marketplace listing.
Parameter Regular Expressions
- :mode: all|changed
Return Type
array<MarketplaceListingStock>
Available expands
| Field | Return Type | Description |
|---|---|---|
resource_metadatas |
array<MarketplaceListingResourceMetadatas> |
Stores arbitrary data against a marketplace listing. |
variations |
array<MarketplaceListingVariationStock> |
Marketplace listing variation stock |
variations.marketplace_locations |
array<MarketplaceListingVariationStockMarketplaceLocations> |
Marketplace listing variation’s location-based stock |
variations.resource_metadatas |
array<MarketplaceListingVariationResourceMetadatas> |
Stores arbitrary data against a marketplace listing variation. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Bulk get marketplace listing cost price
GET /v1/marketplaces/listings/cost_price
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"marketplace_reference": "123456",
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
],
"variations": [
{
"id": 123,
"marketplace_reference": "123456",
"sku": "DEMO-SKU-01",
"product_variation_id": "456",
"cost_price": 15.16,
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
]
}
]
}
]
}
Retrieves a simplified list of every marketplace listing.
Return Type
array<MarketplaceListingCostPrice>
Available expands
| Field | Return Type | Description |
|---|---|---|
resource_metadatas |
array<MarketplaceListingResourceMetadatas> |
Stores arbitrary data against a marketplace listing. |
variations |
array<MarketplaceListingVariationCostPrice> |
Marketplace listing variation cost price |
variations.resource_metadatas |
array<MarketplaceListingVariationResourceMetadatas> |
Stores arbitrary data against a marketplace listing variation. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Get listing variation stock
GET /v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"marketplace_reference": "123456",
"sku": "DEMO-SKU-01",
"product_variation_id": "456",
"current_listed_quantity": 12,
"quantity_to_list": 10
}
}
Retrieves a simplified stock record for a single marketplace listing variation.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Return Type
MarketplaceListingVariationStock
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Get unclaimed marketplace listing updates
GET /v1/marketplaces/listings/updates/unclaimed
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending",
"marketplace_listing": {
"id": "2332",
"marketplace_reference": "abcdefg-1234567",
"attributes": [
{
"code": "PRODUCT_ASIN",
"name": "Product ASIN",
"value": "LIVE"
}
]
},
"marketplace_listing_variation": {
"id": "2332",
"marketplace_reference": "gfd4352gfd54-434-gfddfg",
"sku": "RED-CAR-01",
"price": "21.99",
"status": "LIVE",
"attributes": [
{
"code": "PRODUCT_ASIN",
"name": "Product ASIN",
"value": "LIVE"
}
]
}
}
]
}
Retrieves a list of the listing’s unclaimed updates.
Return Type
array<MarketplaceListingUpdates>
Available expands
| Field | Return Type | Description |
|---|---|---|
marketplace_listing |
MarketplaceListingUpdateListings |
Marketplace listing updates |
marketplace_listing.attributes |
array<MarketplaceListingUpdateAttributes> |
Marketplace attribute |
marketplace_listing_variation |
MarketplaceListingUpdateListingVariations |
Marketplace listing updates |
marketplace_listing_variation.attributes |
array<MarketplaceListingUpdateAttributes> |
Marketplace attribute |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Bulk update listed quantities
PUT /v1/marketplaces/listings/updates/bulk_update_listed_quantities
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities", [
"body" => json_encode([
[
"marketplace_listing_variation_id" => 1,
"quantity" => 142,
"marketplace_location_id" => null,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities', [
{
marketplace_listing_variation_id: 1,
quantity: 142,
marketplace_location_id: nil,
},
], {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities",
body: [
{
"marketplace_listing_variation_id": 1,
"quantity": 142,
"marketplace_location_id": null
}
],
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '[
{
"marketplace_listing_variation_id": 1,
"quantity": 142,
"marketplace_location_id": null
}
]'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"success": true
}
]
}
Updated the listed quantity in BladePRO for marketplace listings in bulk.
Request Body
array<BulkUpdateListedQuantity>
Return Type
array<MarketplaceListingBulkUpdateQuantities>
Types for the Request Body
BulkUpdateListedQuantity
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_listing_variation_id |
The marketplace listing variation id. | integer |
requirednot nullmin is 1 |
quantity |
The listed quantity. | integer |
requirednot nullmin is 0 |
marketplace_location_id |
The marketplace location ID, if enabled in the app. | integer |
requiredmin is 1 |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Finalize update
PUT /v1/marketplaces/listings/updates/:updateId/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending"
}
}
Mark update as completed.
Parameter Regular Expressions
- :updateId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Fail update
PUT /v1/marketplaces/listings/updates/:updateId/fail
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending"
}
}
Mark update as failed.
Parameter Regular Expressions
- :updateId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
FailListingUpdate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason for the failure. | string |
requirednot null |
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Finalize updates
PUT /v1/marketplaces/listings/updates/bulk/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*", [
"body" => json_encode([
"updates" => [
1,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*', {
updates: [
1,
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*",
body: {
"updates": [
1
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"updates": [
1
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending"
}
]
}
Mark updates as completed.
Request Body
CompleteMarketplaceListingUpdates
Return Type
array<MarketplaceListingUpdates>
Types for the Request Body
CompleteMarketplaceListingUpdates (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
updates |
List of update IDs. | array<number> |
requirednot nullmin count is 1 |
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Bulk render marketplace listing templates
PUT /v1/marketplaces/listings/templates/render/bulk
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk", [
"body" => json_encode([
"marketplace_listing_variation_ids" => [
1,
2,
3,
],
"locales" => [
"en",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk', {
marketplace_listing_variation_ids: [
1,
2,
3,
],
locales: [
"en",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk",
body: {
"marketplace_listing_variation_ids": [
1,
2,
3
],
"locales": [
"en"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"marketplace_listing_variation_ids": [
1,
2,
3
],
"locales": [
"en"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"marketplace_listing_variation_id": "1",
"locale": "EN",
"title": "Refrigerator",
"subtitle": "Great deal",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
}
]
}
Return a list of rendered templates grouped by marketplace listing variation.
Request Body
RenderMarketplaceListingTemplatesBulk
Return Type
array<MarketplaceListingTemplates>
Types for the Request Body
RenderMarketplaceListingTemplatesBulk (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_listing_variation_ids |
List of marketplace listing variation IDs. | array<number> |
requirednot nullmin count is 1 |
locales |
List of locale codes. | array<string> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Render marketplace listing templates
PUT /v1/marketplaces/listings/templates/render
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render", [
"body" => json_encode([
"marketplace_listing_variation_id" => 1,
"locale" => "en",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render', {
marketplace_listing_variation_id: 1,
locale: "en",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render",
body: {
"marketplace_listing_variation_id": 1,
"locale": "en"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"marketplace_listing_variation_id": 1,
"locale": "en"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"marketplace_listing_variation_id": "1",
"locale": "EN",
"title": "Refrigerator",
"subtitle": "Great deal",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
}
}
Return a list of rendered templates for a specific marketplace listing variation.
Request Body
RenderMarketplaceListingTemplates
Return Type
Types for the Request Body
RenderMarketplaceListingTemplates (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_listing_variation_id |
Marketplace listing variation ID. | number |
requirednot null |
locale |
Locale code. | string |
requirednot nullmatch is /[a-zA-Z]{2}/ |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
List marketplace locations
GET /v1/marketplaces/locations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/locations?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/locations?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/locations?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/locations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 43,
"despatch_warehouse_id": 1,
"location_name": "Christchurch",
"location_key": "uk-12a",
"location_extra": "uk-12a",
"default_stock_mode": "keep_in_sync",
"despatch_warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock_warehouses": [
{
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
]
}
Retrieves a list of all the marketplace location mappings in BladePRO.
Return Type
array<MarketplaceLocations>
Available expands
| Field | Return Type | Description |
|---|---|---|
despatch_warehouse |
Warehouses |
A warehouse. |
stock_warehouses |
array<Warehouses> |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Tags
Working with tags.
List Tags
GET /v1/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/tags", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/tags', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/tags",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
]
}
List the Application tags.
Return Type
array<Tags>
Scopes
This endpoint is only available for users with scope APP::MISC.
Create Tag
POST /v1/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/tags", [
"body" => json_encode([
"name" => "Processed",
"description" => "Marked a as processed by XYZ system.",
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/tags', {
name: "Processed",
description: "Marked a as processed by XYZ system.",
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/tags",
body: {
"name": "Processed",
"description": "Marked a as processed by XYZ system.",
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"name": "Processed",
"description": "Marked a as processed by XYZ system.",
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Create a new tag.
Request Body
Return Type
Types for the Request Body
CreateTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name of the tag. | string |
requirednot nullmin length is 1max length is 50 |
description |
Description of the tag. | string |
requirednot nullmin length is 1max length is 250 |
shortcode |
A unique code associated with the tag. | string |
requirednot nullmin length is 1max length is 20match is /[a-zA-Z0-9_-]{3,20}/ |
Scopes
This endpoint is only available for users with scope APP::MISC.
Incident Blockers
Incidents allow apps to report issues directly.
Log incident
POST /v1/log/incident
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident", [
"body" => json_encode([
"message" => "This is a message worth saving to our incident.",
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
"incident_bindings" => [
"user" => 15,
"vendor_order" => 1546,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident', {
message: "This is a message worth saving to our incident.",
details: {
x: 0,
y: 0,
z: 4,
},
incident_bindings: {
user: 15,
vendor_order: 1546,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident",
body: {
"message": "This is a message worth saving to our incident.",
"details": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 15,
"vendor_order": 1546
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "This is a message worth saving to our incident.",
"details": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 15,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident.
Request Body
Return Type
Types for the Request Body
CreateIncident (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message to be recorded. | string |
requirednot nullmin length is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
not null |
task_reference |
The ID of the related task. | string |
not nullmatch is /^[0-9a-z-]{36}$/ |
incident_bindings |
Bindings for the incident to be created. | CreateIncidentBinding |
not null |
incident_type_code |
Optional incident type code. | string |
match is /^[0-9a-zA-Z_-]{1,200}$/ |
CreateIncidentBinding
| Key | Description | Types | Restrictions |
|---|---|---|---|
user |
User ID. | number |
not null |
company |
Company ID. | number |
not null |
organisation |
Organisation ID. | number |
not null |
order_goodsout |
Order goodsout ID. | number |
not null |
order_channel |
Order channel ID. | number |
not null |
product_channel |
Product channel ID. | number |
not null |
product_variation |
Product variation ID. | number |
not null |
product_component |
Product component ID. | number |
not null |
listing |
Listing ID. | number |
not null |
vendor_order |
Vendor order ID. | number |
not null |
purchase_order |
Purchase order ID. | number |
not null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident import missing sku
POST /v1/log/incident/order_import/missing_sku
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku", [
"body" => json_encode([
"product_sku" => "ABC12335",
"product_name" => "ABC Backpack.",
"order_reference" => "#1234-123442",
"order_channel_id" => 44,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku', {
product_sku: "ABC12335",
product_name: "ABC Backpack.",
order_reference: "#1234-123442",
order_channel_id: 44,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku",
body: {
"product_sku": "ABC12335",
"product_name": "ABC Backpack.",
"order_reference": "#1234-123442",
"order_channel_id": 44,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_sku": "ABC12335",
"product_name": "ABC Backpack.",
"order_reference": "#1234-123442",
"order_channel_id": 44,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to order import missing SKU.
Request Body
CreateIncidentImportMissingSku
Return Type
Types for the Request Body
CreateIncidentImportMissingSku (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_sku |
The product SKU to be stored against the incident occurrence. | string |
requirednot nullmin length is 1 |
product_name |
The product name to be stored against the incident occurrence. | string |
not null |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident import missing tax rate
POST /v1/log/incident/order_import/missing_tax_rate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate", [
"body" => json_encode([
"tax_rate" => "12.2",
"order_reference" => "#1234-123442",
"order_channel_id" => 90,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate', {
tax_rate: "12.2",
order_reference: "#1234-123442",
order_channel_id: 90,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate",
body: {
"tax_rate": "12.2",
"order_reference": "#1234-123442",
"order_channel_id": 90,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"tax_rate": "12.2",
"order_reference": "#1234-123442",
"order_channel_id": 90,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to order import missing tax rate.
Request Body
CreateIncidentImportMissingTaxRate
Return Type
Types for the Request Body
CreateIncidentImportMissingTaxRate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
tax_rate |
The tax rate. | number |
requirednot nullmin is 0.01 |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident import failure
POST /v1/log/incident/order_import/failure
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/order_import/failure", [
"body" => json_encode([
"failure_message" => "No response from the shop url",
"order_reference" => "#1234-123442",
"order_channel_id" => 73,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/order_import/failure', {
failure_message: "No response from the shop url",
order_reference: "#1234-123442",
order_channel_id: 73,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/order_import/failure",
body: {
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 73,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/order_import/failure' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 73,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to order import failure.
Request Body
Return Type
Types for the Request Body
CreateIncidentImportFailure (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
failure_message |
Failure message. | string |
requirednot nullmin length is 1 |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident with purchase order import failure
POST /v1/log/incident/purchase_order_import/failure
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure", [
"body" => json_encode([
"failure_message" => "No response from the shop url",
"order_reference" => "#1234-123442",
"order_channel_id" => 58,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure', {
failure_message: "No response from the shop url",
order_reference: "#1234-123442",
order_channel_id: 58,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure",
body: {
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 58,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 58,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to purchase order import failure.
Request Body
Return Type
Types for the Request Body
CreateIncidentImportFailure (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
failure_message |
Failure message. | string |
requirednot nullmin length is 1 |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Tasks
Working with tasks in BladePRO’s I/O system.
Log message
POST /v1/log
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log", [
"body" => json_encode([
"severity" => "warning",
"message" => "This is a message worth saving to our logs.",
"payload" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
"incident_bindings" => [
"user" => 142,
"vendor_order" => 1546,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log', {
severity: "warning",
message: "This is a message worth saving to our logs.",
payload: {
x: 0,
y: 0,
z: 4,
},
incident_bindings: {
user: 142,
vendor_order: 1546,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log",
body: {
"severity": "warning",
"message": "This is a message worth saving to our logs.",
"payload": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 142,
"vendor_order": 1546
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"severity": "warning",
"message": "This is a message worth saving to our logs.",
"payload": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 142,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Saves a log entry and update the heartbeat of a task.
Request Body
Return Type
Types for the Request Body
CreateLog (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
severity |
The severity of the log. | string |
requirednot null |
message |
The message to be recorded. | string |
requirednot nullmin length is 1 |
payload |
Additional data to be stored against the message. | object |
not null |
task_id |
The ID of the related task. | string |
not nullmatch is /^[0-9a-z-]{36}$/ |
service |
Which service wrote the log message. | string |
not null |
incident_bindings |
Bindings for the incident to be created. | CreateLogIncidentBinding |
not null |
CreateLogIncidentBinding
| Key | Description | Types | Restrictions |
|---|---|---|---|
user |
User ID. | number |
not null |
company |
Company ID. | number |
not null |
organisation |
Organisation ID. | number |
not null |
order_goodsout |
Order goodsout ID. | number |
not null |
order_channel |
Order channel ID. | number |
not null |
product_channel |
Product channel ID. | number |
not null |
product_variation |
Product variation ID. | number |
not null |
product_component |
Product component ID. | number |
not null |
listing |
Listing ID. | number |
not null |
vendor_order |
Vendor order ID. | number |
not null |
purchase_order |
Purchase order ID. | number |
not null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Create task
POST /v1/tasks
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/tasks", [
"body" => json_encode([
"task" => "MYAPP:VENDOR:CREATE",
"endpoint" => [
"url" => "https://my-url.com/endpoint",
"method" => "POST",
],
"metadata" => [
"meta1" => "value1",
"meta2" => "value2",
"meta3" => "value3",
],
"payload" => true,
"application" => [
"id" => 1,
"name" => "Application name",
"instance_id" => 1,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/tasks', {
task: "MYAPP:VENDOR:CREATE",
endpoint: {
url: "https://my-url.com/endpoint",
method: "POST",
},
metadata: {
meta1: "value1",
meta2: "value2",
meta3: "value3",
},
payload: true,
application: {
id: 1,
name: "Application name",
instance_id: 1,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks",
body: {
"task": "MYAPP:VENDOR:CREATE",
"endpoint": {
"url": "https://my-url.com/endpoint",
"method": "POST"
},
"metadata": {
"meta1": "value1",
"meta2": "value2",
"meta3": "value3"
},
"payload": true,
"application": {
"id": 1,
"name": "Application name",
"instance_id": 1
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/tasks' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"task": "MYAPP:VENDOR:CREATE",
"endpoint": {
"url": "https://my-url.com/endpoint",
"method": "POST"
},
"metadata": {
"meta1": "value1",
"meta2": "value2",
"meta3": "value3"
},
"payload": true,
"application": {
"id": 1,
"name": "Application name",
"instance_id": 1
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Calls the task system to create a new task.
Request Body
Return Type
Types for the Request Body
Task (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
task |
Task code. | string |
requirednot nullmin length is 1 |
endpoint |
Endpoint to be hit. | Endpoint |
requirednot null |
metadata |
Metadata. | map<string, string> |
requirednot nullmin length is 0 |
payload |
Payload. | booleanor numberor objector string |
requirednot null |
application |
Definition of the application the task belongs to. | Application |
requirednot null |
Application
| Key | Description | Types | Restrictions |
|---|---|---|---|
id |
The ID of the application. | number |
requirednot null |
name |
The name of the application. | string |
requirednot nullmin length is 1 |
instance_id |
The ID of the application’s instance. | number |
requirednot null |
Endpoint
| Key | Description | Types | Restrictions |
|---|---|---|---|
url |
URL. | string |
requirednot nullmin length is 1 |
method |
HTTP method. | string |
requirednot nullmatch is /^(POST|PUT)$/ |
Scopes
This endpoint is only available for users with scope APP::MISC.
Mark task as failed
PUT /v1/tasks/:task/failed
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed", [
"body" => json_encode([
"summary" => "Failed to update order, reference could not be matched on marketplace.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed', {
summary: "Failed to update order, reference could not be matched on marketplace.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed",
body: {
"summary": "Failed to update order, reference could not be matched on marketplace."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"summary": "Failed to update order, reference could not be matched on marketplace."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Reports a task to have failed.
Parameter Regular Expressions
- :task: [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
Request Body
Return Type
Types for the Request Body
FailTask (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
summary |
A summary of why the task failed. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::MISC.
Mark task as completed
PUT /v1/tasks/:task/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete", [
"body" => json_encode([
"summary" => "Updated stock for 134 products.",
"warning" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete', {
summary: "Updated stock for 134 products.",
warning: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete",
body: {
"summary": "Updated stock for 134 products.",
"warning": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"summary": "Updated stock for 134 products.",
"warning": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Reports a task to have completed.
Parameter Regular Expressions
- :task: [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
Request Body
Return Type
Types for the Request Body
CompleteTask (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
summary |
A summary of the task’s outcome. | string |
requirednot nullmin length is 1 |
warning |
Mark the task with a warning flag. | boolean |
not null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Record task heartbeat
PUT /v1/tasks/:task/heartbeat
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Notifies BladePRO the processing of the task is still underway.
Parameter Regular Expressions
- :task: [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
Webhooks
Webhooks are events calling your apps. The payload your apps’ webhooks will receive are defined in the Return Types section.
ORDER:CANCELLED
Request Body
Example payload:
{
"id": 1049789,
"status": "cancelled",
"date_placed": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"order_channel_id": 321,
"brand_id": 5,
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
},
"channel": {
"id": 1,
"organisation_id": 1,
"name": "Artplants",
"outbound_email": "sales.example@i-fulfilment.co.uk"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
]
}
ORDER:CONFIRMED
Request Body
Example payload:
{
"id": 1049789,
"status": "awaiting_picking",
"date_placed": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"order_channel_id": 321,
"brand_id": 5,
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
]
}
ORDER:CREATED
Request Body
Example payload:
{
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"name": "Demo Channel",
"short_code": "DEMO"
},
"brand": {
"id": 5,
"name": "Demo Brand"
},
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"net_unit_principal": 7.25,
"net_unit_commission": 0.15,
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"variation": {
"id": 1,
"product_id": 1,
"sku": "DEMO-SKU-01"
}
}
],
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
]
}
ORDER:DESPATCHED
Request Body
Example payload:
{
"id": 1049789,
"status": "despatched",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"order_channel_id": 321,
"brand_id": 5,
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
},
"channel": {
"id": 1,
"organisation_id": 1,
"name": "Artplants",
"outbound_email": "GBP"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"despatch_attributes": [
{
"sku": "DEMO-SKU-01",
"attribute_name": "Colour",
"attribute_value": "Red",
"order_goodsout_line_id": 12234,
"order_goodsout_line_item_id": 12234
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
],
"shipping": [
{
"courier_name": "Royal Mail",
"service_name": "ExPak1",
"tracking": [
{
"tracking_number": "46513135648745",
"tracking_url": "http://www.royalmail.com/trackdetails?trackNumber=46513135648745"
}
]
}
]
}
RETURN:COMPLETED
Request Body
Example payload:
{
"return_id": 1049789,
"order_id": 346745845,
"order_reference": "#2323523",
"order_channel_id": 3634633,
"return_created": "2025-07-25T14:52:56.000Z",
"carrier": "Royal Mail",
"service": "Returns 48h",
"tracking_number": "abc123",
"warehouse_id": 23426246,
"received_date": "2025-07-25T14:52:56.000Z",
"completed_date": "2025-07-25T14:52:56.000Z",
"return_items": [
{
"sku": "SKU123456",
"product_component_id": 321,
"return_quantity": 2,
"return_reason": "Damaged item",
"exchange_or_refund": "refund",
"exchange_product_component_id": 4321,
"expected_quantity": 1,
"received_quantity": 1,
"correct_item": "yes",
"resellable": "yes"
}
]
}
RETURN:CREATED
Request Body
Example payload:
{
"return_id": 1049789,
"order_id": 346745845,
"order_reference": "#2323523",
"order_channel_id": 3634633,
"return_created": "2025-07-25T14:52:56.000Z",
"carrier": "Royal Mail",
"service": "Returns 48h",
"tracking_number": "abc123",
"warehouse_id": 23426246,
"return_items": [
{
"sku": "SKU123456",
"product_component_id": 321,
"return_quantity": 2,
"return_reason": "Damaged item",
"exchange_or_refund": "refund"
}
]
}
RETURN:RECEIVED
Request Body
Example payload:
{
"return_id": 1049789,
"order_id": 1049789,
"order_reference": "#154254",
"order_channel_id": 1049789,
"return_created": "2019-11-25T14:52:56.000Z",
"carrier": "Royal Mail",
"service": "Returns 48h",
"tracking_number": "abc123",
"warehouse_id": 1049789,
"received_date": "2019-11-25T14:52:56.000Z"
}
VENDOR_ORDER:FINALISED
Request Body
Example payload:
{
"id": 123,
"code": "QWER123ASD",
"vendor": "VEN-01",
"status": "confirmed",
"delivery_party": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"finalised": "2019-11-25T14:52:56.000Z",
"order_channel": {
"id": 321,
"name": "Demo Channel"
},
"country": {
"id": 231,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
},
"selected_warehouse": {
"id": 1,
"name": "Christchurch",
"country": {
"id": 231,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
},
"items": [
{
"id": 4567,
"product_variation_id": 687,
"sku": "MODEL_309845",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"unit_cost": 12.34,
"status": "accepted_in_stock",
"expected_delivery_date": "2019-11-25"
}
]
}
Applications
Working with apps core settings.
Get Preference Value
GET /v1/preferences/:code
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/preferences/my_preference", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/preferences/my_preference', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/preferences/my_preference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/preferences/my_preference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"value": "12.43",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Returns the value of a preference.
Parameter Regular Expressions
- :code: [a-zA-Z_]{1,100}
Return Type
ApplicationInstancePreferences
Scopes
This endpoint is only available for users with scope APP::MISC.
Set Preference Value
PUT /v1/preferences/:code
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/preferences/my_preference", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/preferences/my_preference', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/preferences/my_preference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/preferences/my_preference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"value": "12.43",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Sets the value of a preference.
Parameter Regular Expressions
- :code: [a-zA-Z_]{1,100}
Request Body
Return Type
ApplicationInstancePreferences
Types for the Request Body
SetValue (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
required |
Scopes
This endpoint is only available for users with scope APP::MISC.
Activate Application
PUT /v1/apps/activate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/apps/activate", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/apps/activate', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/activate",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/apps/activate' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"name": "Active",
"code": "ACTIVE",
"description": "The application is live and active."
}
}
Mark the application’s installation as active.
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
Deactivate Application
PUT /v1/apps/deactivate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/apps/deactivate", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/apps/deactivate', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/deactivate",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/apps/deactivate' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"name": "Active",
"code": "ACTIVE",
"description": "The application is live and active."
}
}
Mark the application’s installation as deactivated.
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
App Instance Info
GET /v1/apps/info
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/apps/info?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/apps/info?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/info?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/apps/info?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"nickname": "My web store",
"status": {
"name": "Active",
"code": "ACTIVE",
"description": "The application is live and active."
}
}
}
Get a summary of the logged in application instance.
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
status |
ApplicationInstanceStatuses |
Represents a status for an application instance. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Get Marketplace Application Settings
GET /v1/apps/marketplace/settings
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"currency_id": 1,
"locale_id": 1,
"order_channel_id": 321,
"primary_warehouse_id": 1,
"order_import_grace_period_minutes": 0,
"ignore_orders_created_before": null,
"allow_multi_location_support": 0,
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"order_channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"tax": {
"id": 1,
"name": "standard",
"code": "20",
"rate": 20,
"description": "standard 20%",
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"primary_warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"warehouses": [
{
"short_code": "CHR",
"name": "Christchurch"
}
]
}
}
Returns the main configuration settings for an app of type Marketplace.
Return Type
MarketplaceApplicationInstanceSettings
Available expands
| Field | Return Type | Description |
|---|---|---|
currency |
SummarisedCurrency |
A currency. |
locale |
SummarisedLocale |
Locale / Language. |
order_channel |
OrderChannels |
Customer order groups. |
order_channel.tax |
OrganisationTaxes |
Organisation tax data. |
primary_warehouse |
SummarisedWarehouse |
A warehouse. |
primary_warehouse.country |
SummarisedCountry |
A country. |
warehouses |
array<SummarisedWarehouse> |
A warehouse. |
warehouses.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Get Demand Planning Application Settings
GET /v1/apps/demand_planning/settings
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/apps/demand_planning/settings", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/apps/demand_planning/settings', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/demand_planning/settings",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/apps/demand_planning/settings' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"product_channel_id": 123,
"organisation_id": 123,
"warehouse_code": "TRAI"
}
}
Returns the main configuration settings for an app of type Demand Planning.
Return Type
DemandPlanningApplicationInstanceSettings
Scopes
This endpoint is only available for users with any of these scopes: APP::PRODUCTS::MANAGE, APP:PURCHASE-ORDERS::MANAGE.
Miscellaneous
Uncategorised endpoints.
List Countries
GET /v1/countries
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/countries", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/countries', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/countries",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/countries' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU"
}
]
}
Retrieves a list of all the countries BladePRO can accept shipping destinations for.
Return Type
array<Countries>
Scopes
This endpoint is only available for users with scope APP::MISC.
List Currencies
GET /v1/currencies
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/currencies", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/currencies', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/currencies",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/currencies' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Currencies.
Return Type
array<Currencies>
Scopes
This endpoint is only available for users with scope APP::MISC.
POST /v1/orders/goodsouts/from_file
Request Body
Ignored.
Return Type
Empty or untyped.
Scopes
This endpoint is available to all users.
List Tax Rates
GET /v1/taxes
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/taxes", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/taxes', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/taxes",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/taxes' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "standard",
"code": "20",
"rate": 20,
"description": "standard 20%",
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Tax Rates.
Return Type
array<OrganisationTaxes>
Scopes
This endpoint is only available for users with scope APP::MISC.
List Brands
GET /v1/brands
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/brands", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/brands', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/brands",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/brands' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 5,
"name": "Demo Brand"
}
]
}
Retrieves a list of all the organisational brands.
Return Type
array<Brands>
Scopes
This endpoint is only available for users with scope APP::MISC.
List Locales
GET /v1/locales
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/locales", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/locales', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/locales",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/locales' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
Lists available locales.
Return Type
array<Locales>
Scopes
This endpoint is only available for users with scope APP::MISC.
List templates
GET /v1/templates
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/templates", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/templates', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/templates",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/templates' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"organisation_id": 1,
"template_category_id": 1,
"template_category_code": "DESPATCH_NOTE",
"name": "Default despatch note",
"status": "portrait",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Return a list of templates
Return Type
Filters
| Field | Operators | Value List URL |
|---|---|---|
| organisation_id | IN, NOT_IN |
|
| template_category_id | IN, NOT_IN |
|
| template_category_code | IN, NOT_IN |
|
| name | LIKE |
Scopes
This endpoint is only available for users with scope APP::TEMPLATES::READ.
Return rendered template
PUT /v1/templates/render
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/templates/render", [
"body" => json_encode([
"template_id" => "en",
"resource_ids" => [
1,
],
"locales" => [
"en",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/templates/render', {
template_id: "en",
resource_ids: [
1,
],
locales: [
"en",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/templates/render",
body: {
"template_id": "en",
"resource_ids": [
1
],
"locales": [
"en"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/templates/render' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"template_id": "en",
"resource_ids": [
1
],
"locales": [
"en"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"organisation_id": 1,
"template_category_id": 1,
"template_category_code": "DESPATCH_NOTE",
"name": "Default despatch note",
"status": "portrait",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Return a template rendered for different resources and languages
Request Body
Return Type
Types for the Request Body
RenderTemplate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
template_id |
ID of template. | integer |
requirednot nullmin is 1 |
resource_ids |
List of resource ID’s. | array<number> |
requirednot nullmin count is 1 |
locales |
List of resource ID’s. | array<string> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::TEMPLATES::READ.
List File Order Importer Mapping Templates
GET /v1/mappings
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/mappings", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/mappings', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/mappings",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/mappings' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 1,
"slug": "default",
"name": "Default",
"organisation_id": 1,
"fields": {},
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List the mapping templates for File Order Importer.
Return Type
array<Mappings>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
GET /v1/openapi
Return Type
Empty or untyped.
Scopes
This endpoint is available to all users.
Return Types
This section lists the return types that the API uses. Every endpoint describes which type it returns.
Field Descriptions
- Key: The key for the value in question in the JSON object.
- Description: What the value represents.
- Type: Either a type, or a reference to a specific return type.
- Expanding: Expanding fields contain data related to the parent entity. They are not present in the result by default, but can be added on as specified in the endpoint’s documentation.
ApplicationInstanceInfos
Represents a status for an application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
nickname |
Nickname. | string |
No |
status |
The current status. | ApplicationInstanceStatuses |
Yes |
ApplicationInstancePreferences
Represents an application instance preference.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
value |
The value. | string |
No |
modified |
Last modified date. | date |
No |
ApplicationInstanceStatuses
Represents a status for an application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name of the status. | string |
No |
code |
Internal code of the status. | string |
No |
description |
Description. | string |
No |
Auth
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
session_token |
Session token to pass into API calls. | string |
No |
expiry |
Session expiry time. | date |
No |
Brands
Brand data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the brand. | number |
No |
name |
Name of the brand. | string |
No |
BulkAdjustVirtualStockResult
Holds data about the results of a bulk virtual stock adjustment.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
affected |
The number of items affected by the bulk action. | number |
No |
BulkCheckOrderExists
Check if an order reference already exists on a channel.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_reference |
Order reference. | string |
No |
order_id |
BladePRO Order Id. | number |
No |
exists |
Does the order exists. | boolean |
No |
BulkImportOrdersFile
Confirmation of a file upload.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Pass an order export to import orders in bulk. | boolean |
No |
BulkListAllOpenOrders
List all the ‘open’ orders for a given channel. Can be used to do a pre-cursive check for order importer functions to filter out orders have been previously imported.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_id |
Order id. | number |
No |
reference |
Order reference. | string |
No |
goodsouts |
List of related goodsouts. | array<BulkListAllOpenOrdersGoodsout> |
Yes |
BulkListAllOpenOrdersGoodsout
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_goodsout_id |
Order Goodsout id. | string |
No |
status |
Goodsout status. | string |
No |
metadata |
List of related metadata created by this app instance. | array<BulkListAllOpenOrdersGoodsoutMetadata> |
Yes |
BulkListAllOpenOrdersGoodsoutMetadata
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Metadata Key. | string |
No |
value |
Metadata Value. | string |
No |
BulkOrderStatuses
Defines a status against an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_goodsout_id |
Order goodsout ID. | number |
No |
status |
List of tracking numbers. | enum * see below |
No |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
BulkOrderTrackingNumbers
Defines a list of tracking numbers against an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_goodsout_id |
Order goodsout ID. | number |
No |
despatch_date |
Despatch date. | date |
No |
courier |
Courier name. | string |
No |
external_tracking_enabled |
Trackable flag. | boolean |
No |
service |
Shipping service name. | string |
No |
tracking_numbers |
List of tracking numbers. | array<CachedCourierTracking> |
Yes |
BulkOrderTrackingNumbersByReference
Defines a list of tracking numbers against an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
reference |
Order reference. | string |
No |
order_goodsout_id |
Order goodsout ID. | number |
No |
despatch_date |
Despatch date. | date |
No |
status |
Goodsout status. | enum * see below |
No |
courier |
Courier name. | string |
No |
service |
Shipping service name. | string |
No |
external_tracking_enabled |
Trackable flag. | boolean |
No |
tracking_numbers |
List of tracking numbers. | array<CachedCourierTracking> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
CachedAddress
An address.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
address_one |
Address line one. | string |
No |
address_two |
Address line two. | string |
No |
address_three |
Address line three. | string |
No |
town |
Town. | string |
No |
county |
County or state. | string |
No |
postcode |
Postcode. | string |
No |
email |
Email address. | string |
No |
mobile |
Mobile telephone. | string |
No |
telephone |
Telephone. | string |
No |
secondary_telephone |
Secondary telephone. | string |
No |
contact |
BladePRO contact data. | CachedAddressContact |
Yes |
country |
Country. | SummarisedCountry |
Yes |
CachedAddressContact
A BladePRO contact.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
group |
Group name. | string |
No |
CachedApplicationMarketplaceAttribute
Marketplace attribute
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Attribute definition id. | number |
No |
name |
Name of the attribute. | string |
No |
description |
Description of the attribute. | string |
No |
code |
Code representing the attribute. | string |
No |
CachedAttribute
An attribute.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
CachedBrand
A brand.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
CachedCourier
A courier.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
code |
Code. | string |
No |
service |
Service details. | CachedShippingService |
Yes |
tracking |
Tracking details. | array<CachedCourierTracking> |
Yes |
CachedCourierTracking
Tracking details.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
courier |
Courier name. | string |
No |
code |
The tracking number. | string |
No |
url |
Tracking URL. | string |
No |
CachedGoodsout
An order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Goodsout ID. | number |
No |
bid |
Full BladePRO ID. | string |
No |
creator |
Who created the goodsout. | string |
No |
status |
Goodsout status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
despatch_date |
Despatch date. | date |
No |
despatch_on_date |
Despatch on date. | date |
No |
warehouse |
Fulfilment warehouse. | SummarisedWarehouse |
Yes |
courier |
Courier. | CachedCourier |
Yes |
tags |
List of applied tags. | array<SummarisedTag> |
Yes |
attributes |
List of applied attributes. | array<CachedAttribute> |
Yes |
shipping_address |
The shipping address. | CachedAddress |
Yes |
order |
The parent order. | CachedOrder |
Yes |
lines |
Summaries of the active goodsout lines that describe products. No extras or packaging are listed. | array<CachedGoodsoutLine> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
CachedGoodsoutLine
An order goodsout line summary.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the line. | number |
No |
product_variation_id |
ID of the product variation. | number |
No |
sku |
SKU of the product variation. | string |
No |
name |
English description of the product variation. | string |
No |
quantity |
Ordered quantity. | number |
No |
CachedMarketplaceListing
Marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing variation. | string |
No |
attributes |
Listing attributes. | array<CachedMarketplaceListingAttribute> |
Yes |
options |
Listing option definitions. | array<CachedMarketplaceListingOption> |
Yes |
images |
Variation images. | array<CachedMarketplaceListingImage> |
Yes |
related_listing_variations |
Related listing variations that belong to the same parent marketplace_listing | array<CachedMarketplaceListingVariationRelatedVariation> |
Yes |
CachedMarketplaceListingAttribute
Marketplace listing attributes
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
label_json |
JSON string defining the label of the attribute value. | string |
No |
value |
The attribute value. | string |
No |
attribute |
The attribute definition. | CachedApplicationMarketplaceAttribute |
Yes |
CachedMarketplaceListingImage
Marketplace listing variation images
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
primary |
Id this the primary image for the listing . | boolean |
No |
sequence |
The ordered sequence for this image. | number |
No |
url |
The url to access this image. | string |
No |
CachedMarketplaceListingOption
Marketplace listing option definition.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing option ID. | number |
No |
name |
The name of the option. | string |
No |
CachedMarketplaceListingVariation
Marketplace listing summary
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_listing_id |
The parent marketplace listing ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing variation. | string |
No |
sku |
The listed SKU. | string |
No |
price |
The listed Price. | number |
No |
status |
The status of the listing. | enum * see below |
No |
listing_mode |
The listing mode of the listing. | enum * see below |
No |
stock_mode |
The stock mode of the listing. | enum * see below |
No |
marketplace_listing |
The parent listing. | CachedMarketplaceListing |
Yes |
product_variation |
The related product variation. | CachedMarketplaceListingVariationProductVariation |
Yes |
attributes |
Variation attributes. | array<CachedMarketplaceListingVariationAttribute> |
Yes |
options |
Variation options. | array<CachedMarketplaceListingVariationOption> |
Yes |
images |
Variation images. | array<CachedMarketplaceListingVariationImage> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, live, void |
listing_mode |
keep_in_sync, do_not_sync |
stock_mode |
keep_in_sync, do_not_sync, always_in_stock, never_in_stock |
CachedMarketplaceListingVariationAttribute
Marketplace listing variation attributes
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
label_json |
JSON string defining the label of the attribute value. | string |
No |
value |
The attribute value. | string |
No |
attribute |
The attribute definition. | CachedApplicationMarketplaceAttribute |
Yes |
CachedMarketplaceListingVariationImage
Marketplace listing variation images
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
primary |
Id this the primary image for the listing variation. | boolean |
No |
sequence |
The ordered sequence for this image. | number |
No |
url |
The url to access this image. | string |
No |
CachedMarketplaceListingVariationOption
Value for a marketplace listing option.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation option ID. | number |
No |
marketplace_listing_option_id |
The owning marketplace listing option ID. | number |
No |
value |
The value of the option. | string |
No |
option |
The option type. | CachedMarketplaceListingOption |
Yes |
CachedMarketplaceListingVariationProductVariation
Marketplace listing variation attributes
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variations’s ID. | number |
No |
sku |
The product’s SKU. | string |
No |
aspects |
Marketplace application aspects. | array<CachedMarketplaceListingVariationProductVariationAspects> |
Yes |
category |
The product’s category. | CachedMarketplaceListingVariationProductVariationCategory |
Yes |
CachedMarketplaceListingVariationProductVariationAspects
Marketplace listing variation aspects
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
value |
The aspect value. | string |
No |
label |
The aspects label. | string |
No |
aspect |
The attribute definition. | CachedApplicationMarketplaceAttribute |
Yes |
CachedMarketplaceListingVariationProductVariationCategory
Marketplace listing variation category
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The category id. | number |
No |
name |
The category name. | string |
No |
preferences |
Marketplace application aspects. | array<CachedMarketplaceListingVariationProductVariationCategoryPreferences> |
Yes |
CachedMarketplaceListingVariationProductVariationCategoryPreferences
Marketplace listing variation category preferences
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
value |
The preference value. | string |
No |
label |
The preference label. | string |
No |
preference |
The preference definition. | CachedMarketplaceListingVariationProductVariationCategoryPreferencesPreference |
Yes |
CachedMarketplaceListingVariationProductVariationCategoryPreferencesPreference
Marketplace listing variation aspects
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
The preference name. | string |
No |
code |
The preference short code reference. | string |
No |
CachedMarketplaceListingVariationRelatedVariation
Related listing variations that belong to the same parent marketplace_listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The listing variation id. | number |
No |
marketplace_reference |
The listing variation marketplace reference. | string |
No |
status |
The BladePRO status for the listing variation. | string |
No |
sku |
The listing variations listed sku. | string |
No |
CachedNameAndCode
Holds a name and a code field.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
code |
Code. | string |
No |
CachedOrder
An order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Order ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
channel |
Order channel. | CachedOrderChannel |
Yes |
currency |
Currency. | SummarisedCurrency |
Yes |
brand |
Brand. | CachedBrand |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
CachedOrderChannel
An order channel.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Id. | number |
No |
short_code |
Code. | string |
No |
name |
Name. | string |
No |
CachedProduct
Top level product data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product id. | number |
No |
channel |
The product channel. | CachedProductChannel |
Yes |
CachedProductChannel
Cached product channel.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product channel id. | number |
No |
name |
Product channel name. | string |
No |
default_warehouse_id |
Default warehouse id. | number |
No |
global |
Is it a global shared product. | boolean |
No |
organisation |
Organisation that the product channel belongs to. | CachedProductChannelOrganisation |
Yes |
CachedProductChannelOrganisation
Top level product data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Organisation id. | number |
No |
name |
Organisation name. | string |
No |
CachedProductVariation
Variation specific data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation id. | number |
No |
sku |
The product SKU. | string |
No |
name |
The product name. | string |
No |
is_primary |
Is this a primary product. | boolean |
No |
status |
The status of the product. | enum * see below |
No |
created |
The created date. | CachedProductVariationCreated |
Yes |
product |
Parent product. | CachedProduct |
Yes |
tags |
List of applied tags. | array<SummarisedTag> |
Yes |
descriptions |
List of descriptions. | array<CachedProductVariationDescription> |
Yes |
components |
List of components. | array<CachedProductVariationComponent> |
Yes |
type |
The product type. | SummarisedProductVariationType |
Yes |
primary_product_category |
The primary product category. | SummarisedProductCategory |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, draft, discontinued |
CachedProductVariationComponent
Variation component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product component id. | number |
No |
sku |
The component SKU. | string |
No |
name |
The component name. | string |
No |
barcode |
The component barcode. | string |
No |
quantity |
The quantity of this component used in the product variation. | number |
No |
CachedProductVariationCreated
Variation specific data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
date |
Date string. | string |
No |
timezone |
Timezone. | string |
No |
CachedProductVariationDescription
Variation descriptions.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation id. | number |
No |
product_variation_id |
The product variation id. | number |
No |
locale_id |
The description locale. | number |
No |
name |
The product name. | string |
No |
full_description |
The description of the product. | string |
No |
created |
The created date. | date |
No |
modified |
The last modified date. | date |
No |
locale |
The locale for this description. | SummarisedLocale |
No |
CachedShippingService
Holds data about a shipping service.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
code |
Code. | string |
No |
tracked |
Whether this service is tracked. | boolean |
No |
signed |
Wheter this service requires signing by the recipient. | boolean |
No |
CartonLabelTypeReferences
References for carton label types.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Descriptive name of the reference. | string |
No |
code |
The code the reference can be addressed by. | string |
No |
type |
Type of the reference. | enum * see below |
No |
validation_pattern |
Regular expression used to validate the value. | string |
No |
Enums
| Field | Values |
|---|---|
type |
text, barcode |
CartonLabelTypes
Carton label types data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the carton label type. | number |
No |
name |
Descriptive name of the carton label type. | string |
No |
active |
If the carton label type is active. | number |
No |
carton_label_type_references |
References of the carton label type. | array<CartonLabelTypeReferences> |
Yes |
ConfirmBooking
Confirm booking.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
purchase_order_id |
ID of the purchase order. | number |
No |
goods_in_id |
ID of the associated goods-in booking. | number |
No |
expected_date |
Expected booking date in ISO format (YYYY-MM-DD). | string |
No |
expected_time_slot |
Expected booking time slot. | string |
No |
ConsignmentQualities
Consignment quality description.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
group |
Quality group. | string |
No |
description |
Details. | string |
No |
active |
Is it active? | boolean |
No |
Countries
A country.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
region_id |
ID of the region. | number |
No |
currency_id |
ID of the country’s currency. | number |
No |
block |
Trade block. | enum * see below |
No |
region |
The region. | Regions |
Yes |
currency |
The country’s currency. | Currencies |
Yes |
Enums
| Field | Values |
|---|---|
block |
EU |
Currencies
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the currency. | number |
No |
code |
ISO code of the currency. | string |
No |
name |
Descriptive name of the currency. | string |
No |
symbol |
Symbol to render next to values. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
DemandPlanningApplicationInstanceSettings
Stores data about the current application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_channel_id |
Product channel ID. | number |
No |
organisation_id |
Organisation ID. | number |
No |
warehouse_code |
Warehouse short code. | string |
No |
DespatchedOrders
An order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Goodsout ID. | number |
No |
status |
Status. | string |
No |
bid |
BID. | string |
No |
despatch_date |
Despatch date. | date |
No |
courier |
Courier. | CachedCourier |
Yes |
attributes |
List of applied attributes. | array<CachedAttribute> |
Yes |
order |
The parent order. | CachedOrder |
Yes |
Fields
Importer Mapping Fields
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
source |
Source field name. | string |
No |
destination |
Destination field name. | string |
No |
default_value |
Default Value | string |
No |
manipulations |
Manipulations | object |
No |
default_format |
Default Format | string |
No |
value_replacements |
Value Replacements | object |
No |
Gdpr
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The concern id representing this GDPR request. | string |
No |
ImportMarketplaceListing
Import marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the listing. | number |
No |
marketplace_reference |
The marketplace reference. | string |
No |
product_category_id |
The ID of the product category. | number |
No |
marketplace_listing_variations |
List of marketplace listing variations. | array<ImportMarketplaceListingVariation> |
Yes |
options |
List of options created for the listing. | array<ImportMarketplaceListingOption> |
Yes |
ImportMarketplaceListingOption
A marketplace listing option during import.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the option. | number |
No |
name |
The name of the option. | string |
No |
ImportMarketplaceListingVariation
A marketplace listing variation during import.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the listing variation. | number |
No |
title |
The title of the listing. | string |
No |
subtitle |
The subtitle of the listing. | string |
No |
description |
The subtitle of the listing. | string |
No |
listing_mode |
The listing mode of the listing variation. | enum * see below |
No |
stock_mode |
The stock mode of the listing variation. | enum * see below |
No |
marketplace_reference |
The marketplace reference. | string |
No |
price |
The marketplace price of the product. | number |
No |
product_variation_id |
The product variation the listing is linked to. | number |
No |
quantity |
Current marketplace stock level. | number |
No |
sku |
Current marketplace SKU. | string |
No |
status |
The status of the listing variation. | enum * see below |
No |
options |
List of options created for the variation. | array<ImportMarketplaceListingVariationOption> |
Yes |
Enums
| Field | Values |
|---|---|
listing_mode |
keep_in_sync, do_not_sync |
stock_mode |
keep_in_sync, do_not_sync, always_in_stock, never_in_stock |
status |
draft, live, void, pending_live, pending_void |
ImportMarketplaceListingVariationOption
A marketplace listing variation option during import.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the variation option. | number |
No |
marketplace_listing_option_id |
The ID of the marketplace listing option. | number |
No |
value |
The value of the option. | string |
No |
Incident
Represents the result of logging an incident request.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
incident_id |
The related incident’s ID, if applicable. | number |
No |
Locales
Locale data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the locale. | number |
No |
name |
Name of the locale. | string |
No |
code |
Unique short code of the locale. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Log
Represents the result of a logging request.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Holds true if the log entry was saved successfully. | boolean |
No |
Mappings
File Mapping data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the mapping. | number |
No |
slug |
Slug of the mapping. | string |
No |
name |
Name of the mapping. | string |
No |
organisation_id |
Organisation ID. | number |
No |
fields |
Mappings Fields | Fields |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
MarketplaceApplicationInstanceSettings
Stores data about the current application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
currency_id |
Currency ID. | number |
No |
locale_id |
Locale ID. | number |
No |
order_channel_id |
Order channel ID. | number |
No |
primary_warehouse_id |
Primary warehouse’s ID. | number |
No |
order_import_grace_period_minutes |
Grace period in minutes for ignoring orders. | number |
No |
ignore_orders_created_before |
Ignore orders created before a certain date. | date |
No |
allow_multi_location_support |
Is the multi location support enabled for this integration. | boolean |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
locale |
Locale. | SummarisedLocale |
Yes |
order_channel |
Order channel. | OrderChannels |
Yes |
primary_warehouse |
Primary warehouse. | SummarisedWarehouse |
Yes |
warehouses |
Configured warehouses for this specific integration. | array<SummarisedWarehouse> |
Yes |
MarketplaceListingBulkUpdateQuantities
Marketplace listing bulk update listed quantity
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Was the bulk update successful. | boolean |
No |
MarketplaceListingCostPrice
Marketplace listing cost price
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing. | string |
No |
resource_metadatas |
List of metadata keys and values set against the listing. | array<MarketplaceListingResourceMetadatas> |
Yes |
variations |
List of marketplace listing variations | array<MarketplaceListingVariationCostPrice> |
Yes |
MarketplaceListingPurge
Marketplace listing purge
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Was the purge update successful. | boolean |
No |
MarketplaceListingResourceMetadatas
Stores arbitrary data against a marketplace listing.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
MarketplaceListingStock
Marketplace listing stock
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing. | string |
No |
resource_metadatas |
List of metadata keys and values set against the listing. | array<MarketplaceListingResourceMetadatas> |
Yes |
variations |
List of marketplace listing variations | array<MarketplaceListingVariationStock> |
Yes |
MarketplaceListingTemplates
Marketplace listing templates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
marketplace_listing_variation_id |
ID of the marketplace listing variation. | number |
No |
locale |
The locale of the template. | string |
No |
title |
Rendered titles by locale. | object |
No |
subtitle |
Rendered subtitles by locale. | object |
No |
description |
Rendered descriptions by locale. | object |
No |
MarketplaceListingUpdateAttributes
Marketplace attribute
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
code |
The attribute code. | string |
No |
name |
The attribute name. | string |
No |
value |
The value of the attribute. | string |
No |
MarketplaceListingUpdateListingVariations
Marketplace listing updates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation id. | number |
No |
marketplace_reference |
The marketplace reference. | string |
No |
sku |
The listed SKU. | string |
No |
price |
The currently listed price. | number |
No |
status |
The status of the listing variation. | string |
No |
attributes |
Variation attributes. | array<MarketplaceListingUpdateAttributes> |
Yes |
MarketplaceListingUpdateListings
Marketplace listing updates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing id. | number |
No |
marketplace_reference |
The marketplace reference. | string |
No |
attributes |
Listing attributes. | array<MarketplaceListingUpdateAttributes> |
Yes |
MarketplaceListingUpdates
Marketplace listing updates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing update ID. | number |
No |
code |
The update type code. | string |
No |
listing_id |
The marketplace listing ID. | number |
No |
variation_id |
The marketplace variation ID. | number |
No |
old_value |
The old value of the updated field. | string |
No |
new_value |
The new value of the updated field. | string |
No |
status |
The marketplace listing update status. | enum * see below |
No |
claim_reference |
The reference ID of the claimed batch. | string |
No |
claimed |
Claimed date. | number |
No |
created |
Created date. | date |
No |
marketplace_listing |
The related listing. | MarketplaceListingUpdateListings |
Yes |
marketplace_listing_variation |
The related listing variation ( if applicable ) . | MarketplaceListingUpdateListingVariations |
Yes |
Enums
| Field | Values |
|---|---|
status |
pending, cancelled, updating, completed, failed |
MarketplaceListingVariation
Marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The reference assigned by the 3rd part marketplace. | string |
No |
price |
The current listed price. | number |
No |
status |
The listing variation status. | string |
No |
sku |
The listed sku. | string |
No |
product_variation_id |
The linked product variation id. | number |
No |
quantity |
The currently listed quantity. | number |
No |
created |
Created date. | date |
No |
MarketplaceListingVariationCostPrice
Marketplace listing variation cost price
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The marketplace reference of the product variation. | string |
No |
sku |
The product SKU. | string |
No |
product_variation_id |
The product variation ID. | number |
No |
cost_price |
The average cost price. | number |
No |
resource_metadatas |
List of metadata keys and values set against the listing variation. | array<MarketplaceListingVariationResourceMetadatas> |
Yes |
MarketplaceListingVariationResourceMetadatas
Stores arbitrary data against a marketplace listing variation.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
MarketplaceListingVariationStock
Marketplace listing variation stock
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The marketplace reference of the product variation. | string |
No |
sku |
The product SKU. | string |
No |
product_variation_id |
The product variation ID. | number |
No |
current_listed_quantity |
What quantity BladePRO think is currently listed. | number |
No |
quantity_to_list |
What quantity BladePRO thinks should be listed. | number |
No |
resource_metadatas |
List of metadata keys and values set against the listing variation. | array<MarketplaceListingVariationResourceMetadatas> |
Yes |
marketplace_locations |
List of locations if multi location is enabled. | array<MarketplaceListingVariationStockMarketplaceLocations> |
Yes |
MarketplaceListingVariationStockMarketplaceLocations
Marketplace listing variation’s location-based stock
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
marketplace_location_id |
ID of the location from the app’s global linking. | number |
No |
current_listed_quantity |
What quantity BladePRO think is currently listed. | number |
No |
quantity_to_list |
What quantity BladePRO thinks should be listed. | number |
No |
MarketplaceListings
Marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing ID. | number |
No |
marketplace_reference |
The reference assigned by the 3rd part marketplace. | string |
No |
created |
Created date. | date |
No |
MarketplaceLocations
Acts as a link between BladePRO warehouses and marketplace locations.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO ID for the location mapping. | number |
No |
despatch_warehouse_id |
ID of the warehouse the items need to be despatched from. | number |
No |
location_name |
User-defined, friendly name for the mapping. | string |
No |
location_key |
Identifier from the marketplace. | string |
No |
location_extra |
Extra arbitrary data stored for this location mapping. | string |
No |
default_stock_mode |
The default stock mode to use when importing a new listing for this location only. | enum * see below |
No |
despatch_warehouse |
The despatch warehouse. | Warehouses |
Yes |
stock_warehouses |
List of warehouses stock need to be used from. | array<Warehouses> |
Yes |
Enums
| Field | Values |
|---|---|
default_stock_mode |
keep_in_sync, do_not_sync, always_in_stock, never_in_stock |
OrderChannels
Customer order groups.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the channel. | number |
No |
organisation_id |
ID of the organisation the channel belongs to. | number |
No |
name |
The name of the channel. | string |
No |
short_code |
A short string identifier of the channel. | string |
No |
status |
The status of the channel. | enum * see below |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
brands |
List of related brands | array<Brands> |
Yes |
organisation |
List of related brands | Organisations |
Yes |
tax |
Default tax rate | OrganisationTaxes |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, inactive |
OrderGoodsoutAddresses
Data related to an address.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The address’ unique identifier. | number |
No |
title |
Title. | string |
No |
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
address_one |
First line of address. | string |
No |
address_two |
Second line of address. | string |
No |
address_three |
Third line of address. | string |
No |
town |
Town. | string |
No |
county |
County name. | string |
No |
postcode |
Postcode. | string |
No |
country_id |
ID of the country. | number |
No |
email |
Email. | string |
No |
mobile |
Mobile number. | string |
No |
telephone |
Landline number. | string |
No |
secondary_telephone |
Secondary telephone number. | string |
No |
vat_number |
VAT number. | string |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
country |
The address country. | Countries |
Yes |
OrderGoodsoutAudits
Add a message to the order timeline.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
The timeline entry. | string |
No |
OrderGoodsoutDespatchAttributes
Despatch attribute for an order item
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU. | string |
No |
product_name |
Product name. | string |
No |
attribute_name |
Attribute name. | string |
No |
attribute_value |
Attribute value. | string |
No |
OrderGoodsoutDocumentUploadConfirmation
Confirmation of a file upload.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Whether the upload was successful or not. | boolean |
No |
OrderGoodsoutLineItemDespatchedStocks
Stock despatched for an specific line item.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
quantity |
Quantity despatched. | number |
No |
expiry_date |
The expiry date despatched | date |
No |
batch |
The batch code despatched. | ProductComponentBatches |
Yes |
OrderGoodsoutLineItems
An item inside a goodsout line.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
quantity |
Quantity ordered. | number |
No |
expiry_date |
The expiry date specified | date |
No |
principal_tax |
Tax rate applied to the line item. | OrganisationTaxes |
Yes |
component |
The product component. | ProductComponents |
Yes |
batch |
The batch code specified. | ProductComponentBatches |
Yes |
despatched_stocks |
Despatched Stock. | array<OrderGoodsoutLineItemDespatchedStocks> |
Yes |
OrderGoodsoutLines
An order for a product.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
transaction_sku |
SKU used during the transaction. | string |
No |
quantity |
Quantity ordered. | number |
No |
discount_type |
Discount type. | number |
No |
discount |
Discount amount. | number |
No |
net_unit_principal |
Net unit price. | number |
No |
principal_tax |
Tax rate applied to the line. | OrganisationTaxes |
Yes |
status |
Line status. | enum * see below |
No |
variation |
Product variation. | ProductVariations |
Yes |
items |
Line items. | array<OrderGoodsoutLineItems> |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, void |
OrderGoodsoutPackingListBox
A box with products packed into it.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
pallet |
If the box was placed on a pallet, the pallet’s data. | OrderGoodsoutPackingListPallet |
Yes |
carton_reference |
The sequence number of the current box. | number |
No |
carton_product_variation_id |
The product variation ID of the current box. | number |
No |
sku |
The SKU of the current box. | string |
No |
sscc_18 |
The SSCC-18 barcode of the carton, if exists. | string |
No |
weight |
Weight of the box in kilograms. | string |
No |
height |
Height of the box in millimetres. | string |
No |
width |
Width of the box in millimetres. | string |
No |
depth |
Depth of the box in millimetres. | string |
No |
contains |
List of products packed into the box. | array<OrderGoodsoutPackingListProduct> |
Yes |
OrderGoodsoutPackingListPallet
A pallet on a packing list.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
pallet_product_variation_id |
The product variation ID of the pallet. | number |
No |
pallet_reference |
The sequence number of the pallet. | number |
No |
sku |
The SKU of the pallet. | string |
No |
weight_kg |
Weight of the pallet in kilograms. | string |
No |
OrderGoodsoutPackingListProduct
A pallet on a packing list.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_component_id |
The product component ID of the physical product. | number |
No |
sku |
The SKU of the product component. | string |
No |
name |
Name. | string |
No |
quantity |
Quantity of the product in the box. | number |
No |
colour |
Colour. | number |
No |
size |
Size. | number |
No |
style |
Style. | number |
No |
type |
Type. | number |
No |
quality |
Quality. | number |
No |
OrderGoodsoutShipmentTracking
A shipment tracking update of an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
A summary text that describes the tracking event. | string |
No |
location |
A text summary of where (location) the update has occurred. | string |
No |
tracking_number |
The specific tracking number for the update. | string |
No |
timestamp |
The date/time of when the update was created (UTC format only). | date |
No |
OrderGoodsoutTags
A tag linked to a order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
OrderGoodsouts
Customer order shipments.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
despatch_date |
Despatch date. | date |
No |
cancellation_date |
The date a goodsout was cancelled. | date |
No |
despatch_on_date |
Despatch on date. | date |
No |
source |
Source. | string |
No |
delivery_instructions |
Delivery instructions. | string |
No |
gift_message |
Gift message. | string |
No |
attributes |
List of attributes. | array<CachedAttribute> |
Yes |
shipments |
List of shipments. | array<Shipments> |
Yes |
lines |
List of lines. | array<OrderGoodsoutLines> |
Yes |
tags |
Applied tags. | array<Tags> |
Yes |
warehouse |
Warehouse. | SummarisedWarehouse |
Yes |
order |
Order. | Orders |
Yes |
shipping_address |
Shipping Address. | OrderGoodsoutAddresses |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
OrderLineResourceMetadatas
Stores arbitrary data against a order line.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
OrderResourceMetadatas
Stores arbitrary data against a order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
OrderReturnItemReasons
Order Return Item Reasons.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
The reason for returning an item | string |
No |
short_name |
Name to represent the return reason. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
OrderReturnItems
Order Return Items.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
order_return_id |
Order Return Id the item is attached to. | number |
No |
order_goodsout_line_item_id |
The original goodsout line item the return is for. | number |
No |
order_goodsout_line_id |
The original goodsout line the return is for. | number |
No |
product_component_id |
The product component id. | number |
No |
sku |
SKU of the product component. | string |
No |
exchanged_product_component_id |
The product component that is being sent in exchange. | number |
No |
expected_quantity |
The quantity expected | number |
No |
received_quantity |
The quantity received | number |
No |
expiry_date |
The expiry date of the product | date |
No |
received_date |
The date the item was received into the warehouse | date |
No |
action |
The action for this item | enum * see below |
No |
order_return_item_reason_id |
The return reason id | number |
No |
description |
Description of the returned item | string |
No |
correct_item |
Was the item sent correct? | enum * see below |
No |
resellable |
Is the item in a resellable state? | enum * see below |
No |
status |
The status of the return item | enum * see below |
No |
authorisation_required |
Does the return item require authorisation? | enum * see below |
No |
rejected_reason |
Reason for rejecting the return of this item | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
reason |
The reason for returning the item. | OrderReturnItemReasons |
Yes |
component |
The product component being returned. | ProductComponents |
Yes |
exchange_component |
The product component being sent in exchange. | ProductComponents |
Yes |
Enums
| Field | Values |
|---|---|
action |
refund, exchange, stock |
correct_item |
YES, NO, NOT_RECEIVED |
resellable |
YES, NO |
status |
pending, received, complete, void, draft, rejected, pending_refund, not_received |
authorisation_required |
YES, NO |
OrderReturnTags
A tag linked to a return.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
OrderReturns
Order Returns.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
order_id |
Order Id the return is attached to. | number |
No |
shipping_address_id |
Shipping Address Record. | number |
No |
warehouse_id |
The warehouse dealing with the return. | number |
No |
status |
Status of the return | enum * see below |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
warehouse |
The warehouse dealing with the return. | Warehouses |
Yes |
order |
The order related to the return. | Orders |
Yes |
order_return_items |
The items being returned. | array<OrderReturnItems> |
Yes |
tags |
Tags attached to the return. | array<SummarisedTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, pending, received, rejected, awaiting_despatch, complete, delivered, customer_service |
Orders
Customer order groups.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
goodsouts |
List of goodsouts. | array<OrderGoodsouts> |
Yes |
channel |
Order Channel. | OrderChannels |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
OrganisationTaxes
Organisation tax data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the tax. | number |
No |
name |
Name of the tax. | string |
No |
code |
Code of the tax. | string |
No |
rate |
Rate of the tax. | number |
No |
description |
The description of the tax. | string |
No |
active |
Is this tax currently active? | boolean |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Organisations
Organisation data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the organisation. | number |
No |
name |
Name of the organisation. | string |
No |
active |
Is the organisation currently active? | boolean |
No |
vat_number |
VAT number. | string |
No |
notes |
Notes. | string |
No |
contact_name |
Name of contact staff. | string |
No |
contact_phone |
Telephone number of contact staff. | string |
No |
contact_mobile |
Mobile number contact staff. | string |
No |
contact_email |
Email address of contact staff. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Ports
Shipping ports.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
cbm |
CBM. | number |
No |
ProductAudits
Add a message to the product timeline.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
The timeline entry. | string |
No |
ProductBrands
Product brand data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product brand. | number |
No |
name |
Name of the product brand. | string |
No |
organisation_id |
ID of the parent organisation. | number |
No |
active |
Is the product brand currently active? | boolean |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
organisation |
The parent organisation. | Organisations |
Yes |
ProductChannelCategories
Product channel category data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product channel category. | number |
No |
name |
Name of the product channel category. | string |
No |
parent_id |
ID of the parent product channel category. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
parent |
The parent product channel category. | ProductChannelCategories |
Yes |
ProductChannelVariations
Marketplace listable products’ search data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
channel |
The product channel id. | number |
No |
sku |
The unique stock keeping unit. | string |
No |
product_component_sku |
The unique stock keeping unit. | string |
No |
product_component_supplier_id |
The component supplier id. | number |
No |
product_component_id |
The component id. | number |
No |
warehouse_id |
The warehouse id. | number |
No |
ProductChannels
Geographical region data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product channel. | number |
No |
organisation_id |
ID of the parent organisation. | number |
No |
status |
The status of the product channel. | enum * see below |
No |
outbound_email |
The email address used for outbound messages. | string |
No |
default_warehouse_id |
ID of the default warehouse. | number |
No |
default_product_brand_id |
ID of the default brand. | number |
No |
global |
Is this channel global to all clients? | boolean |
No |
name |
The name of the product channel. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
default_product_brand |
The default brand. | ProductBrands |
Yes |
default_warehouse |
The default warehouse. | Warehouses |
Yes |
organisation |
The parent organisation. | Organisations |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, inactive |
ProductComponentBatches
Description of a batch.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Reference. | string |
No |
description |
Description. | string |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
ProductComponentCostPriceTransports
Transport costs.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
description |
Description. | string |
No |
net_price |
Net price. | number |
No |
tax_id |
Tax ID. | number |
No |
currency_code |
Currency code. | string |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
ProductComponentCostPrices
A cost price.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
notes |
Notes. | string |
No |
net_cost_price |
Net cost price. | number |
No |
currency_code |
Currency code. | string |
No |
cost_price_duty_rate |
Duty rate. | number |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
transports |
Transports. | ProductComponentCostPriceTransports |
Yes |
transport_total |
Summary of goodsin item’s transport costs in the warehouse’s currency. | number |
No |
transport_total_po_curr |
Summary of goodsin item’s transport costs in the purchase order’s currency. | number |
No |
ProductComponentCustomsCodes
Product component customs codes.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the customs code. | number |
No |
code |
The HS code. | string |
No |
name |
Name of the code. | string |
No |
duty_rate |
The duty rate applied to this customs code. | number |
No |
organisation_id |
The organisation that this code applies to. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
organisation |
Organisation | Organisations |
Yes |
ProductComponentDoqTypes
Product component DOQ Types.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the component DOQ. | number |
No |
code |
Short code for the DOQ. | enum * see below |
No |
name |
Name of the DOQ type. | string |
No |
Enums
| Field | Values |
|---|---|
code |
INNER_PACK, MASTER_CASE, PALLET, SINGLE_PRODUCT |
ProductComponentDoqs
Product component DOQ.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the component DOQ. | number |
No |
quantity |
Quantity represented by the DOQ. | number |
No |
weight |
Total weight in KG. | number |
No |
depth |
Total depth in MM. | number |
No |
width |
Total width in MM. | number |
No |
height |
Total height in MM. | number |
No |
shippable |
Can this DOQ value be shipped without additional packaging. | boolean |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
type |
DOQ type. | ProductComponentDoqTypes |
Yes |
ProductComponentInstances
Component instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The component instance id. | number |
No |
product_component_id |
The component this instance is attached to. | number |
No |
component |
The product component. | ProductComponents |
Yes |
ProductComponentLandedPrices
Landed prices.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_component_instance_id |
Product component instnace ID. | number |
No |
product_component_id |
Product component ID. | number |
No |
net_cost_price |
Net cost price. | number |
No |
cost_price_currency_code |
Cost price currency code. | string |
No |
cost_currency |
Cost price currency. | Currencies |
Yes |
cost_price_duty_rate |
Cost price duty rate. | number |
No |
notes |
Notes. | string |
No |
landed_price_currency_code |
Landed price currency code. | string |
No |
landed_currency |
Landed price currency. | SummarisedCurrency |
Yes |
stock |
Stock. | number |
No |
created |
Created date in BladePRO. | date |
No |
landed_price |
Landed price. | number |
No |
ProductComponentSalesSummary
Sales summary for a product.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
1_week |
Sold in the last week. | number |
No |
1_month |
Sold in the last month. | number |
No |
3_months |
Sold in the last three months. | number |
No |
6_months |
Sold in the last six months. | number |
No |
1_year |
Sold in the last year. | number |
No |
lifetime |
Sold in the product’s lifetime. | number |
No |
ProductComponentStockSummary
Stock summary for a product component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
total |
Total stock. | number |
No |
total_saleable |
Total saleable stock. | number |
No |
saleable |
Saleable stock. | number |
No |
pickable |
Pickable stock. | number |
No |
available |
Available stock. | number |
No |
allocated |
Allocated stock. | number |
No |
reserved |
Reserved stock. | number |
No |
misc |
Miscellaneous stock. | number |
No |
gistock |
Goodsin stock. | number |
No |
expected |
Stock expected to arrive. | number |
No |
picked |
Picked stock. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductComponentSuppliers
Product Suppliers.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
organisation_id |
Parent organisation ID. | number |
No |
name |
Name. | string |
No |
active |
Is the supplier active? | boolean |
No |
port_id |
ID of shipping port. | number |
No |
currency_code |
Code of currency. | string |
No |
nominal_code |
Nominal code. | string |
No |
xero_code |
Accounting code. | string |
No |
organisation_tax_id |
Tax ID. | number |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
ProductComponents
Product component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product variation. | number |
No |
status |
The status of the product component. | enum * see below |
No |
sku |
The unique stock keeping unit. | string |
No |
barcode |
Picking Barcode. | string |
No |
perishable |
Is the product perishable. | boolean |
No |
fragile |
Is the product fragile. | boolean |
No |
battery |
Does the product contain a battery. | boolean |
No |
dangerous |
Is the product dangerous. | boolean |
No |
organic |
Is the product organic. | boolean |
No |
what_is_it |
Customs - What is the product. | string |
No |
made_of |
Customs - What is the product made of. | string |
No |
used_for |
Customs - What is the product used for. | string |
No |
customs_country_of_origin_country_id |
Customs - Country of origin. | number |
No |
product_component_customs_code_id |
Customs - HS Code. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
doqs |
Component DOQs. | array<ProductComponentDoqs> |
Yes |
last_cost |
Last cost. | ProductComponentLandedPrices |
Yes |
stock |
Stock summary. | ProductComponentStockSummary |
Yes |
count_product_component_batches |
Count of batches. | number |
No |
sales |
Sales summary. | ProductComponentSalesSummary |
Yes |
batch_codes_enabled |
Batch codes enabled. | string |
No |
Enums
| Field | Values |
|---|---|
status |
active, draft, discontinued |
ProductResourceMetadatas
Stores arbitrary data against a product.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
ProductVariationBatchStockDataSummary
Variation batch stock breakdown.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
Product variation ID. | number |
No |
batch_code |
Natch code. | string |
No |
warehouse_id |
Warehouse ID. | number |
No |
warehouse_code |
Warehouse code. | string |
No |
warehouse_name |
Warehouse name. | string |
No |
total |
Total number of units available. | number |
No |
total_saleable |
Total number of units saleable. | number |
No |
saleable |
Saleable units. | number |
No |
available |
Available units. | number |
No |
allocated |
Allocated units. | number |
No |
misc |
Misc units. | number |
No |
expected |
Expected units. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductVariationComponents
Variation component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
The variation that the component is attached to. | number |
No |
product_component_instance_id |
The component instance. | number |
No |
quantity |
Total quantity of this component inside the variation. | number |
No |
instance |
The product component instance. | ProductComponentInstances |
Yes |
ProductVariationDescriptions
Variation descriptions.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation description id. | number |
No |
product_variation_id |
The product variation id. | number |
No |
locale_id |
The description locale. | number |
No |
name |
The product name. | string |
No |
full_description |
The description of the product. | string |
No |
created |
The created date. | date |
No |
modified |
The last modified date. | date |
No |
locale |
The locale for this description. | Locales |
Yes |
ProductVariationPerishableStockDataSummary
Variation perishable stock breakdown.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
Product variation ID. | number |
No |
expiry_date |
Expiry date. | date |
No |
warehouse_id |
Warehouse ID. | number |
No |
warehouse_code |
Warehouse code. | string |
No |
warehouse_name |
Warehouse name. | string |
No |
total |
Total number of units available. | number |
No |
total_saleable |
Total number of units saleable. | number |
No |
saleable |
Saleable units. | number |
No |
available |
Available units. | number |
No |
allocated |
Allocated units. | number |
No |
misc |
Misc units. | number |
No |
expected |
Expected units. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductVariationStockDataSummary
Variation stock breakdown.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
Product variation ID. | number |
No |
warehouse_id |
Warehouse ID. | number |
No |
warehouse_code |
Warehouse code. | string |
No |
warehouse_name |
Warehouse name. | string |
No |
total |
Total number of units available. | number |
No |
total_saleable |
Total number of units saleable. | number |
No |
saleable |
Saleable units. | number |
No |
available |
Available units. | number |
No |
allocated |
Allocated units. | number |
No |
misc |
Misc units. | number |
No |
expected |
Expected units. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductVariationTags
A tag linked to a product variation.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
ProductVariationTypes
Product variation type data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the variation type. | number |
No |
name |
Name of the product variation type. | string |
No |
type |
Category of the product variation type. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
ProductVariations
Marketplace listable products’ data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product variation. | number |
No |
product_id |
ID of the parent product. | number |
No |
status |
The status of the product variation. | enum * see below |
No |
sku |
The unique stock keeping unit. | string |
No |
barcode |
The product variation barcode. | string |
No |
product_variation_type_id |
ID of the product variation type. | number |
No |
discontinued_date |
The date the product was discontinued on. | date |
No |
despatch_instructions |
Instructions for the staff. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
product |
Product. | Products |
Yes |
type |
The product variation type. | ProductVariationTypes |
Yes |
components |
The variation components. | array<ProductVariationComponents> |
Yes |
descriptions |
The variation descriptions. | array<ProductVariationDescriptions> |
Yes |
primary_component |
The primary component. | array<ProductComponents> |
Yes |
tags |
The variation tags. | array<Tags> |
Yes |
stock_data_summaries |
Stock. | array<ProductVariationStockDataSummary> |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, draft, discontinued |
Products
Product data. Products are grouping entries and may represent multiple different kinds of physical products.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product. | number |
No |
product_channel_id |
ID of the product channel. | number |
No |
product_brand_id |
ID of the parent brand. | number |
No |
product_category_id |
ID of the parent product category. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
channel |
The parent product channel. | ProductChannels |
Yes |
brand |
The parent brand. | ProductBrands |
Yes |
product_category |
The parent product category. | ProductChannelCategories |
Yes |
variations |
The product variations. | array<ProductVariations> |
Yes |
PurchaseOrderAudits
Add a message to the purchase order timeline.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
The timeline entry. | string |
No |
PurchaseOrderGoodsinContainers
A container for a goodsin.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
size |
Size. | enum * see below |
No |
expected_quantity |
Expected quantity. | number |
No |
received_quantity |
Expected quantity. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date. | date |
No |
Enums
| Field | Values |
|---|---|
size |
20FT, 40FT, 40FT-HC |
PurchaseOrderGoodsinItemIssues
Identified issue during receiving.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
description |
Description. | string |
No |
photo_required |
Is a photo required when this issue is encountered? | boolean |
No |
PurchaseOrderGoodsinItems
Received items for a goodsin.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_component_id |
Product component ID. | number |
No |
quantity |
Received quantity. | number |
No |
expiry_date |
Expiry date. | date |
No |
product_component_batch_id |
Batch ID. | number |
No |
purchase_order_goodsin_item_issue_id |
Issue ID. | number |
No |
product_component_cost_price_id |
Cost price ID. | number |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
component |
Product component. | ProductComponents |
Yes |
batch |
Product component batch. | ProductComponentBatches |
Yes |
issue |
Identified issue during receiving. | PurchaseOrderGoodsinItemIssues |
Yes |
cost |
Cost price used. | ProductComponentCostPrices |
Yes |
count_audit_ids |
Count of timeline items against the goodsin item. | number |
No |
PurchaseOrderGoodsins
One shipment to a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
source |
Source. | string |
No |
shipping_company |
Shipping company. | string |
No |
tracking_number |
Tracking number. | string |
No |
expected_pallets |
Number of expected pallets. | number |
No |
expected_cartons |
Number of expected cartons. | number |
No |
received_pallets |
Number of received pallets. | number |
No |
received_cartons |
Number of received cartons. | number |
No |
received_container |
Type of received container. | enum * see below |
No |
container_shipment |
Is this a container shipment? | boolean |
No |
container_size |
Size of the container. | enum * see below |
No |
expected_delivery_date |
Expected delivery date. | date |
No |
expected_delivery_time_slot |
Expected delivery time slot. | enum * see below |
No |
preferred_delivery_date |
Preferred delivery date. | date |
No |
preferred_delivery_time_slot |
Preferred delivery time slot. | enum * see below |
No |
shipping_method |
Shipping method. | enum * see below |
No |
port_id |
ID of the port. | number |
No |
purchase_order_goodsin_shipping_term_id |
Shipping term ID. | number |
No |
status |
Goodsin status. | enum * see below |
No |
is_third_party |
Is this a third party goodsin? | boolean |
No |
third_party_emails |
Third party email addresses. | string |
No |
third_party_contact_name |
Third party contact names. | string |
No |
booking_requested |
Booking requested date. | date |
No |
booking_approved_by |
User ID. | number |
No |
booking_approved |
Booking approved date. | date |
No |
unique_booking_reference |
Booking reference. | string |
No |
check_in_by |
Check in by date. | date |
No |
transport_costs_locked |
Date the transport costs have been locked on. | date |
No |
lock_user_id |
ID of the locking user. | number |
No |
receiving_started |
Date of the start of receving. | date |
No |
receiving_completed |
Date of the end of receving. | date |
No |
checkin_started |
Date of the start of checkin. | date |
No |
checkin_completed |
Date of the end of checkin. | date |
No |
putaway_started |
Date of the start of putaway. | date |
No |
putaway_completed |
Date of the end of putaway. | date |
No |
ignore_from_billing |
Should the goodsin be ignored from billing? | boolean |
No |
returns_damaged_count |
The amount returned because of damage. | number |
No |
returns_unidentifiable_count |
The amount returned because the items had been unidentifiable. | number |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
containers |
Received containers. | array<PurchaseOrderGoodsinContainers> |
Yes |
port |
Shipping port. | Ports |
Yes |
consignment_qualities |
Quality descriptions. | array<ConsignmentQualities> |
Yes |
items |
Received items. | array<PurchaseOrderGoodsinItems> |
Yes |
Enums
| Field | Values |
|---|---|
received_container |
20FT, 40FT, 40FT-HC |
container_size |
none, half, full |
expected_delivery_time_slot |
am, pm |
preferred_delivery_time_slot |
am, pm |
shipping_method |
air, sea, road, ```` | |
status |
awaiting_booking, awaiting_shipping, awaiting_receiving, awaiting_checkin, awaiting_putaway, completed, cancelled, awaiting_collection |
PurchaseOrderLines
An item ordered in a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_component_id |
Product component ID. | number |
No |
name |
Product component name. | string |
No |
quantity |
Requested quantity. | number |
No |
cost_price |
Cost price. | number |
No |
duty |
Duty. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date. | date |
No |
component |
Product component. | ProductComponents |
Yes |
count_audit_ids |
Count of timeline entries against the line. | number |
No |
doq |
Denominations of quantity. | ProductComponentDoqs |
Yes |
PurchaseOrderPayments
Payments made towards purchase order suppliers.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
amount |
Amount paid. | number |
No |
currency_code |
Currency code. | string |
No |
effective_date |
Effective date. | date |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
PurchaseOrderReferences
Purchase order references.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
PurchaseOrderResourceMetadatas
Stores arbitrary data against a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
PurchaseOrderTags
A tag linked to a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
PurchaseOrderTypes
Types of purchase orders
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
code |
Code. | string |
No |
name |
Name. | string |
No |
description |
Description. | string |
No |
PurchaseOrders
Purchase orders.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_channel_id |
ID of the product channel. | number |
No |
purchase_order_type_id |
ID of the purchase order type. | number |
No |
product_component_supplier_id |
Supplier ID. | number |
No |
warehouse_id |
Warehouse ID. | number |
No |
currency_id |
Currency ID. | number |
No |
status |
Purchase order status. | enum * see below |
No |
notification_email_addresses |
Notification email address. | string |
No |
comments |
Comments. | string |
No |
reject_reason |
Reason for rejecting the purchase order. | string |
No |
approved_date |
Date the purchase order was accepted on. | date |
No |
completed_date |
Date of completion. | date |
No |
discount |
Discount amount. | number |
No |
discount_type |
Discount type. | enum * see below |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
warehouse |
Warehouse. | SummarisedWarehouse |
Yes |
currency |
Currency. | SummarisedCurrency |
Yes |
channel |
Product channel details. | CachedProductChannel |
Yes |
type |
Purchase order type. | PurchaseOrderTypes |
Yes |
supplier |
Supplier. | ProductComponentSuppliers |
Yes |
lines |
Ordered lines. | array<PurchaseOrderLines> |
Yes |
payments |
Payments made to suppliers. | array<PurchaseOrderPayments> |
Yes |
goodsins |
List of goodsins. | array<PurchaseOrderGoodsins> |
Yes |
tags |
List of applied tags. | array<Tags> |
Yes |
references |
List of references. | array<PurchaseOrderReferences> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, cancelled, awaiting_approval, awaiting_booking, rejected, open, completed, discrepancies, pending_completion |
discount_type |
percentage, value |
RegionSettings
Settings data for geographical regions.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the region setting. | number |
No |
region_id |
The ID of the region the setting relates to. | number |
No |
region |
The region the setting relates to. | Regions |
Yes |
setting |
Descriptive name of the setting. | string |
No |
value |
Value of the setting. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Regions
Geographical region data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the region. | number |
No |
name |
Descriptive name of the region. | string |
No |
region_settings |
Settings of the region. | array<RegionSettings> |
Yes |
ReturnResourceMetadatas
Stores arbitrary data against a return.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
Shipments
Data related to a shipment.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
shipping_service |
Shipping service used. | ShippingServices |
Yes |
ShippingCourierAccounts
Shipping courier account data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Account name. | string |
No |
courier |
The courier. | CachedNameAndCode |
Yes |
ShippingServices
Customer order shipments.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Service name. | string |
No |
code |
Service code. | string |
No |
courier_account |
Courier account. | ShippingCourierAccounts |
Yes |
StockAvailability
Variation specific data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation id. | number |
No |
sku |
The product SKU. | string |
No |
barcode |
The product variation barcode. | string |
No |
stocks |
Stocks. | array |
Yes |
SummarisedCountry
A country.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
iso_2 |
The 2-letter ISO abbreviation. | string |
No |
iso_3 |
The 3-letter ISO abbreviation. | string |
No |
SummarisedCurrency
A currency.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
code |
Code. | string |
No |
name |
Name. | string |
No |
symbol |
Symbol. | string |
No |
SummarisedLocale
Locale / Language.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Locale id. | number |
No |
name |
Name of the locale. | string |
No |
code |
Short code for the locale. | string |
No |
created |
When the locale was created. | date |
No |
modified |
When the locale was modified. | date |
No |
SummarisedProductCategory
Summary of a product category.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the product category. | number |
No |
name |
The name of the product category. | string |
No |
SummarisedProductVariationType
Top level product data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product type id. | number |
No |
name |
The product type name. | string |
No |
type |
Category of the product variation type. | string |
No |
SummarisedTag
A tag.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
shortcode |
Short code. | string |
No |
description |
Short description. | string |
No |
SummarisedWarehouse
A warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
short_code |
Code. | string |
No |
name |
Name. | string |
No |
country |
Country. | SummarisedCountry |
Yes |
SyncedMarketplaceListing
Sync marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
listing_reference |
The parent or first marketplace reference for the listing as provided in the request. | string |
No |
listing_variation_reference |
The child or second marketplace reference for the listing as provided in the request. | string |
No |
sku |
The product SKU for the listing. | string |
No |
result |
The outcome for this listing. | enum * see below |
No |
error |
The marketplace reference for the listing as provided in the request. | string |
No |
Enums
| Field | Values |
|---|---|
result |
unchanged, created, updated, removed, errored |
Tags
A tag.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
Templates
Template.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the template. | number |
No |
organisation_id |
ID of the organisation. | number |
No |
template_category_id |
ID of the template category. | number |
No |
template_category_code |
Code of the template category. | number |
No |
name |
Name of the template. | string |
No |
status |
Orientation. | enum * see below |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Enums
| Field | Values |
|---|---|
status |
portrait, landscape |
VendorOrderItemStatuses
A status for a vendor order item.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The status’ unique identifier. | number |
No |
name |
Name of the status. | string |
No |
group |
Name of the status’ group. | string |
No |
accepted |
Has the vendor order line been accepted? | boolean |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
VendorOrderItems
A line in a vendor order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The vendor order item’s unique identifier. | number |
No |
vendor_order_id |
The vendor order’s unique identifier. | number |
No |
vendor_order_item_status_id |
The vendor order item status’ unique identifier. | number |
No |
model_number |
The product’s model number. | string |
No |
asin |
The product’s ASIN. | string |
No |
sku |
The product’s SKU. | string |
No |
product_variation_id |
The product variation’s unique identifier. | number |
No |
name |
The product’s name. | string |
No |
expected_delivery_date |
Expected delivery date. | date |
No |
confirmed_delivery_date |
Confirmed delivery date. | date |
No |
submitted_quantity |
Submitted quantity, as requested by the vendor. | number |
No |
accepted_quantity |
Accepted quantity, as confirmed. | number |
No |
received_quantity |
Received quantity. | number |
No |
unit_cost |
Unit cost. | number |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
vendor_order |
The vendor order. | VendorOrders |
Yes |
status |
The vendor order item status. | VendorOrderItemStatuses |
Yes |
product_variation |
The product variation. | ProductVariations |
Yes |
VendorOrderResourceMetadatas
Stores arbitrary data against a vendor order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
VendorOrders
A vendor order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The vendor order’s unique identifier. | number |
No |
code |
Identifier created by vendor. | string |
No |
status |
Status in BladePRO. | enum * see below |
No |
vendor |
Vendor identifier. | string |
No |
ordered_on |
Vendor order created date at vendor’s side. | date |
No |
deliver_from |
Delivery window’s start date. | date |
No |
deliver_to |
Delivery window’s end date. | date |
No |
freight_terms |
Vendor’s freight terms. | string |
No |
payment_method |
Vendor’s payment method. | string |
No |
payment_terms |
Vendor’s payment terms. | string |
No |
purchasing_entity |
Vendor description. | string |
No |
delivery_party |
Delivery Party. | string |
No |
order_channel_id |
Order channel’s unique identifier. | number |
No |
currency_id |
ID of the currency. | number |
No |
warehouse_id |
ID of the fulfilling warehouse. | number |
No |
finalised |
Finalised date. | date |
No |
address_first_name |
First name part of the address. | string |
No |
address_last_name |
Last name part of the address. | string |
No |
address_company |
Company part of the address. | string |
No |
address_line_one |
Line one of the address. | string |
No |
address_line_two |
Line two of the address. | string |
No |
address_line_three |
Line three of the address. | string |
No |
address_postcode |
Postcode part of the address. | string |
No |
address_town |
Town part of the address. | string |
No |
address_county |
County part of the address. | string |
No |
address_country_id |
ID of the country of the address. | string |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
order_channel |
The order channel. | OrderChannels |
Yes |
currency |
The currency. | Currencies |
Yes |
warehouse |
The fulfilling warehouse. | Warehouses |
Yes |
address_country |
The address country. | Countries |
Yes |
items |
List of items in the vendor order. | array<VendorOrderItems> |
Yes |
Enums
| Field | Values |
|---|---|
status |
unconfirmed, processing, confirmed, void |
VirtualStocks
A stock entry.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
virtual_warehouse_location_id |
Location ID. | number |
No |
product_variation_id |
Product variation ID. | number |
No |
quantity |
Quantity in stock. | number |
No |
expiry_date |
Expiry date. | date |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified date. | date |
No |
location |
The virtual warehouse location. | VirtualWarehouseLocations |
Yes |
product_variation |
Product variation. | ProductVariations |
Yes |
VirtualWarehouseLocations
A location in a virtual warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
barcode |
Identifier of the location. | string |
No |
virtual_warehouse_id |
The ID of the virtual warehouse the location belongs to. | number |
No |
active |
Is the location active? | boolean |
No |
sellable |
Should the stock in this location be considered sellable? | boolean |
No |
created |
Created timestamp in BladePRO. | date |
No |
warehouse |
The virtual warehouse. | VirtualWarehouses |
Yes |
VirtualWarehouses
Storages that are outside of BladePRO’s control, such as showrooms, or stock at Amazon’s warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
description |
Description. | string |
No |
active |
Is the warehouse currently active? | boolean |
No |
api_managed_only |
Is the warehouse managed by an API? | boolean |
No |
location_creation_enabled |
Is it possible to create locations? | boolean |
No |
created |
Created timestamp in BladePRO. | date |
No |
locations |
List of locations. | array<VirtualWarehouseLocations> |
Yes |
Warehouses
A warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
latitude |
Latitude coordinate. | number |
No |
longitude |
Longitude coordinate. | number |
No |
country_id |
ID of the warehouse’s country. | number |
No |
active |
Is the warehouse switched on? | boolean |
No |
currency_id |
ID of the warehouse’s currency. | number |
No |
virtual |
Is the warehouse virtual? | boolean |
No |
return_warehouse_id |
ID of the return warehouse, if the returns for this warehouse are redirected. | number |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
currency |
The warehouse’s currency. | Currencies |
Yes |
country |
The warehouse’s country. | Countries |
Yes |
return_warehouse |
The return warehouse, if the returns for this warehouse are redirected. | Warehouses |
Yes |
Tasks
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
task_reference |
Reference for accessing the task. | string |
No |
WebhookOrderCancelled
Order cancelled webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderCancelledOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderCancelledWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderCancelledAddress |
Yes |
attributes |
Attributes. | array<WebhookOrderCancelledAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderCancelledTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderCancelledAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderCancelledCountry |
Yes |
WebhookOrderCancelledAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderCancelledCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderCancelledOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
order_channel_id |
Order channel ID. | number |
No |
brand_id |
Brand ID. | number |
No |
currency |
Currency. | WebhookOrderCancelledOrderCurrency |
Yes |
channel |
Channel. | WebhookOrderCancelledOrderChannel |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderCancelledOrderChannel
Channel data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for channel. | number |
No |
organisation_id |
Organisation id. | number |
No |
name |
Name. | string |
No |
outbound_email |
Outbound email. | string |
No |
WebhookOrderCancelledOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderCancelledTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderCancelledWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderCancelledCountry |
Yes |
WebhookOrderConfirmed
Order confirmed webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderConfirmedOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderConfirmedWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderConfirmedAddress |
Yes |
attributes |
Attributes. | array<WebhookOrderConfirmedAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderConfirmedTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderConfirmedAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderConfirmedCountry |
Yes |
WebhookOrderConfirmedAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderConfirmedCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderConfirmedOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
order_channel_id |
Order channel ID. | number |
No |
brand_id |
Brand ID. | number |
No |
currency |
Currency. | WebhookOrderConfirmedOrderCurrency |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderConfirmedOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderConfirmedTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderConfirmedWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderConfirmedCountry |
Yes |
WebhookOrderCreated
Order created webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderCreatedOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderCreatedWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderCreatedAddress |
Yes |
lines |
Lines. | array<WebhookOrderCreatedLine> |
Yes |
attributes |
Attributes. | array<WebhookOrderCreatedAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderCreatedTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderCreatedAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderCreatedCountry |
Yes |
WebhookOrderCreatedAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderCreatedCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderCreatedLine
Order line data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
transaction_sku |
SKU used during the transaction. | string |
No |
quantity |
Quantity ordered. | number |
No |
net_unit_principal |
Net unit principle. | number |
No |
net_unit_commission |
Net unit commission. | number |
No |
status |
Line status. | enum * see below |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
variation |
Product variation. | WebhookOrderCreatedProductVariation |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, void |
WebhookOrderCreatedOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
channel |
Order channel. | WebhookOrderCreatedOrderChannel |
Yes |
brand |
Brand. | WebhookOrderCreatedOrderBrand |
Yes |
currency |
Currency. | WebhookOrderCreatedOrderCurrency |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderCreatedOrderBrand
Brand data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the brand. | number |
No |
name |
Name of the brand. | string |
No |
WebhookOrderCreatedOrderChannel
Order channel data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the channel. | number |
No |
name |
The name of the channel. | string |
No |
short_code |
A short string identifier of the channel. | string |
No |
WebhookOrderCreatedOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderCreatedProductVariation
Product variation data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product variation. | number |
No |
product_id |
ID of the parent product. | number |
No |
sku |
The unique stock keeping unit. | string |
No |
WebhookOrderCreatedTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderCreatedWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderCreatedCountry |
Yes |
WebhookOrderDespatched
Order despatched webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
despatch_date |
Despatched date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderDespatchedOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderDespatchedWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderDespatchedAddress |
Yes |
attributes |
Attributes. | array<WebhookOrderDespatchedAttribute> |
Yes |
despatch_attributes |
Product Component Despatched Attributes. | array<WebhookOrderProductComponentDespatchedAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderDespatchedTag> |
Yes |
shipping |
Shipping details. | WebhookOrderDespatchedShipping |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderDespatchedAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderDespatchedCountry |
Yes |
WebhookOrderDespatchedAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderDespatchedCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderDespatchedOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
order_channel_id |
Order channel ID. | number |
No |
brand_id |
Brand ID. | number |
No |
currency |
Currency. | WebhookOrderDespatchedOrderCurrency |
Yes |
channel |
Channel. | WebhookOrderDespatchedOrderChannel |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderDespatchedOrderChannel
Channel data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for channel. | number |
No |
organisation_id |
Organisation id. | number |
No |
name |
Name. | string |
No |
outbound_email |
Outbound email. | string |
No |
WebhookOrderDespatchedOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderDespatchedShipping
Shipping details.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
courier_name |
Name of the shipping courier. | string |
No |
service_name |
Name of the shipping service. | string |
No |
tracking |
Tracking numbers. | array<WebhookOrderDespatchedShippingTracking> |
Yes |
WebhookOrderDespatchedShippingTracking
Tracking details.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
tracking_number |
Tracking number. | string |
No |
tracking_url |
Tracking url. | string |
No |
WebhookOrderDespatchedTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderDespatchedWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderDespatchedCountry |
Yes |
WebhookOrderProductComponentDespatchedAttribute
Attribute of Despatched Product Component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU. | string |
No |
attribute_name |
Attribute name. | string |
No |
attribute_value |
Attribute value. | string |
No |
order_goodsout_line_id |
The line reference that the attribute was applied to. | number |
No |
order_goodsout_line_item_id |
The line item reference that the attribute was applied to. | number |
No |
WebhookReturnCompleted
Order return completed webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
return_id |
Return ID. | number |
No |
order_id |
Order ID | number |
No |
order_reference |
Order reference | string |
No |
order_channel_id |
Order channel ID | number |
No |
return_created |
Return created timestamp. | date |
No |
carrier |
Carrier name | string |
No |
service |
Service type | string |
No |
tracking_number |
Tracking number | string |
No |
warehouse_id |
Warehouse ID | number |
No |
received_date |
Return received. | date |
No |
completed_date |
Return completed. | date |
No |
return_items |
Return items list | array<WebhookReturnCompletedItem> |
Yes |
WebhookReturnCompletedItem
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU | string |
No |
product_component_id |
Product component ID | number |
No |
return_quantity |
Quantity being returned | number |
No |
return_reason |
Reason for return | string |
No |
exchange_or_refund |
Exchange or refund type | string |
No |
exchange_product_component_id |
Exchange product component ID (if exchange) | number |
No |
expected_quantity |
Expected quantity to be returned | number |
No |
received_quantity |
Actual quantity received | number |
No |
correct_item |
Whether the returned item is correct | string |
No |
resellable |
Whether the item is resellable | string |
No |
WebhookReturnCreated
Order return created webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
return_id |
Return ID. | number |
No |
order_id |
Order ID | number |
No |
order_reference |
Order reference | string |
No |
order_channel_id |
Order channel ID | number |
No |
return_created |
Return created timestamp. | date |
No |
carrier |
Carrier name | string |
No |
service |
Service type | string |
No |
tracking_number |
Tracking number | string |
No |
warehouse_id |
Warehouse ID | number |
No |
return_items |
Return items list | array<WebhookReturnCreatedItem> |
Yes |
WebhookReturnCreatedItem
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU | string |
No |
product_component_id |
Product component ID | number |
No |
return_quantity |
Quantity being returned | number |
No |
return_reason |
Reason for return | string |
No |
exchange_or_refund |
Exchange or refund type | string |
No |
WebhookReturnReceived
Return received webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
return_id |
Return ID. | number |
No |
order_id |
Order ID. | number |
No |
order_reference |
Unique reference. | string |
No |
order_channel_id |
Order Channel ID. | number |
No |
return_created |
Return created. | date |
No |
carrier |
Carrier. | string |
No |
service |
Service. | string |
No |
tracking_number |
Tracking number. | string |
No |
warehouse_id |
Warehouse ID. | number |
No |
received_date |
Return received. | date |
No |
WebhookVendorOrderFinalised
Vendor order finalise webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Unique BladePRO identifier for the vendor order. | number |
No |
code |
Reference for the vendor order. | string |
No |
vendor |
Vendor. | string |
No |
status |
Status of the vendor order. | string |
No |
delivery_party |
Delivery Party. | string |
No |
address_first_name |
Delivery Address: First name. | string |
No |
address_last_name |
Delivery Address: Last name. | string |
No |
address_company |
Delivery Address: Company. | string |
No |
address_line_one |
Delivery Address: Line one. | string |
No |
address_line_two |
Delivery Address: Line two. | string |
No |
address_line_three |
Delivery Address: Line three. | string |
No |
address_postcode |
Delivery Address: Postcode. | string |
No |
address_town |
Delivery Address: Town. | string |
No |
address_county |
Delivery Address: county. | string |
No |
finalised |
Datetime for when the vendor order was finalised. | date |
No |
order_channel |
The vendor order channel. | WebhookVendorOrderFinalisedOrderChannel |
Yes |
country |
Delivery country. | WebhookVendorOrderFinalisedCountry |
Yes |
selected_warehouse |
The warehouse from where the stock will be despatched from. | WebhookVendorOrderFinalisedWarehouse |
Yes |
currency |
Currency of the vendor order. | WebhookVendorOrderFinalisedCurrency |
Yes |
items |
Vendor items. | array<WebhookVendorOrderFinalisedItem> |
Yes |
WebhookVendorOrderFinalisedCountry
Delivery location.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the country. | number |
No |
name |
Name of the country. | string |
No |
iso_2 |
ISO 2 Code. | string |
No |
iso_3 |
ISO 3 code. | string |
No |
WebhookVendorOrderFinalisedCurrency
vendor order currency.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookVendorOrderFinalisedItem
item.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the vendor order item. | number |
No |
product_variation_id |
BladePRO identifier for product. | number |
No |
sku |
sku. | string |
No |
submitted_quantity |
Vendor Submitted Quantity. | number |
No |
accepted_quantity |
Quantity accepted in BladePRO. | number |
No |
unit_cost |
Net Unit Cost | number |
No |
status |
Status | string |
No |
expected_delivery_date |
Expected Delivery Date | date |
No |
WebhookVendorOrderFinalisedOrderChannel
vendor order finalise webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Channel id for the vendor order. | number |
No |
name |
Channel name for the vendor order. | string |
No |
WebhookVendorOrderFinalisedWarehouse
Warehouse from which the vendor order will be despatched from.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the warehouse. | number |
No |
name |
Name of the warehouse. | string |
No |
country |
Warehouse location. | WebhookVendorOrderFinalisedWarehouseCountry |
Yes |
WebhookVendorOrderFinalisedWarehouseCountry
Warehouse location.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the country. | number |
No |
name |
Name of the country. | string |
No |
iso_2 |
ISO 2 Code. | string |
No |
iso_3 |
ISO 3 code. | string |
No |
Get Preference Value
GET /v1/preferences/:code
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/preferences/my_preference", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/preferences/my_preference', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/preferences/my_preference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/preferences/my_preference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"value": "12.43",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Returns the value of a preference.
Parameter Regular Expressions
- :code: [a-zA-Z_]{1,100}
Return Type
ApplicationInstancePreferences
Scopes
This endpoint is only available for users with scope APP::MISC.
Set Preference Value
PUT /v1/preferences/:code
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/preferences/my_preference", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/preferences/my_preference', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/preferences/my_preference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/preferences/my_preference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"value": "12.43",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Sets the value of a preference.
Parameter Regular Expressions
- :code: [a-zA-Z_]{1,100}
Request Body
Return Type
ApplicationInstancePreferences
Types for the Request Body
SetValue (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
required |
Scopes
This endpoint is only available for users with scope APP::MISC.
Activate Application
PUT /v1/apps/activate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/apps/activate", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/apps/activate', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/activate",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/apps/activate' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"name": "Active",
"code": "ACTIVE",
"description": "The application is live and active."
}
}
Mark the application’s installation as active.
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
Deactivate Application
PUT /v1/apps/deactivate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/apps/deactivate", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/apps/deactivate', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/deactivate",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/apps/deactivate' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"name": "Active",
"code": "ACTIVE",
"description": "The application is live and active."
}
}
Mark the application’s installation as deactivated.
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
App Instance Info
GET /v1/apps/info
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/apps/info?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/apps/info?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/info?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/apps/info?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"nickname": "My web store",
"status": {
"name": "Active",
"code": "ACTIVE",
"description": "The application is live and active."
}
}
}
Get a summary of the logged in application instance.
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
status |
ApplicationInstanceStatuses |
Represents a status for an application instance. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Get Marketplace Application Settings
GET /v1/apps/marketplace/settings
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/apps/marketplace/settings?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"currency_id": 1,
"locale_id": 1,
"order_channel_id": 321,
"primary_warehouse_id": 1,
"order_import_grace_period_minutes": 0,
"ignore_orders_created_before": null,
"allow_multi_location_support": 0,
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"order_channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"tax": {
"id": 1,
"name": "standard",
"code": "20",
"rate": 20,
"description": "standard 20%",
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"primary_warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"warehouses": [
{
"short_code": "CHR",
"name": "Christchurch"
}
]
}
}
Returns the main configuration settings for an app of type Marketplace.
Return Type
MarketplaceApplicationInstanceSettings
Available expands
| Field | Return Type | Description |
|---|---|---|
currency |
SummarisedCurrency |
A currency. |
locale |
SummarisedLocale |
Locale / Language. |
order_channel |
OrderChannels |
Customer order groups. |
order_channel.tax |
OrganisationTaxes |
Organisation tax data. |
primary_warehouse |
SummarisedWarehouse |
A warehouse. |
primary_warehouse.country |
SummarisedCountry |
A country. |
warehouses |
array<SummarisedWarehouse> |
A warehouse. |
warehouses.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Get Demand Planning Application Settings
GET /v1/apps/demand_planning/settings
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/apps/demand_planning/settings", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/apps/demand_planning/settings', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/apps/demand_planning/settings",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/apps/demand_planning/settings' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"product_channel_id": 123,
"organisation_id": 123,
"warehouse_code": "TRAI"
}
}
Returns the main configuration settings for an app of type Demand Planning.
Return Type
DemandPlanningApplicationInstanceSettings
Scopes
This endpoint is only available for users with any of these scopes: APP::PRODUCTS::MANAGE, APP:PURCHASE-ORDERS::MANAGE.
Login
POST /v1/auth/login
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/auth/login", [
"body" => json_encode([
"username" => "my-login",
"password" => "my-password",
]),
"headers" => [
"Content-Type" => "application/json",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/auth/login', {
username: "my-login",
password: "my-password",
}, {
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/auth/login",
body: {
"username": "my-login",
"password": "my-password"
},
headers: {
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/auth/login' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "my-login",
"password": "my-password"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"session_token": "W4B8rXsW1qAFHxddCCAP4IEDGGlgxxVrHKhlDpO7DUDEnN0qWocYi6skJK8dwvCo3zjhA7kzR91pkvyzBCXQ21bWbfUZA22RYtXS",
"expiry": "2025-10-31T15:24:10.000Z"
}
}
Log into BladePRO.
Request Body
Return Type
Types for the Request Body
Login (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
username |
The username. | string |
requirednot nullmin length is 2 |
password |
The password. | string |
requirednot nullmin length is 3 |
Scopes
This endpoint is available to all users.
Revoke Token
DELETE /v1/auth/revoke-token
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/auth/revoke-token", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/auth/revoke-token', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/auth/revoke-token",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/auth/revoke-token' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Revoke session token.
Return Type
Empty.
Scopes
This endpoint is available to all users.
GDPR Request
POST /v1/gdpr
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/gdpr", [
"body" => json_encode([
"message" => "Customer John Smith (#23) has requested a redaction.",
"details" => [
"name" => "John Smith",
"id" => "23",
"email" => "john.smith@nowhere.com",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/gdpr', {
message: "Customer John Smith (#23) has requested a redaction.",
details: {
name: "John Smith",
id: "23",
email: "john.smith@nowhere.com",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/gdpr",
body: {
"message": "Customer John Smith (#23) has requested a redaction.",
"details": {
"name": "John Smith",
"id": "23",
"email": "john.smith@nowhere.com"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/gdpr' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Customer John Smith (#23) has requested a redaction.",
"details": {
"name": "John Smith",
"id": "23",
"email": "john.smith@nowhere.com"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 34
}
}
Submit a GDPR request.
Request Body
Return Type
Types for the Request Body
GdprRequest (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
Details regarding the request. | string |
requirednot null |
details |
Specific request details in a Key/Value object. | object |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident
POST /v1/log/incident
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident", [
"body" => json_encode([
"message" => "This is a message worth saving to our incident.",
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
"incident_bindings" => [
"user" => 15,
"vendor_order" => 1546,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident', {
message: "This is a message worth saving to our incident.",
details: {
x: 0,
y: 0,
z: 4,
},
incident_bindings: {
user: 15,
vendor_order: 1546,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident",
body: {
"message": "This is a message worth saving to our incident.",
"details": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 15,
"vendor_order": 1546
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "This is a message worth saving to our incident.",
"details": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 15,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident.
Request Body
Return Type
Types for the Request Body
CreateIncident (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message to be recorded. | string |
requirednot nullmin length is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
not null |
task_reference |
The ID of the related task. | string |
not nullmatch is /^[0-9a-z-]{36}$/ |
incident_bindings |
Bindings for the incident to be created. | CreateIncidentBinding |
not null |
incident_type_code |
Optional incident type code. | string |
match is /^[0-9a-zA-Z_-]{1,200}$/ |
CreateIncidentBinding
| Key | Description | Types | Restrictions |
|---|---|---|---|
user |
User ID. | number |
not null |
company |
Company ID. | number |
not null |
organisation |
Organisation ID. | number |
not null |
order_goodsout |
Order goodsout ID. | number |
not null |
order_channel |
Order channel ID. | number |
not null |
product_channel |
Product channel ID. | number |
not null |
product_variation |
Product variation ID. | number |
not null |
product_component |
Product component ID. | number |
not null |
listing |
Listing ID. | number |
not null |
vendor_order |
Vendor order ID. | number |
not null |
purchase_order |
Purchase order ID. | number |
not null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident import missing sku
POST /v1/log/incident/order_import/missing_sku
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku", [
"body" => json_encode([
"product_sku" => "ABC12335",
"product_name" => "ABC Backpack.",
"order_reference" => "#1234-123442",
"order_channel_id" => 44,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku', {
product_sku: "ABC12335",
product_name: "ABC Backpack.",
order_reference: "#1234-123442",
order_channel_id: 44,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku",
body: {
"product_sku": "ABC12335",
"product_name": "ABC Backpack.",
"order_reference": "#1234-123442",
"order_channel_id": 44,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_sku' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_sku": "ABC12335",
"product_name": "ABC Backpack.",
"order_reference": "#1234-123442",
"order_channel_id": 44,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to order import missing SKU.
Request Body
CreateIncidentImportMissingSku
Return Type
Types for the Request Body
CreateIncidentImportMissingSku (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_sku |
The product SKU to be stored against the incident occurrence. | string |
requirednot nullmin length is 1 |
product_name |
The product name to be stored against the incident occurrence. | string |
not null |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident import missing tax rate
POST /v1/log/incident/order_import/missing_tax_rate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate", [
"body" => json_encode([
"tax_rate" => "12.2",
"order_reference" => "#1234-123442",
"order_channel_id" => 90,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate', {
tax_rate: "12.2",
order_reference: "#1234-123442",
order_channel_id: 90,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate",
body: {
"tax_rate": "12.2",
"order_reference": "#1234-123442",
"order_channel_id": 90,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/order_import/missing_tax_rate' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"tax_rate": "12.2",
"order_reference": "#1234-123442",
"order_channel_id": 90,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to order import missing tax rate.
Request Body
CreateIncidentImportMissingTaxRate
Return Type
Types for the Request Body
CreateIncidentImportMissingTaxRate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
tax_rate |
The tax rate. | number |
requirednot nullmin is 0.01 |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident import failure
POST /v1/log/incident/order_import/failure
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/order_import/failure", [
"body" => json_encode([
"failure_message" => "No response from the shop url",
"order_reference" => "#1234-123442",
"order_channel_id" => 73,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/order_import/failure', {
failure_message: "No response from the shop url",
order_reference: "#1234-123442",
order_channel_id: 73,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/order_import/failure",
body: {
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 73,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/order_import/failure' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 73,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to order import failure.
Request Body
Return Type
Types for the Request Body
CreateIncidentImportFailure (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
failure_message |
Failure message. | string |
requirednot nullmin length is 1 |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log incident with purchase order import failure
POST /v1/log/incident/purchase_order_import/failure
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure", [
"body" => json_encode([
"failure_message" => "No response from the shop url",
"order_reference" => "#1234-123442",
"order_channel_id" => 58,
"details" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure', {
failure_message: "No response from the shop url",
order_reference: "#1234-123442",
order_channel_id: 58,
details: {
x: 0,
y: 0,
z: 4,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure",
body: {
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 58,
"details": {
"x": 0,
"y": 0,
"z": 4
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log/incident/purchase_order_import/failure' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"failure_message": "No response from the shop url",
"order_reference": "#1234-123442",
"order_channel_id": 58,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"incident_id": 123
}
}
Saves an incident related to purchase order import failure.
Request Body
Return Type
Types for the Request Body
CreateIncidentImportFailure (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
failure_message |
Failure message. | string |
requirednot nullmin length is 1 |
order_reference |
The product order reference. | string |
requirednot nullmin length is 1max length is 120 |
order_channel_id |
Order channel id | integer |
requirednot nullmin is 1 |
details |
Additional data to be stored against the incident occurrence. | object |
Scopes
This endpoint is only available for users with scope APP::MISC.
List Marketplace Listing Metadata
GET /v1/marketplaces/listings/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a marketplace listing.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<MarketplaceListingResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Get Marketplace Listing Metadata
GET /v1/marketplaces/listings/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a marketplace listing.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
MarketplaceListingResourceMetadatas
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Set Marketplace Listing Metadata
PUT /v1/marketplaces/listings/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a marketplace listing.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
MarketplaceListingResourceMetadatas
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Delete Marketplace Listing Metadata
DELETE /v1/marketplaces/listings/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/marketplaces/listings/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a marketplace listing.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
List Marketplace Listing Variation Metadata
GET /v1/marketplaces/listings/variations/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a marketplace listing variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<MarketplaceListingVariationResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Get Marketplace Listing Variation Metadata
GET /v1/marketplaces/listings/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a marketplace listing variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
MarketplaceListingVariationResourceMetadatas
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Set Marketplace Listing Variation Metadata
PUT /v1/marketplaces/listings/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a marketplace listing variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
MarketplaceListingVariationResourceMetadatas
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Delete Marketplace Listing Variation Metadata
DELETE /v1/marketplaces/listings/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a marketplace listing variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Sync marketplace listings
POST /v1/marketplaces/listings/sync
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/marketplaces/listings/sync", [
"body" => json_encode([
[
"listing_reference" => "ABC-123",
"listing_variation_reference" => "ABC-123",
"sku" => "ACME_BICY",
"title" => "ACME Bicycle",
"quantity" => 50,
"price" => 122.99,
"status" => "live",
"metadata" => [
[
"key" => "GRAPHQL_ID",
"value" => "http://my-graphql-id/132163",
],
],
"locations" => [
[
"marketplace_location_id" => 81,
"quantity" => 0,
"marketplace_reference" => null,
],
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/marketplaces/listings/sync', [
{
listing_reference: "ABC-123",
listing_variation_reference: "ABC-123",
sku: "ACME_BICY",
title: "ACME Bicycle",
quantity: 50,
price: 122.99,
status: "live",
metadata: [
{
key: "GRAPHQL_ID",
value: "http://my-graphql-id/132163",
},
],
locations: [
{
marketplace_location_id: 81,
quantity: 0,
marketplace_reference: nil,
},
],
},
], {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/sync",
body: [
{
"listing_reference": "ABC-123",
"listing_variation_reference": "ABC-123",
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"quantity": 50,
"price": 122.99,
"status": "live",
"metadata": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
],
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/marketplaces/listings/sync' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '[
{
"listing_reference": "ABC-123",
"listing_variation_reference": "ABC-123",
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"quantity": 50,
"price": 122.99,
"status": "live",
"metadata": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
]'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"listing_reference": "ABC-123",
"listing_variation_reference": "ABC-123",
"sku": "ABC",
"result": "updated",
"error": "Failed to look up SKU: ABC-XYX. Please ensure this product is set in BladePRO before importing the listing."
}
]
}
Sync listings from the marketplace down to BladePRO.
Request Body
array<SyncMarketplaceListingValidator>
Return Type
array<SyncedMarketplaceListing>
Types for the Request Body
Location
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_location_id |
ID of the marketplace location mapping. | integer |
requirednot nullmin is 1 |
quantity |
Current quantity. | integer |
requirednot nullmin is 0 |
marketplace_reference |
Marketplace reference for the link between the listing variation and the marketplace location. | string |
ResourceMetadata
| Key | Description | Types | Restrictions |
|---|---|---|---|
key |
Key of the resource metadata. | string |
requirednot nullmin length is 1 |
value |
Value of the resource metadata. | string |
requirednot nullmin length is 1 |
SyncMarketplaceListingValidator
| Key | Description | Types | Restrictions |
|---|---|---|---|
listing_reference |
Parent or first reference provided by the 3rd party marketplace. | string |
requirednot nullmin length is 1 |
listing_variation_reference |
Child or second reference provided by the 3rd party marketplace. You may repeat the first reference if there’s only one. | string |
requirednot nullmin length is 1 |
sku |
Current marketplace SKU. | string |
requirednot nullmin length is 1 |
title |
Current marketplace title. | string |
requirednot nullmin length is 1 |
quantity |
Current marketplace stock level. | integer |
requirednot nullmin is 0 |
price |
Current marketplace price. | number |
requirednot nullmin is 0 |
status |
Current marketplace status. | string |
not null |
metadata |
List of resource metadatas. | array<ResourceMetadata> |
|
locations |
List of resource locations. | array<Location> |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Import marketplace listings
POST /v1/marketplaces/listings/import
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*", [
"body" => json_encode([
"marketplace_reference" => "FOREIGN_ID",
"attributes" => [
[
"code" => "ASIN",
"value" => "ASODAIY12371938",
"label" => "ASIN",
],
],
"options" => [
"Frame Colour",
],
"resource_metadatas" => [
[
"key" => "GRAPHQL_ID",
"value" => "http://my-graphql-id/132163",
],
],
"variations" => [
[
"product_variation_id" => 8435,
"sku" => "ACME_BICY",
"title" => "ACME Bicycle",
"subtitle" => null,
"description" => "A brand new ACME bicycle.",
"marketplace_reference" => "FOREIGN_ID",
"quantity" => 50,
"price" => 122.99,
"status" => "live",
"keep_price" => true,
"keep_title" => true,
"keep_description" => true,
"options" => [
"Sky Blue",
],
"attributes" => [
[
"code" => "ASIN",
"value" => "ASODAIY12371938",
"label" => "ASIN",
],
],
"resource_metadatas" => [
[
"key" => "GRAPHQL_ID",
"value" => "http://my-graphql-id/132163",
],
],
"images" => [
"https://some-cdn/image01.jpeg",
],
"locations" => [
[
"marketplace_location_id" => 81,
"quantity" => 0,
"marketplace_reference" => null,
],
],
],
],
"product_category_id" => 8435,
"images" => [
"https://some-cdn/image01.jpeg",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*', {
marketplace_reference: "FOREIGN_ID",
attributes: [
{
code: "ASIN",
value: "ASODAIY12371938",
label: "ASIN",
},
],
options: [
"Frame Colour",
],
resource_metadatas: [
{
key: "GRAPHQL_ID",
value: "http://my-graphql-id/132163",
},
],
variations: [
{
product_variation_id: 8435,
sku: "ACME_BICY",
title: "ACME Bicycle",
subtitle: nil,
description: "A brand new ACME bicycle.",
marketplace_reference: "FOREIGN_ID",
quantity: 50,
price: 122.99,
status: "live",
keep_price: true,
keep_title: true,
keep_description: true,
options: [
"Sky Blue",
],
attributes: [
{
code: "ASIN",
value: "ASODAIY12371938",
label: "ASIN",
},
],
resource_metadatas: [
{
key: "GRAPHQL_ID",
value: "http://my-graphql-id/132163",
},
],
images: [
"https://some-cdn/image01.jpeg",
],
locations: [
{
marketplace_location_id: 81,
quantity: 0,
marketplace_reference: nil,
},
],
},
],
product_category_id: 8435,
images: [
"https://some-cdn/image01.jpeg",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*",
body: {
"marketplace_reference": "FOREIGN_ID",
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"options": [
"Frame Colour"
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"variations": [
{
"product_variation_id": 8435,
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"subtitle": null,
"description": "A brand new ACME bicycle.",
"marketplace_reference": "FOREIGN_ID",
"quantity": 50,
"price": 122.99,
"status": "live",
"keep_price": true,
"keep_title": true,
"keep_description": true,
"options": [
"Sky Blue"
],
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"images": [
"https://some-cdn/image01.jpeg"
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
],
"product_category_id": 8435,
"images": [
"https://some-cdn/image01.jpeg"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/marketplaces/listings/import?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"marketplace_reference": "FOREIGN_ID",
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"options": [
"Frame Colour"
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"variations": [
{
"product_variation_id": 8435,
"sku": "ACME_BICY",
"title": "ACME Bicycle",
"subtitle": null,
"description": "A brand new ACME bicycle.",
"marketplace_reference": "FOREIGN_ID",
"quantity": 50,
"price": 122.99,
"status": "live",
"keep_price": true,
"keep_title": true,
"keep_description": true,
"options": [
"Sky Blue"
],
"attributes": [
{
"code": "ASIN",
"value": "ASODAIY12371938",
"label": "ASIN"
}
],
"resource_metadatas": [
{
"key": "GRAPHQL_ID",
"value": "http://my-graphql-id/132163"
}
],
"images": [
"https://some-cdn/image01.jpeg"
],
"locations": [
{
"marketplace_location_id": 81,
"quantity": 0,
"marketplace_reference": null
}
]
}
],
"product_category_id": 8435,
"images": [
"https://some-cdn/image01.jpeg"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"marketplace_reference": "FOREIGN_ID",
"product_category_id": 4,
"marketplace_listing_variations": [
{
"id": 1235,
"title": "ACME Bicycle",
"subtitle": null,
"description": "A brand new ACME bicycle.",
"listing_mode": "keep_in_sync",
"stock_mode": "keep_in_sync",
"marketplace_reference": "FOREIGN_ID",
"price": 122.99,
"product_variation_id": 8435,
"quantity": 50,
"sku": "ACME_BICY",
"status": "live",
"options": [
{
"id": 34512,
"marketplace_listing_option_id": 9745,
"value": "Sky Blue"
}
]
}
],
"options": [
{
"id": 9745,
"name": "Frame colour"
}
]
}
}
Creates a marketplace listings with all the marketplace references. This endpoint always expands all expandables.
Request Body
Return Type
Types for the Request Body
ImportMarketplaceListing (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_reference |
Marketplace ID. | string |
requirednot nullmin length is 1 |
attributes |
List of attributes. | array<Attribute> |
|
options |
List of option labels. | array<string> |
|
resource_metadatas |
List of resource metadatas. | array<ResourceMetadata> |
|
variations |
List of marketplace listing variations. | array<Variation> |
|
product_category_id |
The ID for the product category. | integer |
requiredmin is 1 |
images |
List of image URLs. | array<string> |
Attribute
| Key | Description | Types | Restrictions |
|---|---|---|---|
code |
Code to reference the attribute by. | string |
requirednot nullmin length is 1 |
value |
Value of the attribute. | string |
requiredmin length is 0 |
label |
Label of the attribute. | string |
requiredmin length is 0 |
MarketplaceLocation
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_location_id |
ID of the marketplace location mapping. | integer |
requirednot nullmin is 1 |
quantity |
Current quantity. | integer |
requirednot nullmin is 0 |
marketplace_reference |
Marketplace reference for the link between the listing variation and the marketplace location. | string |
ResourceMetadata
| Key | Description | Types | Restrictions |
|---|---|---|---|
key |
Key of the resource metadata. | string |
requirednot nullmin length is 1 |
value |
Value of the resource metadata. | string |
requirednot nullmin length is 1 |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
The ID for the product variation. | integer |
requirednot nullmin is 1 |
sku |
Current marketplace SKU. | string |
requirednot nullmin length is 1 |
title |
Current marketplace title. | string |
requirednot nullmin length is 1 |
subtitle |
Current marketplace subtitle. | string |
min length is 1 |
description |
Current marketplace description. | string |
min length is 0 |
marketplace_reference |
The marketplace reference. | string |
requirednot nullmin length is 1 |
quantity |
Current marketplace stock level. | integer |
requirednot nullmin is 0 |
price |
Current marketplace price. | number |
requirednot nullmin is 0 |
status |
The listing status. | enum(draft, live, void, pending_live, pending_void) |
requirednot null |
keep_price |
Should BladePRO keep the price. | boolean |
requirednot null |
keep_title |
Should BladePRO keep the title. | boolean |
requirednot null |
keep_description |
Should BladePRO keep the description. | boolean |
requirednot null |
options |
List of option values. | array<string> |
|
attributes |
List of attributes | array<Attribute> |
|
resource_metadatas |
List of resource metadatas. | array<ResourceMetadata> |
|
images |
List of image URLs. | array<string> |
|
locations |
List of marketplace location mappings. | array<MarketplaceLocation> |
Available expands
| Field | Return Type | Description |
|---|---|---|
marketplace_listing_variations |
array<ImportMarketplaceListingVariation> |
A marketplace listing variation during import. |
marketplace_listing_variations.options |
array<ImportMarketplaceListingVariationOption> |
A marketplace listing variation option during import. |
options |
array<ImportMarketplaceListingOption> |
A marketplace listing option during import. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Get marketplace listing variations
GET /v1/marketplaces/listings/variations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/variations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": "123",
"marketplace_listing_id": "123",
"marketplace_reference": "123456",
"sku": "ABC_123",
"price": "12.99",
"status": "live",
"listing_mode": "keep_in_sync",
"stock_mode": "keep_in_sync",
"marketplace_listing": {
"id": "123",
"marketplace_reference": "123456",
"attributes": [
{
"label_json": "{}",
"value": "f376ji34G4F",
"attribute": {
"id": "4324",
"name": "External Product Code",
"description": "The code of the product as defined on Amazon.",
"code": "EXTERNAL_PRODUCT_CODE"
}
}
],
"options": [
{
"id": 1234,
"name": "Colour"
}
],
"images": [
{
"primary": false,
"sequence": false,
"url": false
}
],
"related_listing_variations": [
{
"id": 67834,
"marketplace_reference": "ABC123",
"status": "pending_live",
"sku": "RED-CAR-001"
}
]
},
"product_variation": {
"id": 432,
"sku": "RED-CAR-001",
"aspects": [
{
"value": "red",
"label": "Red",
"aspect": {
"name": "Colour",
"code": "21234_CAR_COLOUR",
"required": true,
"type": "dropdown"
}
}
],
"category": {
"id": 32,
"name": "Bikes",
"preferences": [
{
"value": "red",
"label": "Red",
"preference": {
"name": "Colour",
"code": "21234_CAR_COLOUR"
}
}
]
}
},
"attributes": [
{
"label_json": "{}",
"value": "f376ji34G4F",
"attribute": {
"id": "4324",
"name": "External Product Code",
"description": "The code of the product as defined on Amazon.",
"code": "EXTERNAL_PRODUCT_CODE"
}
}
],
"options": [
{
"id": 12345,
"marketplace_listing_option_id": 1234,
"value": "Sky blue",
"option": {
"id": 1234,
"name": "Colour"
}
}
],
"images": [
{
"primary": false,
"sequence": false,
"url": false
}
]
}
]
}
Retrieves a list of marketplace listing variations.
Return Type
array<CachedMarketplaceListingVariation>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| id | IN |
|
| marketplace_reference | IN |
|
| sku | IN |
|
| marketplace_listing_id | IN |
|
| status | IN, NOT_IN |
|
| product_variation.id | IN |
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedMarketplaceListingVariationAttribute> |
Marketplace listing variation attributes |
attributes.attribute |
CachedApplicationMarketplaceAttribute |
Marketplace attribute |
images |
array<CachedMarketplaceListingVariationImage> |
Marketplace listing variation images |
marketplace_listing |
CachedMarketplaceListing |
Marketplace listing |
marketplace_listing.attributes |
array<CachedMarketplaceListingAttribute> |
Marketplace listing attributes |
marketplace_listing.attributes.attribute |
CachedApplicationMarketplaceAttribute |
Marketplace attribute |
marketplace_listing.images |
array<CachedMarketplaceListingImage> |
Marketplace listing variation images |
marketplace_listing.options |
array<CachedMarketplaceListingOption> |
Marketplace listing option definition. |
marketplace_listing.related_listing_variations |
array<CachedMarketplaceListingVariationRelatedVariation> |
Related listing variations that belong to the same parent marketplace_listing |
options |
array<CachedMarketplaceListingVariationOption> |
Value for a marketplace listing option. |
options.option |
CachedMarketplaceListingOption |
Marketplace listing option definition. |
product_variation |
CachedMarketplaceListingVariationProductVariation |
Marketplace listing variation attributes |
product_variation.aspects |
array<CachedMarketplaceListingVariationProductVariationAspects> |
Marketplace listing variation aspects |
product_variation.aspects.aspect |
CachedApplicationMarketplaceAttribute |
Marketplace attribute |
product_variation.category |
CachedMarketplaceListingVariationProductVariationCategory |
Marketplace listing variation category |
product_variation.category.preferences |
array<CachedMarketplaceListingVariationProductVariationCategoryPreferences> |
Marketplace listing variation category preferences |
product_variation.category.preferences.preference |
CachedMarketplaceListingVariationProductVariationCategoryPreferencesPreference |
Marketplace listing variation aspects |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Purge marketplace listings
PUT /v1/marketplaces/listings/variations/purge
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/variations/purge' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Detach all listings in BladePRO from the marketplace.
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Set reference
PUT /v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/marketplace_reference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0",
"price": "11.99",
"status": "LIVE",
"sku": "RED_CAR_01",
"product_variation_id": "21",
"quantity": "323"
}
}
Set the listing variation marketplace reference.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
SetMarketplaceReference (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_reference |
The new reference. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Mark As Live
PUT /v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_live' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0",
"price": "11.99",
"status": "LIVE",
"sku": "RED_CAR_01",
"product_variation_id": "21",
"quantity": "323"
}
}
Set the listing variation status to live.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Mark As Void
PUT /v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/mark_as_void' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0",
"price": "11.99",
"status": "LIVE",
"sku": "RED_CAR_01",
"product_variation_id": "21",
"quantity": "323"
}
}
Set the listing variation status to void.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Set reference
PUT /v1/marketplaces/listings/:listingId/marketplace_reference
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/marketplace_reference' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"marketplace_reference": "7x34nu03248n0"
}
}
Set the listing marketplace reference.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
SetMarketplaceReference (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_reference |
The new reference. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Bulk get marketplace listing stock
GET /v1/marketplaces/listings/stock/:mode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/stock/:mode?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"marketplace_reference": "123456",
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
],
"variations": [
{
"id": 123,
"marketplace_reference": "123456",
"sku": "DEMO-SKU-01",
"product_variation_id": "456",
"current_listed_quantity": 12,
"quantity_to_list": 10,
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
],
"marketplace_locations": [
{
"marketplace_location_id": 567,
"current_listed_quantity": 12,
"quantity_to_list": 10
}
]
}
]
}
]
}
Retrieves a simplified list of every marketplace listing.
Parameter Regular Expressions
- :mode: all|changed
Return Type
array<MarketplaceListingStock>
Available expands
| Field | Return Type | Description |
|---|---|---|
resource_metadatas |
array<MarketplaceListingResourceMetadatas> |
Stores arbitrary data against a marketplace listing. |
variations |
array<MarketplaceListingVariationStock> |
Marketplace listing variation stock |
variations.marketplace_locations |
array<MarketplaceListingVariationStockMarketplaceLocations> |
Marketplace listing variation’s location-based stock |
variations.resource_metadatas |
array<MarketplaceListingVariationResourceMetadatas> |
Stores arbitrary data against a marketplace listing variation. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Bulk get marketplace listing cost price
GET /v1/marketplaces/listings/cost_price
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/cost_price?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"marketplace_reference": "123456",
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
],
"variations": [
{
"id": 123,
"marketplace_reference": "123456",
"sku": "DEMO-SKU-01",
"product_variation_id": "456",
"cost_price": 15.16,
"resource_metadatas": [
{
"key": "my_key",
"value": "some-value"
}
]
}
]
}
]
}
Retrieves a simplified list of every marketplace listing.
Return Type
array<MarketplaceListingCostPrice>
Available expands
| Field | Return Type | Description |
|---|---|---|
resource_metadatas |
array<MarketplaceListingResourceMetadatas> |
Stores arbitrary data against a marketplace listing. |
variations |
array<MarketplaceListingVariationCostPrice> |
Marketplace listing variation cost price |
variations.resource_metadatas |
array<MarketplaceListingVariationResourceMetadatas> |
Stores arbitrary data against a marketplace listing variation. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Get listing variation stock
GET /v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/:listingId/variations/:listingVariationId/stock' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"marketplace_reference": "123456",
"sku": "DEMO-SKU-01",
"product_variation_id": "456",
"current_listed_quantity": 12,
"quantity_to_list": 10
}
}
Retrieves a simplified stock record for a single marketplace listing variation.
Parameter Regular Expressions
- :listingId: [1-9][0-9]{0,}
- :listingVariationId: [1-9][0-9]{0,}
Return Type
MarketplaceListingVariationStock
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Get unclaimed marketplace listing updates
GET /v1/marketplaces/listings/updates/unclaimed
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/unclaimed?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending",
"marketplace_listing": {
"id": "2332",
"marketplace_reference": "abcdefg-1234567",
"attributes": [
{
"code": "PRODUCT_ASIN",
"name": "Product ASIN",
"value": "LIVE"
}
]
},
"marketplace_listing_variation": {
"id": "2332",
"marketplace_reference": "gfd4352gfd54-434-gfddfg",
"sku": "RED-CAR-01",
"price": "21.99",
"status": "LIVE",
"attributes": [
{
"code": "PRODUCT_ASIN",
"name": "Product ASIN",
"value": "LIVE"
}
]
}
}
]
}
Retrieves a list of the listing’s unclaimed updates.
Return Type
array<MarketplaceListingUpdates>
Available expands
| Field | Return Type | Description |
|---|---|---|
marketplace_listing |
MarketplaceListingUpdateListings |
Marketplace listing updates |
marketplace_listing.attributes |
array<MarketplaceListingUpdateAttributes> |
Marketplace attribute |
marketplace_listing_variation |
MarketplaceListingUpdateListingVariations |
Marketplace listing updates |
marketplace_listing_variation.attributes |
array<MarketplaceListingUpdateAttributes> |
Marketplace attribute |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Bulk update listed quantities
PUT /v1/marketplaces/listings/updates/bulk_update_listed_quantities
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities", [
"body" => json_encode([
[
"marketplace_listing_variation_id" => 1,
"quantity" => 142,
"marketplace_location_id" => null,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities', [
{
marketplace_listing_variation_id: 1,
quantity: 142,
marketplace_location_id: nil,
},
], {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities",
body: [
{
"marketplace_listing_variation_id": 1,
"quantity": 142,
"marketplace_location_id": null
}
],
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk_update_listed_quantities' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '[
{
"marketplace_listing_variation_id": 1,
"quantity": 142,
"marketplace_location_id": null
}
]'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"success": true
}
]
}
Updated the listed quantity in BladePRO for marketplace listings in bulk.
Request Body
array<BulkUpdateListedQuantity>
Return Type
array<MarketplaceListingBulkUpdateQuantities>
Types for the Request Body
BulkUpdateListedQuantity
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_listing_variation_id |
The marketplace listing variation id. | integer |
requirednot nullmin is 1 |
quantity |
The listed quantity. | integer |
requirednot nullmin is 0 |
marketplace_location_id |
The marketplace location ID, if enabled in the app. | integer |
requiredmin is 1 |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Finalize update
PUT /v1/marketplaces/listings/updates/:updateId/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/complete?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending"
}
}
Mark update as completed.
Parameter Regular Expressions
- :updateId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Fail update
PUT /v1/marketplaces/listings/updates/:updateId/fail
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/:updateId/fail?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending"
}
}
Mark update as failed.
Parameter Regular Expressions
- :updateId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
FailListingUpdate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason for the failure. | string |
requirednot null |
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Finalize updates
PUT /v1/marketplaces/listings/updates/bulk/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*", [
"body" => json_encode([
"updates" => [
1,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*', {
updates: [
1,
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*",
body: {
"updates": [
1
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/updates/bulk/complete?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"updates": [
1
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": "123",
"code": "PRICE",
"listing_id": "44",
"variation_id": "55",
"old_value": "12",
"new_value": "10",
"status": "pending"
}
]
}
Mark updates as completed.
Request Body
CompleteMarketplaceListingUpdates
Return Type
array<MarketplaceListingUpdates>
Types for the Request Body
CompleteMarketplaceListingUpdates (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
updates |
List of update IDs. | array<number> |
requirednot nullmin count is 1 |
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::MANAGE.
Bulk render marketplace listing templates
PUT /v1/marketplaces/listings/templates/render/bulk
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk", [
"body" => json_encode([
"marketplace_listing_variation_ids" => [
1,
2,
3,
],
"locales" => [
"en",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk', {
marketplace_listing_variation_ids: [
1,
2,
3,
],
locales: [
"en",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk",
body: {
"marketplace_listing_variation_ids": [
1,
2,
3
],
"locales": [
"en"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render/bulk' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"marketplace_listing_variation_ids": [
1,
2,
3
],
"locales": [
"en"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"marketplace_listing_variation_id": "1",
"locale": "EN",
"title": "Refrigerator",
"subtitle": "Great deal",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
}
]
}
Return a list of rendered templates grouped by marketplace listing variation.
Request Body
RenderMarketplaceListingTemplatesBulk
Return Type
array<MarketplaceListingTemplates>
Types for the Request Body
RenderMarketplaceListingTemplatesBulk (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_listing_variation_ids |
List of marketplace listing variation IDs. | array<number> |
requirednot nullmin count is 1 |
locales |
List of locale codes. | array<string> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
Render marketplace listing templates
PUT /v1/marketplaces/listings/templates/render
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render", [
"body" => json_encode([
"marketplace_listing_variation_id" => 1,
"locale" => "en",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render', {
marketplace_listing_variation_id: 1,
locale: "en",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/listings/templates/render",
body: {
"marketplace_listing_variation_id": 1,
"locale": "en"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/marketplaces/listings/templates/render' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"marketplace_listing_variation_id": 1,
"locale": "en"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"marketplace_listing_variation_id": "1",
"locale": "EN",
"title": "Refrigerator",
"subtitle": "Great deal",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
}
}
Return a list of rendered templates for a specific marketplace listing variation.
Request Body
RenderMarketplaceListingTemplates
Return Type
Types for the Request Body
RenderMarketplaceListingTemplates (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
marketplace_listing_variation_id |
Marketplace listing variation ID. | number |
requirednot null |
locale |
Locale code. | string |
requirednot nullmatch is /[a-zA-Z]{2}/ |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
List marketplace locations
GET /v1/marketplaces/locations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/marketplaces/locations?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/marketplaces/locations?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/marketplaces/locations?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/marketplaces/locations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 43,
"despatch_warehouse_id": 1,
"location_name": "Christchurch",
"location_key": "uk-12a",
"location_extra": "uk-12a",
"default_stock_mode": "keep_in_sync",
"despatch_warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock_warehouses": [
{
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
]
}
Retrieves a list of all the marketplace location mappings in BladePRO.
Return Type
array<MarketplaceLocations>
Available expands
| Field | Return Type | Description |
|---|---|---|
despatch_warehouse |
Warehouses |
A warehouse. |
stock_warehouses |
array<Warehouses> |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::MARKETPLACES::READ.
List Countries
GET /v1/countries
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/countries", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/countries', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/countries",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/countries' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU"
}
]
}
Retrieves a list of all the countries BladePRO can accept shipping destinations for.
Return Type
array<Countries>
Scopes
This endpoint is only available for users with scope APP::MISC.
List Currencies
GET /v1/currencies
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/currencies", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/currencies', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/currencies",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/currencies' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Currencies.
Return Type
array<Currencies>
Scopes
This endpoint is only available for users with scope APP::MISC.
POST /v1/orders/goodsouts/from_file
Request Body
Ignored.
Return Type
Empty or untyped.
Scopes
This endpoint is available to all users.
List Tax Rates
GET /v1/taxes
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/taxes", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/taxes', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/taxes",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/taxes' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "standard",
"code": "20",
"rate": 20,
"description": "standard 20%",
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Tax Rates.
Return Type
array<OrganisationTaxes>
Scopes
This endpoint is only available for users with scope APP::MISC.
List Brands
GET /v1/brands
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/brands", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/brands', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/brands",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/brands' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 5,
"name": "Demo Brand"
}
]
}
Retrieves a list of all the organisational brands.
Return Type
array<Brands>
Scopes
This endpoint is only available for users with scope APP::MISC.
List Locales
GET /v1/locales
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/locales", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/locales', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/locales",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/locales' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
Lists available locales.
Return Type
array<Locales>
Scopes
This endpoint is only available for users with scope APP::MISC.
List templates
GET /v1/templates
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/templates", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/templates', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/templates",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/templates' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"organisation_id": 1,
"template_category_id": 1,
"template_category_code": "DESPATCH_NOTE",
"name": "Default despatch note",
"status": "portrait",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Return a list of templates
Return Type
Filters
| Field | Operators | Value List URL |
|---|---|---|
| organisation_id | IN, NOT_IN |
|
| template_category_id | IN, NOT_IN |
|
| template_category_code | IN, NOT_IN |
|
| name | LIKE |
Scopes
This endpoint is only available for users with scope APP::TEMPLATES::READ.
Return rendered template
PUT /v1/templates/render
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/templates/render", [
"body" => json_encode([
"template_id" => "en",
"resource_ids" => [
1,
],
"locales" => [
"en",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/templates/render', {
template_id: "en",
resource_ids: [
1,
],
locales: [
"en",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/templates/render",
body: {
"template_id": "en",
"resource_ids": [
1
],
"locales": [
"en"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/templates/render' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"template_id": "en",
"resource_ids": [
1
],
"locales": [
"en"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"organisation_id": 1,
"template_category_id": 1,
"template_category_code": "DESPATCH_NOTE",
"name": "Default despatch note",
"status": "portrait",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Return a template rendered for different resources and languages
Request Body
Return Type
Types for the Request Body
RenderTemplate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
template_id |
ID of template. | integer |
requirednot nullmin is 1 |
resource_ids |
List of resource ID’s. | array<number> |
requirednot nullmin count is 1 |
locales |
List of resource ID’s. | array<string> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::TEMPLATES::READ.
List File Order Importer Mapping Templates
GET /v1/mappings
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/mappings", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/mappings', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/mappings",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/mappings' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 1,
"slug": "default",
"name": "Default",
"organisation_id": 1,
"fields": {},
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List the mapping templates for File Order Importer.
Return Type
array<Mappings>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
GET /v1/openapi
Return Type
Empty or untyped.
Scopes
This endpoint is available to all users.
List Order Channels
GET /v1/orders/channels
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/channels?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/channels?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/channels?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/channels?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"brands": [
{
"id": 5,
"name": "Demo Brand"
}
],
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"tax": {
"id": 1,
"name": "standard",
"code": "20",
"rate": 20,
"description": "standard 20%",
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
List order channels
Return Type
array<OrderChannels>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| status | EQUALS |
Available expands
| Field | Return Type | Description |
|---|---|---|
brands |
array<Brands> |
Brand data. |
organisation |
Organisations |
Organisation data. |
tax |
OrganisationTaxes |
Organisation tax data. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
List Order Line Metadata
GET /v1/orders/goodsouts/:id/lines/:lineId/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a order line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
Return Type
array<OrderLineResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Get Order Line Metadata
GET /v1/orders/goodsouts/:id/lines/:lineId/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a order line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Set Order Line Metadata
PUT /v1/orders/goodsouts/:id/lines/:lineId/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Order Line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Delete Order Line Metadata
DELETE /v1/orders/goodsouts/:id/lines/:lineId/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/123456/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Create Order Line
POST /v1/orders/goodsouts/:id/lines
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines", [
"body" => json_encode([
"variation" => [
"sku" => "GREEN-BALL",
"channel" => 1,
],
"net_unit_principal" => 12.55,
"principal_tax" => 12,
"discount" => 0,
"discount_type" => "value",
"quantity" => 4,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines', {
variation: {
sku: "GREEN-BALL",
channel: 1,
},
net_unit_principal: 12.55,
principal_tax: 12,
discount: 0,
discount_type: "value",
quantity: 4,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines",
body: {
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active"
}
}
Adds a new line to an existing goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateOrderGoodsoutLine (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
variation |
Product description | Variation |
requirednot null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
requirednot nullmin is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
requirednot nullmin is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not nullmin is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
requirednot nullmin is 1 |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
channel |
The product channel’s ID. | integer |
requirednot nullmin is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Order Line Quantity
PUT /v1/orders/goodsouts/:id/lines/:lineId/quantity
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity", [
"body" => json_encode([
"quantity" => 4,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity', {
quantity: 4,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity",
body: {
"quantity": 4
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/quantity' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"quantity": 4
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active"
}
}
Updates the quantity of an order goodsout line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateGoodsoutLineQuantity (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
quantity |
Quantity. | integer |
requirednot nullmin is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Cancel Order Line
PUT /v1/orders/goodsouts/:id/lines/:lineId/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel", [
"body" => json_encode([
"reason" => "Item no longer wanted.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel', {
reason: "Item no longer wanted.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel",
body: {
"reason": "Item no longer wanted."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/lines/3450345/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Item no longer wanted."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active"
}
}
Cancel a order goodsout line.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :lineId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CancelGoodsoutLine (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
Reason for canceling the line. | string |
requirednot nullmin length is 1max length is 250 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
List Order Metadata
GET /v1/orders/goodsouts/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Get Order Metadata
GET /v1/orders/goodsouts/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Set Order Metadata
PUT /v1/orders/goodsouts/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Delete Order Metadata
DELETE /v1/orders/goodsouts/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
List Goodsouts
GET /v1/orders/despatched
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/despatched?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/despatched?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/despatched?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/despatched?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1049789,
"status": "despatched",
"bid": "1049789-1049789",
"despatch_date": null,
"courier": {
"name": "Royal Mail",
"code": "RM",
"service": {
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"tracked": false,
"signed": false
},
"tracking": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
},
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"order": {
"id": 1234567,
"reference": "CustomerReference #154254",
"status": "open",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
}
]
}
List order goodsouts. Please note that all expands will be applied automatically.
Return Type
array<DespatchedOrders>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS |
|
| order.reference | IN |
|
| order.channel.short_code | IN, NOT_IN |
/v1/orders/channels |
| order.channel.id | IN, NOT_IN |
|
| despatch_date | LESS_THAN, ON_DATE, MORE_THAN |
|
| order.currency.code | IN, NOT_IN |
|
| attributes.name | IN, NOT_IN |
Sortings
Results can be sorted by the following keys: bid, despatch_date, order.channel.name, order.status, placed_date, status, warehouse.name.
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
courier |
CachedCourier |
A courier. |
courier.service |
CachedShippingService |
Holds data about a shipping service. |
courier.tracking |
array<CachedCourierTracking> |
Tracking details. |
order |
CachedOrder |
An order. |
order.currency |
SummarisedCurrency |
A currency. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
List Goodsouts
GET /v1/orders/goodsouts
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1049789,
"bid": "1234567-1049789",
"creator": "Support Team",
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"despatch_on_date": null,
"warehouse": "CHR",
"courier": {
"name": "Royal Mail",
"code": "RM",
"service": {
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"tracked": false,
"signed": false
},
"tracking": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
},
"tags": [
{
"name": "Processed",
"shortcode": "processed",
"description": "Processed by a 3rd party system"
}
],
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": null,
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH234FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": null,
"telephone": null,
"secondary_telephone": null,
"contact": {
"name": "Support Team",
"group": "I-Fulfilment"
},
"country": {
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"order": {
"id": 1234567,
"reference": "CustomerReference #154254",
"status": "open",
"channel": {
"id": 342,
"short_code": "DEMO",
"name": "Demo Channel"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"brand": {
"name": "Demo Brand"
}
},
"lines": {
"id": 3450345,
"product_variation_id": 1,
"sku": "DEMO-SKU-01",
"name": "Example product",
"quantity": 1
}
}
]
}
List order goodsouts. Please note that all expands will be applied automatically.
Return Type
array<CachedGoodsout>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS |
|
| status | IN, NOT_IN |
|
| order.reference | IN |
|
| order.channel.short_code | IN, NOT_IN |
/v1/orders/channels |
| order.channel.id | IN, NOT_IN |
|
| shipping_address.country.iso_2 | IN, NOT_IN |
|
| date_placed | LESS_THAN, ON_DATE, MORE_THAN |
|
| despatch_date | LESS_THAN, ON_DATE, MORE_THAN |
|
| order.currency.code | IN, NOT_IN |
|
| tags.shortcode | IN, NOT_IN |
|
| attributes.name | IN, NOT_IN |
Sortings
Results can be sorted by the following keys: bid, despatch_date, order.channel.name, order.status, placed_date, status, warehouse.name.
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
courier |
CachedCourier |
A courier. |
courier.service |
CachedShippingService |
Holds data about a shipping service. |
courier.tracking |
array<CachedCourierTracking> |
Tracking details. |
lines |
array<CachedGoodsoutLine> |
An order goodsout line summary. |
order |
CachedOrder |
An order. |
order.brand |
CachedBrand |
A brand. |
order.channel |
CachedOrderChannel |
An order channel. |
order.currency |
SummarisedCurrency |
A currency. |
shipping_address |
CachedAddress |
An address. |
shipping_address.contact |
CachedAddressContact |
A BladePRO contact. |
shipping_address.country |
SummarisedCountry |
A country. |
tags |
array<SummarisedTag> |
A tag. |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Create Order
POST /v1/orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders?expand=*", [
"body" => json_encode([
"channel" => "DEMO",
"reference" => "#154254",
"currency" => "GBP",
"goodsouts" => [
[
"warehouse" => "CHR",
"date_placed" => "2020-03-31",
"shipping_address" => [
"title" => "Mr",
"first_name" => "Support",
"last_name" => "Team",
"company" => "ACME LTD",
"address_one" => "Unit 4",
"address_two" => "Radar Way",
"address_three" => "Ind Est",
"town" => "Christchurch",
"country_id" => "GB",
"county" => "Dorset",
"postcode" => "BH23 4FL",
"email" => "support.team@i-fulfilment.co.uk",
"mobile" => "00000000000",
"telephone" => "00000000000",
"secondary_telephone" => "0000000000000",
"vat_number" => "GB999 9999 73",
],
"lines" => [
[
"variation" => [
"sku" => "GREEN-BALL",
"channel" => 1,
],
"net_unit_principal" => 12.55,
"principal_tax" => 12,
"discount" => 0,
"discount_type" => "value",
"quantity" => 4,
"expiry_date" => "2025-03-31",
"batch_code" => "ABC154254",
"packing_requirements" => [
"pack_together_reference" => "ABC1234",
],
],
],
"attributes" => [
[
"name" => "my-attribute",
"value" => "LoremIpsum",
],
],
"picking_instructions" => null,
"delivery_instructions" => "When not home put in shed.",
"gift_message" => null,
"shipping" => [
"customer_principal" => 0.99,
"shipping_code" => null,
"duty_paid" => true,
],
"bulk_options" => [
"requires_palletisation" => true,
"single_sku_cartons_only" => true,
"distribution_branch_id" => "BRANCH_01",
"department_number" => "DEP01",
"store_location_number" => "41440",
"distribution_centre" => "DC49004",
"purchase_order_reference" => "PO6548967-46531",
"carton_label" => [
"type_id" => 1,
"references" => [
"dc" => "ABC",
"store" => "ABC",
],
],
],
"tags" => [
"JIT",
"MyTag",
],
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders?expand=*', {
channel: "DEMO",
reference: "#154254",
currency: "GBP",
goodsouts: [
{
warehouse: "CHR",
date_placed: "2020-03-31",
shipping_address: {
title: "Mr",
first_name: "Support",
last_name: "Team",
company: "ACME LTD",
address_one: "Unit 4",
address_two: "Radar Way",
address_three: "Ind Est",
town: "Christchurch",
country_id: "GB",
county: "Dorset",
postcode: "BH23 4FL",
email: "support.team@i-fulfilment.co.uk",
mobile: "00000000000",
telephone: "00000000000",
secondary_telephone: "0000000000000",
vat_number: "GB999 9999 73",
},
lines: [
{
variation: {
sku: "GREEN-BALL",
channel: 1,
},
net_unit_principal: 12.55,
principal_tax: 12,
discount: 0,
discount_type: "value",
quantity: 4,
expiry_date: "2025-03-31",
batch_code: "ABC154254",
packing_requirements: {
pack_together_reference: "ABC1234",
},
},
],
attributes: [
{
name: "my-attribute",
value: "LoremIpsum",
},
],
picking_instructions: nil,
delivery_instructions: "When not home put in shed.",
gift_message: nil,
shipping: {
customer_principal: 0.99,
shipping_code: nil,
duty_paid: true,
},
bulk_options: {
requires_palletisation: true,
single_sku_cartons_only: true,
distribution_branch_id: "BRANCH_01",
department_number: "DEP01",
store_location_number: "41440",
distribution_centre: "DC49004",
purchase_order_reference: "PO6548967-46531",
carton_label: {
type_id: 1,
references: {
dc: "ABC",
store: "ABC",
},
},
},
tags: [
"JIT",
"MyTag",
],
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders?expand=*",
body: {
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP",
"goodsouts": [
{
"warehouse": "CHR",
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"expiry_date": "2025-03-31",
"batch_code": "ABC154254",
"packing_requirements": {
"pack_together_reference": "ABC1234"
}
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"picking_instructions": null,
"delivery_instructions": "When not home put in shed.",
"gift_message": null,
"shipping": {
"customer_principal": 0.99,
"shipping_code": null,
"duty_paid": false
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP",
"goodsouts": [
{
"warehouse": "CHR",
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"expiry_date": "2025-03-31",
"batch_code": "ABC154254",
"packing_requirements": {
"pack_together_reference": "ABC1234"
}
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"picking_instructions": null,
"delivery_instructions": "When not home put in shed.",
"gift_message": null,
"shipping": {
"customer_principal": 0.99,
"shipping_code": null,
"duty_paid": false
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"goodsouts": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipments": [
{
"shipping_service": [
{
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"courier_account": [
{
"name": "Royal Mail",
"courier": {
"name": "Royal Mail",
"code": "RM"
}
}
]
}
]
}
],
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active",
"variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
],
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU",
"region": {}
}
}
}
}
}
Creates an order.
Request Body
Return Type
Types for the Request Body
CreateOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
channel |
Channel’s unique short code or ID. | stringor integer |
requirednot nullif type is string, then min length is 3if type is integer, then min is 1 |
reference |
Order specific reference. | string |
requirednot nullmin length is 1 |
currency |
Currency ISO code. | string |
requirednot nullmin length is 3 |
goodsouts |
List of goodsouts to create on the order. | array<Goodsout> |
requirednot nullmin count is 1 |
Address
| Key | Description | Types | Restrictions |
|---|---|---|---|
title |
Title. | string |
not null |
first_name |
First name. | string |
requirednot null |
last_name |
Last name. | string |
requirednot null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
requirednot null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
requirednot null |
country_id |
Country ISO 2 or ISO 3 code. | string |
requirednot nullmin length is 2max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
requirednot null |
email |
Email. | string |
not null |
mobile |
Mobile number. | string |
not null |
telephone |
Landline number. | string |
not null |
secondary_telephone |
Secondary telephone number. | string |
not null |
vat_number |
VAT number. | string |
not null |
Attribute
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name of the attribute | string |
requirednot nullmin length is 1 |
value |
Value of the attribute | string |
requirednot null |
BulkOptions
| Key | Description | Types | Restrictions |
|---|---|---|---|
requires_palletisation |
Whether the goodsout needs palletisation. | boolean |
|
single_sku_cartons_only |
Are packed boxes only allowed to have a single SKU in them? | boolean |
|
distribution_branch_id |
Distribution branch ID. | string |
|
department_number |
Department number. | string |
|
store_location_number |
Store location number. | string |
|
distribution_centre |
Distribution centre. | string |
|
purchase_order_reference |
Purchase order reference. | string |
|
carton_label |
Carton label details. | CartonLabel |
CartonLabel
| Key | Description | Types | Restrictions |
|---|---|---|---|
type_id |
Carton label type’s ID. | integer |
requirednot nullmin is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
requirednot null |
CreateOrderGoodsoutLinePackingRequirements
| Key | Description | Types | Restrictions |
|---|---|---|---|
pack_together_reference |
The reference used to group items together that must be packed in the same box. | string |
Goodsout
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse |
Warehouse short code. | string |
requirednot nullmin length is 3 |
date_placed |
Customer placed date. | date |
requirednot null |
shipping_address |
Customer shipping address. | Address |
requirednot null |
lines |
The list of products. | array<Line> |
requirednot nullmin count is 1 |
attributes |
List of attributes. | array<Attribute> |
not null |
picking_instructions |
Picking instructions. | string |
not null |
despatch_instructions |
Despatch instructions. | string |
not null |
delivery_instructions |
Delivery instructions. | string |
not null |
gift_message |
Gift message. If presented, gift_message_template_shortcode is required. | string |
optionally requirednot null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally requirednot null |
shipping |
Shipping data. | Shipping |
not null |
bulk_options |
Options for bulk goodsouts. | BulkOptions |
|
tags |
List of tags to be applied to the goodsout. | array<string> |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
variation |
Product description | Variation |
requirednot null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
requirednot nullmin is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
requirednot nullmin is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not nullmin is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
requirednot nullmin is 1 |
expiry_date |
The required expiry date that must be picked. | date |
not null |
batch_code |
The required batch code that must be picked. | string |
not nullmin length is 1 |
packing_requirements |
Packing Requirements | CreateOrderGoodsoutLinePackingRequirements |
Shipping
| Key | Description | Types | Restrictions |
|---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
requirednot nullmin is 0 |
shipping_code |
Shipping code. | string |
not nullmin length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
channel |
The product channel’s ID. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
goodsouts |
array<OrderGoodsouts> |
Customer order shipments. |
goodsouts.attributes |
array<CachedAttribute> |
An attribute. |
goodsouts.lines |
array<OrderGoodsoutLines> |
An order for a product. |
goodsouts.shipments |
array<Shipments> |
Data related to a shipment. |
goodsouts.shipments.shipping_service |
ShippingServices |
Customer order shipments. |
goodsouts.shipments.shipping_service.courier_account |
ShippingCourierAccounts |
Shipping courier account data. |
goodsouts.shipments.shipping_service.courier_account.courier |
CachedNameAndCode |
Holds a name and a code field. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Create Goodsout
POST /v1/orders/goodsouts
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*", [
"body" => json_encode([
"warehouse" => "CHR",
"order" => [
"channel" => "DEMO",
"reference" => "#154254",
"currency" => "GBP",
],
"date_placed" => "2020-03-31",
"shipping_address" => [
"title" => "Mr",
"first_name" => "Support",
"last_name" => "Team",
"company" => "ACME LTD",
"address_one" => "Unit 4",
"address_two" => "Radar Way",
"address_three" => "Ind Est",
"town" => "Christchurch",
"country_id" => "GB",
"county" => "Dorset",
"postcode" => "BH23 4FL",
"email" => "support.team@i-fulfilment.co.uk",
"mobile" => "00000000000",
"telephone" => "00000000000",
"secondary_telephone" => "0000000000000",
"vat_number" => "GB999 9999 73",
"location_id" => "00000000",
],
"lines" => [
[
"variation" => [
"sku" => "GREEN-BALL",
"channel" => 1,
],
"net_unit_principal" => 12.55,
"principal_tax" => 12,
"discount" => 0,
"discount_type" => "value",
"quantity" => 4,
"packing_requirements" => [
"pack_together_reference" => "ABC1234",
],
"expiry_date" => "2025-03-31",
"batch_code" => "ABC154254",
],
],
"attributes" => [
[
"name" => "my-attribute",
"value" => "LoremIpsum",
],
],
"delivery_instructions" => "When not home put in shed.",
"shipping" => [
"customer_principal" => 0.99,
"duty_paid" => true,
],
"import_options" => [
"fraud" => true,
],
"bulk_options" => [
"requires_palletisation" => true,
"single_sku_cartons_only" => true,
"distribution_branch_id" => "BRANCH_01",
"department_number" => "DEP01",
"store_location_number" => "41440",
"distribution_centre" => "DC49004",
"purchase_order_reference" => "PO6548967-46531",
"carton_label" => [
"type_id" => 1,
"references" => [
"dc" => "ABC",
"store" => "ABC",
],
],
],
"tags" => [
"JIT",
"MyTag",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*', {
warehouse: "CHR",
order: {
channel: "DEMO",
reference: "#154254",
currency: "GBP",
},
date_placed: "2020-03-31",
shipping_address: {
title: "Mr",
first_name: "Support",
last_name: "Team",
company: "ACME LTD",
address_one: "Unit 4",
address_two: "Radar Way",
address_three: "Ind Est",
town: "Christchurch",
country_id: "GB",
county: "Dorset",
postcode: "BH23 4FL",
email: "support.team@i-fulfilment.co.uk",
mobile: "00000000000",
telephone: "00000000000",
secondary_telephone: "0000000000000",
vat_number: "GB999 9999 73",
location_id: "00000000",
},
lines: [
{
variation: {
sku: "GREEN-BALL",
channel: 1,
},
net_unit_principal: 12.55,
principal_tax: 12,
discount: 0,
discount_type: "value",
quantity: 4,
packing_requirements: {
pack_together_reference: "ABC1234",
},
expiry_date: "2025-03-31",
batch_code: "ABC154254",
},
],
attributes: [
{
name: "my-attribute",
value: "LoremIpsum",
},
],
delivery_instructions: "When not home put in shed.",
shipping: {
customer_principal: 0.99,
duty_paid: true,
},
import_options: {
fraud: true,
},
bulk_options: {
requires_palletisation: true,
single_sku_cartons_only: true,
distribution_branch_id: "BRANCH_01",
department_number: "DEP01",
store_location_number: "41440",
distribution_centre: "DC49004",
purchase_order_reference: "PO6548967-46531",
carton_label: {
type_id: 1,
references: {
dc: "ABC",
store: "ABC",
},
},
},
tags: [
"JIT",
"MyTag",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts?expand=*",
body: {
"warehouse": "CHR",
"order": {
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP"
},
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"location_id": "00000000"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"packing_requirements": {
"pack_together_reference": "ABC1234"
},
"expiry_date": "2025-03-31",
"batch_code": "ABC154254"
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"delivery_instructions": "When not home put in shed.",
"shipping": {
"customer_principal": 0.99,
"duty_paid": false
},
"import_options": {
"fraud": true
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse": "CHR",
"order": {
"channel": "DEMO",
"reference": "#154254",
"currency": "GBP"
},
"date_placed": "2020-03-31",
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"location_id": "00000000"
},
"lines": [
{
"variation": {
"sku": "GREEN-BALL",
"channel": 1
},
"net_unit_principal": 12.55,
"principal_tax": 12,
"discount": 0,
"discount_type": "value",
"quantity": 4,
"packing_requirements": {
"pack_together_reference": "ABC1234"
},
"expiry_date": "2025-03-31",
"batch_code": "ABC154254"
}
],
"attributes": [
{
"name": "my-attribute",
"value": "LoremIpsum"
}
],
"delivery_instructions": "When not home put in shed.",
"shipping": {
"customer_principal": 0.99,
"duty_paid": false
},
"import_options": {
"fraud": true
},
"bulk_options": {
"requires_palletisation": true,
"single_sku_cartons_only": true,
"distribution_branch_id": "BRANCH_01",
"department_number": "DEP01",
"store_location_number": "41440",
"distribution_centre": "DC49004",
"purchase_order_reference": "PO6548967-46531",
"carton_label": {
"type_id": 1,
"references": {
"dc": "ABC",
"store": "ABC"
}
}
},
"tags": [
"JIT",
"MyTag"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipments": [
{
"shipping_service": [
{
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"courier_account": [
{
"name": "Royal Mail",
"courier": {
"name": "Royal Mail",
"code": "RM"
}
}
]
}
]
}
],
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active",
"variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
],
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU",
"region": {}
}
}
}
}
Creates an order goodsout.
Request Body
Return Type
Types for the Request Body
CreateGoodsout (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse |
Warehouse short code. | string |
requirednot nullmin length is 3 |
order |
Order. | Order |
requirednot null |
date_placed |
Customer placed date. | date |
requirednot null |
shipping_address |
Customer shipping address. | Address |
requirednot null |
lines |
The list of products. | array<Line> |
requirednot nullmin count is 1 |
attributes |
List of attributes. | array<Attribute> |
not null |
picking_instructions |
Picking instructions. | string |
not null |
despatch_instructions |
Despatch instructions. | string |
not null |
delivery_instructions |
Delivery instructions. | string |
not null |
gift_message |
Gift message. If presented, gift_message_template_shortcode is required. | string |
optionally requirednot null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally requirednot null |
shipping |
Shipping data. | Shipping |
not null |
import_options |
Import options. | ImportOptions |
|
metadata |
Goodsout metadata. | array<OrderResourceMetadata> |
|
bulk_options |
Options for bulk goodsouts. | BulkOptions |
|
tags |
List of tags to be applied to the goodsout. | array<string> |
Address
| Key | Description | Types | Restrictions |
|---|---|---|---|
title |
Title. | string |
|
first_name |
First name. | string |
|
last_name |
Last name. | string |
|
company |
Company name. | string |
|
address_one |
First line of address. | string |
|
address_two |
Second line of address. | string |
|
address_three |
Third line of address. | string |
|
town |
Town. | string |
|
country_id |
Country ISO 2 or ISO 3 code. | string |
min length is 0max length is 3 |
county |
County. | string |
|
postcode |
Postcode. | string |
|
email |
Email. | string |
|
mobile |
Mobile number. | string |
|
telephone |
Landline number. | string |
|
secondary_telephone |
Secondary telephone number. | string |
|
vat_number |
VAT number. | string |
|
location_id |
Location ID. | string |
Attribute
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name of the attribute | string |
requirednot nullmin length is 1 |
value |
Value of the attribute | string |
requirednot null |
BulkOptions
| Key | Description | Types | Restrictions |
|---|---|---|---|
requires_palletisation |
Whether the goodsout needs palletisation. | boolean |
|
single_sku_cartons_only |
Are packed boxes only allowed to have a single SKU in them? | boolean |
|
distribution_branch_id |
Distribution branch ID. | string |
|
department_number |
Department number. | string |
|
store_location_number |
Store location number. | string |
|
distribution_centre |
Distribution centre. | string |
|
purchase_order_reference |
Purchase order reference. | string |
|
carton_label |
Carton label details. | CartonLabel |
CartonLabel
| Key | Description | Types | Restrictions |
|---|---|---|---|
type_id |
Carton label type’s ID. | integer |
requirednot nullmin is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
requirednot null |
CreateOrderGoodsoutLinePackingRequirements
| Key | Description | Types | Restrictions |
|---|---|---|---|
pack_together_reference |
The reference used to group items together that must be packed in the same box. | string |
ImportOptions
| Key | Description | Types | Restrictions |
|---|---|---|---|
fraud |
If the order came in as a possible fraud order, set this to true. The order will be put on hold. | boolean |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
variation |
Product description | Variation |
requirednot null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
requirednot nullmin is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
requirednot nullmin is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not nullmin is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
requirednot nullmin is 1 |
packing_requirements |
Packing Requirements | CreateOrderGoodsoutLinePackingRequirements |
|
expiry_date |
The required expiry date that must be picked. | date |
not null |
batch_code |
The required batch code that must be picked. | string |
not nullmin length is 1 |
Order
| Key | Description | Types | Restrictions |
|---|---|---|---|
channel |
Channel’s unique short code or ID. | stringor integer |
requirednot nullif type is string, then min length is 3if type is integer, then min is 1 |
reference |
Order specific reference. | string |
requirednot nullmin length is 1 |
currency |
Currency ISO code. | string |
requirednot nullmin length is 3 |
OrderResourceMetadata
| Key | Description | Types | Restrictions |
|---|---|---|---|
key |
Metadata key. | string |
requirednot null |
value |
Metadata value. | string |
requirednot null |
Shipping
| Key | Description | Types | Restrictions |
|---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
requirednot nullmin is 0 |
shipping_code |
Shipping code. | string |
not nullmin length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
channel |
The product channel’s ID. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
lines |
array<OrderGoodsoutLines> |
An order for a product. |
lines.variation |
ProductVariations |
Marketplace listable products’ data. |
lines.variation.descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
lines.variation.descriptions.locale |
Locales |
Locale data. |
lines.variation.type |
ProductVariationTypes |
Product variation type data. |
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
shipments |
array<Shipments> |
Data related to a shipment. |
shipments.shipping_service |
ShippingServices |
Customer order shipments. |
shipments.shipping_service.courier_account |
ShippingCourierAccounts |
Shipping courier account data. |
shipments.shipping_service.courier_account.courier |
CachedNameAndCode |
Holds a name and a code field. |
shipping_address |
OrderGoodsoutAddresses |
Data related to an address. |
shipping_address.country |
Countries |
A country. |
shipping_address.country.region |
Regions |
Geographical region data. |
tags |
array<Tags> |
A tag. |
warehouse |
SummarisedWarehouse |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Bulk Import Orders
POST /v1/orders/goodsouts/from_file
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/from_file", [
"body" => json_encode([
"file" => ":: FILE CONTENTS ::",
"name" => "my_document.pdf",
"extension" => "pdf",
"mime" => "application/pdf",
"category" => "document",
"paper_size" => "A4",
"print_at_despatch" => 1,
"mapping_template_id" => 123,
"organisation_id" => 123,
"order_channel_id" => 123,
"brand_id" => 123,
"currency_id" => 123,
"fields" => "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
"slug" => "order",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/from_file', {
file: ":: FILE CONTENTS ::",
name: "my_document.pdf",
extension: "pdf",
mime: "application/pdf",
category: "document",
paper_size: "A4",
print_at_despatch: 1,
mapping_template_id: 123,
organisation_id: 123,
order_channel_id: 123,
brand_id: 123,
currency_id: 123,
fields: "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
slug: "order",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/from_file",
body: {
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1,
"mapping_template_id": 123,
"organisation_id": 123,
"order_channel_id": 123,
"brand_id": 123,
"currency_id": 123,
"fields": "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
"slug": "order"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/from_file' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1,
"mapping_template_id": 123,
"organisation_id": 123,
"order_channel_id": 123,
"brand_id": 123,
"currency_id": 123,
"fields": "[{\"name\":\"reference\",\"label\":\"Order Reference\",\"description\":\"The customer order reference.\",\"required\":true,\"type\":\"text\",\"key\":\"order.reference\",\"validations\":[null],\"possibleMappings\":[\"reference\",\"order_reference\"],\"primaryKey\":true}]",
"slug": "order"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Uploads a file to be imported.
Request Body
Return Type
Types for the Request Body
BulkImportOrders (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
file |
The file contents Base64 encoded. | string |
requirednot nullmin length is 1 |
name |
The file name. | string |
requirednot nullmin length is 1 |
extension |
The file extension. | string |
requirednot nullmin length is 1 |
mime |
The file mime. | string |
requirednot nullmin length is 1 |
category |
The document category. | enum(document) |
requirednot null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not nullmin is 0 |
mapping_template_id |
The ID for the mapping template. | integer |
requirednot nullmin is 1 |
organisation_id |
The ID for the organisation. | integer |
requirednot nullmin is 1 |
order_channel_id |
The ID for the order channel. | integer |
requirednot nullmin is 1 |
brand_id |
The ID for the brand. | integer |
requirednot nullmin is 1 |
currency_id |
The ID for the currency. | integer |
requirednot nullmin is 1 |
fields |
The array of fields of the file. | string |
requirednot null |
slug |
The slug. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
View Goodsout
GET /v1/orders/goodsouts/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"attributes": [
{
"name": "Marketplace",
"value": "202-9999999-9995900"
}
],
"shipments": [
{
"shipping_service": [
{
"name": "CRL - Packet (24 Hr)",
"code": "1ST",
"courier_account": [
{
"name": "Royal Mail",
"courier": {
"name": "Royal Mail",
"code": "RM"
}
}
]
}
]
}
],
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"discount_type": "percentage",
"discount": 1.5,
"net_unit_principal": 12,
"status": "active",
"variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
],
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"shipping_address": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU",
"region": {}
}
}
}
}
Retrieves a single goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
attributes |
array<CachedAttribute> |
An attribute. |
lines |
array<OrderGoodsoutLines> |
An order for a product. |
lines.items |
array<OrderGoodsoutLineItems> |
An item inside a goodsout line. |
lines.items.batch |
ProductComponentBatches |
Description of a batch. |
lines.items.component |
ProductComponents |
Product component. |
lines.items.despatched_stocks |
array<OrderGoodsoutLineItemDespatchedStocks> |
Stock despatched for an specific line item. |
lines.items.despatched_stocks.batch |
ProductComponentBatches |
Description of a batch. |
lines.principal_tax |
OrganisationTaxes |
Organisation tax data. |
lines.variation |
ProductVariations |
Marketplace listable products’ data. |
lines.variation.descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
lines.variation.descriptions.locale |
Locales |
Locale data. |
lines.variation.type |
ProductVariationTypes |
Product variation type data. |
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
shipments |
array<Shipments> |
Data related to a shipment. |
shipments.shipping_service |
ShippingServices |
Customer order shipments. |
shipments.shipping_service.courier_account |
ShippingCourierAccounts |
Shipping courier account data. |
shipments.shipping_service.courier_account.courier |
CachedNameAndCode |
Holds a name and a code field. |
shipping_address |
OrderGoodsoutAddresses |
Data related to an address. |
shipping_address.country |
Countries |
A country. |
shipping_address.country.region |
Regions |
Geographical region data. |
tags |
array<Tags> |
A tag. |
warehouse |
SummarisedWarehouse |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Upload Document
POST /v1/orders/goodsouts/:id/documents
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents", [
"body" => json_encode([
"file" => ":: FILE CONTENTS ::",
"name" => "my_document.pdf",
"extension" => "pdf",
"mime" => "application/pdf",
"category" => "document",
"paper_size" => "A4",
"print_at_despatch" => 1,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents', {
file: ":: FILE CONTENTS ::",
name: "my_document.pdf",
extension: "pdf",
mime: "application/pdf",
category: "document",
paper_size: "A4",
print_at_despatch: 1,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents",
body: {
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/documents' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"file": ":: FILE CONTENTS ::",
"name": "my_document.pdf",
"extension": "pdf",
"mime": "application/pdf",
"category": "document",
"paper_size": "A4",
"print_at_despatch": 1
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Uploads a Base64 encoded document to a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
OrderGoodsoutDocumentUploadConfirmation
Types for the Request Body
Document (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
file |
The file contents Base64 encoded. | string |
requirednot nullmin length is 1 |
name |
The file name. | string |
requirednot nullmin length is 1 |
extension |
The file extension. | string |
requirednot nullmin length is 1 |
mime |
The file mime. | string |
requirednot nullmin length is 1 |
category |
The document category. | enum(document) |
requirednot null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not nullmin is 0 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Cancel Goodsout
PUT /v1/orders/goodsouts/:id/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel", [
"body" => json_encode([
"reason" => "Example reason.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel', {
reason: "Example reason.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel",
body: {
"reason": "Example reason."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Example reason."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Cancels an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Reason (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Delivery Instructions
PUT /v1/orders/goodsouts/:id/delivery_instructions
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions", [
"body" => json_encode([
"delivery_instructions" => "When not home put in shed.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions', {
delivery_instructions: "When not home put in shed.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions",
body: {
"delivery_instructions": "When not home put in shed."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/delivery_instructions' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"delivery_instructions": "When not home put in shed."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Updates a goodsout’s delivery instructions.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
DeliveryInstructions (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
delivery_instructions |
Delivery instructions. | string |
requirednot nullmin length is 0max length is 30 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Gift Message
PUT /v1/orders/goodsouts/:id/gift_message
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message", [
"body" => json_encode([
"message" => "Happy birthday Sam!<br/>Hope you enjoy this gift.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message', {
message: "Happy birthday Sam!<br/>Hope you enjoy this gift.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message",
body: {
"message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/gift_message' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Updates a goodsout’s gift message.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateGoodsoutGiftMessage (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
Gift Message. | string |
requirednot nullmin length is 0max length is 800 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Shipping Address
PUT /v1/orders/goodsouts/:id/shipping_address
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address", [
"body" => json_encode([
"title" => "Mr",
"first_name" => "Support",
"last_name" => "Team",
"company" => "ACME LTD",
"address_one" => "Unit 4",
"address_two" => "Radar Way",
"address_three" => "Ind Est",
"town" => "Christchurch",
"country_id" => "GB",
"county" => "Dorset",
"postcode" => "BH23 4FL",
"email" => "support.team@i-fulfilment.co.uk",
"mobile" => "00000000000",
"telephone" => "00000000000",
"secondary_telephone" => "0000000000000",
"vat_number" => "GB999 9999 73",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address', {
title: "Mr",
first_name: "Support",
last_name: "Team",
company: "ACME LTD",
address_one: "Unit 4",
address_two: "Radar Way",
address_three: "Ind Est",
town: "Christchurch",
country_id: "GB",
county: "Dorset",
postcode: "BH23 4FL",
email: "support.team@i-fulfilment.co.uk",
mobile: "00000000000",
telephone: "00000000000",
secondary_telephone: "0000000000000",
vat_number: "GB999 9999 73",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address",
body: {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/shipping_address' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": "Ind Est",
"town": "Christchurch",
"country_id": "GB",
"county": "Dorset",
"postcode": "BH23 4FL",
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"title": "Mr",
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"address_one": "Unit 4",
"address_two": "Radar Way",
"address_three": null,
"town": "Christchurch",
"county": "Dorset",
"postcode": "BH23 4FL",
"country_id": 1,
"email": "support.team@i-fulfilment.co.uk",
"mobile": "00000000000",
"telephone": "00000000000",
"secondary_telephone": "0000000000000",
"vat_number": "GB999 9999 73"
}
}
Updates the shipping address of a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Address (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
title |
Title. | string |
not null |
first_name |
First name. | string |
requirednot null |
last_name |
Last name. | string |
requirednot null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
requirednot null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
requirednot null |
country_id |
Country ISO 2 or ISO 3 code. | string |
requirednot nullmin length is 2max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
requirednot null |
email |
Email. | string |
not null |
mobile |
Mobile number. | string |
not null |
telephone |
Landline number. | string |
not null |
secondary_telephone |
Secondary telephone number. | string |
not null |
vat_number |
VAT number. | string |
not null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Update Goodsout Warehouse
PUT /v1/orders/goodsouts/:id/warehouse
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*", [
"body" => json_encode([
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*', {
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*",
body: {
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/warehouse?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift.",
"warehouse": [
{
"short_code": "CHR",
"name": "Christchurch"
}
]
}
}
Updates a goodsout’s warehouse.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateGoodsoutWarehousee (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse_code |
The warehouse short code. | string |
requirednot nullmin length is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
warehouse |
SummarisedWarehouse |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Hold Goodsout
PUT /v1/orders/goodsouts/:id/hold
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold", [
"body" => json_encode([
"reason" => "Example reason.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold', {
reason: "Example reason.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold",
body: {
"reason": "Example reason."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/hold' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Example reason."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Holds an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Reason (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Unhold Goodsout
PUT /v1/orders/goodsouts/:id/unhold
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold", [
"body" => json_encode([
"reason" => "Example reason.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold', {
reason: "Example reason.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold",
body: {
"reason": "Example reason."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/unhold' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "Example reason."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Unholds an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
Reason (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
The reason. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Get Goodsout Despatch Attributes
GET /v1/orders/goodsouts/:id/despatch_attributes
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/despatch_attributes' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"sku": "DEMO-SKU-01",
"product_name": "Example Product",
"attribute_name": "Color",
"attribute_value": "Red"
}
]
}
Get all despatch attributes for a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderGoodsoutDespatchAttributes>
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Require Quote on Goodsout
PUT /v1/orders/goodsouts/:id/require_quote
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote", [
"body" => json_encode([
"require_quote" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote', {
require_quote: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote",
body: {
"require_quote": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/1049789/require_quote' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"require_quote": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Require quote to an order goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
RequireQuote (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
require_quote |
Require quote | boolean |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Booking In Required
PUT /v1/orders/goodsouts/:id/set_booking_in_required
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required", [
"body" => json_encode([
"booking_in_required" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required', {
booking_in_required: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required",
body: {
"booking_in_required": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/set_booking_in_required' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"booking_in_required": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": null,
"cancellation_date": "2019-11-25T14:52:56.000Z",
"despatch_on_date": null,
"source": "How the order was created.",
"delivery_instructions": "When not home put in shed.",
"gift_message": "Happy birthday Sam!<br/>Hope you enjoy this gift."
}
}
Add Booking In required tag to goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
BookingInRequired (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
booking_in_required |
Set booking in required tag. | boolean |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Add Goodsout Timeline
POST /v1/orders/goodsouts/:id/timeline
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline", [
"body" => json_encode([
"message" => "Marked as processed with in system XYZ.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline', {
message: "Marked as processed with in system XYZ.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline",
body: {
"message": "Marked as processed with in system XYZ."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Marked as processed with in system XYZ."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Marked as processed with in system XYZ."
}
}
Add a message or note to the timeline.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateAudit (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message or note to be added to the timeline. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Apply Goodsout Tag
POST /v1/orders/goodsouts/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Remove Goodsout Tag
DELETE /v1/orders/goodsouts/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/goodsouts/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a goodsout.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
Bulk List Tracking Numbers
PUT /v1/orders/goodsouts/bulk_tracking_numbers
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*", [
"body" => json_encode([
"order_goodsout_ids" => [
1,
2,
3,
4,
5,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*', {
order_goodsout_ids: [
1,
2,
3,
4,
5,
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*",
body: {
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_goodsout_id": 1049789,
"despatch_date": "2021-01-26T14:52:56.000Z",
"courier": "Royal Mail",
"external_tracking_enabled": true,
"service": "Tracked 48H Hour",
"tracking_numbers": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
}
]
}
Fetches all the tracking numbers for a set list of order goodsouts. This endpoint always expands all expandables.
Request Body
Return Type
array<BulkOrderTrackingNumbers>
Types for the Request Body
BulkGetGoodsoutData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_goodsout_ids |
List of order goodsout ID’s. | array<number> |
requirednot nullmin count is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
tracking_numbers |
array<CachedCourierTracking> |
Tracking details. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk List Tracking Numbers by Reference
PUT /v1/orders/goodsouts/bulk_tracking_numbers/by_reference
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*", [
"body" => json_encode([
"references" => [
"#154254",
"#154234",
"AB12314",
],
"statuses" => [
"awaiting_despatch",
"despatched",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*', {
references: [
"#154254",
"#154234",
"AB12314",
],
statuses: [
"awaiting_despatch",
"despatched",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*",
body: {
"references": [
"#154254",
"#154234",
"AB12314"
],
"statuses": [
"awaiting_despatch",
"despatched"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_tracking_numbers/by_reference?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"references": [
"#154254",
"#154234",
"AB12314"
],
"statuses": [
"awaiting_despatch",
"despatched"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"reference": "#154254",
"order_goodsout_id": 1049789,
"despatch_date": "2021-01-26T14:52:56.000Z",
"status": "despatched",
"courier": "Royal Mail",
"service": "Tracked 48H Hour",
"external_tracking_enabled": true,
"tracking_numbers": [
{
"courier": "Royal Mail",
"code": "RMTN1134905823GB",
"url": "http://www.royalmail.com/trackdetails?trackNumber=RMTN1134905823GB"
}
]
}
]
}
Fetches all the tracking numbers for a set list of order goodsouts. This endpoint always expands all expandables.
Request Body
BulkGetGoodsoutDataByReference
Return Type
array<BulkOrderTrackingNumbersByReference>
Types for the Request Body
BulkGetGoodsoutDataByReference (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
references |
List of order references. | array<string> |
requirednot nullmin count is 1 |
statuses |
Limit to certain goodsout statuses. | array<enum(draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched)> |
min count is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
tracking_numbers |
array<CachedCourierTracking> |
Tracking details. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk List Goodsout Statuses
PUT /v1/orders/goodsouts/bulk_statuses
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses", [
"body" => json_encode([
"order_goodsout_ids" => [
1,
2,
3,
4,
5,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses', {
order_goodsout_ids: [
1,
2,
3,
4,
5,
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses",
body: {
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/goodsouts/bulk_statuses' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_goodsout_ids": [
1,
2,
3,
4,
5
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_goodsout_id": 1049789,
"status": "awaiting_despatch"
}
]
}
Fetches the statuses for a set list of order goodsouts.
Request Body
Return Type
array<BulkOrderStatuses>
Types for the Request Body
BulkGetGoodsoutData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_goodsout_ids |
List of order goodsout ID’s. | array<number> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk Check Order Exists
PUT /v1/orders/exists
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/exists", [
"body" => json_encode([
"order_channel_id" => 1,
"order_references" => [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/exists', {
order_channel_id: 1,
order_references: [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001",
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/exists",
body: {
"order_channel_id": 1,
"order_references": [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001"
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/exists' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_channel_id": 1,
"order_references": [
"433-3450983-23443",
"443-473470-972349",
"43-45343-54543543543-001"
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_reference": "8674-7893278932798-68723",
"order_id": 4374739234,
"exists": false
}
]
}
Check to see if an order reference exists on a specific channel.
Request Body
Return Type
array<BulkCheckOrderExists>
Types for the Request Body
BulkCheckOrderExistsData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_channel_id |
Order channel to check against. | integer |
requirednot nullmin is 1 |
order_references |
List of order references to check. | array<string> |
requirednot nullmin count is 1 |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Bulk List All Open Orders
PUT /v1/orders/open
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/open?expand=*", [
"body" => json_encode([
"order_channel_id" => 1,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/open?expand=*', {
order_channel_id: 1,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/open?expand=*",
body: {
"order_channel_id": 1
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/open?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_channel_id": 1
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"order_id": "2333",
"reference": "8674-7893278932798-68723",
"goodsouts": [
{
"order_goodsout_id": "2333",
"status": "awaiting_picking",
"metadata": [
{
"key": "import_data",
"value": "..."
}
]
}
]
}
]
}
List all the ‘open’ orders for a given channel. Can be used to do a pre-cursive check when importing to filter quickly filter out known references.
Request Body
BulkListAllOpenOrderReferencesInput
Return Type
array<BulkListAllOpenOrders>
Types for the Request Body
BulkListAllOpenOrderReferencesInput (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_channel_id |
Order channel to check against. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
goodsouts |
array<BulkListAllOpenOrdersGoodsout> |
undefined |
goodsouts.metadata |
array<BulkListAllOpenOrdersGoodsoutMetadata> |
undefined |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Get packing list.
GET /v1/orders/goodsouts/:id/packing_list
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/packing_list?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"pallet": {
"pallet_product_variation_id": 1,
"pallet_reference": 1,
"sku": "STD-PALLET",
"weight_kg": "1.000"
},
"carton_reference": 1,
"carton_product_variation_id": 1,
"sku": "OWNPACK",
"sscc_18": "012345600064565487",
"weight": "1.421",
"height": 200,
"width": 300,
"depth": 150,
"contains": {
"product_component_id": 1,
"sku": "BLUE_CAR",
"name": "Blue Toy Car",
"quantity": 25,
"colour": "Blue",
"size": "1:46",
"style": "Standard",
"type": null,
"quality": "medium"
}
}
]
}
Fetches all boxes the goodsout was packed into. This endpoint always expands all expandables.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderGoodsoutPackingListBox>
Available expands
| Field | Return Type | Description |
|---|---|---|
contains |
array<OrderGoodsoutPackingListProduct> |
A pallet on a packing list. |
pallet |
OrderGoodsoutPackingListPallet |
A pallet on a packing list. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
Save Goodsout Shipment Tracking Update
POST /v1/shipping/tracking_update
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/shipping/tracking_update", [
"body" => json_encode([
"message" => "Shipment has arrived at regional facility.",
"location" => "Christchurch",
"tracking_number" => "123ABC",
"timestamp_utc" => "2024-10-07T14:52:56.000Z",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/shipping/tracking_update', {
message: "Shipment has arrived at regional facility.",
location: "Christchurch",
tracking_number: "123ABC",
timestamp_utc: "2024-10-07T14:52:56.000Z",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/shipping/tracking_update",
body: {
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp_utc": "2024-10-07T14:52:56.000Z"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/shipping/tracking_update' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp_utc": "2024-10-07T14:52:56.000Z"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp": "2024-10-07T14:52:56.000Z"
}
}
Receives goodsout shipment tracking update.
Request Body
SaveGoodsoutShipmentTrackingUpdate
Return Type
Types for the Request Body
SaveGoodsoutShipmentTrackingUpdate (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
A summary text that describes the tracking event. | string |
requirednot nullmin length is 1 |
location |
A text summary of where (location) the update has occurred. | string |
requirednot nullmin length is 1 |
tracking_number |
The specific tracking number for the update. | string |
requirednot nullmin length is 1 |
timestamp_utc |
The date/time of when the update was created (UTC format only). | date |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::ORDERS::MANAGE.
List Goodsout Shipment Tracking Updates
GET /v1/orders/goodsouts/:id/shipping/tracking_updates
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/goodsouts/:id/shipping/tracking_updates?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"message": "Shipment has arrived at regional facility.",
"location": "Christchurch",
"tracking_number": "123ABC",
"timestamp": "2024-10-07T14:52:56.000Z"
}
]
}
List goodsout shipment tracking updates.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<OrderGoodsoutShipmentTracking>
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
List Product Brands
GET /v1/products/brands
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/brands", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/brands', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/brands",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/brands' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
Retrieves a list of all the product brands.
Return Type
array<ProductBrands>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Create Product Brand
POST /v1/products/brands
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/brands", [
"body" => json_encode([
"name" => "Demo Brand Name.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/brands', {
name: "Demo Brand Name.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/brands",
body: {
"name": "Demo Brand Name."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/brands' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"name": "Demo Brand Name."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Create a new product brand.
Request Body
Return Type
Types for the Request Body
CreateProductBrand (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
The name of the product brand. | string |
requirednot nullmax length is 200 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
List Product Channels
GET /v1/products/channels
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/channels", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/channels', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/channels",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/channels' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Product Channels.
Return Type
array<ProductChannels>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
List Customs Codes
GET /v1/products/customs
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/customs?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/customs?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/customs?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/customs?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5,
"organisation_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
List Customs Codes.
Return Type
array<ProductComponentCustomsCodes>
Available expands
| Field | Return Type | Description |
|---|---|---|
organisation |
Organisations |
Organisation data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Create Customs Code
POST /v1/products/customs
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/customs", [
"body" => json_encode([
"code" => "8471",
"name" => "Personal computers",
"duty_rate" => 1.5,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/customs', {
code: "8471",
name: "Personal computers",
duty_rate: 1.5,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/customs",
body: {
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/customs' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"code": "8471",
"name": "Personal computers",
"duty_rate": 1.5,
"organisation_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Create a new customs code.
Request Body
Return Type
Types for the Request Body
CreateProductCustomsCode (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
code |
HS Code. | string |
requirednot nullmin length is 4 |
name |
Name of the code. | string |
requirednot nullmin length is 1 |
duty_rate |
The duty rate applied to this customs code. | number |
requirednot nullmin is 0 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
List Product DOQ Types
GET /v1/products/doqs
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/doqs", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/doqs', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/doqs",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/doqs' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"code": "INNER_PACK",
"name": "Inner"
}
]
}
List product DOQ types.
Return Type
array<ProductComponentDoqTypes>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
List Product Metadata
GET /v1/products/variations/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<ProductResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Get Product Metadata
GET /v1/products/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Set Product Metadata
PUT /v1/products/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Delete Product Metadata
DELETE /v1/products/variations/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/products/variations/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a product.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Create Product
POST /v1/products/variations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/variations?expand=*", [
"body" => json_encode([
"sku" => "RED-BIKE-01A",
"name" => "Red bike",
"barcode" => "0793573679000",
"brand" => 1,
"channel" => 1,
"new_component" => [
"perishable" => true,
"organic" => true,
"dangerous" => true,
"dutiable" => true,
"hygiene" => true,
"battery" => true,
"fragile" => true,
"what_is_it" => "Bicycle.",
"made_of" => "metal, rubber, plastic",
"used_for" => "sports",
"customs_country_of_origin_country" => "GBR",
"product_component_customs_code_id" => 1,
"doqs" => [
[
"length" => 2500,
"width" => 1000,
"height" => 4500,
"weight" => 1.45,
"quantity" => 10,
"type" => "INNER_PACK",
"shippable" => true,
"barcode" => "0793573679000",
],
],
"batch_codes_enabled" => "enabled",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/variations?expand=*', {
sku: "RED-BIKE-01A",
name: "Red bike",
barcode: "0793573679000",
brand: 1,
channel: 1,
new_component: {
perishable: true,
organic: true,
dangerous: true,
dutiable: true,
hygiene: true,
battery: true,
fragile: true,
what_is_it: "Bicycle.",
made_of: "metal, rubber, plastic",
used_for: "sports",
customs_country_of_origin_country: "GBR",
product_component_customs_code_id: 1,
doqs: [
{
length: 2500,
width: 1000,
height: 4500,
weight: 1.45,
quantity: 10,
type: "INNER_PACK",
shippable: true,
barcode: "0793573679000",
},
],
batch_codes_enabled: "enabled",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations?expand=*",
body: {
"sku": "RED-BIKE-01A",
"name": "Red bike",
"barcode": "0793573679000",
"brand": 1,
"channel": 1,
"new_component": {
"perishable": false,
"organic": false,
"dangerous": false,
"dutiable": false,
"hygiene": false,
"battery": false,
"fragile": false,
"what_is_it": "Bicycle.",
"made_of": "metal, rubber, plastic",
"used_for": "sports",
"customs_country_of_origin_country": "GBR",
"product_component_customs_code_id": 1,
"doqs": [
{
"length": 2500,
"width": 1000,
"height": 4500,
"weight": 1.45,
"quantity": 10,
"type": "INNER_PACK",
"shippable": true,
"barcode": "0793573679000"
}
],
"batch_codes_enabled": "enabled"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/variations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"sku": "RED-BIKE-01A",
"name": "Red bike",
"barcode": "0793573679000",
"brand": 1,
"channel": 1,
"new_component": {
"perishable": false,
"organic": false,
"dangerous": false,
"dutiable": false,
"hygiene": false,
"battery": false,
"fragile": false,
"what_is_it": "Bicycle.",
"made_of": "metal, rubber, plastic",
"used_for": "sports",
"customs_country_of_origin_country": "GBR",
"product_component_customs_code_id": 1,
"doqs": [
{
"length": 2500,
"width": 1000,
"height": 4500,
"weight": 1.45,
"quantity": 10,
"type": "INNER_PACK",
"shippable": true,
"barcode": "0793573679000"
}
],
"batch_codes_enabled": "enabled"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
Creates a product.
Request Body
Return Type
Types for the Request Body
CreateProduct (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s Stock Keeping Unit. | string |
requirednot nullmatch is /^[a-z0-9\-_.]{2,}$/i |
name |
The product’s name. | string |
requirednot nullmin length is 3 |
barcode |
The product barcode. | string |
requirednot nullmatch is /^\d{3,20}$/ |
brand |
Product brand id. | integer |
requirednot nullmin is 1 |
channel |
Product channel id. | integer |
requirednot nullmin is 1 |
new_component |
Component data. Required when creating a new warehouse product. It can’t appear in the payload along with existing_components. |
NewComponent |
optionally requirednot null |
existing_components |
Components to use. Required when creating a new virtual product. It can’t appear in the payload along with new_component. |
array<ExistingComponent> |
optionally requirednot nullmin count is 1 |
Doq
| Key | Description | Types | Restrictions |
|---|---|---|---|
length |
Length in MM. | integer |
requirednot nullmin is 1 |
width |
Width in MM. | integer |
requirednot nullmin is 1 |
height |
Height in MM. | integer |
requirednot nullmin is 1 |
weight |
Weight in KG. | number |
requirednot nullmin is 0.001 |
quantity |
Quantity. | integer |
requirednot nullmin is 1 |
type |
Short code for the DOQ. | enum(INNER_PACK, MASTER_CASE, PALLET, SINGLE_PRODUCT) |
requirednot null |
shippable |
Is this a shippable item? | boolean |
requirednot null |
barcode |
Barcode. | string |
not nullmatch is /^[0-9]{6,}$/ |
ExistingComponent
| Key | Description | Types | Restrictions |
|---|---|---|---|
id |
The product component ID. | integer |
requirednot nullmin is 1 |
quantity |
The quantity required to build the virtual product. | integer |
requirednot nullmin is 1 |
NewComponent
| Key | Description | Types | Restrictions |
|---|---|---|---|
perishable |
Is the product perishable? | boolean |
requirednot null |
organic |
Is the product organic? | boolean |
requirednot null |
dangerous |
Is the product dangerous? | boolean |
not null |
dutiable |
Is the product dutiable? | boolean |
not null |
hygiene |
Is the product for hygiene? | boolean |
not null |
battery |
Does the product have battery? | boolean |
not null |
fragile |
Is the product fragile? | boolean |
not null |
what_is_it |
Part of customs details: What is the product? | string |
requirednot nullmin length is 1 |
made_of |
Part of customs details: What is the product made of? | string |
requirednot nullmin length is 1 |
used_for |
Part of customs details: What is the product used for? | string |
requirednot nullmin length is 1 |
customs_country_of_origin_country |
The ISO2 or ISO3 code or the ID of the country of origin. | stringor integer |
requirednot nullif type is string, then min length is 1if type is string, then max length is 3if type is integer, then min is 1 |
product_component_customs_code_id |
Customs code ID. | integer |
requirednot nullmin is 1 |
doqs |
List of product DOQs. | array<Doq> |
requirednot nullmin count is 1 |
batch_codes_enabled |
Enable batch codes? | string |
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
List Product Variations
GET /v1/products/variations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"sku": "DEMO-SKU-01",
"name": "Example product",
"is_primary": false,
"status": "active",
"created": {},
"product": {
"id": 1,
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false,
"organisation": {
"id": 1,
"name": "Demo Organisation"
}
}
},
"tags": [
{
"name": "Processed",
"shortcode": "processed",
"description": "Processed by a 3rd party system"
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example Product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"components": [
{
"id": 1,
"sku": "DEMO-SKU-01",
"name": "Example Product",
"barcode": 1234567891020,
"quantity": 1
}
],
"type": {
"id": 1,
"name": "Standard Product",
"type": "product"
},
"primary_product_category": {
"id": 4,
"name": "Bicycles"
}
}
]
}
Get a list of product variations. Please note that all expands will be applied automatically.
Return Type
array<CachedProductVariation>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS, IN |
|
| product.channel.id | IN, NOT_IN |
|
| tags.shortcode | IN, NOT_IN |
|
| status | IN, NOT_IN |
|
| sku | EQUALS, IN |
|
| type.id | IN |
|
| is_primary | EQUALS |
|
| order_channel_id | IN |
/v1/orders/channels |
Sortings
Results can be sorted by the following keys: created, product.channel.name, sku, status.
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<CachedProductVariationComponent> |
Variation component. |
created |
CachedProductVariationCreated |
Variation specific data. |
descriptions |
array<CachedProductVariationDescription> |
Variation descriptions. |
descriptions.locale |
SummarisedLocale |
Locale / Language. |
primary_product_category |
SummarisedProductCategory |
Summary of a product category. |
product |
CachedProduct |
Top level product data. |
product.channel |
CachedProductChannel |
Cached product channel. |
product.channel.organisation |
CachedProductChannelOrganisation |
Top level product data. |
tags |
array<SummarisedTag> |
A tag. |
type |
SummarisedProductVariationType |
Top level product data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
View Product Variation
GET /v1/products/variations/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/:id?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/:id?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/:id?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/:id?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
View a single product variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Update Name and Description
PUT /v1/products/variations/:id/description
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*", [
"body" => json_encode([
"locale" => "en",
"name" => "Red Ball",
"full_description" => "A beautiful red ball.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*', {
locale: "en",
name: "Red Ball",
full_description: "A beautiful red ball.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*",
body: {
"locale": "en",
"name": "Red Ball",
"full_description": "A beautiful red ball."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/12345/description?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"locale": "en",
"name": "Red Ball",
"full_description": "A beautiful red ball."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
}
Updates product’s name and description.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
UpdateVariationNameAndDescription
Return Type
Types for the Request Body
UpdateVariationNameAndDescription (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
locale |
ID or code of locale. | stringor integer |
requirednot nullif type is string, then min length is 2if type is string, then max length is 2if type is integer, then min is 1 |
name |
Name. | string |
requirednot nullmin length is 1 |
full_description |
Description. | string |
requirednot nullmin length is 0 |
Available expands
| Field | Return Type | Description |
|---|---|---|
locale |
Locales |
Locale data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Activate Product Variation
PUT /v1/products/variations/:id/activate
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/:id/activate?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
Set the product variation’s status to “active”.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Discontinue Product Variation
PUT /v1/products/variations/:id/discontinue
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/:id/discontinue?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"product": {
"id": 1,
"product_channel_id": 1,
"product_brand_id": 1,
"product_category_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"channel": {
"id": 1,
"organisation_id": 1,
"status": "active",
"outbound_email": "someone@example.com",
"default_warehouse_id": 1,
"default_product_brand_id": 1,
"global": false,
"name": "Demo Channel",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"brand": {
"id": 1,
"name": "Demo Brand",
"organisation_id": 1,
"active": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"type": {
"id": 1,
"name": "Standard Product",
"type": "product",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"components": [
{
"product_variation_id": 1,
"product_component_instance_id": 1,
"quantity": 1,
"instance": {
"id": 1,
"product_component_id": 1,
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
}
}
],
"descriptions": [
{
"id": 1,
"product_variation_id": 1,
"locale_id": 1,
"name": "Example product",
"full_description": "Example product description",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"locale": {
"id": 1,
"name": "English",
"code": "en",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
],
"primary_component": [
{
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_product_component_batches": 1,
"batch_codes_enabled": "enabled"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"stock_data_summaries": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
}
Set the product variation’s status to “discontinued”.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
components |
array<ProductVariationComponents> |
Variation component. |
components.instance |
ProductComponentInstances |
Component instance. |
components.instance.component |
ProductComponents |
Product component. |
components.instance.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
components.instance.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
descriptions |
array<ProductVariationDescriptions> |
Variation descriptions. |
descriptions.locale |
Locales |
Locale data. |
primary_component |
array<ProductComponents> |
Product component. |
product |
Products |
Product data. Products are grouping entries and may represent multiple different kinds of physical products. |
product.brand |
ProductBrands |
Product brand data. |
product.brand.organisation |
Organisations |
Organisation data. |
product.channel |
ProductChannels |
Geographical region data. |
product.channel.organisation |
Organisations |
Organisation data. |
stock_data_summaries |
array<ProductVariationStockDataSummary> |
Variation stock breakdown. |
tags |
array<Tags> |
A tag. |
type |
ProductVariationTypes |
Product variation type data. |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Add Product Timeline
POST /v1/products/variations/:id/timeline
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/variations/1234567/timeline", [
"body" => json_encode([
"message" => "Marked as processed with in system XYZ.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/variations/1234567/timeline', {
message: "Marked as processed with in system XYZ.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/timeline",
body: {
"message": "Marked as processed with in system XYZ."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/variations/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Marked as processed with in system XYZ."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Marked as processed with in system XYZ."
}
}
Add a message or note to the timeline.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateAudit (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message or note to be added to the timeline. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Apply Product Tag
POST /v1/products/variations/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/products/variations/12345/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/products/variations/12345/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/12345/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/products/variations/12345/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a product variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Remove Product Tag
DELETE /v1/products/variations/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/products/variations/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a product variation.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::MANAGE.
Find variations with suppliers
GET /v1/products/variations/suppliers
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/suppliers", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/suppliers', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/suppliers",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/suppliers' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"channel": 123,
"sku": "DEMO-SKU-01",
"product_component_sku": "DEMO-SKU-01",
"product_component_supplier_id": 123,
"product_component_id": 123,
"warehouse_id": 123
}
]
}
Retrieves basic data about the list of available marketplace listable products.
Return Type
array<ProductChannelVariations>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| sku | LIKE, NOT_LIKE, IN |
|
| channel | IN, NOT_IN |
Scopes
This endpoint is available to all users.
Bulk List Stock
PUT /v1/products/variations/stocks
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/stocks", [
"body" => json_encode([
"product_variation_id" => [
1,
],
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/stocks', {
product_variation_id: [
1,
],
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stocks",
body: {
"product_variation_id": [
1
],
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/stocks' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_variation_id": [
1
],
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
Fetches stock data for a set list of products.
Request Body
Return Type
array<ProductVariationStockDataSummary>
Types for the Request Body
BulkGetVariationStockData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
List of product variation ID’s. | array<number> |
requirednot nullmin count is 1 |
warehouse_code |
Warehouse code to limit the results to. If omitted or null, it won’t be applied as a filter. | string |
min length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Bulk List Stock with Expiry
PUT /v1/products/variations/stocks/expiry
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/stocks/expiry", [
"body" => json_encode([
"product_variation_id" => [
1,
],
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/stocks/expiry', {
product_variation_id: [
1,
],
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stocks/expiry",
body: {
"product_variation_id": [
1
],
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/stocks/expiry' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_variation_id": [
1
],
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
Fetches perishable stock data for a set list of products.
Request Body
BulkGetVariationPerishableStockData
Return Type
array<ProductVariationPerishableStockDataSummary>
Types for the Request Body
BulkGetVariationPerishableStockData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
List of product variation ID’s. | array<number> |
requirednot nullmin count is 1 |
warehouse_code |
Warehouse code to limit the results to. If omitted or null, it won’t be applied as a filter. | string |
min length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
Bulk List Stock with Batch Codes
PUT /v1/products/variations/stocks/batch_code
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/products/variations/stocks/batch_code", [
"body" => json_encode([
"product_variation_id" => [
1,
],
"warehouse_code" => "CHR",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/products/variations/stocks/batch_code', {
product_variation_id: [
1,
],
warehouse_code: "CHR",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stocks/batch_code",
body: {
"product_variation_id": [
1
],
"warehouse_code": "CHR"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/products/variations/stocks/batch_code' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_variation_id": [
1
],
"warehouse_code": "CHR"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"product_variation_id": 1,
"batch_code": "1234",
"warehouse_id": 1,
"warehouse_code": "CHR",
"warehouse_name": "Christchurch",
"total": 156,
"total_saleable": 140,
"saleable": 134,
"available": 121,
"allocated": 10,
"misc": 34,
"expected": 100,
"under_investigation": 1
}
]
}
Fetches batch stock data for a set list of products.
Request Body
BulkGetVariationBatchStockData
Return Type
array<ProductVariationBatchStockDataSummary>
Types for the Request Body
BulkGetVariationBatchStockData (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
List of product variation ID’s. | array<number> |
requirednot nullmin count is 1 |
warehouse_code |
Warehouse code to limit the results to. If omitted or null, it won’t be applied as a filter. | string |
min length is 1 |
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
List Product Variations
GET /v1/products/variations/stock_availability
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/variations/stock_availability?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"stocks": {
"product_variation_id": 1,
"warehouse_id": 1,
"warehouse_code": "CHR",
"total": 156,
"available": 121
}
}
]
}
Get a list of product variations. Please note that all expands will be applied automatically.
Return Type
array<StockAvailability>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| id | EQUALS, IN |
|
| sku | EQUALS, IN |
|
| order_channel_id | IN |
/v1/orders/channels |
Sortings
Results can be sorted by the following keys: created, product.channel.name, sku, status.
Available expands
| Field | Return Type | Description |
|---|
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
List Product Suppliers
GET /v1/products/suppliers
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/products/suppliers", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/products/suppliers', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/products/suppliers",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/products/suppliers' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
}
]
}
List product suppliers.
Return Type
array<ProductComponentSuppliers>
Scopes
This endpoint is only available for users with scope APP::PRODUCTS::READ.
List Purchase Order Metadata
GET /v1/purchase_orders/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<PurchaseOrderResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Get Purchase Order Metadata
GET /v1/purchase_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
PurchaseOrderResourceMetadatas
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Set Purchase Order Metadata
PUT /v1/purchase_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Purchase Order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
PurchaseOrderResourceMetadatas
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Delete Purchase Order Metadata
DELETE /v1/purchase_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/purchase_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
List Purchase Orders
GET /v1/purchase_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
List purchase orders.
Return Type
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| product_channel_id | IN, NOT_IN |
/v1/products/channels |
| product_component_supplier_id | IN, NOT_IN |
|
| status | IN, NOT_IN |
|
| purchase_order_type_id | IN, NOT_IN |
|
| completed_date | LESS_THAN, ON_DATE, MORE_THAN |
Sortings
Results can be sorted by the following keys: created, id, warehouse.name.
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Create Purchase Order
POST /v1/purchase_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders?expand=*", [
"body" => json_encode([
"product_channel_id" => 1,
"product_component_supplier_id" => 6,
"references" => [
[
"name" => "Supplier",
"value" => "SO25115481514",
],
],
"warehouse_code" => "CHR",
"currency_code" => "GBP",
"goodsin" => [
"expected_pallets" => 32,
"expected_cartons" => 3200,
"shipping_company" => "DHL",
"tracking_number" => "DHL-TN-1209341234",
"shipping_method" => "sea",
"expected_delivery_date" => "2025-09-05T14:32:45.375Z",
],
"lines" => [
[
"sku" => "DEMO-SKU-01",
"product_component_id" => null,
"quantity" => 3200,
"cost_price" => 156.5,
"duty" => 14.5,
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders?expand=*', {
product_channel_id: 1,
product_component_supplier_id: 6,
references: [
{
name: "Supplier",
value: "SO25115481514",
},
],
warehouse_code: "CHR",
currency_code: "GBP",
goodsin: {
expected_pallets: 32,
expected_cartons: 3200,
shipping_company: "DHL",
tracking_number: "DHL-TN-1209341234",
shipping_method: "sea",
expected_delivery_date: "2025-09-05T14:32:45.375Z",
},
lines: [
{
sku: "DEMO-SKU-01",
product_component_id: nil,
quantity: 3200,
cost_price: 156.5,
duty: 14.5,
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders?expand=*",
body: {
"product_channel_id": 1,
"product_component_supplier_id": 6,
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
],
"warehouse_code": "CHR",
"currency_code": "GBP",
"goodsin": {
"expected_pallets": 32,
"expected_cartons": 3200,
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"shipping_method": "sea",
"expected_delivery_date": "2025-09-05T14:32:45.375Z"
},
"lines": [
{
"sku": "DEMO-SKU-01",
"product_component_id": null,
"quantity": 3200,
"cost_price": 156.5,
"duty": 14.5
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"product_channel_id": 1,
"product_component_supplier_id": 6,
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
],
"warehouse_code": "CHR",
"currency_code": "GBP",
"goodsin": {
"expected_pallets": 32,
"expected_cartons": 3200,
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"shipping_method": "sea",
"expected_delivery_date": "2025-09-05T14:32:45.375Z"
},
"lines": [
{
"sku": "DEMO-SKU-01",
"product_component_id": null,
"quantity": 3200,
"cost_price": 156.5,
"duty": 14.5
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"lines": {
"id": 3423,
"product_component_id": 34309,
"name": "Green ball",
"quantity": 5000,
"cost_price": 12.4,
"duty": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"last_cost": {
"id": 2923,
"product_component_instance_id": 44309,
"product_component_id": 34309,
"net_cost_price": 12.4,
"cost_price_currency_code": "GBP",
"cost_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"cost_price_duty_rate": 1,
"notes": "Example notes.",
"landed_price_currency_code": "GBP",
"landed_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock": 1354,
"created": "2019-11-25T14:52:56.000Z",
"landed_price": 12.9
},
"stock": {
"total": 35,
"total_saleable": 34,
"saleable": 34,
"pickable": 34,
"available": 34,
"allocated": 0,
"reserved": 0,
"misc": 1,
"gistock": 0,
"expected": 5,
"picked": 0,
"under_investigation": 1
},
"count_product_component_batches": 1,
"sales": {
"1_week": 54,
"1_month": 220,
"3_months": 583,
"6_months": 1124,
"1_year": 2930,
"lifetime": 2930
},
"batch_codes_enabled": "enabled"
},
"doq": {
"id": 1,
"quantity": 1,
"weight": 1.45,
"depth": 1000,
"width": 1500,
"height": 1000,
"shippable": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"payments": [
{
"id": 94324,
"name": "30% deposit",
"amount": 10000,
"currency_code": "GBP",
"effective_date": "2019-11-25T14:52:56.000Z",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
],
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
Creates a purchase order.
Request Body
Return Type
Types for the Request Body
CreatePurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_channel_id |
Product channel ID. | number |
requirednot null |
product_component_supplier_id |
Supplier ID. | number |
requirednot null |
references |
List of references. | array<Reference> |
not null |
warehouse_code |
Warehouse code. | string |
requirednot nullmin length is 1 |
currency_code |
Currency code | string |
requirednot nullmin length is 3max length is 3 |
goodsin |
First goodsin. | Goodsin |
requirednot null |
lines |
Products ordered. | array<Line> |
not null |
Goodsin
| Key | Description | Types | Restrictions |
|---|---|---|---|
expected_pallets |
Number of expected pallets. | integer |
requirednot nullmin is 0 |
expected_cartons |
Number of expected cartons. | integer |
requirednot nullmin is 0 |
shipping_company |
Name of the shipping company. | string |
not null |
tracking_number |
Tracking number for the shipment. | string |
not null |
shipping_method |
Method of travel. | enum(air, sea, road) |
requirednot null |
expected_delivery_date |
Expected delivery date. | date |
requirednot null |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
Product SKU. | string |
optionally requirednot nullmin length is 1match is /^[0-9a-z_.-]+$/i |
product_component_id |
Product component ID. | integer |
optionally requirednot nullmin is 1 |
quantity |
Ordered quantity. | integer |
requirednot nullmin is 1 |
cost_price |
Cost price. | number |
not nullmin is 0 |
duty |
Duty rate. | number |
not nullmin is 0 |
Reference
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name. | string |
requirednot null |
value |
Value. | string |
requirednot null |
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.consignment_qualities |
array<ConsignmentQualities> |
Consignment quality description. |
goodsins.containers |
array<PurchaseOrderGoodsinContainers> |
A container for a goodsin. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
goodsins.items.batch |
ProductComponentBatches |
Description of a batch. |
goodsins.items.component |
ProductComponents |
Product component. |
goodsins.items.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
goodsins.items.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
goodsins.items.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
goodsins.items.component.last_cost.cost_currency |
Currencies |
Currency data. |
goodsins.items.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
goodsins.items.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
goodsins.items.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
goodsins.items.cost |
ProductComponentCostPrices |
A cost price. |
goodsins.items.cost.currency |
SummarisedCurrency |
A currency. |
goodsins.items.cost.transports |
ProductComponentCostPriceTransports |
Transport costs. |
goodsins.port |
Ports |
Shipping ports. |
lines |
array<PurchaseOrderLines> |
An item ordered in a purchase order. |
lines.component |
ProductComponents |
Product component. |
lines.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
lines.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
lines.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
lines.component.last_cost.cost_currency |
Currencies |
Currency data. |
lines.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
lines.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
lines.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
lines.doq |
ProductComponentDoqs |
Product component DOQ. |
payments |
array<PurchaseOrderPayments> |
Payments made towards purchase order suppliers. |
payments.currency |
SummarisedCurrency |
A currency. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
tags |
array<Tags> |
A tag. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Create Fast-Track Purchase Order
POST /v1/purchase_orders/fast_track
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*", [
"body" => json_encode([
"warehouse_code" => "CHR",
"product_channel_id" => 1,
"currency_code" => "GBP",
"reference" => "SO25115481514",
"lines" => [
[
"sku" => "DEMO-SKU-01",
"quantity" => 3200,
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*', {
warehouse_code: "CHR",
product_channel_id: 1,
currency_code: "GBP",
reference: "SO25115481514",
lines: [
{
sku: "DEMO-SKU-01",
quantity: 3200,
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*",
body: {
"warehouse_code": "CHR",
"product_channel_id": 1,
"currency_code": "GBP",
"reference": "SO25115481514",
"lines": [
{
"sku": "DEMO-SKU-01",
"quantity": 3200
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/fast_track?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse_code": "CHR",
"product_channel_id": 1,
"currency_code": "GBP",
"reference": "SO25115481514",
"lines": [
{
"sku": "DEMO-SKU-01",
"quantity": 3200
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"lines": {
"id": 3423,
"product_component_id": 34309,
"name": "Green ball",
"quantity": 5000,
"cost_price": 12.4,
"duty": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"last_cost": {
"id": 2923,
"product_component_instance_id": 44309,
"product_component_id": 34309,
"net_cost_price": 12.4,
"cost_price_currency_code": "GBP",
"cost_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"cost_price_duty_rate": 1,
"notes": "Example notes.",
"landed_price_currency_code": "GBP",
"landed_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock": 1354,
"created": "2019-11-25T14:52:56.000Z",
"landed_price": 12.9
},
"stock": {
"total": 35,
"total_saleable": 34,
"saleable": 34,
"pickable": 34,
"available": 34,
"allocated": 0,
"reserved": 0,
"misc": 1,
"gistock": 0,
"expected": 5,
"picked": 0,
"under_investigation": 1
},
"count_product_component_batches": 1,
"sales": {
"1_week": 54,
"1_month": 220,
"3_months": 583,
"6_months": 1124,
"1_year": 2930,
"lifetime": 2930
},
"batch_codes_enabled": "enabled"
},
"doq": {
"id": 1,
"quantity": 1,
"weight": 1.45,
"depth": 1000,
"width": 1500,
"height": 1000,
"shippable": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"payments": [
{
"id": 94324,
"name": "30% deposit",
"amount": 10000,
"currency_code": "GBP",
"effective_date": "2019-11-25T14:52:56.000Z",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
],
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
Creates a fast-track purchase order.
Fast track Purchase Orders are a simplified purchase order that can only be used if enabled in a warehouse and on an organisation using our SaaS product.They should only be used with authorisation from your SaaS Account Manager. For further details please contact the SaaS team.
Request Body
Return Type
Types for the Request Body
CreateFastTrackPurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse_code |
Warehouse code. | string |
requirednot nullmin length is 1 |
product_channel_id |
Product channel ID. | number |
requirednot null |
currency_code |
Currency code | string |
requirednot nullmin length is 3max length is 3 |
reference |
Reference value. | string |
requirednot null |
lines |
Products ordered. | array<Line> |
requirednot nullmin count is 1 |
Line
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
Product SKU. | string |
requirednot nullmin length is 1match is /^[0-9a-z_-]+$/i |
quantity |
Ordered quantity. | integer |
requirednot nullmin is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.consignment_qualities |
array<ConsignmentQualities> |
Consignment quality description. |
goodsins.containers |
array<PurchaseOrderGoodsinContainers> |
A container for a goodsin. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
goodsins.items.batch |
ProductComponentBatches |
Description of a batch. |
goodsins.items.component |
ProductComponents |
Product component. |
goodsins.items.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
goodsins.items.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
goodsins.items.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
goodsins.items.component.last_cost.cost_currency |
Currencies |
Currency data. |
goodsins.items.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
goodsins.items.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
goodsins.items.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
goodsins.items.cost |
ProductComponentCostPrices |
A cost price. |
goodsins.items.cost.currency |
SummarisedCurrency |
A currency. |
goodsins.items.cost.transports |
ProductComponentCostPriceTransports |
Transport costs. |
goodsins.port |
Ports |
Shipping ports. |
lines |
array<PurchaseOrderLines> |
An item ordered in a purchase order. |
lines.component |
ProductComponents |
Product component. |
lines.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
lines.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
lines.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
lines.component.last_cost.cost_currency |
Currencies |
Currency data. |
lines.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
lines.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
lines.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
lines.doq |
ProductComponentDoqs |
Product component DOQ. |
payments |
array<PurchaseOrderPayments> |
Payments made towards purchase order suppliers. |
payments.currency |
SummarisedCurrency |
A currency. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
tags |
array<Tags> |
A tag. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
View Purchase Order
GET /v1/purchase_orders/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/purchase_orders/125?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/purchase_orders/125?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/125?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/purchase_orders/125?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"short_code": "CHR",
"name": "Christchurch"
},
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
},
"channel": {
"id": 1,
"name": "Demo Channel",
"default_warehouse_id": 1,
"global": false
},
"type": {
"id": 1,
"code": "standard",
"name": "Standard",
"description": "Check-in and put away to locations"
},
"supplier": {
"id": 6,
"organisation_id": 1,
"name": "Demo Supplier",
"active": true,
"port_id": 4,
"currency_code": "GBP",
"nominal_code": "5000",
"xero_code": "ABC/9/99",
"organisation_tax_id": 1
},
"lines": {
"id": 3423,
"product_component_id": 34309,
"name": "Green ball",
"quantity": 5000,
"cost_price": 12.4,
"duty": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"component": {
"id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "123123123000",
"perishable": false,
"fragile": false,
"battery": false,
"dangerous": false,
"organic": false,
"what_is_it": "Tape measure.",
"made_of": "Synthetic rubber & Polyvinyl chloride",
"used_for": "A tool for measuring distances.",
"customs_country_of_origin_country_id": 1,
"product_component_customs_code_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"last_cost": {
"id": 2923,
"product_component_instance_id": 44309,
"product_component_id": 34309,
"net_cost_price": 12.4,
"cost_price_currency_code": "GBP",
"cost_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"cost_price_duty_rate": 1,
"notes": "Example notes.",
"landed_price_currency_code": "GBP",
"landed_currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"stock": 1354,
"created": "2019-11-25T14:52:56.000Z",
"landed_price": 12.9
},
"stock": {
"total": 35,
"total_saleable": 34,
"saleable": 34,
"pickable": 34,
"available": 34,
"allocated": 0,
"reserved": 0,
"misc": 1,
"gistock": 0,
"expected": 5,
"picked": 0,
"under_investigation": 1
},
"count_product_component_batches": 1,
"sales": {
"1_week": 54,
"1_month": 220,
"3_months": 583,
"6_months": 1124,
"1_year": 2930,
"lifetime": 2930
},
"batch_codes_enabled": "enabled"
},
"doq": {
"id": 1,
"quantity": 1,
"weight": 1.45,
"depth": 1000,
"width": 1500,
"height": 1000,
"shippable": true,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
},
"payments": [
{
"id": 94324,
"name": "30% deposit",
"amount": 10000,
"currency_code": "GBP",
"effective_date": "2019-11-25T14:52:56.000Z",
"currency": {
"code": "GBP",
"name": "British Pound",
"symbol": "£"
}
}
],
"goodsins": [
{
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"items": [
{
"id": 123124,
"product_component_id": 1,
"quantity": 34,
"expiry_date": null,
"product_component_batch_id": 52567,
"purchase_order_goodsin_item_issue_id": 78,
"product_component_cost_price_id": 54349,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"count_audit_ids": 0
}
]
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
],
"references": [
{
"name": "Supplier",
"value": "SO25115481514"
}
]
}
}
Retrieve one purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
channel |
CachedProductChannel |
Cached product channel. |
currency |
SummarisedCurrency |
A currency. |
goodsins |
array<PurchaseOrderGoodsins> |
One shipment to a purchase order. |
goodsins.consignment_qualities |
array<ConsignmentQualities> |
Consignment quality description. |
goodsins.containers |
array<PurchaseOrderGoodsinContainers> |
A container for a goodsin. |
goodsins.items |
array<PurchaseOrderGoodsinItems> |
Received items for a goodsin. |
goodsins.items.batch |
ProductComponentBatches |
Description of a batch. |
goodsins.items.component |
ProductComponents |
Product component. |
goodsins.items.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
goodsins.items.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
goodsins.items.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
goodsins.items.component.last_cost.cost_currency |
Currencies |
Currency data. |
goodsins.items.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
goodsins.items.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
goodsins.items.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
goodsins.items.cost |
ProductComponentCostPrices |
A cost price. |
goodsins.items.cost.currency |
SummarisedCurrency |
A currency. |
goodsins.items.cost.transports |
ProductComponentCostPriceTransports |
Transport costs. |
goodsins.port |
Ports |
Shipping ports. |
lines |
array<PurchaseOrderLines> |
An item ordered in a purchase order. |
lines.component |
ProductComponents |
Product component. |
lines.component.doqs |
array<ProductComponentDoqs> |
Product component DOQ. |
lines.component.doqs.type |
ProductComponentDoqTypes |
Product component DOQ Types. |
lines.component.last_cost |
ProductComponentLandedPrices |
Landed prices. |
lines.component.last_cost.cost_currency |
Currencies |
Currency data. |
lines.component.last_cost.landed_currency |
SummarisedCurrency |
A currency. |
lines.component.sales |
ProductComponentSalesSummary |
Sales summary for a product. |
lines.component.stock |
ProductComponentStockSummary |
Stock summary for a product component. |
lines.doq |
ProductComponentDoqs |
Product component DOQ. |
payments |
array<PurchaseOrderPayments> |
Payments made towards purchase order suppliers. |
payments.currency |
SummarisedCurrency |
A currency. |
references |
array<PurchaseOrderReferences> |
Purchase order references. |
supplier |
ProductComponentSuppliers |
Product Suppliers. |
supplier.currency |
SummarisedCurrency |
A currency. |
tags |
array<Tags> |
A tag. |
type |
PurchaseOrderTypes |
Types of purchase orders |
warehouse |
SummarisedWarehouse |
A warehouse. |
warehouse.country |
SummarisedCountry |
A country. |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::READ.
Cancel a Purchase Order
PUT /v1/purchase_orders/:id/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/purchase_orders/:id/cancel", [
"body" => json_encode([
"reason" => "No longer needed",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/purchase_orders/:id/cancel', {
reason: "No longer needed",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/:id/cancel",
body: {
"reason": "No longer needed"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/purchase_orders/:id/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "No longer needed"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 125,
"product_channel_id": 12,
"purchase_order_type_id": 1,
"product_component_supplier_id": 500,
"warehouse_id": 1,
"currency_id": 1,
"status": "open",
"notification_email_addresses": "support.team@i-fulfilment.co.uk",
"comments": "Sample comments.",
"reject_reason": null,
"approved_date": "2019-11-25T14:52:56.000Z",
"completed_date": "2019-11-25T14:52:56.000Z",
"discount": 0,
"discount_type": "value",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Cancel a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CancelPurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
Reason for cancellation. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Apply Purchase Order Tag
POST /v1/purchase_orders/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/:id/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/:id/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/:id/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Remove Purchase Order Tag
DELETE /v1/purchase_orders/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/purchase_orders/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Add Purchase Order Timeline
POST /v1/purchase_orders/:id/timeline
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline", [
"body" => json_encode([
"message" => "Marked as processed with in system XYZ.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline', {
message: "Marked as processed with in system XYZ.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline",
body: {
"message": "Marked as processed with in system XYZ."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/1234567/timeline' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"message": "Marked as processed with in system XYZ."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"message": "Marked as processed with in system XYZ."
}
}
Add a message or note to the timeline.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CreateAudit (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
message |
The message or note to be added to the timeline. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Confirm and Book In Purchase Order
POST /v1/purchase_orders/:id/arrange_goods_in
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in", [
"body" => json_encode([
"container_shipment" => true,
"shipment_size" => [
"expected_pallets" => 10,
"expected_cartons" => 10,
"expected_20ft_containers" => 10,
"expected_40ft_containers" => 10,
"expected_40ft_HC_containers" => 10,
],
"delivery_date" => [
"preferred_delivery_date" => "2024-11-25T14:52:56.000Z",
"preferred_time_slot" => "AM",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in', {
container_shipment: true,
shipment_size: {
expected_pallets: 10,
expected_cartons: 10,
expected_20ft_containers: 10,
expected_40ft_containers: 10,
expected_40ft_HC_containers: 10,
},
delivery_date: {
preferred_delivery_date: "2024-11-25T14:52:56.000Z",
preferred_time_slot: "AM",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in",
body: {
"container_shipment": true,
"shipment_size": {
"expected_pallets": 10,
"expected_cartons": 10,
"expected_20ft_containers": 10,
"expected_40ft_containers": 10,
"expected_40ft_HC_containers": 10
},
"delivery_date": {
"preferred_delivery_date": "2024-11-25T14:52:56.000Z",
"preferred_time_slot": "AM"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/purchase_orders/:id/arrange_goods_in' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"container_shipment": true,
"shipment_size": {
"expected_pallets": 10,
"expected_cartons": 10,
"expected_20ft_containers": 10,
"expected_40ft_containers": 10,
"expected_40ft_HC_containers": 10
},
"delivery_date": {
"preferred_delivery_date": "2024-11-25T14:52:56.000Z",
"preferred_time_slot": "AM"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"purchase_order_id": 123456,
"goods_in_id": 987654,
"expected_date": "2025-08-30",
"expected_time_slot": "AM"
}
}
Confirm a purchase order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ConfirmPurchaseOrder (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
container_shipment |
Container shipment. | boolean |
requirednot null |
shipment_size |
Shipment size. | ShipmentSize |
requirednot null |
delivery_date |
Delivery date. | DeliveryDate |
requirednot null |
DeliveryDate
| Key | Description | Types | Restrictions |
|---|---|---|---|
preferred_delivery_date |
Preferred delivery date. | date |
requirednot null |
preferred_time_slot |
Preferred delivery time slot. | enum(AM, PM) |
requirednot null |
ShipmentSize
| Key | Description | Types | Restrictions |
|---|---|---|---|
expected_pallets |
Number of expected pallets. | integer |
optionally requirednot nullmin is 0 |
expected_cartons |
Number of expected cartons. | integer |
optionally requirednot nullmin is 0 |
expected_20ft_containers |
Number of expected 20ft containers. | integer |
optionally requirednot nullmin is 0 |
expected_40ft_containers |
Number of expected 40ft containers. | integer |
optionally requirednot nullmin is 0 |
expected_40ft_HC_containers |
Number of expected 40ft HC containers. | integer |
optionally requirednot nullmin is 0 |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
Cancel Goodsin
PUT /v1/purchase_orders/goodsin/:id/cancel
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel", [
"body" => json_encode([
"reason" => "No longer needed",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel', {
reason: "No longer needed",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel",
body: {
"reason": "No longer needed"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/purchase_orders/goodsin/:id/cancel' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reason": "No longer needed"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 174,
"source": "API",
"shipping_company": "DHL",
"tracking_number": "DHL-TN-1209341234",
"expected_pallets": 32,
"expected_cartons": 3200,
"received_pallets": 32,
"received_cartons": 3200,
"received_container": "20FT",
"container_shipment": true,
"container_size": "full",
"expected_delivery_date": "2019-11-25T14:52:56.000Z",
"expected_delivery_time_slot": "am",
"preferred_delivery_date": "2019-11-25T14:52:56.000Z",
"preferred_delivery_time_slot": "am",
"shipping_method": "sea",
"port_id": 4,
"purchase_order_goodsin_shipping_term_id": 1,
"status": "completed",
"is_third_party": false,
"third_party_emails": null,
"third_party_contact_name": null,
"booking_requested": "2019-11-25T14:52:56.000Z",
"booking_approved_by": 1,
"booking_approved": "2019-11-25T14:52:56.000Z",
"unique_booking_reference": "UQBR-2020/10934934",
"check_in_by": "2019-11-25T14:52:56.000Z",
"transport_costs_locked": "2019-11-25T14:52:56.000Z",
"lock_user_id": 1,
"receiving_started": "2019-11-25T14:52:56.000Z",
"receiving_completed": "2019-11-25T14:52:56.000Z",
"checkin_started": "2019-11-25T14:52:56.000Z",
"checkin_completed": "2019-11-25T14:52:56.000Z",
"putaway_started": "2019-11-25T14:52:56.000Z",
"putaway_completed": "2019-11-25T14:52:56.000Z",
"ignore_from_billing": false,
"returns_damaged_count": 0,
"returns_unidentifiable_count": 0,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Cancel a goodsin.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
CancelPurchaseOrderGoodsin (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reason |
Reason for cancellation. | string |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::PURCHASE-ORDERS::MANAGE.
ApplicationInstanceInfos
Represents a status for an application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
nickname |
Nickname. | string |
No |
status |
The current status. | ApplicationInstanceStatuses |
Yes |
ApplicationInstancePreferences
Represents an application instance preference.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
value |
The value. | string |
No |
modified |
Last modified date. | date |
No |
ApplicationInstanceStatuses
Represents a status for an application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name of the status. | string |
No |
code |
Internal code of the status. | string |
No |
description |
Description. | string |
No |
Auth
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
session_token |
Session token to pass into API calls. | string |
No |
expiry |
Session expiry time. | date |
No |
Brands
Brand data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the brand. | number |
No |
name |
Name of the brand. | string |
No |
BulkAdjustVirtualStockResult
Holds data about the results of a bulk virtual stock adjustment.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
affected |
The number of items affected by the bulk action. | number |
No |
BulkCheckOrderExists
Check if an order reference already exists on a channel.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_reference |
Order reference. | string |
No |
order_id |
BladePRO Order Id. | number |
No |
exists |
Does the order exists. | boolean |
No |
BulkImportOrdersFile
Confirmation of a file upload.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Pass an order export to import orders in bulk. | boolean |
No |
BulkListAllOpenOrders
List all the ‘open’ orders for a given channel. Can be used to do a pre-cursive check for order importer functions to filter out orders have been previously imported.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_id |
Order id. | number |
No |
reference |
Order reference. | string |
No |
goodsouts |
List of related goodsouts. | array<BulkListAllOpenOrdersGoodsout> |
Yes |
BulkListAllOpenOrdersGoodsout
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_goodsout_id |
Order Goodsout id. | string |
No |
status |
Goodsout status. | string |
No |
metadata |
List of related metadata created by this app instance. | array<BulkListAllOpenOrdersGoodsoutMetadata> |
Yes |
BulkListAllOpenOrdersGoodsoutMetadata
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Metadata Key. | string |
No |
value |
Metadata Value. | string |
No |
BulkOrderStatuses
Defines a status against an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_goodsout_id |
Order goodsout ID. | number |
No |
status |
List of tracking numbers. | enum * see below |
No |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
BulkOrderTrackingNumbers
Defines a list of tracking numbers against an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
order_goodsout_id |
Order goodsout ID. | number |
No |
despatch_date |
Despatch date. | date |
No |
courier |
Courier name. | string |
No |
external_tracking_enabled |
Trackable flag. | boolean |
No |
service |
Shipping service name. | string |
No |
tracking_numbers |
List of tracking numbers. | array<CachedCourierTracking> |
Yes |
BulkOrderTrackingNumbersByReference
Defines a list of tracking numbers against an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
reference |
Order reference. | string |
No |
order_goodsout_id |
Order goodsout ID. | number |
No |
despatch_date |
Despatch date. | date |
No |
status |
Goodsout status. | enum * see below |
No |
courier |
Courier name. | string |
No |
service |
Shipping service name. | string |
No |
external_tracking_enabled |
Trackable flag. | boolean |
No |
tracking_numbers |
List of tracking numbers. | array<CachedCourierTracking> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
CachedAddress
An address.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
address_one |
Address line one. | string |
No |
address_two |
Address line two. | string |
No |
address_three |
Address line three. | string |
No |
town |
Town. | string |
No |
county |
County or state. | string |
No |
postcode |
Postcode. | string |
No |
email |
Email address. | string |
No |
mobile |
Mobile telephone. | string |
No |
telephone |
Telephone. | string |
No |
secondary_telephone |
Secondary telephone. | string |
No |
contact |
BladePRO contact data. | CachedAddressContact |
Yes |
country |
Country. | SummarisedCountry |
Yes |
CachedAddressContact
A BladePRO contact.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
group |
Group name. | string |
No |
CachedApplicationMarketplaceAttribute
Marketplace attribute
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Attribute definition id. | number |
No |
name |
Name of the attribute. | string |
No |
description |
Description of the attribute. | string |
No |
code |
Code representing the attribute. | string |
No |
CachedAttribute
An attribute.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
CachedBrand
A brand.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
CachedCourier
A courier.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
code |
Code. | string |
No |
service |
Service details. | CachedShippingService |
Yes |
tracking |
Tracking details. | array<CachedCourierTracking> |
Yes |
CachedCourierTracking
Tracking details.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
courier |
Courier name. | string |
No |
code |
The tracking number. | string |
No |
url |
Tracking URL. | string |
No |
CachedGoodsout
An order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Goodsout ID. | number |
No |
bid |
Full BladePRO ID. | string |
No |
creator |
Who created the goodsout. | string |
No |
status |
Goodsout status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
despatch_date |
Despatch date. | date |
No |
despatch_on_date |
Despatch on date. | date |
No |
warehouse |
Fulfilment warehouse. | SummarisedWarehouse |
Yes |
courier |
Courier. | CachedCourier |
Yes |
tags |
List of applied tags. | array<SummarisedTag> |
Yes |
attributes |
List of applied attributes. | array<CachedAttribute> |
Yes |
shipping_address |
The shipping address. | CachedAddress |
Yes |
order |
The parent order. | CachedOrder |
Yes |
lines |
Summaries of the active goodsout lines that describe products. No extras or packaging are listed. | array<CachedGoodsoutLine> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
CachedGoodsoutLine
An order goodsout line summary.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the line. | number |
No |
product_variation_id |
ID of the product variation. | number |
No |
sku |
SKU of the product variation. | string |
No |
name |
English description of the product variation. | string |
No |
quantity |
Ordered quantity. | number |
No |
CachedMarketplaceListing
Marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing variation. | string |
No |
attributes |
Listing attributes. | array<CachedMarketplaceListingAttribute> |
Yes |
options |
Listing option definitions. | array<CachedMarketplaceListingOption> |
Yes |
images |
Variation images. | array<CachedMarketplaceListingImage> |
Yes |
related_listing_variations |
Related listing variations that belong to the same parent marketplace_listing | array<CachedMarketplaceListingVariationRelatedVariation> |
Yes |
CachedMarketplaceListingAttribute
Marketplace listing attributes
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
label_json |
JSON string defining the label of the attribute value. | string |
No |
value |
The attribute value. | string |
No |
attribute |
The attribute definition. | CachedApplicationMarketplaceAttribute |
Yes |
CachedMarketplaceListingImage
Marketplace listing variation images
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
primary |
Id this the primary image for the listing . | boolean |
No |
sequence |
The ordered sequence for this image. | number |
No |
url |
The url to access this image. | string |
No |
CachedMarketplaceListingOption
Marketplace listing option definition.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing option ID. | number |
No |
name |
The name of the option. | string |
No |
CachedMarketplaceListingVariation
Marketplace listing summary
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_listing_id |
The parent marketplace listing ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing variation. | string |
No |
sku |
The listed SKU. | string |
No |
price |
The listed Price. | number |
No |
status |
The status of the listing. | enum * see below |
No |
listing_mode |
The listing mode of the listing. | enum * see below |
No |
stock_mode |
The stock mode of the listing. | enum * see below |
No |
marketplace_listing |
The parent listing. | CachedMarketplaceListing |
Yes |
product_variation |
The related product variation. | CachedMarketplaceListingVariationProductVariation |
Yes |
attributes |
Variation attributes. | array<CachedMarketplaceListingVariationAttribute> |
Yes |
options |
Variation options. | array<CachedMarketplaceListingVariationOption> |
Yes |
images |
Variation images. | array<CachedMarketplaceListingVariationImage> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, live, void |
listing_mode |
keep_in_sync, do_not_sync |
stock_mode |
keep_in_sync, do_not_sync, always_in_stock, never_in_stock |
CachedMarketplaceListingVariationAttribute
Marketplace listing variation attributes
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
label_json |
JSON string defining the label of the attribute value. | string |
No |
value |
The attribute value. | string |
No |
attribute |
The attribute definition. | CachedApplicationMarketplaceAttribute |
Yes |
CachedMarketplaceListingVariationImage
Marketplace listing variation images
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
primary |
Id this the primary image for the listing variation. | boolean |
No |
sequence |
The ordered sequence for this image. | number |
No |
url |
The url to access this image. | string |
No |
CachedMarketplaceListingVariationOption
Value for a marketplace listing option.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation option ID. | number |
No |
marketplace_listing_option_id |
The owning marketplace listing option ID. | number |
No |
value |
The value of the option. | string |
No |
option |
The option type. | CachedMarketplaceListingOption |
Yes |
CachedMarketplaceListingVariationProductVariation
Marketplace listing variation attributes
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variations’s ID. | number |
No |
sku |
The product’s SKU. | string |
No |
aspects |
Marketplace application aspects. | array<CachedMarketplaceListingVariationProductVariationAspects> |
Yes |
category |
The product’s category. | CachedMarketplaceListingVariationProductVariationCategory |
Yes |
CachedMarketplaceListingVariationProductVariationAspects
Marketplace listing variation aspects
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
value |
The aspect value. | string |
No |
label |
The aspects label. | string |
No |
aspect |
The attribute definition. | CachedApplicationMarketplaceAttribute |
Yes |
CachedMarketplaceListingVariationProductVariationCategory
Marketplace listing variation category
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The category id. | number |
No |
name |
The category name. | string |
No |
preferences |
Marketplace application aspects. | array<CachedMarketplaceListingVariationProductVariationCategoryPreferences> |
Yes |
CachedMarketplaceListingVariationProductVariationCategoryPreferences
Marketplace listing variation category preferences
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
value |
The preference value. | string |
No |
label |
The preference label. | string |
No |
preference |
The preference definition. | CachedMarketplaceListingVariationProductVariationCategoryPreferencesPreference |
Yes |
CachedMarketplaceListingVariationProductVariationCategoryPreferencesPreference
Marketplace listing variation aspects
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
The preference name. | string |
No |
code |
The preference short code reference. | string |
No |
CachedMarketplaceListingVariationRelatedVariation
Related listing variations that belong to the same parent marketplace_listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The listing variation id. | number |
No |
marketplace_reference |
The listing variation marketplace reference. | string |
No |
status |
The BladePRO status for the listing variation. | string |
No |
sku |
The listing variations listed sku. | string |
No |
CachedNameAndCode
Holds a name and a code field.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
code |
Code. | string |
No |
CachedOrder
An order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Order ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
channel |
Order channel. | CachedOrderChannel |
Yes |
currency |
Currency. | SummarisedCurrency |
Yes |
brand |
Brand. | CachedBrand |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
CachedOrderChannel
An order channel.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Id. | number |
No |
short_code |
Code. | string |
No |
name |
Name. | string |
No |
CachedProduct
Top level product data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product id. | number |
No |
channel |
The product channel. | CachedProductChannel |
Yes |
CachedProductChannel
Cached product channel.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product channel id. | number |
No |
name |
Product channel name. | string |
No |
default_warehouse_id |
Default warehouse id. | number |
No |
global |
Is it a global shared product. | boolean |
No |
organisation |
Organisation that the product channel belongs to. | CachedProductChannelOrganisation |
Yes |
CachedProductChannelOrganisation
Top level product data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Organisation id. | number |
No |
name |
Organisation name. | string |
No |
CachedProductVariation
Variation specific data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation id. | number |
No |
sku |
The product SKU. | string |
No |
name |
The product name. | string |
No |
is_primary |
Is this a primary product. | boolean |
No |
status |
The status of the product. | enum * see below |
No |
created |
The created date. | CachedProductVariationCreated |
Yes |
product |
Parent product. | CachedProduct |
Yes |
tags |
List of applied tags. | array<SummarisedTag> |
Yes |
descriptions |
List of descriptions. | array<CachedProductVariationDescription> |
Yes |
components |
List of components. | array<CachedProductVariationComponent> |
Yes |
type |
The product type. | SummarisedProductVariationType |
Yes |
primary_product_category |
The primary product category. | SummarisedProductCategory |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, draft, discontinued |
CachedProductVariationComponent
Variation component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product component id. | number |
No |
sku |
The component SKU. | string |
No |
name |
The component name. | string |
No |
barcode |
The component barcode. | string |
No |
quantity |
The quantity of this component used in the product variation. | number |
No |
CachedProductVariationCreated
Variation specific data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
date |
Date string. | string |
No |
timezone |
Timezone. | string |
No |
CachedProductVariationDescription
Variation descriptions.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation id. | number |
No |
product_variation_id |
The product variation id. | number |
No |
locale_id |
The description locale. | number |
No |
name |
The product name. | string |
No |
full_description |
The description of the product. | string |
No |
created |
The created date. | date |
No |
modified |
The last modified date. | date |
No |
locale |
The locale for this description. | SummarisedLocale |
No |
CachedShippingService
Holds data about a shipping service.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
code |
Code. | string |
No |
tracked |
Whether this service is tracked. | boolean |
No |
signed |
Wheter this service requires signing by the recipient. | boolean |
No |
CartonLabelTypeReferences
References for carton label types.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Descriptive name of the reference. | string |
No |
code |
The code the reference can be addressed by. | string |
No |
type |
Type of the reference. | enum * see below |
No |
validation_pattern |
Regular expression used to validate the value. | string |
No |
Enums
| Field | Values |
|---|---|
type |
text, barcode |
CartonLabelTypes
Carton label types data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the carton label type. | number |
No |
name |
Descriptive name of the carton label type. | string |
No |
active |
If the carton label type is active. | number |
No |
carton_label_type_references |
References of the carton label type. | array<CartonLabelTypeReferences> |
Yes |
ConfirmBooking
Confirm booking.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
purchase_order_id |
ID of the purchase order. | number |
No |
goods_in_id |
ID of the associated goods-in booking. | number |
No |
expected_date |
Expected booking date in ISO format (YYYY-MM-DD). | string |
No |
expected_time_slot |
Expected booking time slot. | string |
No |
ConsignmentQualities
Consignment quality description.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
group |
Quality group. | string |
No |
description |
Details. | string |
No |
active |
Is it active? | boolean |
No |
Countries
A country.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
region_id |
ID of the region. | number |
No |
currency_id |
ID of the country’s currency. | number |
No |
block |
Trade block. | enum * see below |
No |
region |
The region. | Regions |
Yes |
currency |
The country’s currency. | Currencies |
Yes |
Enums
| Field | Values |
|---|---|
block |
EU |
Currencies
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the currency. | number |
No |
code |
ISO code of the currency. | string |
No |
name |
Descriptive name of the currency. | string |
No |
symbol |
Symbol to render next to values. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
DemandPlanningApplicationInstanceSettings
Stores data about the current application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_channel_id |
Product channel ID. | number |
No |
organisation_id |
Organisation ID. | number |
No |
warehouse_code |
Warehouse short code. | string |
No |
DespatchedOrders
An order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Goodsout ID. | number |
No |
status |
Status. | string |
No |
bid |
BID. | string |
No |
despatch_date |
Despatch date. | date |
No |
courier |
Courier. | CachedCourier |
Yes |
attributes |
List of applied attributes. | array<CachedAttribute> |
Yes |
order |
The parent order. | CachedOrder |
Yes |
Fields
Importer Mapping Fields
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
source |
Source field name. | string |
No |
destination |
Destination field name. | string |
No |
default_value |
Default Value | string |
No |
manipulations |
Manipulations | object |
No |
default_format |
Default Format | string |
No |
value_replacements |
Value Replacements | object |
No |
Gdpr
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The concern id representing this GDPR request. | string |
No |
ImportMarketplaceListing
Import marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the listing. | number |
No |
marketplace_reference |
The marketplace reference. | string |
No |
product_category_id |
The ID of the product category. | number |
No |
marketplace_listing_variations |
List of marketplace listing variations. | array<ImportMarketplaceListingVariation> |
Yes |
options |
List of options created for the listing. | array<ImportMarketplaceListingOption> |
Yes |
ImportMarketplaceListingOption
A marketplace listing option during import.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the option. | number |
No |
name |
The name of the option. | string |
No |
ImportMarketplaceListingVariation
A marketplace listing variation during import.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the listing variation. | number |
No |
title |
The title of the listing. | string |
No |
subtitle |
The subtitle of the listing. | string |
No |
description |
The subtitle of the listing. | string |
No |
listing_mode |
The listing mode of the listing variation. | enum * see below |
No |
stock_mode |
The stock mode of the listing variation. | enum * see below |
No |
marketplace_reference |
The marketplace reference. | string |
No |
price |
The marketplace price of the product. | number |
No |
product_variation_id |
The product variation the listing is linked to. | number |
No |
quantity |
Current marketplace stock level. | number |
No |
sku |
Current marketplace SKU. | string |
No |
status |
The status of the listing variation. | enum * see below |
No |
options |
List of options created for the variation. | array<ImportMarketplaceListingVariationOption> |
Yes |
Enums
| Field | Values |
|---|---|
listing_mode |
keep_in_sync, do_not_sync |
stock_mode |
keep_in_sync, do_not_sync, always_in_stock, never_in_stock |
status |
draft, live, void, pending_live, pending_void |
ImportMarketplaceListingVariationOption
A marketplace listing variation option during import.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the variation option. | number |
No |
marketplace_listing_option_id |
The ID of the marketplace listing option. | number |
No |
value |
The value of the option. | string |
No |
Incident
Represents the result of logging an incident request.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
incident_id |
The related incident’s ID, if applicable. | number |
No |
Locales
Locale data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the locale. | number |
No |
name |
Name of the locale. | string |
No |
code |
Unique short code of the locale. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Log
Represents the result of a logging request.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Holds true if the log entry was saved successfully. | boolean |
No |
Mappings
File Mapping data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the mapping. | number |
No |
slug |
Slug of the mapping. | string |
No |
name |
Name of the mapping. | string |
No |
organisation_id |
Organisation ID. | number |
No |
fields |
Mappings Fields | Fields |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
MarketplaceApplicationInstanceSettings
Stores data about the current application instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
currency_id |
Currency ID. | number |
No |
locale_id |
Locale ID. | number |
No |
order_channel_id |
Order channel ID. | number |
No |
primary_warehouse_id |
Primary warehouse’s ID. | number |
No |
order_import_grace_period_minutes |
Grace period in minutes for ignoring orders. | number |
No |
ignore_orders_created_before |
Ignore orders created before a certain date. | date |
No |
allow_multi_location_support |
Is the multi location support enabled for this integration. | boolean |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
locale |
Locale. | SummarisedLocale |
Yes |
order_channel |
Order channel. | OrderChannels |
Yes |
primary_warehouse |
Primary warehouse. | SummarisedWarehouse |
Yes |
warehouses |
Configured warehouses for this specific integration. | array<SummarisedWarehouse> |
Yes |
MarketplaceListingBulkUpdateQuantities
Marketplace listing bulk update listed quantity
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Was the bulk update successful. | boolean |
No |
MarketplaceListingCostPrice
Marketplace listing cost price
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing. | string |
No |
resource_metadatas |
List of metadata keys and values set against the listing. | array<MarketplaceListingResourceMetadatas> |
Yes |
variations |
List of marketplace listing variations | array<MarketplaceListingVariationCostPrice> |
Yes |
MarketplaceListingPurge
Marketplace listing purge
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Was the purge update successful. | boolean |
No |
MarketplaceListingResourceMetadatas
Stores arbitrary data against a marketplace listing.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
MarketplaceListingStock
Marketplace listing stock
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing ID. | number |
No |
marketplace_reference |
The marketplace reference of the listing. | string |
No |
resource_metadatas |
List of metadata keys and values set against the listing. | array<MarketplaceListingResourceMetadatas> |
Yes |
variations |
List of marketplace listing variations | array<MarketplaceListingVariationStock> |
Yes |
MarketplaceListingTemplates
Marketplace listing templates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
marketplace_listing_variation_id |
ID of the marketplace listing variation. | number |
No |
locale |
The locale of the template. | string |
No |
title |
Rendered titles by locale. | object |
No |
subtitle |
Rendered subtitles by locale. | object |
No |
description |
Rendered descriptions by locale. | object |
No |
MarketplaceListingUpdateAttributes
Marketplace attribute
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
code |
The attribute code. | string |
No |
name |
The attribute name. | string |
No |
value |
The value of the attribute. | string |
No |
MarketplaceListingUpdateListingVariations
Marketplace listing updates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation id. | number |
No |
marketplace_reference |
The marketplace reference. | string |
No |
sku |
The listed SKU. | string |
No |
price |
The currently listed price. | number |
No |
status |
The status of the listing variation. | string |
No |
attributes |
Variation attributes. | array<MarketplaceListingUpdateAttributes> |
Yes |
MarketplaceListingUpdateListings
Marketplace listing updates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing id. | number |
No |
marketplace_reference |
The marketplace reference. | string |
No |
attributes |
Listing attributes. | array<MarketplaceListingUpdateAttributes> |
Yes |
MarketplaceListingUpdates
Marketplace listing updates
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing update ID. | number |
No |
code |
The update type code. | string |
No |
listing_id |
The marketplace listing ID. | number |
No |
variation_id |
The marketplace variation ID. | number |
No |
old_value |
The old value of the updated field. | string |
No |
new_value |
The new value of the updated field. | string |
No |
status |
The marketplace listing update status. | enum * see below |
No |
claim_reference |
The reference ID of the claimed batch. | string |
No |
claimed |
Claimed date. | number |
No |
created |
Created date. | date |
No |
marketplace_listing |
The related listing. | MarketplaceListingUpdateListings |
Yes |
marketplace_listing_variation |
The related listing variation ( if applicable ) . | MarketplaceListingUpdateListingVariations |
Yes |
Enums
| Field | Values |
|---|---|
status |
pending, cancelled, updating, completed, failed |
MarketplaceListingVariation
Marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The reference assigned by the 3rd part marketplace. | string |
No |
price |
The current listed price. | number |
No |
status |
The listing variation status. | string |
No |
sku |
The listed sku. | string |
No |
product_variation_id |
The linked product variation id. | number |
No |
quantity |
The currently listed quantity. | number |
No |
created |
Created date. | date |
No |
MarketplaceListingVariationCostPrice
Marketplace listing variation cost price
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The marketplace reference of the product variation. | string |
No |
sku |
The product SKU. | string |
No |
product_variation_id |
The product variation ID. | number |
No |
cost_price |
The average cost price. | number |
No |
resource_metadatas |
List of metadata keys and values set against the listing variation. | array<MarketplaceListingVariationResourceMetadatas> |
Yes |
MarketplaceListingVariationResourceMetadatas
Stores arbitrary data against a marketplace listing variation.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
MarketplaceListingVariationStock
Marketplace listing variation stock
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing variation ID. | number |
No |
marketplace_reference |
The marketplace reference of the product variation. | string |
No |
sku |
The product SKU. | string |
No |
product_variation_id |
The product variation ID. | number |
No |
current_listed_quantity |
What quantity BladePRO think is currently listed. | number |
No |
quantity_to_list |
What quantity BladePRO thinks should be listed. | number |
No |
resource_metadatas |
List of metadata keys and values set against the listing variation. | array<MarketplaceListingVariationResourceMetadatas> |
Yes |
marketplace_locations |
List of locations if multi location is enabled. | array<MarketplaceListingVariationStockMarketplaceLocations> |
Yes |
MarketplaceListingVariationStockMarketplaceLocations
Marketplace listing variation’s location-based stock
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
marketplace_location_id |
ID of the location from the app’s global linking. | number |
No |
current_listed_quantity |
What quantity BladePRO think is currently listed. | number |
No |
quantity_to_list |
What quantity BladePRO thinks should be listed. | number |
No |
MarketplaceListings
Marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The marketplace listing ID. | number |
No |
marketplace_reference |
The reference assigned by the 3rd part marketplace. | string |
No |
created |
Created date. | date |
No |
MarketplaceLocations
Acts as a link between BladePRO warehouses and marketplace locations.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO ID for the location mapping. | number |
No |
despatch_warehouse_id |
ID of the warehouse the items need to be despatched from. | number |
No |
location_name |
User-defined, friendly name for the mapping. | string |
No |
location_key |
Identifier from the marketplace. | string |
No |
location_extra |
Extra arbitrary data stored for this location mapping. | string |
No |
default_stock_mode |
The default stock mode to use when importing a new listing for this location only. | enum * see below |
No |
despatch_warehouse |
The despatch warehouse. | Warehouses |
Yes |
stock_warehouses |
List of warehouses stock need to be used from. | array<Warehouses> |
Yes |
Enums
| Field | Values |
|---|---|
default_stock_mode |
keep_in_sync, do_not_sync, always_in_stock, never_in_stock |
OrderChannels
Customer order groups.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the channel. | number |
No |
organisation_id |
ID of the organisation the channel belongs to. | number |
No |
name |
The name of the channel. | string |
No |
short_code |
A short string identifier of the channel. | string |
No |
status |
The status of the channel. | enum * see below |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
brands |
List of related brands | array<Brands> |
Yes |
organisation |
List of related brands | Organisations |
Yes |
tax |
Default tax rate | OrganisationTaxes |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, inactive |
OrderGoodsoutAddresses
Data related to an address.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The address’ unique identifier. | number |
No |
title |
Title. | string |
No |
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
address_one |
First line of address. | string |
No |
address_two |
Second line of address. | string |
No |
address_three |
Third line of address. | string |
No |
town |
Town. | string |
No |
county |
County name. | string |
No |
postcode |
Postcode. | string |
No |
country_id |
ID of the country. | number |
No |
email |
Email. | string |
No |
mobile |
Mobile number. | string |
No |
telephone |
Landline number. | string |
No |
secondary_telephone |
Secondary telephone number. | string |
No |
vat_number |
VAT number. | string |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
country |
The address country. | Countries |
Yes |
OrderGoodsoutAudits
Add a message to the order timeline.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
The timeline entry. | string |
No |
OrderGoodsoutDespatchAttributes
Despatch attribute for an order item
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU. | string |
No |
product_name |
Product name. | string |
No |
attribute_name |
Attribute name. | string |
No |
attribute_value |
Attribute value. | string |
No |
OrderGoodsoutDocumentUploadConfirmation
Confirmation of a file upload.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
success |
Whether the upload was successful or not. | boolean |
No |
OrderGoodsoutLineItemDespatchedStocks
Stock despatched for an specific line item.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
quantity |
Quantity despatched. | number |
No |
expiry_date |
The expiry date despatched | date |
No |
batch |
The batch code despatched. | ProductComponentBatches |
Yes |
OrderGoodsoutLineItems
An item inside a goodsout line.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
quantity |
Quantity ordered. | number |
No |
expiry_date |
The expiry date specified | date |
No |
principal_tax |
Tax rate applied to the line item. | OrganisationTaxes |
Yes |
component |
The product component. | ProductComponents |
Yes |
batch |
The batch code specified. | ProductComponentBatches |
Yes |
despatched_stocks |
Despatched Stock. | array<OrderGoodsoutLineItemDespatchedStocks> |
Yes |
OrderGoodsoutLines
An order for a product.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
transaction_sku |
SKU used during the transaction. | string |
No |
quantity |
Quantity ordered. | number |
No |
discount_type |
Discount type. | number |
No |
discount |
Discount amount. | number |
No |
net_unit_principal |
Net unit price. | number |
No |
principal_tax |
Tax rate applied to the line. | OrganisationTaxes |
Yes |
status |
Line status. | enum * see below |
No |
variation |
Product variation. | ProductVariations |
Yes |
items |
Line items. | array<OrderGoodsoutLineItems> |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, void |
OrderGoodsoutPackingListBox
A box with products packed into it.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
pallet |
If the box was placed on a pallet, the pallet’s data. | OrderGoodsoutPackingListPallet |
Yes |
carton_reference |
The sequence number of the current box. | number |
No |
carton_product_variation_id |
The product variation ID of the current box. | number |
No |
sku |
The SKU of the current box. | string |
No |
sscc_18 |
The SSCC-18 barcode of the carton, if exists. | string |
No |
weight |
Weight of the box in kilograms. | string |
No |
height |
Height of the box in millimetres. | string |
No |
width |
Width of the box in millimetres. | string |
No |
depth |
Depth of the box in millimetres. | string |
No |
contains |
List of products packed into the box. | array<OrderGoodsoutPackingListProduct> |
Yes |
OrderGoodsoutPackingListPallet
A pallet on a packing list.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
pallet_product_variation_id |
The product variation ID of the pallet. | number |
No |
pallet_reference |
The sequence number of the pallet. | number |
No |
sku |
The SKU of the pallet. | string |
No |
weight_kg |
Weight of the pallet in kilograms. | string |
No |
OrderGoodsoutPackingListProduct
A pallet on a packing list.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_component_id |
The product component ID of the physical product. | number |
No |
sku |
The SKU of the product component. | string |
No |
name |
Name. | string |
No |
quantity |
Quantity of the product in the box. | number |
No |
colour |
Colour. | number |
No |
size |
Size. | number |
No |
style |
Style. | number |
No |
type |
Type. | number |
No |
quality |
Quality. | number |
No |
OrderGoodsoutShipmentTracking
A shipment tracking update of an order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
A summary text that describes the tracking event. | string |
No |
location |
A text summary of where (location) the update has occurred. | string |
No |
tracking_number |
The specific tracking number for the update. | string |
No |
timestamp |
The date/time of when the update was created (UTC format only). | date |
No |
OrderGoodsoutTags
A tag linked to a order goodsout.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
OrderGoodsouts
Customer order shipments.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
despatch_date |
Despatch date. | date |
No |
cancellation_date |
The date a goodsout was cancelled. | date |
No |
despatch_on_date |
Despatch on date. | date |
No |
source |
Source. | string |
No |
delivery_instructions |
Delivery instructions. | string |
No |
gift_message |
Gift message. | string |
No |
attributes |
List of attributes. | array<CachedAttribute> |
Yes |
shipments |
List of shipments. | array<Shipments> |
Yes |
lines |
List of lines. | array<OrderGoodsoutLines> |
Yes |
tags |
Applied tags. | array<Tags> |
Yes |
warehouse |
Warehouse. | SummarisedWarehouse |
Yes |
order |
Order. | Orders |
Yes |
shipping_address |
Shipping Address. | OrderGoodsoutAddresses |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
OrderLineResourceMetadatas
Stores arbitrary data against a order line.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
OrderResourceMetadatas
Stores arbitrary data against a order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
OrderReturnItemReasons
Order Return Item Reasons.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
The reason for returning an item | string |
No |
short_name |
Name to represent the return reason. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
OrderReturnItems
Order Return Items.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
order_return_id |
Order Return Id the item is attached to. | number |
No |
order_goodsout_line_item_id |
The original goodsout line item the return is for. | number |
No |
order_goodsout_line_id |
The original goodsout line the return is for. | number |
No |
product_component_id |
The product component id. | number |
No |
sku |
SKU of the product component. | string |
No |
exchanged_product_component_id |
The product component that is being sent in exchange. | number |
No |
expected_quantity |
The quantity expected | number |
No |
received_quantity |
The quantity received | number |
No |
expiry_date |
The expiry date of the product | date |
No |
received_date |
The date the item was received into the warehouse | date |
No |
action |
The action for this item | enum * see below |
No |
order_return_item_reason_id |
The return reason id | number |
No |
description |
Description of the returned item | string |
No |
correct_item |
Was the item sent correct? | enum * see below |
No |
resellable |
Is the item in a resellable state? | enum * see below |
No |
status |
The status of the return item | enum * see below |
No |
authorisation_required |
Does the return item require authorisation? | enum * see below |
No |
rejected_reason |
Reason for rejecting the return of this item | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
reason |
The reason for returning the item. | OrderReturnItemReasons |
Yes |
component |
The product component being returned. | ProductComponents |
Yes |
exchange_component |
The product component being sent in exchange. | ProductComponents |
Yes |
Enums
| Field | Values |
|---|---|
action |
refund, exchange, stock |
correct_item |
YES, NO, NOT_RECEIVED |
resellable |
YES, NO |
status |
pending, received, complete, void, draft, rejected, pending_refund, not_received |
authorisation_required |
YES, NO |
OrderReturnTags
A tag linked to a return.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
OrderReturns
Order Returns.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
order_id |
Order Id the return is attached to. | number |
No |
shipping_address_id |
Shipping Address Record. | number |
No |
warehouse_id |
The warehouse dealing with the return. | number |
No |
status |
Status of the return | enum * see below |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
warehouse |
The warehouse dealing with the return. | Warehouses |
Yes |
order |
The order related to the return. | Orders |
Yes |
order_return_items |
The items being returned. | array<OrderReturnItems> |
Yes |
tags |
Tags attached to the return. | array<SummarisedTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, pending, received, rejected, awaiting_despatch, complete, delivered, customer_service |
Orders
Customer order groups.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
goodsouts |
List of goodsouts. | array<OrderGoodsouts> |
Yes |
channel |
Order Channel. | OrderChannels |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
OrganisationTaxes
Organisation tax data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the tax. | number |
No |
name |
Name of the tax. | string |
No |
code |
Code of the tax. | string |
No |
rate |
Rate of the tax. | number |
No |
description |
The description of the tax. | string |
No |
active |
Is this tax currently active? | boolean |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Organisations
Organisation data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the organisation. | number |
No |
name |
Name of the organisation. | string |
No |
active |
Is the organisation currently active? | boolean |
No |
vat_number |
VAT number. | string |
No |
notes |
Notes. | string |
No |
contact_name |
Name of contact staff. | string |
No |
contact_phone |
Telephone number of contact staff. | string |
No |
contact_mobile |
Mobile number contact staff. | string |
No |
contact_email |
Email address of contact staff. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Ports
Shipping ports.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
cbm |
CBM. | number |
No |
ProductAudits
Add a message to the product timeline.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
The timeline entry. | string |
No |
ProductBrands
Product brand data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product brand. | number |
No |
name |
Name of the product brand. | string |
No |
organisation_id |
ID of the parent organisation. | number |
No |
active |
Is the product brand currently active? | boolean |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
organisation |
The parent organisation. | Organisations |
Yes |
ProductChannelCategories
Product channel category data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product channel category. | number |
No |
name |
Name of the product channel category. | string |
No |
parent_id |
ID of the parent product channel category. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
parent |
The parent product channel category. | ProductChannelCategories |
Yes |
ProductChannelVariations
Marketplace listable products’ search data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
channel |
The product channel id. | number |
No |
sku |
The unique stock keeping unit. | string |
No |
product_component_sku |
The unique stock keeping unit. | string |
No |
product_component_supplier_id |
The component supplier id. | number |
No |
product_component_id |
The component id. | number |
No |
warehouse_id |
The warehouse id. | number |
No |
ProductChannels
Geographical region data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product channel. | number |
No |
organisation_id |
ID of the parent organisation. | number |
No |
status |
The status of the product channel. | enum * see below |
No |
outbound_email |
The email address used for outbound messages. | string |
No |
default_warehouse_id |
ID of the default warehouse. | number |
No |
default_product_brand_id |
ID of the default brand. | number |
No |
global |
Is this channel global to all clients? | boolean |
No |
name |
The name of the product channel. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
default_product_brand |
The default brand. | ProductBrands |
Yes |
default_warehouse |
The default warehouse. | Warehouses |
Yes |
organisation |
The parent organisation. | Organisations |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, inactive |
ProductComponentBatches
Description of a batch.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Reference. | string |
No |
description |
Description. | string |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
ProductComponentCostPriceTransports
Transport costs.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
description |
Description. | string |
No |
net_price |
Net price. | number |
No |
tax_id |
Tax ID. | number |
No |
currency_code |
Currency code. | string |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
ProductComponentCostPrices
A cost price.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
notes |
Notes. | string |
No |
net_cost_price |
Net cost price. | number |
No |
currency_code |
Currency code. | string |
No |
cost_price_duty_rate |
Duty rate. | number |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
transports |
Transports. | ProductComponentCostPriceTransports |
Yes |
transport_total |
Summary of goodsin item’s transport costs in the warehouse’s currency. | number |
No |
transport_total_po_curr |
Summary of goodsin item’s transport costs in the purchase order’s currency. | number |
No |
ProductComponentCustomsCodes
Product component customs codes.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the customs code. | number |
No |
code |
The HS code. | string |
No |
name |
Name of the code. | string |
No |
duty_rate |
The duty rate applied to this customs code. | number |
No |
organisation_id |
The organisation that this code applies to. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
organisation |
Organisation | Organisations |
Yes |
ProductComponentDoqTypes
Product component DOQ Types.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the component DOQ. | number |
No |
code |
Short code for the DOQ. | enum * see below |
No |
name |
Name of the DOQ type. | string |
No |
Enums
| Field | Values |
|---|---|
code |
INNER_PACK, MASTER_CASE, PALLET, SINGLE_PRODUCT |
ProductComponentDoqs
Product component DOQ.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the component DOQ. | number |
No |
quantity |
Quantity represented by the DOQ. | number |
No |
weight |
Total weight in KG. | number |
No |
depth |
Total depth in MM. | number |
No |
width |
Total width in MM. | number |
No |
height |
Total height in MM. | number |
No |
shippable |
Can this DOQ value be shipped without additional packaging. | boolean |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
type |
DOQ type. | ProductComponentDoqTypes |
Yes |
ProductComponentInstances
Component instance.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The component instance id. | number |
No |
product_component_id |
The component this instance is attached to. | number |
No |
component |
The product component. | ProductComponents |
Yes |
ProductComponentLandedPrices
Landed prices.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_component_instance_id |
Product component instnace ID. | number |
No |
product_component_id |
Product component ID. | number |
No |
net_cost_price |
Net cost price. | number |
No |
cost_price_currency_code |
Cost price currency code. | string |
No |
cost_currency |
Cost price currency. | Currencies |
Yes |
cost_price_duty_rate |
Cost price duty rate. | number |
No |
notes |
Notes. | string |
No |
landed_price_currency_code |
Landed price currency code. | string |
No |
landed_currency |
Landed price currency. | SummarisedCurrency |
Yes |
stock |
Stock. | number |
No |
created |
Created date in BladePRO. | date |
No |
landed_price |
Landed price. | number |
No |
ProductComponentSalesSummary
Sales summary for a product.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
1_week |
Sold in the last week. | number |
No |
1_month |
Sold in the last month. | number |
No |
3_months |
Sold in the last three months. | number |
No |
6_months |
Sold in the last six months. | number |
No |
1_year |
Sold in the last year. | number |
No |
lifetime |
Sold in the product’s lifetime. | number |
No |
ProductComponentStockSummary
Stock summary for a product component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
total |
Total stock. | number |
No |
total_saleable |
Total saleable stock. | number |
No |
saleable |
Saleable stock. | number |
No |
pickable |
Pickable stock. | number |
No |
available |
Available stock. | number |
No |
allocated |
Allocated stock. | number |
No |
reserved |
Reserved stock. | number |
No |
misc |
Miscellaneous stock. | number |
No |
gistock |
Goodsin stock. | number |
No |
expected |
Stock expected to arrive. | number |
No |
picked |
Picked stock. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductComponentSuppliers
Product Suppliers.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
organisation_id |
Parent organisation ID. | number |
No |
name |
Name. | string |
No |
active |
Is the supplier active? | boolean |
No |
port_id |
ID of shipping port. | number |
No |
currency_code |
Code of currency. | string |
No |
nominal_code |
Nominal code. | string |
No |
xero_code |
Accounting code. | string |
No |
organisation_tax_id |
Tax ID. | number |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
ProductComponents
Product component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product variation. | number |
No |
status |
The status of the product component. | enum * see below |
No |
sku |
The unique stock keeping unit. | string |
No |
barcode |
Picking Barcode. | string |
No |
perishable |
Is the product perishable. | boolean |
No |
fragile |
Is the product fragile. | boolean |
No |
battery |
Does the product contain a battery. | boolean |
No |
dangerous |
Is the product dangerous. | boolean |
No |
organic |
Is the product organic. | boolean |
No |
what_is_it |
Customs - What is the product. | string |
No |
made_of |
Customs - What is the product made of. | string |
No |
used_for |
Customs - What is the product used for. | string |
No |
customs_country_of_origin_country_id |
Customs - Country of origin. | number |
No |
product_component_customs_code_id |
Customs - HS Code. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
doqs |
Component DOQs. | array<ProductComponentDoqs> |
Yes |
last_cost |
Last cost. | ProductComponentLandedPrices |
Yes |
stock |
Stock summary. | ProductComponentStockSummary |
Yes |
count_product_component_batches |
Count of batches. | number |
No |
sales |
Sales summary. | ProductComponentSalesSummary |
Yes |
batch_codes_enabled |
Batch codes enabled. | string |
No |
Enums
| Field | Values |
|---|---|
status |
active, draft, discontinued |
ProductResourceMetadatas
Stores arbitrary data against a product.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
ProductVariationBatchStockDataSummary
Variation batch stock breakdown.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
Product variation ID. | number |
No |
batch_code |
Natch code. | string |
No |
warehouse_id |
Warehouse ID. | number |
No |
warehouse_code |
Warehouse code. | string |
No |
warehouse_name |
Warehouse name. | string |
No |
total |
Total number of units available. | number |
No |
total_saleable |
Total number of units saleable. | number |
No |
saleable |
Saleable units. | number |
No |
available |
Available units. | number |
No |
allocated |
Allocated units. | number |
No |
misc |
Misc units. | number |
No |
expected |
Expected units. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductVariationComponents
Variation component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
The variation that the component is attached to. | number |
No |
product_component_instance_id |
The component instance. | number |
No |
quantity |
Total quantity of this component inside the variation. | number |
No |
instance |
The product component instance. | ProductComponentInstances |
Yes |
ProductVariationDescriptions
Variation descriptions.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation description id. | number |
No |
product_variation_id |
The product variation id. | number |
No |
locale_id |
The description locale. | number |
No |
name |
The product name. | string |
No |
full_description |
The description of the product. | string |
No |
created |
The created date. | date |
No |
modified |
The last modified date. | date |
No |
locale |
The locale for this description. | Locales |
Yes |
ProductVariationPerishableStockDataSummary
Variation perishable stock breakdown.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
Product variation ID. | number |
No |
expiry_date |
Expiry date. | date |
No |
warehouse_id |
Warehouse ID. | number |
No |
warehouse_code |
Warehouse code. | string |
No |
warehouse_name |
Warehouse name. | string |
No |
total |
Total number of units available. | number |
No |
total_saleable |
Total number of units saleable. | number |
No |
saleable |
Saleable units. | number |
No |
available |
Available units. | number |
No |
allocated |
Allocated units. | number |
No |
misc |
Misc units. | number |
No |
expected |
Expected units. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductVariationStockDataSummary
Variation stock breakdown.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
product_variation_id |
Product variation ID. | number |
No |
warehouse_id |
Warehouse ID. | number |
No |
warehouse_code |
Warehouse code. | string |
No |
warehouse_name |
Warehouse name. | string |
No |
total |
Total number of units available. | number |
No |
total_saleable |
Total number of units saleable. | number |
No |
saleable |
Saleable units. | number |
No |
available |
Available units. | number |
No |
allocated |
Allocated units. | number |
No |
misc |
Misc units. | number |
No |
expected |
Expected units. | number |
No |
under_investigation |
Stock under investigation. | number |
No |
ProductVariationTags
A tag linked to a product variation.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
ProductVariationTypes
Product variation type data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the variation type. | number |
No |
name |
Name of the product variation type. | string |
No |
type |
Category of the product variation type. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
ProductVariations
Marketplace listable products’ data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product variation. | number |
No |
product_id |
ID of the parent product. | number |
No |
status |
The status of the product variation. | enum * see below |
No |
sku |
The unique stock keeping unit. | string |
No |
barcode |
The product variation barcode. | string |
No |
product_variation_type_id |
ID of the product variation type. | number |
No |
discontinued_date |
The date the product was discontinued on. | date |
No |
despatch_instructions |
Instructions for the staff. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
product |
Product. | Products |
Yes |
type |
The product variation type. | ProductVariationTypes |
Yes |
components |
The variation components. | array<ProductVariationComponents> |
Yes |
descriptions |
The variation descriptions. | array<ProductVariationDescriptions> |
Yes |
primary_component |
The primary component. | array<ProductComponents> |
Yes |
tags |
The variation tags. | array<Tags> |
Yes |
stock_data_summaries |
Stock. | array<ProductVariationStockDataSummary> |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, draft, discontinued |
Products
Product data. Products are grouping entries and may represent multiple different kinds of physical products.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product. | number |
No |
product_channel_id |
ID of the product channel. | number |
No |
product_brand_id |
ID of the parent brand. | number |
No |
product_category_id |
ID of the parent product category. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
channel |
The parent product channel. | ProductChannels |
Yes |
brand |
The parent brand. | ProductBrands |
Yes |
product_category |
The parent product category. | ProductChannelCategories |
Yes |
variations |
The product variations. | array<ProductVariations> |
Yes |
PurchaseOrderAudits
Add a message to the purchase order timeline.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
message |
The timeline entry. | string |
No |
PurchaseOrderGoodsinContainers
A container for a goodsin.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
size |
Size. | enum * see below |
No |
expected_quantity |
Expected quantity. | number |
No |
received_quantity |
Expected quantity. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date. | date |
No |
Enums
| Field | Values |
|---|---|
size |
20FT, 40FT, 40FT-HC |
PurchaseOrderGoodsinItemIssues
Identified issue during receiving.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
description |
Description. | string |
No |
photo_required |
Is a photo required when this issue is encountered? | boolean |
No |
PurchaseOrderGoodsinItems
Received items for a goodsin.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_component_id |
Product component ID. | number |
No |
quantity |
Received quantity. | number |
No |
expiry_date |
Expiry date. | date |
No |
product_component_batch_id |
Batch ID. | number |
No |
purchase_order_goodsin_item_issue_id |
Issue ID. | number |
No |
product_component_cost_price_id |
Cost price ID. | number |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
component |
Product component. | ProductComponents |
Yes |
batch |
Product component batch. | ProductComponentBatches |
Yes |
issue |
Identified issue during receiving. | PurchaseOrderGoodsinItemIssues |
Yes |
cost |
Cost price used. | ProductComponentCostPrices |
Yes |
count_audit_ids |
Count of timeline items against the goodsin item. | number |
No |
PurchaseOrderGoodsins
One shipment to a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
source |
Source. | string |
No |
shipping_company |
Shipping company. | string |
No |
tracking_number |
Tracking number. | string |
No |
expected_pallets |
Number of expected pallets. | number |
No |
expected_cartons |
Number of expected cartons. | number |
No |
received_pallets |
Number of received pallets. | number |
No |
received_cartons |
Number of received cartons. | number |
No |
received_container |
Type of received container. | enum * see below |
No |
container_shipment |
Is this a container shipment? | boolean |
No |
container_size |
Size of the container. | enum * see below |
No |
expected_delivery_date |
Expected delivery date. | date |
No |
expected_delivery_time_slot |
Expected delivery time slot. | enum * see below |
No |
preferred_delivery_date |
Preferred delivery date. | date |
No |
preferred_delivery_time_slot |
Preferred delivery time slot. | enum * see below |
No |
shipping_method |
Shipping method. | enum * see below |
No |
port_id |
ID of the port. | number |
No |
purchase_order_goodsin_shipping_term_id |
Shipping term ID. | number |
No |
status |
Goodsin status. | enum * see below |
No |
is_third_party |
Is this a third party goodsin? | boolean |
No |
third_party_emails |
Third party email addresses. | string |
No |
third_party_contact_name |
Third party contact names. | string |
No |
booking_requested |
Booking requested date. | date |
No |
booking_approved_by |
User ID. | number |
No |
booking_approved |
Booking approved date. | date |
No |
unique_booking_reference |
Booking reference. | string |
No |
check_in_by |
Check in by date. | date |
No |
transport_costs_locked |
Date the transport costs have been locked on. | date |
No |
lock_user_id |
ID of the locking user. | number |
No |
receiving_started |
Date of the start of receving. | date |
No |
receiving_completed |
Date of the end of receving. | date |
No |
checkin_started |
Date of the start of checkin. | date |
No |
checkin_completed |
Date of the end of checkin. | date |
No |
putaway_started |
Date of the start of putaway. | date |
No |
putaway_completed |
Date of the end of putaway. | date |
No |
ignore_from_billing |
Should the goodsin be ignored from billing? | boolean |
No |
returns_damaged_count |
The amount returned because of damage. | number |
No |
returns_unidentifiable_count |
The amount returned because the items had been unidentifiable. | number |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
containers |
Received containers. | array<PurchaseOrderGoodsinContainers> |
Yes |
port |
Shipping port. | Ports |
Yes |
consignment_qualities |
Quality descriptions. | array<ConsignmentQualities> |
Yes |
items |
Received items. | array<PurchaseOrderGoodsinItems> |
Yes |
Enums
| Field | Values |
|---|---|
received_container |
20FT, 40FT, 40FT-HC |
container_size |
none, half, full |
expected_delivery_time_slot |
am, pm |
preferred_delivery_time_slot |
am, pm |
shipping_method |
air, sea, road, ```` | |
status |
awaiting_booking, awaiting_shipping, awaiting_receiving, awaiting_checkin, awaiting_putaway, completed, cancelled, awaiting_collection |
PurchaseOrderLines
An item ordered in a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_component_id |
Product component ID. | number |
No |
name |
Product component name. | string |
No |
quantity |
Requested quantity. | number |
No |
cost_price |
Cost price. | number |
No |
duty |
Duty. | number |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date. | date |
No |
component |
Product component. | ProductComponents |
Yes |
count_audit_ids |
Count of timeline entries against the line. | number |
No |
doq |
Denominations of quantity. | ProductComponentDoqs |
Yes |
PurchaseOrderPayments
Payments made towards purchase order suppliers.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
amount |
Amount paid. | number |
No |
currency_code |
Currency code. | string |
No |
effective_date |
Effective date. | date |
No |
currency |
Currency. | SummarisedCurrency |
Yes |
PurchaseOrderReferences
Purchase order references.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
PurchaseOrderResourceMetadatas
Stores arbitrary data against a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
PurchaseOrderTags
A tag linked to a purchase order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
PurchaseOrderTypes
Types of purchase orders
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
code |
Code. | string |
No |
name |
Name. | string |
No |
description |
Description. | string |
No |
PurchaseOrders
Purchase orders.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
product_channel_id |
ID of the product channel. | number |
No |
purchase_order_type_id |
ID of the purchase order type. | number |
No |
product_component_supplier_id |
Supplier ID. | number |
No |
warehouse_id |
Warehouse ID. | number |
No |
currency_id |
Currency ID. | number |
No |
status |
Purchase order status. | enum * see below |
No |
notification_email_addresses |
Notification email address. | string |
No |
comments |
Comments. | string |
No |
reject_reason |
Reason for rejecting the purchase order. | string |
No |
approved_date |
Date the purchase order was accepted on. | date |
No |
completed_date |
Date of completion. | date |
No |
discount |
Discount amount. | number |
No |
discount_type |
Discount type. | enum * see below |
No |
created |
Created date. | date |
No |
modified |
Last modified date. | date |
No |
warehouse |
Warehouse. | SummarisedWarehouse |
Yes |
currency |
Currency. | SummarisedCurrency |
Yes |
channel |
Product channel details. | CachedProductChannel |
Yes |
type |
Purchase order type. | PurchaseOrderTypes |
Yes |
supplier |
Supplier. | ProductComponentSuppliers |
Yes |
lines |
Ordered lines. | array<PurchaseOrderLines> |
Yes |
payments |
Payments made to suppliers. | array<PurchaseOrderPayments> |
Yes |
goodsins |
List of goodsins. | array<PurchaseOrderGoodsins> |
Yes |
tags |
List of applied tags. | array<Tags> |
Yes |
references |
List of references. | array<PurchaseOrderReferences> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, cancelled, awaiting_approval, awaiting_booking, rejected, open, completed, discrepancies, pending_completion |
discount_type |
percentage, value |
RegionSettings
Settings data for geographical regions.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the region setting. | number |
No |
region_id |
The ID of the region the setting relates to. | number |
No |
region |
The region the setting relates to. | Regions |
Yes |
setting |
Descriptive name of the setting. | string |
No |
value |
Value of the setting. | string |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Regions
Geographical region data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the region. | number |
No |
name |
Descriptive name of the region. | string |
No |
region_settings |
Settings of the region. | array<RegionSettings> |
Yes |
ReturnResourceMetadatas
Stores arbitrary data against a return.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
Shipments
Data related to a shipment.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
shipping_service |
Shipping service used. | ShippingServices |
Yes |
ShippingCourierAccounts
Shipping courier account data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Account name. | string |
No |
courier |
The courier. | CachedNameAndCode |
Yes |
ShippingServices
Customer order shipments.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Service name. | string |
No |
code |
Service code. | string |
No |
courier_account |
Courier account. | ShippingCourierAccounts |
Yes |
StockAvailability
Variation specific data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product variation id. | number |
No |
sku |
The product SKU. | string |
No |
barcode |
The product variation barcode. | string |
No |
stocks |
Stocks. | array |
Yes |
SummarisedCountry
A country.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
iso_2 |
The 2-letter ISO abbreviation. | string |
No |
iso_3 |
The 3-letter ISO abbreviation. | string |
No |
SummarisedCurrency
A currency.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
code |
Code. | string |
No |
name |
Name. | string |
No |
symbol |
Symbol. | string |
No |
SummarisedLocale
Locale / Language.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Locale id. | number |
No |
name |
Name of the locale. | string |
No |
code |
Short code for the locale. | string |
No |
created |
When the locale was created. | date |
No |
modified |
When the locale was modified. | date |
No |
SummarisedProductCategory
Summary of a product category.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The ID of the product category. | number |
No |
name |
The name of the product category. | string |
No |
SummarisedProductVariationType
Top level product data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The product type id. | number |
No |
name |
The product type name. | string |
No |
type |
Category of the product variation type. | string |
No |
SummarisedTag
A tag.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
shortcode |
Short code. | string |
No |
description |
Short description. | string |
No |
SummarisedWarehouse
A warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
short_code |
Code. | string |
No |
name |
Name. | string |
No |
country |
Country. | SummarisedCountry |
Yes |
SyncedMarketplaceListing
Sync marketplace listing
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
listing_reference |
The parent or first marketplace reference for the listing as provided in the request. | string |
No |
listing_variation_reference |
The child or second marketplace reference for the listing as provided in the request. | string |
No |
sku |
The product SKU for the listing. | string |
No |
result |
The outcome for this listing. | enum * see below |
No |
error |
The marketplace reference for the listing as provided in the request. | string |
No |
Enums
| Field | Values |
|---|---|
result |
unchanged, created, updated, removed, errored |
Tags
A tag.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
description |
The tag description. | string |
No |
created |
The date the tag was added created. | date |
No |
Templates
Template.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the template. | number |
No |
organisation_id |
ID of the organisation. | number |
No |
template_category_id |
ID of the template category. | number |
No |
template_category_code |
Code of the template category. | number |
No |
name |
Name of the template. | string |
No |
status |
Orientation. | enum * see below |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
Enums
| Field | Values |
|---|---|
status |
portrait, landscape |
VendorOrderItemStatuses
A status for a vendor order item.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The status’ unique identifier. | number |
No |
name |
Name of the status. | string |
No |
group |
Name of the status’ group. | string |
No |
accepted |
Has the vendor order line been accepted? | boolean |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
VendorOrderItems
A line in a vendor order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The vendor order item’s unique identifier. | number |
No |
vendor_order_id |
The vendor order’s unique identifier. | number |
No |
vendor_order_item_status_id |
The vendor order item status’ unique identifier. | number |
No |
model_number |
The product’s model number. | string |
No |
asin |
The product’s ASIN. | string |
No |
sku |
The product’s SKU. | string |
No |
product_variation_id |
The product variation’s unique identifier. | number |
No |
name |
The product’s name. | string |
No |
expected_delivery_date |
Expected delivery date. | date |
No |
confirmed_delivery_date |
Confirmed delivery date. | date |
No |
submitted_quantity |
Submitted quantity, as requested by the vendor. | number |
No |
accepted_quantity |
Accepted quantity, as confirmed. | number |
No |
received_quantity |
Received quantity. | number |
No |
unit_cost |
Unit cost. | number |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
vendor_order |
The vendor order. | VendorOrders |
Yes |
status |
The vendor order item status. | VendorOrderItemStatuses |
Yes |
product_variation |
The product variation. | ProductVariations |
Yes |
VendorOrderResourceMetadatas
Stores arbitrary data against a vendor order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
key |
Key the piece of stored metadata is identified with. | string |
No |
value |
Stored data metadata. | string |
No |
VendorOrders
A vendor order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The vendor order’s unique identifier. | number |
No |
code |
Identifier created by vendor. | string |
No |
status |
Status in BladePRO. | enum * see below |
No |
vendor |
Vendor identifier. | string |
No |
ordered_on |
Vendor order created date at vendor’s side. | date |
No |
deliver_from |
Delivery window’s start date. | date |
No |
deliver_to |
Delivery window’s end date. | date |
No |
freight_terms |
Vendor’s freight terms. | string |
No |
payment_method |
Vendor’s payment method. | string |
No |
payment_terms |
Vendor’s payment terms. | string |
No |
purchasing_entity |
Vendor description. | string |
No |
delivery_party |
Delivery Party. | string |
No |
order_channel_id |
Order channel’s unique identifier. | number |
No |
currency_id |
ID of the currency. | number |
No |
warehouse_id |
ID of the fulfilling warehouse. | number |
No |
finalised |
Finalised date. | date |
No |
address_first_name |
First name part of the address. | string |
No |
address_last_name |
Last name part of the address. | string |
No |
address_company |
Company part of the address. | string |
No |
address_line_one |
Line one of the address. | string |
No |
address_line_two |
Line two of the address. | string |
No |
address_line_three |
Line three of the address. | string |
No |
address_postcode |
Postcode part of the address. | string |
No |
address_town |
Town part of the address. | string |
No |
address_county |
County part of the address. | string |
No |
address_country_id |
ID of the country of the address. | string |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
order_channel |
The order channel. | OrderChannels |
Yes |
currency |
The currency. | Currencies |
Yes |
warehouse |
The fulfilling warehouse. | Warehouses |
Yes |
address_country |
The address country. | Countries |
Yes |
items |
List of items in the vendor order. | array<VendorOrderItems> |
Yes |
Enums
| Field | Values |
|---|---|
status |
unconfirmed, processing, confirmed, void |
VirtualStocks
A stock entry.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
virtual_warehouse_location_id |
Location ID. | number |
No |
product_variation_id |
Product variation ID. | number |
No |
quantity |
Quantity in stock. | number |
No |
expiry_date |
Expiry date. | date |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified date. | date |
No |
location |
The virtual warehouse location. | VirtualWarehouseLocations |
Yes |
product_variation |
Product variation. | ProductVariations |
Yes |
VirtualWarehouseLocations
A location in a virtual warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
barcode |
Identifier of the location. | string |
No |
virtual_warehouse_id |
The ID of the virtual warehouse the location belongs to. | number |
No |
active |
Is the location active? | boolean |
No |
sellable |
Should the stock in this location be considered sellable? | boolean |
No |
created |
Created timestamp in BladePRO. | date |
No |
warehouse |
The virtual warehouse. | VirtualWarehouses |
Yes |
VirtualWarehouses
Storages that are outside of BladePRO’s control, such as showrooms, or stock at Amazon’s warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
name |
Name. | string |
No |
description |
Description. | string |
No |
active |
Is the warehouse currently active? | boolean |
No |
api_managed_only |
Is the warehouse managed by an API? | boolean |
No |
location_creation_enabled |
Is it possible to create locations? | boolean |
No |
created |
Created timestamp in BladePRO. | date |
No |
locations |
List of locations. | array<VirtualWarehouseLocations> |
Yes |
Warehouses
A warehouse.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
latitude |
Latitude coordinate. | number |
No |
longitude |
Longitude coordinate. | number |
No |
country_id |
ID of the warehouse’s country. | number |
No |
active |
Is the warehouse switched on? | boolean |
No |
currency_id |
ID of the warehouse’s currency. | number |
No |
virtual |
Is the warehouse virtual? | boolean |
No |
return_warehouse_id |
ID of the return warehouse, if the returns for this warehouse are redirected. | number |
No |
created |
Created timestamp in BladePRO. | date |
No |
modified |
Last modified timestamp in BladePRO. | date |
No |
currency |
The warehouse’s currency. | Currencies |
Yes |
country |
The warehouse’s country. | Countries |
Yes |
return_warehouse |
The return warehouse, if the returns for this warehouse are redirected. | Warehouses |
Yes |
Tasks
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
task_reference |
Reference for accessing the task. | string |
No |
WebhookOrderCancelled
Order cancelled webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderCancelledOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderCancelledWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderCancelledAddress |
Yes |
attributes |
Attributes. | array<WebhookOrderCancelledAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderCancelledTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderCancelledAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderCancelledCountry |
Yes |
WebhookOrderCancelledAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderCancelledCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderCancelledOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
order_channel_id |
Order channel ID. | number |
No |
brand_id |
Brand ID. | number |
No |
currency |
Currency. | WebhookOrderCancelledOrderCurrency |
Yes |
channel |
Channel. | WebhookOrderCancelledOrderChannel |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderCancelledOrderChannel
Channel data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for channel. | number |
No |
organisation_id |
Organisation id. | number |
No |
name |
Name. | string |
No |
outbound_email |
Outbound email. | string |
No |
WebhookOrderCancelledOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderCancelledTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderCancelledWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderCancelledCountry |
Yes |
WebhookOrderConfirmed
Order confirmed webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderConfirmedOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderConfirmedWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderConfirmedAddress |
Yes |
attributes |
Attributes. | array<WebhookOrderConfirmedAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderConfirmedTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderConfirmedAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderConfirmedCountry |
Yes |
WebhookOrderConfirmedAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderConfirmedCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderConfirmedOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
order_channel_id |
Order channel ID. | number |
No |
brand_id |
Brand ID. | number |
No |
currency |
Currency. | WebhookOrderConfirmedOrderCurrency |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderConfirmedOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderConfirmedTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderConfirmedWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderConfirmedCountry |
Yes |
WebhookOrderCreated
Order created webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderCreatedOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderCreatedWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderCreatedAddress |
Yes |
lines |
Lines. | array<WebhookOrderCreatedLine> |
Yes |
attributes |
Attributes. | array<WebhookOrderCreatedAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderCreatedTag> |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderCreatedAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderCreatedCountry |
Yes |
WebhookOrderCreatedAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderCreatedCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderCreatedLine
Order line data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
transaction_sku |
SKU used during the transaction. | string |
No |
quantity |
Quantity ordered. | number |
No |
net_unit_principal |
Net unit principle. | number |
No |
net_unit_commission |
Net unit commission. | number |
No |
status |
Line status. | enum * see below |
No |
created |
Created date in BladePRO. | date |
No |
modified |
Last modified date in BladePRO. | date |
No |
variation |
Product variation. | WebhookOrderCreatedProductVariation |
Yes |
Enums
| Field | Values |
|---|---|
status |
active, void |
WebhookOrderCreatedOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
channel |
Order channel. | WebhookOrderCreatedOrderChannel |
Yes |
brand |
Brand. | WebhookOrderCreatedOrderBrand |
Yes |
currency |
Currency. | WebhookOrderCreatedOrderCurrency |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderCreatedOrderBrand
Brand data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the brand. | number |
No |
name |
Name of the brand. | string |
No |
WebhookOrderCreatedOrderChannel
Order channel data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the channel. | number |
No |
name |
The name of the channel. | string |
No |
short_code |
A short string identifier of the channel. | string |
No |
WebhookOrderCreatedOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderCreatedProductVariation
Product variation data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID of the product variation. | number |
No |
product_id |
ID of the parent product. | number |
No |
sku |
The unique stock keeping unit. | string |
No |
WebhookOrderCreatedTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderCreatedWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderCreatedCountry |
Yes |
WebhookOrderDespatched
Order despatched webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
status |
Status. | enum * see below |
No |
date_placed |
Placed date. | date |
No |
despatch_date |
Despatched date. | date |
No |
source |
Source. | string |
No |
order |
Order parent. | WebhookOrderDespatchedOrder |
Yes |
warehouse |
Warehouse. | WebhookOrderDespatchedWarehouse |
Yes |
shipping_address |
Shipping address. | WebhookOrderDespatchedAddress |
Yes |
attributes |
Attributes. | array<WebhookOrderDespatchedAttribute> |
Yes |
despatch_attributes |
Product Component Despatched Attributes. | array<WebhookOrderProductComponentDespatchedAttribute> |
Yes |
tags |
Tags. | array<WebhookOrderDespatchedTag> |
Yes |
shipping |
Shipping details. | WebhookOrderDespatchedShipping |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, awaiting_allocation, hung, returned, awaiting_payment, awaiting_picking, awaiting_despatch, backorder_release, backorder, cancelled, return_open, item_refunded, item_replaced, awaiting_collection, despatched |
WebhookOrderDespatchedAddress
Address data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
first_name |
First name. | string |
No |
last_name |
Last name. | string |
No |
company |
Company name. | string |
No |
email |
Email. | string |
No |
country |
The address country. | WebhookOrderDespatchedCountry |
Yes |
WebhookOrderDespatchedAttribute
An attribute stored against an order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
name |
Name. | string |
No |
value |
Value. | string |
No |
WebhookOrderDespatchedCountry
Country data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The country’s unique identifier. | number |
No |
name |
Name. | string |
No |
iso_2 |
ISO2 description. | string |
No |
iso_3 |
ISO3 description. | string |
No |
WebhookOrderDespatchedOrder
Parent order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
ID. | number |
No |
reference |
Unique reference. | string |
No |
status |
Order status. | enum * see below |
No |
order_channel_id |
Order channel ID. | number |
No |
brand_id |
Brand ID. | number |
No |
currency |
Currency. | WebhookOrderDespatchedOrderCurrency |
Yes |
channel |
Channel. | WebhookOrderDespatchedOrderChannel |
Yes |
Enums
| Field | Values |
|---|---|
status |
draft, open, complete, cancelled |
WebhookOrderDespatchedOrderChannel
Channel data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for channel. | number |
No |
organisation_id |
Organisation id. | number |
No |
name |
Name. | string |
No |
outbound_email |
Outbound email. | string |
No |
WebhookOrderDespatchedOrderCurrency
Currency data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookOrderDespatchedShipping
Shipping details.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
courier_name |
Name of the shipping courier. | string |
No |
service_name |
Name of the shipping service. | string |
No |
tracking |
Tracking numbers. | array<WebhookOrderDespatchedShippingTracking> |
Yes |
WebhookOrderDespatchedShippingTracking
Tracking details.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
tracking_number |
Tracking number. | string |
No |
tracking_url |
Tracking url. | string |
No |
WebhookOrderDespatchedTag
Tag on order.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Tag ID. | number |
No |
name |
The tag name. | string |
No |
shortcode |
The tag code. | string |
No |
WebhookOrderDespatchedWarehouse
Warehouse data.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
The warehouse’s unique identifier. | number |
No |
name |
Name. | string |
No |
short_code |
Unique short code. | string |
No |
country |
The warehouse’s country. | WebhookOrderDespatchedCountry |
Yes |
WebhookOrderProductComponentDespatchedAttribute
Attribute of Despatched Product Component.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU. | string |
No |
attribute_name |
Attribute name. | string |
No |
attribute_value |
Attribute value. | string |
No |
order_goodsout_line_id |
The line reference that the attribute was applied to. | number |
No |
order_goodsout_line_item_id |
The line item reference that the attribute was applied to. | number |
No |
WebhookReturnCompleted
Order return completed webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
return_id |
Return ID. | number |
No |
order_id |
Order ID | number |
No |
order_reference |
Order reference | string |
No |
order_channel_id |
Order channel ID | number |
No |
return_created |
Return created timestamp. | date |
No |
carrier |
Carrier name | string |
No |
service |
Service type | string |
No |
tracking_number |
Tracking number | string |
No |
warehouse_id |
Warehouse ID | number |
No |
received_date |
Return received. | date |
No |
completed_date |
Return completed. | date |
No |
return_items |
Return items list | array<WebhookReturnCompletedItem> |
Yes |
WebhookReturnCompletedItem
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU | string |
No |
product_component_id |
Product component ID | number |
No |
return_quantity |
Quantity being returned | number |
No |
return_reason |
Reason for return | string |
No |
exchange_or_refund |
Exchange or refund type | string |
No |
exchange_product_component_id |
Exchange product component ID (if exchange) | number |
No |
expected_quantity |
Expected quantity to be returned | number |
No |
received_quantity |
Actual quantity received | number |
No |
correct_item |
Whether the returned item is correct | string |
No |
resellable |
Whether the item is resellable | string |
No |
WebhookReturnCreated
Order return created webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
return_id |
Return ID. | number |
No |
order_id |
Order ID | number |
No |
order_reference |
Order reference | string |
No |
order_channel_id |
Order channel ID | number |
No |
return_created |
Return created timestamp. | date |
No |
carrier |
Carrier name | string |
No |
service |
Service type | string |
No |
tracking_number |
Tracking number | string |
No |
warehouse_id |
Warehouse ID | number |
No |
return_items |
Return items list | array<WebhookReturnCreatedItem> |
Yes |
WebhookReturnCreatedItem
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
sku |
Product SKU | string |
No |
product_component_id |
Product component ID | number |
No |
return_quantity |
Quantity being returned | number |
No |
return_reason |
Reason for return | string |
No |
exchange_or_refund |
Exchange or refund type | string |
No |
WebhookReturnReceived
Return received webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
return_id |
Return ID. | number |
No |
order_id |
Order ID. | number |
No |
order_reference |
Unique reference. | string |
No |
order_channel_id |
Order Channel ID. | number |
No |
return_created |
Return created. | date |
No |
carrier |
Carrier. | string |
No |
service |
Service. | string |
No |
tracking_number |
Tracking number. | string |
No |
warehouse_id |
Warehouse ID. | number |
No |
received_date |
Return received. | date |
No |
WebhookVendorOrderFinalised
Vendor order finalise webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Unique BladePRO identifier for the vendor order. | number |
No |
code |
Reference for the vendor order. | string |
No |
vendor |
Vendor. | string |
No |
status |
Status of the vendor order. | string |
No |
delivery_party |
Delivery Party. | string |
No |
address_first_name |
Delivery Address: First name. | string |
No |
address_last_name |
Delivery Address: Last name. | string |
No |
address_company |
Delivery Address: Company. | string |
No |
address_line_one |
Delivery Address: Line one. | string |
No |
address_line_two |
Delivery Address: Line two. | string |
No |
address_line_three |
Delivery Address: Line three. | string |
No |
address_postcode |
Delivery Address: Postcode. | string |
No |
address_town |
Delivery Address: Town. | string |
No |
address_county |
Delivery Address: county. | string |
No |
finalised |
Datetime for when the vendor order was finalised. | date |
No |
order_channel |
The vendor order channel. | WebhookVendorOrderFinalisedOrderChannel |
Yes |
country |
Delivery country. | WebhookVendorOrderFinalisedCountry |
Yes |
selected_warehouse |
The warehouse from where the stock will be despatched from. | WebhookVendorOrderFinalisedWarehouse |
Yes |
currency |
Currency of the vendor order. | WebhookVendorOrderFinalisedCurrency |
Yes |
items |
Vendor items. | array<WebhookVendorOrderFinalisedItem> |
Yes |
WebhookVendorOrderFinalisedCountry
Delivery location.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the country. | number |
No |
name |
Name of the country. | string |
No |
iso_2 |
ISO 2 Code. | string |
No |
iso_3 |
ISO 3 code. | string |
No |
WebhookVendorOrderFinalisedCurrency
vendor order currency.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO id for currency. | number |
No |
name |
Name. | string |
No |
code |
Code. | string |
No |
symbol |
Symbol. | string |
No |
WebhookVendorOrderFinalisedItem
item.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the vendor order item. | number |
No |
product_variation_id |
BladePRO identifier for product. | number |
No |
sku |
sku. | string |
No |
submitted_quantity |
Vendor Submitted Quantity. | number |
No |
accepted_quantity |
Quantity accepted in BladePRO. | number |
No |
unit_cost |
Net Unit Cost | number |
No |
status |
Status | string |
No |
expected_delivery_date |
Expected Delivery Date | date |
No |
WebhookVendorOrderFinalisedOrderChannel
vendor order finalise webhook.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
Channel id for the vendor order. | number |
No |
name |
Channel name for the vendor order. | string |
No |
WebhookVendorOrderFinalisedWarehouse
Warehouse from which the vendor order will be despatched from.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the warehouse. | number |
No |
name |
Name of the warehouse. | string |
No |
country |
Warehouse location. | WebhookVendorOrderFinalisedWarehouseCountry |
Yes |
WebhookVendorOrderFinalisedWarehouseCountry
Warehouse location.
Fields
| Key | Description | Type | Expanding |
|---|---|---|---|
id |
BladePRO identifier for the country. | number |
No |
name |
Name of the country. | string |
No |
iso_2 |
ISO 2 Code. | string |
No |
iso_3 |
ISO 3 code. | string |
No |
List Return Metadata
GET /v1/orders/returns/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<ReturnResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP:RETURNS::READ.
Get Return Metadata
GET /v1/orders/returns/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP:RETURNS::READ.
Set Return Metadata
PUT /v1/orders/returns/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP:RETURNS::MANAGE.
Delete Return Metadata
DELETE /v1/orders/returns/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/returns/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP:RETURNS::MANAGE.
List Order Returns
GET /v1/orders/returns
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"order_id": 1,
"shipping_address_id": 1,
"warehouse_id": 1,
"status": "pending",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"order_return_items": [
{
"id": 1,
"order_return_id": 1,
"order_goodsout_line_item_id": 1,
"order_goodsout_line_id": 1,
"product_component_id": 1,
"sku": "DEMO-SKU-01",
"exchanged_product_component_id": 1,
"expected_quantity": 2,
"received_quantity": 2,
"expiry_date": "2019-11-25T14:52:56.000Z",
"received_date": "2019-11-25T14:52:56.000Z",
"action": "refund",
"order_return_item_reason_id": 1,
"description": "Damaged in box",
"correct_item": "YES",
"resellable": "NO",
"status": "pending",
"authorisation_required": "NO",
"rejected_reason": "Outside agreed return window",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
],
"tags": [
{
"name": "Processed",
"shortcode": "processed",
"description": "Processed by a 3rd party system"
}
]
}
]
}
List order returns
Return Type
array<OrderReturns>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| search | LIKE |
fuzzy search across selected attributes |
| status | IN, NOT_IN |
|
| order.channel.organisation.id | IN, NOT_IN |
|
| order.channel.id | IN, NOT_IN |
|
| warehouse.id | IN |
|
| tags.shortcode | IN, NOT_IN |
Sortings
Results can be sorted by the following keys: id, received_date.
Available expands
| Field | Return Type | Description |
|---|---|---|
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
order_return_items |
array<OrderReturnItems> |
Order Return Items. |
order_return_items.component |
ProductComponents |
Product component. |
order_return_items.exchange_component |
ProductComponents |
Product component. |
order_return_items.reason |
OrderReturnItemReasons |
Order Return Item Reasons. |
tags |
array<SummarisedTag> |
A tag. |
warehouse |
Warehouses |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::RETURNS::READ.
View Order Return
GET /v1/orders/returns/:id
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/orders/returns/1234567?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"order_id": 1,
"shipping_address_id": 1,
"warehouse_id": 1,
"status": "pending",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"organisation_id": 321,
"name": "Demo Channel",
"short_code": "DEMO",
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"organisation": {
"id": 1,
"name": "Demo",
"active": true,
"vat_number": "GB999 9999 73",
"notes": "Demo account...",
"contact_name": "Mr Joe Bloggs",
"contact_phone": "+44 01425 000 000",
"contact_mobile": "+44 00000000",
"contact_email": "joe.bloggs@example.com",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
},
"order_return_items": [
{
"id": 1,
"order_return_id": 1,
"order_goodsout_line_item_id": 1,
"order_goodsout_line_id": 1,
"product_component_id": 1,
"sku": "DEMO-SKU-01",
"exchanged_product_component_id": 1,
"expected_quantity": 2,
"received_quantity": 2,
"expiry_date": "2019-11-25T14:52:56.000Z",
"received_date": "2019-11-25T14:52:56.000Z",
"action": "refund",
"order_return_item_reason_id": 1,
"description": "Damaged in box",
"correct_item": "YES",
"resellable": "NO",
"status": "pending",
"authorisation_required": "NO",
"rejected_reason": "Outside agreed return window",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
}
View order return
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
Available expands
| Field | Return Type | Description |
|---|---|---|
order |
Orders |
Customer order groups. |
order.channel |
OrderChannels |
Customer order groups. |
order.channel.organisation |
Organisations |
Organisation data. |
order_return_items |
array<OrderReturnItems> |
Order Return Items. |
order_return_items.component |
ProductComponents |
Product component. |
order_return_items.exchange_component |
ProductComponents |
Product component. |
order_return_items.reason |
OrderReturnItemReasons |
Order Return Item Reasons. |
warehouse |
Warehouses |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::RETURNS::READ.
Create Return
POST /v1/orders/returns
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/returns?expand=*", [
"body" => json_encode([
"reference" => "#154254",
"items" => [
[
"sku" => "GREEN-BALL",
"quantity" => 4,
"action" => "Refund",
"reason" => "Size and fit - too large",
"description" => "I need a size XL",
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/returns?expand=*', {
reference: "#154254",
items: [
{
sku: "GREEN-BALL",
quantity: 4,
action: "Refund",
reason: "Size and fit - too large",
description: "I need a size XL",
},
],
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns?expand=*",
body: {
"reference": "#154254",
"items": [
{
"sku": "GREEN-BALL",
"quantity": 4,
"action": "Refund",
"reason": "Size and fit - too large",
"description": "I need a size XL"
}
]
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/returns?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"reference": "#154254",
"items": [
{
"sku": "GREEN-BALL",
"quantity": 4,
"action": "Refund",
"reason": "Size and fit - too large",
"description": "I need a size XL"
}
]
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"order_id": 1,
"shipping_address_id": 1,
"warehouse_id": 1,
"status": "pending",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"order_return_items": [
{
"id": 1,
"order_return_id": 1,
"order_goodsout_line_item_id": 1,
"order_goodsout_line_id": 1,
"product_component_id": 1,
"sku": "DEMO-SKU-01",
"exchanged_product_component_id": 1,
"expected_quantity": 2,
"received_quantity": 2,
"expiry_date": "2019-11-25T14:52:56.000Z",
"received_date": "2019-11-25T14:52:56.000Z",
"action": "refund",
"order_return_item_reason_id": 1,
"description": "Damaged in box",
"correct_item": "YES",
"resellable": "NO",
"status": "pending",
"authorisation_required": "NO",
"rejected_reason": "Outside agreed return window",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
]
}
}
Creates a return.
Request Body
Return Type
Types for the Request Body
CreateReturn (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
reference |
Order specific reference. | string |
requirednot nullmin length is 1 |
items |
List of items. | array<Item> |
requirednot nullmin count is 1 |
Item
| Key | Description | Types | Restrictions |
|---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
requirednot nullmin length is 1 |
quantity |
The quantity to return. | integer |
requirednot nullmin is 1 |
action |
The return action. | enum(refund, exchange, stock) |
requirednot null |
reason |
The reason for return. | string |
requirednot nullmin length is 1 |
description |
The description of why the item is being returned. | string |
not nullmin length is 1 |
Available expands
| Field | Return Type | Description |
|---|---|---|
order_return_items |
array<OrderReturnItems> |
Order Return Items. |
Scopes
This endpoint is only available for users with scope APP::RETURNS::MANAGE.
Apply Return Tag
POST /v1/orders/returns/:id/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/orders/returns/:id/tags", [
"body" => json_encode([
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/orders/returns/:id/tags', {
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/:id/tags",
body: {
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/orders/returns/:id/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Applies a tag to a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
ApplyTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
shortcode |
The tag shortcode. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::RETURNS::MANAGE.
Remove Return Tag
DELETE /v1/orders/returns/:id/tags/:tagShortcode
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/orders/returns/1234567/tags/PROCESSED' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Remove a tag from a return.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :tagShortcode: [a-zA-Z0-9]{3,20}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::RETURNS::MANAGE.
List Tags
GET /v1/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/tags", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/tags', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/tags",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
]
}
List the Application tags.
Return Type
array<Tags>
Scopes
This endpoint is only available for users with scope APP::MISC.
Create Tag
POST /v1/tags
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/tags", [
"body" => json_encode([
"name" => "Processed",
"description" => "Marked a as processed by XYZ system.",
"shortcode" => "PROCESSED",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/tags', {
name: "Processed",
description: "Marked a as processed by XYZ system.",
shortcode: "PROCESSED",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/tags",
body: {
"name": "Processed",
"description": "Marked a as processed by XYZ system.",
"shortcode": "PROCESSED"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/tags' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"name": "Processed",
"description": "Marked a as processed by XYZ system.",
"shortcode": "PROCESSED"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED",
"description": "Marked a as processed by XYZ system",
"created": "2019-11-25T14:52:56.000Z"
}
}
Create a new tag.
Request Body
Return Type
Types for the Request Body
CreateTag (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name of the tag. | string |
requirednot nullmin length is 1max length is 50 |
description |
Description of the tag. | string |
requirednot nullmin length is 1max length is 250 |
shortcode |
A unique code associated with the tag. | string |
requirednot nullmin length is 1max length is 20match is /[a-zA-Z0-9_-]{3,20}/ |
Scopes
This endpoint is only available for users with scope APP::MISC.
Log message
POST /v1/log
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/log", [
"body" => json_encode([
"severity" => "warning",
"message" => "This is a message worth saving to our logs.",
"payload" => [
"x" => 0,
"y" => 0,
"z" => 4,
],
"incident_bindings" => [
"user" => 142,
"vendor_order" => 1546,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/log', {
severity: "warning",
message: "This is a message worth saving to our logs.",
payload: {
x: 0,
y: 0,
z: 4,
},
incident_bindings: {
user: 142,
vendor_order: 1546,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/log",
body: {
"severity": "warning",
"message": "This is a message worth saving to our logs.",
"payload": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 142,
"vendor_order": 1546
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/log' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"severity": "warning",
"message": "This is a message worth saving to our logs.",
"payload": {
"x": 0,
"y": 0,
"z": 4
},
"incident_bindings": {
"user": 142,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"success": true
}
}
Saves a log entry and update the heartbeat of a task.
Request Body
Return Type
Types for the Request Body
CreateLog (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
severity |
The severity of the log. | string |
requirednot null |
message |
The message to be recorded. | string |
requirednot nullmin length is 1 |
payload |
Additional data to be stored against the message. | object |
not null |
task_id |
The ID of the related task. | string |
not nullmatch is /^[0-9a-z-]{36}$/ |
service |
Which service wrote the log message. | string |
not null |
incident_bindings |
Bindings for the incident to be created. | CreateLogIncidentBinding |
not null |
CreateLogIncidentBinding
| Key | Description | Types | Restrictions |
|---|---|---|---|
user |
User ID. | number |
not null |
company |
Company ID. | number |
not null |
organisation |
Organisation ID. | number |
not null |
order_goodsout |
Order goodsout ID. | number |
not null |
order_channel |
Order channel ID. | number |
not null |
product_channel |
Product channel ID. | number |
not null |
product_variation |
Product variation ID. | number |
not null |
product_component |
Product component ID. | number |
not null |
listing |
Listing ID. | number |
not null |
vendor_order |
Vendor order ID. | number |
not null |
purchase_order |
Purchase order ID. | number |
not null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Create task
POST /v1/tasks
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/tasks", [
"body" => json_encode([
"task" => "MYAPP:VENDOR:CREATE",
"endpoint" => [
"url" => "https://my-url.com/endpoint",
"method" => "POST",
],
"metadata" => [
"meta1" => "value1",
"meta2" => "value2",
"meta3" => "value3",
],
"payload" => true,
"application" => [
"id" => 1,
"name" => "Application name",
"instance_id" => 1,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/tasks', {
task: "MYAPP:VENDOR:CREATE",
endpoint: {
url: "https://my-url.com/endpoint",
method: "POST",
},
metadata: {
meta1: "value1",
meta2: "value2",
meta3: "value3",
},
payload: true,
application: {
id: 1,
name: "Application name",
instance_id: 1,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks",
body: {
"task": "MYAPP:VENDOR:CREATE",
"endpoint": {
"url": "https://my-url.com/endpoint",
"method": "POST"
},
"metadata": {
"meta1": "value1",
"meta2": "value2",
"meta3": "value3"
},
"payload": true,
"application": {
"id": 1,
"name": "Application name",
"instance_id": 1
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/tasks' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"task": "MYAPP:VENDOR:CREATE",
"endpoint": {
"url": "https://my-url.com/endpoint",
"method": "POST"
},
"metadata": {
"meta1": "value1",
"meta2": "value2",
"meta3": "value3"
},
"payload": true,
"application": {
"id": 1,
"name": "Application name",
"instance_id": 1
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Calls the task system to create a new task.
Request Body
Return Type
Types for the Request Body
Task (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
task |
Task code. | string |
requirednot nullmin length is 1 |
endpoint |
Endpoint to be hit. | Endpoint |
requirednot null |
metadata |
Metadata. | map<string, string> |
requirednot nullmin length is 0 |
payload |
Payload. | booleanor numberor objector string |
requirednot null |
application |
Definition of the application the task belongs to. | Application |
requirednot null |
Application
| Key | Description | Types | Restrictions |
|---|---|---|---|
id |
The ID of the application. | number |
requirednot null |
name |
The name of the application. | string |
requirednot nullmin length is 1 |
instance_id |
The ID of the application’s instance. | number |
requirednot null |
Endpoint
| Key | Description | Types | Restrictions |
|---|---|---|---|
url |
URL. | string |
requirednot nullmin length is 1 |
method |
HTTP method. | string |
requirednot nullmatch is /^(POST|PUT)$/ |
Scopes
This endpoint is only available for users with scope APP::MISC.
Mark task as failed
PUT /v1/tasks/:task/failed
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed", [
"body" => json_encode([
"summary" => "Failed to update order, reference could not be matched on marketplace.",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed', {
summary: "Failed to update order, reference could not be matched on marketplace.",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed",
body: {
"summary": "Failed to update order, reference could not be matched on marketplace."
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/failed' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"summary": "Failed to update order, reference could not be matched on marketplace."
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Reports a task to have failed.
Parameter Regular Expressions
- :task: [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
Request Body
Return Type
Types for the Request Body
FailTask (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
summary |
A summary of why the task failed. | string |
requirednot nullmin length is 1 |
Scopes
This endpoint is only available for users with scope APP::MISC.
Mark task as completed
PUT /v1/tasks/:task/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete", [
"body" => json_encode([
"summary" => "Updated stock for 134 products.",
"warning" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete', {
summary: "Updated stock for 134 products.",
warning: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete",
body: {
"summary": "Updated stock for 134 products.",
"warning": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/complete' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"summary": "Updated stock for 134 products.",
"warning": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Reports a task to have completed.
Parameter Regular Expressions
- :task: [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
Request Body
Return Type
Types for the Request Body
CompleteTask (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
summary |
A summary of the task’s outcome. | string |
requirednot nullmin length is 1 |
warning |
Mark the task with a warning flag. | boolean |
not null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Record task heartbeat
PUT /v1/tasks/:task/heartbeat
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/tasks/12345678-abcd-9qwe-zx01-123456789abc/heartbeat' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"task_reference": "12345678-abcd-9qwe-zx01-123456789abc"
}
}
Notifies BladePRO the processing of the task is still underway.
Parameter Regular Expressions
- :task: [0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
List Vendor Order Items
GET /v1/vendor_orders/:vendorOrderId/items
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/123/items?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 4567,
"vendor_order_id": 123,
"vendor_order_item_status_id": 1,
"model_number": "MODEL_309845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"product_variation_id": 687,
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.467Z",
"confirmed_delivery_date": "2025-09-06T15:24:10.467Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-08-31T15:24:10.467Z",
"modified": "2025-08-31T15:24:10.467Z"
}
]
}
Extracts a list of items in a given vendor order.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
Return Type
array<VendorOrderItems>
Available expands
| Field | Return Type | Description |
|---|---|---|
product_variation |
ProductVariations |
Marketplace listable products’ data. |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Get Vendor Order Item
GET /v1/vendor_orders/:vendorOrderId/items/:vendorOrderItemId
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 4567,
"vendor_order_id": 123,
"vendor_order_item_status_id": 1,
"model_number": "MODEL_309845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"product_variation_id": 687,
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.467Z",
"confirmed_delivery_date": "2025-09-06T15:24:10.467Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-08-31T15:24:10.467Z",
"modified": "2025-08-31T15:24:10.467Z"
}
}
Retrieves a single vendor order item.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
- :vendorOrderItemId: [1-9][0-9]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Update Vendor Order Item
PUT /v1/vendor_orders/:vendorOrderId/items/:vendorOrderItemId
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567", [
"body" => json_encode([
"vendor_order_item_status_id" => 1,
"accepted_quantity" => 850,
"expected_delivery_date" => "2025-09-05T15:24:10.468Z",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567', {
vendor_order_item_status_id: 1,
accepted_quantity: 850,
expected_delivery_date: "2025-09-05T15:24:10.468Z",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/items/4567",
body: {
"vendor_order_item_status_id": 1,
"accepted_quantity": 850,
"expected_delivery_date": "2025-09-05T15:24:10.468Z"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/vendor_orders/123/items/4567' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"vendor_order_item_status_id": 1,
"accepted_quantity": 850,
"expected_delivery_date": "2025-09-05T15:24:10.468Z"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 4567,
"vendor_order_id": 123,
"vendor_order_item_status_id": 1,
"model_number": "MODEL_309845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"product_variation_id": 687,
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.468Z",
"confirmed_delivery_date": "2025-09-06T15:24:10.468Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-08-31T15:24:10.468Z",
"modified": "2025-08-31T15:24:10.468Z"
}
}
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
- :vendorOrderItemId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
UpdateVendorOrderItem (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
vendor_order_item_status_id |
ID of the status the item needs to take. | integer |
requirednot nullmin is 1 |
accepted_quantity |
Accepted quantity. | integer |
requirednot nullmin is 0 |
expected_delivery_date |
Expected delivery date. | date |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
List Vendor Order Metadata
GET /v1/vendor_orders/:id/metadata
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"key": "my_key",
"value": "some-value"
}
]
}
Retrieves a list of all the metadata stored against a vendor order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
Return Type
array<VendorOrderResourceMetadatas>
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Get Vendor Order Metadata
GET /v1/vendor_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Retrieves a single piece of metadata stored against a vendor order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Set Vendor Order Metadata
PUT /v1/vendor_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key", [
"body" => json_encode([
"value" => "some-value",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key', {
value: "some-value",
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key",
body: {
"value": "some-value"
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"value": "some-value"
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"key": "my_key",
"value": "some-value"
}
}
Sets some metadata against a Vendor.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Request Body
Return Type
Types for the Request Body
UpdateResourceMetadata (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
value |
The value. | string |
requirednot nullmax length is 65535 |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
Delete Vendor Order Metadata
DELETE /v1/vendor_orders/:id/metadata/:key
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("DELETE", "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.delete 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "DELETE",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request DELETE 'https://public-api.bladepro.io/v1/vendor_orders/1234567/metadata/my_key' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
null
Deletes some metadata against a vendor order.
Parameter Regular Expressions
- :id: [1-9][0-9]{0,}
- :key: [a-zA-Z_][a-zA-Z0-9_]{0,}
Return Type
Empty.
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
List Vendor Orders
GET /v1/vendor_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.462Z",
"deliver_from": "2025-09-05T15:24:10.463Z",
"deliver_to": "2025-09-10T15:24:10.463Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.463Z",
"modified": "2025-08-31T15:24:10.463Z"
}
]
}
Retrieves a list of stored vendor orders.
Return Type
array<VendorOrders>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| status | IN, NOT_IN |
|
| order_channel_id | IN, NOT_IN |
|
| ordered_on | ON_DATE, LESS_THAN, MORE_THAN |
|
| finalised | ON_DATE, LESS_THAN, MORE_THAN |
|
| code | EQUALS, LIKE |
Sortings
Results can be sorted by the following keys: finalised, ordered_on.
Available expands
| Field | Return Type | Description |
|---|---|---|
address_country |
Countries |
A country. |
currency |
Currencies |
Currency data. |
items |
array<VendorOrderItems> |
A line in a vendor order. |
items.product_variation |
ProductVariations |
Marketplace listable products’ data. |
items.status |
VendorOrderItemStatuses |
A status for a vendor order item. |
order_channel |
OrderChannels |
Customer order groups. |
warehouse |
Warehouses |
A warehouse. |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Create Vendor Order
POST /v1/vendor_orders
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/vendor_orders", [
"body" => json_encode([
"order_channel_id" => 3,
"vendor_order" => [
"code" => "QWER123ASD",
"vendor" => "VEN-01",
"warehouse" => "CHR",
"ordered_on" => "2025-11-07T00:00:00.000Z",
"deliver_from" => "2025-11-07T00:00:00.000Z",
"deliver_to" => "2025-11-14T00:00:00.000Z",
"freight_terms" => null,
"payment_method" => null,
"payment_terms" => null,
"purchasing_entity" => "#",
"delivery_party" => "#",
"currency_id" => "GBP",
"items" => [
[
"product_variation_id" => 1,
"model_number" => "MODEL_30845",
"asin" => "ASIN34w5-068",
"sku" => "SKU_01",
"name" => "Example Product 01",
"expected_delivery_date" => "2025-09-05T15:24:10.465Z",
"submitted_quantity" => 1000,
"unit_cost" => 12.34,
],
],
"address_first_name" => "Amazon",
"address_last_name" => "Inc.",
"address_company" => null,
"address_line_one" => "1 Amazon Rd",
"address_line_two" => null,
"address_line_three" => null,
"address_postcode" => "BH23 4FL",
"address_town" => "Christchurch",
"address_country" => "GB",
"address_county" => "Dorset",
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/vendor_orders', {
order_channel_id: 3,
vendor_order: {
code: "QWER123ASD",
vendor: "VEN-01",
warehouse: "CHR",
ordered_on: "2025-11-07T00:00:00.000Z",
deliver_from: "2025-11-07T00:00:00.000Z",
deliver_to: "2025-11-14T00:00:00.000Z",
freight_terms: nil,
payment_method: nil,
payment_terms: nil,
purchasing_entity: "#",
delivery_party: "#",
currency_id: "GBP",
items: [
{
product_variation_id: 1,
model_number: "MODEL_30845",
asin: "ASIN34w5-068",
sku: "SKU_01",
name: "Example Product 01",
expected_delivery_date: "2025-09-05T15:24:10.465Z",
submitted_quantity: 1000,
unit_cost: 12.34,
},
],
address_first_name: "Amazon",
address_last_name: "Inc.",
address_company: nil,
address_line_one: "1 Amazon Rd",
address_line_two: nil,
address_line_three: nil,
address_postcode: "BH23 4FL",
address_town: "Christchurch",
address_country: "GB",
address_county: "Dorset",
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders",
body: {
"order_channel_id": 3,
"vendor_order": {
"code": "QWER123ASD",
"vendor": "VEN-01",
"warehouse": "CHR",
"ordered_on": "2025-11-07T00:00:00.000Z",
"deliver_from": "2025-11-07T00:00:00.000Z",
"deliver_to": "2025-11-14T00:00:00.000Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": "#",
"delivery_party": "#",
"currency_id": "GBP",
"items": [
{
"product_variation_id": 1,
"model_number": "MODEL_30845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.465Z",
"submitted_quantity": 1000,
"unit_cost": 12.34
}
],
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_country": "GB",
"address_county": "Dorset"
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/vendor_orders' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"order_channel_id": 3,
"vendor_order": {
"code": "QWER123ASD",
"vendor": "VEN-01",
"warehouse": "CHR",
"ordered_on": "2025-11-07T00:00:00.000Z",
"deliver_from": "2025-11-07T00:00:00.000Z",
"deliver_to": "2025-11-14T00:00:00.000Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": "#",
"delivery_party": "#",
"currency_id": "GBP",
"items": [
{
"product_variation_id": 1,
"model_number": "MODEL_30845",
"asin": "ASIN34w5-068",
"sku": "SKU_01",
"name": "Example Product 01",
"expected_delivery_date": "2025-09-05T15:24:10.465Z",
"submitted_quantity": 1000,
"unit_cost": 12.34
}
],
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_country": "GB",
"address_county": "Dorset"
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.464Z",
"deliver_from": "2025-09-05T15:24:10.464Z",
"deliver_to": "2025-09-10T15:24:10.464Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.464Z",
"modified": "2025-08-31T15:24:10.464Z"
}
}
Creates a new vendor order.
Request Body
Return Type
Types for the Request Body
CreateVendorOrderPayload (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
order_channel_id |
Target order channel ID. | integer |
requirednot nullmin is 1 |
vendor_order |
The vendor order. | VendorOrder |
requirednot null |
Item
| Key | Description | Types | Restrictions |
|---|---|---|---|
product_variation_id |
ID of the product variation. | integer |
requiredmin is 1 |
model_number |
Model number. | string |
requiredmin length is 1max length is 191 |
asin |
ASIN. | string |
requiredmin length is 1max length is 191 |
sku |
SKU. | string |
requiredmin length is 1max length is 191 |
name |
Product name. | string |
requiredmin length is 1max length is 191 |
expected_delivery_date |
Expected delivery date. | date |
required |
submitted_quantity |
Submitted quantity. | integer |
requirednot nullmin is 1 |
unit_cost |
Unit cost. | number |
requirednot null |
VendorOrder
| Key | Description | Types | Restrictions |
|---|---|---|---|
code |
Third party ID. | string |
requirednot nullmin length is 1max length is 100 |
vendor |
Description of the vendor. | string |
requirednot nullmin length is 1max length is 191 |
warehouse |
Delivery destination. | string |
requiredmin length is 1max length is 191 |
ordered_on |
Date of ordering as described by the third party. | date |
requirednot null |
deliver_from |
Start date of requested delivery window. | date |
requirednot null |
deliver_to |
End date of requested delivery window. | date |
requirednot null |
freight_terms |
Freight terms. | string |
requiredmin length is 1max length is 191 |
payment_method |
Payment method. | string |
requiredmin length is 1max length is 191 |
payment_terms |
Payment terms. | string |
requiredmin length is 1max length is 191 |
purchasing_entity |
Purchasing entity. | string |
requiredmin length is 1max length is 191 |
delivery_party |
Delivery Party. | string |
requiredmin length is 1max length is 191 |
currency_id |
ISO code of currency. | string |
requirednot nullmin length is 2max length is 3match is /^[A-Z]{2,3}$/i |
items |
Vendor order items. | array<Item> |
requirednot nullmin count is 1 |
address_first_name |
First name of address. | string |
required |
address_last_name |
Last name of address. | string |
required |
address_company |
Company name of address. | string |
required |
address_line_one |
Address line one. | string |
required |
address_line_two |
Address line two. | string |
required |
address_line_three |
Address line three. | string |
required |
address_postcode |
Postcode of address. | string |
required |
address_town |
Town of address. | string |
required |
address_country |
Country ISO of address. | string |
requiredmin length is 2max length is 3match is /^[a-z]{2,3}$/i |
address_county |
County or region of address. | string |
required |
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::MANAGE.
Get Vendor Order
GET /v1/vendor_orders/:vendorOrderId
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/vendor_orders/123", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/vendor_orders/123', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/vendor_orders/123' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.465Z",
"deliver_from": "2025-09-05T15:24:10.465Z",
"deliver_to": "2025-09-10T15:24:10.465Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.465Z",
"modified": "2025-08-31T15:24:10.466Z"
}
}
Retrieves a single vendor order.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
Return Type
Scopes
This endpoint is only available for users with scope APP::VENDOR-ORDERS::READ.
Confirm Vendor Order
PUT /v1/vendor_orders/:vendorOrderId/complete
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/vendor_orders/123/complete", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/vendor_orders/123/complete', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/vendor_orders/123/complete",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/vendor_orders/123/complete' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-08-31T15:24:10.466Z",
"deliver_from": "2025-09-05T15:24:10.466Z",
"deliver_to": "2025-09-10T15:24:10.466Z",
"freight_terms": null,
"payment_method": null,
"payment_terms": null,
"purchasing_entity": null,
"delivery_party": null,
"order_channel_id": 1,
"currency_id": 1,
"warehouse_id": 1,
"finalised": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"address_country_id": 231,
"created": "2025-08-31T15:24:10.466Z",
"modified": "2025-08-31T15:24:10.466Z"
}
}
Marks a vendor order as confirmed.
Parameter Regular Expressions
- :vendorOrderId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope vendor-orders.
List Virtual Warehouses
GET /v1/warehouses/virtual
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/virtual", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/virtual', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/virtual' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z"
}
]
}
Lists virtual warehouses.
Return Type
array<VirtualWarehouses>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| active | EQUALS |
Sortings
Results can be sorted by the following keys: name.
Scopes
This endpoint is only available for users with scope APP::MISC.
Create Virtual Warehouse
POST /v1/warehouses/virtual
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/warehouses/virtual?expand=*", [
"body" => json_encode([
"warehouse" => [
"name" => "Amazon FBA",
"description" => "Stock shipped to Amazon.",
"api_managed_only" => true,
"location_creation_enabled" => true,
],
"location" => [
"barcode" => "SHOWROOM",
"sellable" => true,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/warehouses/virtual?expand=*', {
warehouse: {
name: "Amazon FBA",
description: "Stock shipped to Amazon.",
api_managed_only: true,
location_creation_enabled: true,
},
location: {
barcode: "SHOWROOM",
sellable: true,
},
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual?expand=*",
body: {
"warehouse": {
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"api_managed_only": true,
"location_creation_enabled": true
},
"location": {
"barcode": "SHOWROOM",
"sellable": true
}
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/warehouses/virtual?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"warehouse": {
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"api_managed_only": true,
"location_creation_enabled": true
},
"location": {
"barcode": "SHOWROOM",
"sellable": true
}
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z",
"locations": [
{
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
]
}
}
Create virtual warehouses.
Request Body
Return Type
Types for the Request Body
CreateVirtualWarehouse (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
warehouse |
Warehouse details. | Warehouse |
requirednot null |
location |
Location details. | CreateVirtualWarehouseLocation |
requirednot null |
CreateVirtualWarehouseLocation
| Key | Description | Types | Restrictions |
|---|---|---|---|
barcode |
Identifier of the location the virtual warehouse starts out with. | string |
requirednot nullmin length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
requirednot null |
Warehouse
| Key | Description | Types | Restrictions |
|---|---|---|---|
name |
Name. | string |
requirednot nullmin length is 1 |
description |
Description. | string |
requirednot nullmin length is 0 |
api_managed_only |
Is this warehouse managed by an API? | boolean |
requirednot null |
location_creation_enabled |
Is creating additional locations allowed? | boolean |
requirednot null |
Available expands
| Field | Return Type | Description |
|---|---|---|
locations |
array<VirtualWarehouseLocations> |
A location in a virtual warehouse. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Void Virtual Warehouse
PUT /v1/warehouses/virtual/:warehouseId/void
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/void", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/void', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/void",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/void' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z"
}
}
Deactivates a virtual warehouse.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
List Locations
GET /v1/warehouses/virtual/:warehouseId/locations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
]
}
Lists virtual warehouse locations.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Return Type
array<VirtualWarehouseLocations>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| active | EQUALS |
|
| barcode | EQUALS, LIKE, NOT_LIKE, IN, NOT_IN |
|
| sellable | EQUALS |
Sortings
Results can be sorted by the following keys: barcode.
Scopes
This endpoint is only available for users with scope APP::MISC.
Create Location
POST /v1/warehouses/virtual/:warehouseId/locations
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("POST", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations", [
"body" => json_encode([
"barcode" => "SHOWROOM",
"sellable" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.post 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations', {
barcode: "SHOWROOM",
sellable: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "POST",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations",
body: {
"barcode": "SHOWROOM",
"sellable": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request POST 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"barcode": "SHOWROOM",
"sellable": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
}
Create a location for a virtual warehouse.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
CreateVirtualWarehouseLocation
Return Type
Types for the Request Body
CreateVirtualWarehouseLocation (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
barcode |
Identifier of the location the virtual warehouse starts out with. | string |
requirednot nullmin length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
requirednot null |
Scopes
This endpoint is only available for users with scope APP::MISC.
Void Virtual Warehouse Location
PUT /v1/warehouses/virtual/:warehouseId/locations/:locationId/void
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void", [
"body" => "{}",
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void', {}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/void' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z"
}
}
Deactivates a virtual warehouse location.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
- :locationId: [1-9][0-9]{0,}
Request Body
Ignored.
Return Type
Scopes
This endpoint is only available for users with scope APP::MISC.
List Virtual Stock
GET /v1/warehouses/virtual/stocks
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/virtual/stocks?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"virtual_warehouse_location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"location": {
"id": 1,
"barcode": "SHOWROOM",
"virtual_warehouse_id": 1,
"active": true,
"sellable": true,
"created": "2019-11-25T14:52:56.000Z",
"warehouse": {
"id": 1,
"name": "Amazon FBA",
"description": "Stock shipped to Amazon.",
"active": true,
"api_managed_only": true,
"location_creation_enabled": false,
"created": "2019-11-25T14:52:56.000Z"
}
},
"product_variation": {
"id": 1,
"product_id": 1,
"status": "active",
"sku": "DEMO-SKU-01",
"barcode": "0123456789012",
"product_variation_type_id": 1,
"discontinued_date": "2019-11-25T14:52:56.000Z",
"despatch_instructions": "Always pack facing upwards.",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
]
}
Lists virtual stock.
Return Type
array<VirtualStocks>
Filters
| Field | Operators | Value List URL |
|---|---|---|
| quantity | LESS_THAN, EQUALS, MORE_THAN |
|
| expiry_date | LESS_THAN, MORE_THAN, ON_DATE |
|
| location.barcode | EQUALS, LIKE, NOT_LIKE, IN, NOT_IN |
|
| location.virtual_warehouse_id | IN |
|
| product_variation.sku | LIKE, NOT_LIKE, IN |
Available expands
| Field | Return Type | Description |
|---|---|---|
location |
VirtualWarehouseLocations |
A location in a virtual warehouse. |
location.warehouse |
VirtualWarehouses |
Storages that are outside of BladePRO’s control, such as showrooms, or stock at Amazon’s warehouse. |
product_variation |
ProductVariations |
Marketplace listable products’ data. |
Scopes
This endpoint is only available for users with scope APP::MISC.
Adjust Virtual Stock - Delta
PUT /v1/warehouses/virtual/:warehouseId/locations/:locationId/stocks/:variationId/adjust
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust", [
"body" => json_encode([
"quantity" => -10,
"expiry_date" => null,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust', {
quantity: -10,
expiry_date: nil,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust",
body: {
"quantity": -10,
"expiry_date": null
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/adjust' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"quantity": -10,
"expiry_date": null
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"virtual_warehouse_location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Adjusts stock by a delta value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
- :locationId: [1-9][0-9]{0,}
- :variationId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
AdjustVirtualStockDelta (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
quantity |
Quantity to adjust the stock by. | integer |
requirednot nullnot equals is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Adjust Virtual Stock - Absolute
PUT /v1/warehouses/virtual/:warehouseId/locations/:locationId/stocks/:variationId/set
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set", [
"body" => json_encode([
"quantity" => 1000,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set', {
quantity: 1000,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set",
body: {
"quantity": 1000
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/locations/1/stocks/1/set' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"quantity": 1000
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"id": 1,
"virtual_warehouse_location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
}
}
Adjusts stock to an absolute value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
- :locationId: [1-9][0-9]{0,}
- :variationId: [1-9][0-9]{0,}
Request Body
Return Type
Types for the Request Body
AdjustVirtualStockAbsolute (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
quantity |
Quantity to set the value to. | integer |
requirednot nullmin is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Bulk Adjust Virtual Stock - Delta
PUT /v1/warehouses/virtual/:warehouseId/stocks/adjust
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust", [
"body" => json_encode([
[
"location_id" => 1,
"product_variation_id" => 1,
"quantity" => -15,
"expiry_date" => null,
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust', [
{
location_id: 1,
product_variation_id: 1,
quantity: -15,
expiry_date: nil,
},
], {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust",
body: [
{
"location_id": 1,
"product_variation_id": 1,
"quantity": -15,
"expiry_date": null
}
],
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/adjust' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '[
{
"location_id": 1,
"product_variation_id": 1,
"quantity": -15,
"expiry_date": null
}
]'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"affected": 15
}
}
Adjust stock by a delta value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
array<BulkAdjustVirtualStockDelta>
Return Type
Types for the Request Body
BulkAdjustVirtualStockDelta
| Key | Description | Types | Restrictions |
|---|---|---|---|
location_id |
Virtual warehouse location ID. Required if the warehouse allows for multiple locations. | integer |
not nullmin is 1 |
product_variation_id |
Product variation ID. | integer |
requirednot nullmin is 1 |
quantity |
Quantity to adjust the stock by. | integer |
requirednot nullnot equals is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
Bulk Adjust Virtual Stock - Absolute
PUT /v1/warehouses/virtual/:warehouseId/stocks/set
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("PUT", "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set", [
"body" => json_encode([
"stocks" => [
[
"location_id" => 1,
"product_variation_id" => 1,
"quantity" => 1000,
"expiry_date" => null,
],
],
"set_skipped_skus_to_zero" => true,
]),
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.put 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set', {
stocks: [
{
location_id: 1,
product_variation_id: 1,
quantity: 1000,
expiry_date: nil,
},
],
set_skipped_skus_to_zero: true,
}, {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "PUT",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set",
body: {
"stocks": [
{
"location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null
}
],
"set_skipped_skus_to_zero": true
},
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request PUT 'https://public-api.bladepro.io/v1/warehouses/virtual/1/stocks/set' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login' \
--data-raw '{
"stocks": [
{
"location_id": 1,
"product_variation_id": 1,
"quantity": 1000,
"expiry_date": null
}
],
"set_skipped_skus_to_zero": true
}'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": {
"affected": 15
}
}
Adjust stock to an absolute value.
Parameter Regular Expressions
- :warehouseId: [1-9][0-9]{0,}
Request Body
BulkAdjustVirtualStockAbsolute
Return Type
Types for the Request Body
BulkAdjustVirtualStockAbsolute (root level)
| Key | Description | Types | Restrictions |
|---|---|---|---|
stocks |
Values to be set. | array<Stock> |
requirednot nullmin count is 1 |
set_skipped_skus_to_zero |
Should unlisted products in the listed locations be set to 0 quantity? | boolean |
requirednot null |
Stock
| Key | Description | Types | Restrictions |
|---|---|---|---|
location_id |
Virtual warehouse location ID. Required if the warehouse allows for multiple locations. | integer |
not nullmin is 1 |
product_variation_id |
Product variation ID. | integer |
requirednot nullmin is 1 |
quantity |
Quantity to set the stock to. | integer |
requirednot nullmin is 0 |
expiry_date |
Expiry date. | date |
Scopes
This endpoint is only available for users with scope APP::MISC.
List Warehouses
GET /v1/warehouses
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86",
"paging": {
"page": 1,
"records": 1,
"per_page": 250,
"total_records": 1,
"total_pages": 1
}
},
"data": [
{
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"latitude": 50.739492,
"longitude": -1.734224,
"country_id": 1,
"active": true,
"currency_id": 1,
"virtual": false,
"return_warehouse_id": 1,
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"currency": {
"id": 1,
"code": "GBP",
"name": "Great British Pounds",
"symbol": "£",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z"
},
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR",
"region_id": 1,
"currency_id": 1,
"block": "EU"
}
}
]
}
List all warehouses.
Return Type
array<Warehouses>
Available expands
| Field | Return Type | Description |
|---|---|---|
country |
Countries |
A country. |
currency |
Currencies |
Currency data. |
Scopes
This endpoint is only available for users with scope APP::MISC.
List Carton Label Types
GET /v1/warehouses/carton_label_types
<?php
// Instantiate a GuzzleHttp client
$client = new \GuzzleHttp\Client();
// Make the request
$response = $client->request("GET", "https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*", [
"headers" => [
"Content-Type" => "application/json",
"Access-Token" => "my-token-from-login",
],
]);
// Process the response
$responseBody = json_decode($response->getBody(), true);
require 'rest-client'
require 'json'
# Make the request
response = RestClient.get 'https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*', {
access_token: 'my-token-from-login',
content_type: :json,
accept: :json
}
# Process the response
puts response.body
// Require the node HTTP module
var request = require("request");
// Make the request
request({
method: "GET",
json: true,
uri: "https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*",
headers: {
"Access-Token": "my-token-from-login",
"Content-Type": "application/json",
},
(error, response, body) => {
// Process the response
console.log(body);
},
});
# Make the request
curl --location --request GET 'https://public-api.bladepro.io/v1/warehouses/carton_label_types?expand=*' \
--header 'Content-Type: application/json' \
--header 'Access-Token: my-token-from-login'
Example result:
{
"meta": {
"request_reference": "2217x35kz-c893v86"
},
"data": [
{
"id": 1,
"name": "Nordstrom",
"active": 1,
"carton_label_type_references": [
{
"name": "Carrier",
"code": "CARR",
"type": "text",
"validation_pattern": "[a-zA-Z0-9_ -]*"
}
]
}
]
}
Lists carton label types.
Return Type
array<CartonLabelTypes>
Available expands
| Field | Return Type | Description |
|---|---|---|
carton_label_type_references |
array<CartonLabelTypeReferences> |
References for carton label types. |
Scopes
This endpoint is only available for users with scope APP::ORDERS::READ.
ORDER:CANCELLED
Request Body
Example payload:
{
"id": 1049789,
"status": "cancelled",
"date_placed": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"order_channel_id": 321,
"brand_id": 5,
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
},
"channel": {
"id": 1,
"organisation_id": 1,
"name": "Artplants",
"outbound_email": "sales.example@i-fulfilment.co.uk"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
]
}
ORDER:CONFIRMED
Request Body
Example payload:
{
"id": 1049789,
"status": "awaiting_picking",
"date_placed": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"order_channel_id": 321,
"brand_id": 5,
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
]
}
ORDER:CREATED
Request Body
Example payload:
{
"id": 1049789,
"status": "awaiting_despatch",
"date_placed": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"channel": {
"id": 321,
"name": "Demo Channel",
"short_code": "DEMO"
},
"brand": {
"id": 5,
"name": "Demo Brand"
},
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"lines": [
{
"id": 3450345,
"transaction_sku": "GREEN-BALL",
"quantity": 4,
"net_unit_principal": 7.25,
"net_unit_commission": 0.15,
"status": "active",
"created": "2019-11-25T14:52:56.000Z",
"modified": "2019-11-25T14:52:56.000Z",
"variation": {
"id": 1,
"product_id": 1,
"sku": "DEMO-SKU-01"
}
}
],
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
]
}
ORDER:DESPATCHED
Request Body
Example payload:
{
"id": 1049789,
"status": "despatched",
"date_placed": "2019-11-25T14:52:56.000Z",
"despatch_date": "2019-11-25T14:52:56.000Z",
"source": "How the order was created.",
"order": {
"id": 1234567,
"reference": "#154254",
"status": "open",
"order_channel_id": 321,
"brand_id": 5,
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
},
"channel": {
"id": 1,
"organisation_id": 1,
"name": "Artplants",
"outbound_email": "GBP"
}
},
"warehouse": {
"id": 1,
"name": "Christchurch",
"short_code": "CHR",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"shipping_address": {
"first_name": "Support",
"last_name": "Team",
"company": "ACME LTD",
"email": "support.team@i-fulfilment.co.uk",
"country": {
"id": 1,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"attributes": [
{
"name": "Marketplace",
"value": "222-99999999-9999999"
}
],
"despatch_attributes": [
{
"sku": "DEMO-SKU-01",
"attribute_name": "Colour",
"attribute_value": "Red",
"order_goodsout_line_id": 12234,
"order_goodsout_line_item_id": 12234
}
],
"tags": [
{
"id": 1,
"name": "Processed",
"shortcode": "PROCESSED"
}
],
"shipping": [
{
"courier_name": "Royal Mail",
"service_name": "ExPak1",
"tracking": [
{
"tracking_number": "46513135648745",
"tracking_url": "http://www.royalmail.com/trackdetails?trackNumber=46513135648745"
}
]
}
]
}
RETURN:COMPLETED
Request Body
Example payload:
{
"return_id": 1049789,
"order_id": 346745845,
"order_reference": "#2323523",
"order_channel_id": 3634633,
"return_created": "2025-07-25T14:52:56.000Z",
"carrier": "Royal Mail",
"service": "Returns 48h",
"tracking_number": "abc123",
"warehouse_id": 23426246,
"received_date": "2025-07-25T14:52:56.000Z",
"completed_date": "2025-07-25T14:52:56.000Z",
"return_items": [
{
"sku": "SKU123456",
"product_component_id": 321,
"return_quantity": 2,
"return_reason": "Damaged item",
"exchange_or_refund": "refund",
"exchange_product_component_id": 4321,
"expected_quantity": 1,
"received_quantity": 1,
"correct_item": "yes",
"resellable": "yes"
}
]
}
RETURN:CREATED
Request Body
Example payload:
{
"return_id": 1049789,
"order_id": 346745845,
"order_reference": "#2323523",
"order_channel_id": 3634633,
"return_created": "2025-07-25T14:52:56.000Z",
"carrier": "Royal Mail",
"service": "Returns 48h",
"tracking_number": "abc123",
"warehouse_id": 23426246,
"return_items": [
{
"sku": "SKU123456",
"product_component_id": 321,
"return_quantity": 2,
"return_reason": "Damaged item",
"exchange_or_refund": "refund"
}
]
}
RETURN:RECEIVED
Request Body
Example payload:
{
"return_id": 1049789,
"order_id": 1049789,
"order_reference": "#154254",
"order_channel_id": 1049789,
"return_created": "2019-11-25T14:52:56.000Z",
"carrier": "Royal Mail",
"service": "Returns 48h",
"tracking_number": "abc123",
"warehouse_id": 1049789,
"received_date": "2019-11-25T14:52:56.000Z"
}
VENDOR_ORDER:FINALISED
Request Body
Example payload:
{
"id": 123,
"code": "QWER123ASD",
"vendor": "VEN-01",
"status": "confirmed",
"delivery_party": null,
"address_first_name": "Amazon",
"address_last_name": "Inc.",
"address_company": null,
"address_line_one": "1 Amazon Rd",
"address_line_two": null,
"address_line_three": null,
"address_postcode": "BH23 4FL",
"address_town": "Christchurch",
"address_county": "Dorset",
"finalised": "2019-11-25T14:52:56.000Z",
"order_channel": {
"id": 321,
"name": "Demo Channel"
},
"country": {
"id": 231,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
},
"selected_warehouse": {
"id": 1,
"name": "Christchurch",
"country": {
"id": 231,
"name": "United Kingdom",
"iso_2": "GB",
"iso_3": "GBR"
}
},
"currency": {
"id": 1,
"name": "British Pound",
"code": "GBP",
"symbol": "£"
},
"items": [
{
"id": 4567,
"product_variation_id": 687,
"sku": "MODEL_309845",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"unit_cost": 12.34,
"status": "accepted_in_stock",
"expected_delivery_date": "2019-11-25"
}
]
}