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-15
in 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
created
ascending, 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,lines
is the way to do that. Notice that you do not need to includewarehouse
separately. -
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
:true
orfalse
.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_KEY
with 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": "21hlrfsj5-c893v86"
},
"data": {
"session_token": "wH45uWbrWvIQN6ivBBGlbN5jJ3c83vWaXsOL0OkdvMCvw8SM3ZKhrWjrhArys6OgRcO7sYOQNIRba5a3KZSsXp4fxZRbzaoyXs6Y",
"expiry": "2025-05-13T13:50:31.000Z"
}
}
Log into BladePRO.
Request Body
Return Type
Types for the Request Body
Login (root level)
Key | Description | Types | Restrictions |
---|---|---|---|
username |
The username. | string |
required not null min length is 2 |
password |
The password. | string |
required not null min length is 3 |
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": "21hlrfsj5-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 |
required not null |
details |
Specific request details in a Key/Value object. | object |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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. | string or integer |
required not null if type is string , then min length is 3 if type is integer , then min is 1 |
reference |
Order specific reference. | string |
required not null min length is 1 |
currency |
Currency ISO code. | string |
required not null min length is 3 |
goodsouts |
List of goodsouts to create on the order. | array< Goodsout > |
required not null min count is 1 |
Address
Key | Description | Types | Restrictions |
---|---|---|---|
title |
Title. | string |
not null |
first_name |
First name. | string |
required not null |
last_name |
Last name. | string |
required not null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
required not null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
required not null |
country_id |
Country ISO 2 or ISO 3 code. | string |
required not null min length is 2 max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
required not 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 |
required not null min length is 1 |
value |
Value of the attribute | string |
required not 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 |
required not null min is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
required not 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 |
required not null min length is 3 |
date_placed |
Customer placed date. | date |
required not null |
shipping_address |
Customer shipping address. | Address |
required not null |
lines |
The list of products. | array< Line > |
required not null min 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 required not null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally required not 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 |
required not null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
required not null min is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
required not null min is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not null min is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
required not null min 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 null min length is 1 |
packing_requirements |
Packing Requirements | CreateOrderGoodsoutLinePackingRequirements |
Shipping
Key | Description | Types | Restrictions |
---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
required not null min is 0 |
shipping_code |
Shipping code. | string |
not null min length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
channel |
The product channel’s ID. | integer |
required not null min 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",
],
"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",
},
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"
},
"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"
},
"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": "21hlrfsj5-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 |
required not null min length is 3 |
order |
Order. | Order |
required not null |
date_placed |
Customer placed date. | date |
required not null |
shipping_address |
Customer shipping address. | Address |
required not null |
lines |
The list of products. | array< Line > |
required not null min 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 required not null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally required not 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 0 max 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 |
Attribute
Key | Description | Types | Restrictions |
---|---|---|---|
name |
Name of the attribute | string |
required not null min length is 1 |
value |
Value of the attribute | string |
required not 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 |
required not null min is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
required not 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 |
required not null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
required not null min is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
required not null min is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not null min is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
required not null min 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 null min length is 1 |
Order
Key | Description | Types | Restrictions |
---|---|---|---|
channel |
Channel’s unique short code or ID. | string or integer |
required not null if type is string , then min length is 3 if type is integer , then min is 1 |
reference |
Order specific reference. | string |
required not null min length is 1 |
currency |
Currency ISO code. | string |
required not null min length is 3 |
OrderResourceMetadata
Key | Description | Types | Restrictions |
---|---|---|---|
key |
Metadata key. | string |
required not null |
value |
Metadata value. | string |
required not null |
Shipping
Key | Description | Types | Restrictions |
---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
required not null min is 0 |
shipping_code |
Shipping code. | string |
not null min length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
channel |
The product channel’s ID. | integer |
required not null min 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": "21hlrfsj5-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 |
required not null min length is 1 |
name |
The file name. | string |
required not null min length is 1 |
extension |
The file extension. | string |
required not null min length is 1 |
mime |
The file mime. | string |
required not null min length is 1 |
category |
The document category. | enum(document) |
required not null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not null min is 0 |
mapping_template_id |
The ID for the mapping template. | integer |
required not null min is 1 |
organisation_id |
The ID for the organisation. | integer |
required not null min is 1 |
order_channel_id |
The ID for the order channel. | integer |
required not null min is 1 |
brand_id |
The ID for the brand. | integer |
required not null min is 1 |
currency_id |
The ID for the currency. | integer |
required not null min is 1 |
fields |
The array of fields of the file. | string |
required not null |
slug |
The slug. | string |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
name |
The file name. | string |
required not null min length is 1 |
extension |
The file extension. | string |
required not null min length is 1 |
mime |
The file mime. | string |
required not null min length is 1 |
category |
The document category. | enum(document) |
required not null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min length is 0 max 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": "21hlrfsj5-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 |
required not null min length is 0 max 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": "21hlrfsj5-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 |
required not null |
last_name |
Last name. | string |
required not null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
required not null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
required not null |
country_id |
Country ISO 2 or ISO 3 code. | string |
required not null min length is 2 max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
required not 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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> |
required not null 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 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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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 |
required not null min is 1 |
order_references |
List of order references to check. | array<string> |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
location |
A text summary of where (location) the update has occurred. | string |
required not null min length is 1 |
tracking_number |
The specific tracking number for the update. | string |
required not null min length is 1 |
timestamp_utc |
The date/time of when the update was created (UTC format only). | date |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
required not null min is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
required not null min is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not null min is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
required not null min is 1 |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
channel |
The product channel’s ID. | integer |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min length is 1 max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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",
],
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-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",
},
],
},
}, {
access_token: 'my-token-from-login',
content_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"
}
]
}
},
headers: {
"Access-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"
}
]
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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 |
required not null match is /^[a-z0-9\-_.]{2,}$/i |
name |
The product’s name. | string |
required not null min length is 3 |
barcode |
The product barcode. | string |
required not null match is /^\d{3,20}$/ |
brand |
Product brand id. | integer |
required not null min is 1 |
channel |
Product channel id. | integer |
required not null min 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 required not 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 required not null min count is 1 |
Doq
Key | Description | Types | Restrictions |
---|---|---|---|
length |
Length in MM. | integer |
required not null min is 1 |
width |
Width in MM. | integer |
required not null min is 1 |
height |
Height in MM. | integer |
required not null min is 1 |
weight |
Weight in KG. | number |
required not null min is 0.001 |
quantity |
Quantity. | integer |
required not null min is 1 |
type |
Short code for the DOQ. | enum(INNER_PACK, MASTER_CASE, PALLET, SINGLE_PRODUCT) |
required not null |
shippable |
Is this a shippable item? | boolean |
required not null |
barcode |
Barcode. | string |
not null match is /^[0-9]{6,}$/ |
ExistingComponent
Key | Description | Types | Restrictions |
---|---|---|---|
id |
The product component ID. | integer |
required not null min is 1 |
quantity |
The quantity required to build the virtual product. | integer |
required not null min is 1 |
NewComponent
Key | Description | Types | Restrictions |
---|---|---|---|
perishable |
Is the product perishable? | boolean |
required not null |
organic |
Is the product organic? | boolean |
required not 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 |
required not null min length is 1 |
made_of |
Part of customs details: What is the product made of? | string |
required not null min length is 1 |
used_for |
Part of customs details: What is the product used for? | string |
required not null min length is 1 |
customs_country_of_origin_country |
The ISO2 or ISO3 code or the ID of the country of origin. | string or integer |
required not null if type is string , then min length is 1 if type is string , then max length is 3 if type is integer , then min is 1 |
product_component_customs_code_id |
Customs code ID. | integer |
required not null min is 1 |
doqs |
List of product DOQs. | array< Doq > |
required not null min count is 1 |
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": "21hlrfsj5-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": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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": "21hlrfsj5-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. | string or integer |
required not null if type is string , then min length is 2 if type is string , then max length is 2 if type is integer , then min is 1 |
name |
Name. | string |
required not null min length is 1 |
full_description |
Description. | string |
required not null min 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": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 4 |
name |
Name of the code. | string |
required not null min length is 1 |
duty_rate |
The duty rate applied to this customs code. | number |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
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-03-18T13:50:21.950Z",
],
"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-03-18T13:50:21.950Z",
},
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-03-18T13:50:21.950Z"
},
"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-03-18T13:50:21.950Z"
},
"lines": [
{
"sku": "DEMO-SKU-01",
"product_component_id": null,
"quantity": 3200,
"cost_price": 156.5,
"duty": 14.5
}
]
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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
}
},
"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 |
required not null |
product_component_supplier_id |
Supplier ID. | number |
required not null |
references |
List of references. | array< Reference > |
not null |
warehouse_code |
Warehouse code. | string |
required not null min length is 1 |
currency_code |
Currency code | string |
required not null min length is 3 max length is 3 |
goodsin |
First goodsin. | Goodsin |
required not null |
lines |
Products ordered. | array< Line > |
not null |
Goodsin
Key | Description | Types | Restrictions |
---|---|---|---|
expected_pallets |
Number of expected pallets. | integer |
required not null min is 0 |
expected_cartons |
Number of expected cartons. | integer |
required not null min 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) |
required not null |
expected_delivery_date |
Expected delivery date. | date |
required not null |
Line
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
Product SKU. | string |
optionally required not null min length is 1 match is /^[0-9a-z_.-]+$/i |
product_component_id |
Product component ID. | integer |
optionally required not null min is 1 |
quantity |
Ordered quantity. | integer |
required not null min is 1 |
cost_price |
Cost price. | number |
not null min is 0 |
duty |
Duty rate. | number |
not null min is 0 |
Reference
Key | Description | Types | Restrictions |
---|---|---|---|
name |
Name. | string |
required not null |
value |
Value. | string |
required not 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": "21hlrfsj5-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
}
},
"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 |
required not null min length is 1 |
product_channel_id |
Product channel ID. | number |
required not null |
currency_code |
Currency code | string |
required not null min length is 3 max length is 3 |
reference |
Reference value. | string |
required not null |
lines |
Products ordered. | array< Line > |
required not null min count is 1 |
Line
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
Product SKU. | string |
required not null min length is 1 match is /^[0-9a-z_-]+$/i |
quantity |
Ordered quantity. | integer |
required not null min 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": "21hlrfsj5-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
}
},
"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
.
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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null max length is 65535 |
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
items |
List of items. | array< Item > |
required not null min count is 1 |
Item
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
quantity |
The quantity to return. | integer |
required not null min is 1 |
action |
The return action. | enum(refund, exchange, stock) |
required not null |
reason |
The reason for return. | string |
required not null min length is 1 |
description |
The description of why the item is being returned. | string |
not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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-03-13T13:50:31.737Z",
"deliver_from": "2025-03-18T13:50:31.737Z",
"deliver_to": "2025-03-23T13:50:31.737Z",
"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-03-13T13:50:31.737Z",
"modified": "2025-03-13T13:50:31.737Z"
}
]
}
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-05-20T00:00:00.000Z",
"deliver_from" => "2025-05-20T00:00:00.000Z",
"deliver_to" => "2025-05-27T00: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-03-18T13:50:31.739Z",
"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-05-20T00:00:00.000Z",
deliver_from: "2025-05-20T00:00:00.000Z",
deliver_to: "2025-05-27T00: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-03-18T13:50:31.739Z",
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-05-20T00:00:00.000Z",
"deliver_from": "2025-05-20T00:00:00.000Z",
"deliver_to": "2025-05-27T00: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-03-18T13:50:31.739Z",
"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-05-20T00:00:00.000Z",
"deliver_from": "2025-05-20T00:00:00.000Z",
"deliver_to": "2025-05-27T00: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-03-18T13:50:31.739Z",
"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": "21hlrfsj5-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-03-13T13:50:31.738Z",
"deliver_from": "2025-03-18T13:50:31.738Z",
"deliver_to": "2025-03-23T13:50:31.738Z",
"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-03-13T13:50:31.738Z",
"modified": "2025-03-13T13:50:31.738Z"
}
}
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 |
required not null min is 1 |
vendor_order |
The vendor order. | VendorOrder |
required not null |
Item
Key | Description | Types | Restrictions |
---|---|---|---|
product_variation_id |
ID of the product variation. | integer |
required min is 1 |
model_number |
Model number. | string |
required min length is 1 max length is 191 |
asin |
ASIN. | string |
required min length is 1 max length is 191 |
sku |
SKU. | string |
required min length is 1 max length is 191 |
name |
Product name. | string |
required min length is 1 max length is 191 |
expected_delivery_date |
Expected delivery date. | date |
required |
submitted_quantity |
Submitted quantity. | integer |
required not null min is 1 |
unit_cost |
Unit cost. | number |
required not null |
VendorOrder
Key | Description | Types | Restrictions |
---|---|---|---|
code |
Third party ID. | string |
required not null min length is 1 max length is 100 |
vendor |
Description of the vendor. | string |
required not null min length is 1 max length is 191 |
warehouse |
Delivery destination. | string |
required min length is 1 max length is 191 |
ordered_on |
Date of ordering as described by the third party. | date |
required not null |
deliver_from |
Start date of requested delivery window. | date |
required not null |
deliver_to |
End date of requested delivery window. | date |
required not null |
freight_terms |
Freight terms. | string |
required min length is 1 max length is 191 |
payment_method |
Payment method. | string |
required min length is 1 max length is 191 |
payment_terms |
Payment terms. | string |
required min length is 1 max length is 191 |
purchasing_entity |
Purchasing entity. | string |
required min length is 1 max length is 191 |
delivery_party |
Delivery Party. | string |
required min length is 1 max length is 191 |
currency_id |
ISO code of currency. | string |
required not null min length is 2 max length is 3 match is /^[A-Z]{2,3}$/i |
items |
Vendor order items. | array< Item > |
required not null min 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 |
required min length is 2 max length is 3 match 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": "21hlrfsj5-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-03-13T13:50:31.740Z",
"deliver_from": "2025-03-18T13:50:31.740Z",
"deliver_to": "2025-03-23T13:50:31.740Z",
"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-03-13T13:50:31.740Z",
"modified": "2025-03-13T13:50:31.740Z"
}
}
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": "21hlrfsj5-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-03-13T13:50:31.740Z",
"deliver_from": "2025-03-18T13:50:31.740Z",
"deliver_to": "2025-03-23T13:50:31.740Z",
"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-03-13T13:50:31.741Z",
"modified": "2025-03-13T13:50:31.741Z"
}
}
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": "21hlrfsj5-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-03-18T13:50:31.741Z",
"confirmed_delivery_date": "2025-03-19T13:50:31.741Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-03-13T13:50:31.741Z",
"modified": "2025-03-13T13:50:31.741Z"
}
]
}
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": "21hlrfsj5-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-03-18T13:50:31.742Z",
"confirmed_delivery_date": "2025-03-19T13:50:31.742Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-03-13T13:50:31.742Z",
"modified": "2025-03-13T13:50:31.742Z"
}
}
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-03-18T13:50:31.743Z",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-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-03-18T13:50:31.743Z",
}, {
access_token: 'my-token-from-login',
content_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-03-18T13:50:31.743Z"
},
headers: {
"Access-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-03-18T13:50:31.743Z"
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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-03-18T13:50:31.743Z",
"confirmed_delivery_date": "2025-03-19T13:50:31.743Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-03-13T13:50:31.743Z",
"modified": "2025-03-13T13:50:31.743Z"
}
}
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 |
required not null min is 1 |
accepted_quantity |
Accepted quantity. | integer |
required not null min is 0 |
expected_delivery_date |
Expected delivery date. | date |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null |
location |
Location details. | CreateVirtualWarehouseLocation |
required not null |
CreateVirtualWarehouseLocation
Key | Description | Types | Restrictions |
---|---|---|---|
barcode |
Identifier of the location the virtual warehouse starts out with. | string |
required not null min length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
required not null |
Warehouse
Key | Description | Types | Restrictions |
---|---|---|---|
name |
Name. | string |
required not null min length is 1 |
description |
Description. | string |
required not null min length is 0 |
api_managed_only |
Is this warehouse managed by an API? | boolean |
required not null |
location_creation_enabled |
Is creating additional locations allowed? | boolean |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null not 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 null min is 1 |
product_variation_id |
Product variation ID. | integer |
required not null min is 1 |
quantity |
Quantity to adjust the stock by. | integer |
required not null not 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": "21hlrfsj5-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 > |
required not null min count is 1 |
set_skipped_skus_to_zero |
Should unlisted products in the listed locations be set to 0 quantity? | boolean |
required not null |
Stock
Key | Description | Types | Restrictions |
---|---|---|---|
location_id |
Virtual warehouse location ID. Required if the warehouse allows for multiple locations. | integer |
not null min is 1 |
product_variation_id |
Product variation ID. | integer |
required not null min is 1 |
quantity |
Quantity to set the stock to. | integer |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min is 1 |
quantity |
Current quantity. | integer |
required not null min 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 |
required not null min length is 1 |
value |
Value of the resource metadata. | string |
required not null min length is 1 |
SyncMarketplaceListingValidator
Key | Description | Types | Restrictions |
---|---|---|---|
listing_reference |
Parent or first reference provided by the 3rd party marketplace. | string |
required not null min 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 |
required not null min length is 1 |
sku |
Current marketplace SKU. | string |
required not null min length is 1 |
title |
Current marketplace title. | string |
required not null min length is 1 |
quantity |
Current marketplace stock level. | integer |
required not null min is 0 |
price |
Current marketplace price. | number |
required not null min 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": "21hlrfsj5-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 |
required not null min 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 |
required min is 1 |
images |
List of image URLs. | array<string> |
Attribute
Key | Description | Types | Restrictions |
---|---|---|---|
code |
Code to reference the attribute by. | string |
required not null min length is 1 |
value |
Value of the attribute. | string |
required min length is 0 |
label |
Label of the attribute. | string |
required min length is 0 |
MarketplaceLocation
Key | Description | Types | Restrictions |
---|---|---|---|
marketplace_location_id |
ID of the marketplace location mapping. | integer |
required not null min is 1 |
quantity |
Current quantity. | integer |
required not null min 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 |
required not null min length is 1 |
value |
Value of the resource metadata. | string |
required not null min length is 1 |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
product_variation_id |
The ID for the product variation. | integer |
required not null min is 1 |
sku |
Current marketplace SKU. | string |
required not null min length is 1 |
title |
Current marketplace title. | string |
required not null min 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 |
required not null min length is 1 |
quantity |
Current marketplace stock level. | integer |
required not null min is 0 |
price |
Current marketplace price. | number |
required not null min is 0 |
status |
The listing status. | enum(draft, live, void, pending_live, pending_void) |
required not null |
keep_price |
Should BladePRO keep the price. | boolean |
required not null |
keep_title |
Should BladePRO keep the title. | boolean |
required not null |
keep_description |
Should BladePRO keep the description. | boolean |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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
.
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min is 1 |
quantity |
The listed quantity. | integer |
required not null min is 0 |
marketplace_location_id |
The marketplace location ID, if enabled in the app. | integer |
required min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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> |
required not null min count is 1 |
locales |
List of locale codes. | array<string> |
required not null min 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": "21hlrfsj5-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 |
required not null |
locale |
Locale code. | string |
required not null match 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 max length is 50 |
description |
Description of the tag. | string |
required not null min length is 1 max length is 250 |
shortcode |
A unique code associated with the tag. | string |
required not null min length is 1 max length is 20 match 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" => 170,
"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: 170,
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": 170,
"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": 170,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min 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 null match 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" => 17,
"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: 17,
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": 17,
"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": 17,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min 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 |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 194,
"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: 194,
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": 194,
"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": 194,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min is 0.01 |
order_reference |
The product order reference. | string |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 133,
"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: 133,
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": 133,
"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": 133,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min length is 1 |
order_reference |
The product order reference. | string |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 172,
"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: 172,
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": 172,
"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": 172,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min length is 1 |
order_reference |
The product order reference. | string |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 45,
"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: 45,
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": 45,
"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": 45,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null |
message |
The message to be recorded. | string |
required not null min 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 null match 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": "21hlrfsj5-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 |
required not null min length is 1 |
endpoint |
Endpoint to be hit. | Endpoint |
required not null |
metadata |
Metadata. | map<string, string> |
required not null min length is 0 |
payload |
Payload. | boolean or number or object or string |
required not null |
application |
Definition of the application the task belongs to. | Application |
required not null |
Application
Key | Description | Types | Restrictions |
---|---|---|---|
id |
The ID of the application. | number |
required not null |
name |
The name of the application. | string |
required not null min length is 1 |
instance_id |
The ID of the application’s instance. | number |
required not null |
Endpoint
Key | Description | Types | Restrictions |
---|---|---|---|
url |
URL. | string |
required not null min length is 1 |
method |
HTTP method. | string |
required not null match 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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"
}
]
}
]
}
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min is 1 |
resource_ids |
List of resource ID’s. | array<number> |
required not null min count is 1 |
locales |
List of resource ID’s. | array<string> |
required not null min 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": "21hlrfsj5-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
.
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-c893v86"
},
"data": {
"session_token": "wH45uWbrWvIQN6ivBBGlbN5jJ3c83vWaXsOL0OkdvMCvw8SM3ZKhrWjrhArys6OgRcO7sYOQNIRba5a3KZSsXp4fxZRbzaoyXs6Y",
"expiry": "2025-05-13T13:50:31.000Z"
}
}
Log into BladePRO.
Request Body
Return Type
Types for the Request Body
Login (root level)
Key | Description | Types | Restrictions |
---|---|---|---|
username |
The username. | string |
required not null min length is 2 |
password |
The password. | string |
required not null min length is 3 |
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": "21hlrfsj5-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 |
required not null |
details |
Specific request details in a Key/Value object. | object |
required not 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" => 170,
"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: 170,
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": 170,
"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": 170,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min 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 null match 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" => 17,
"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: 17,
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": 17,
"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": 17,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min 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 |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 194,
"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: 194,
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": 194,
"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": 194,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min is 0.01 |
order_reference |
The product order reference. | string |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 133,
"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: 133,
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": 133,
"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": 133,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min length is 1 |
order_reference |
The product order reference. | string |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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" => 172,
"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: 172,
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": 172,
"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": 172,
"details": {
"x": 0,
"y": 0,
"z": 4
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null min length is 1 |
order_reference |
The product order reference. | string |
required not null min length is 1 max length is 120 |
order_channel_id |
Order channel id | integer |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
required not null min is 1 |
quantity |
Current quantity. | integer |
required not null min 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 |
required not null min length is 1 |
value |
Value of the resource metadata. | string |
required not null min length is 1 |
SyncMarketplaceListingValidator
Key | Description | Types | Restrictions |
---|---|---|---|
listing_reference |
Parent or first reference provided by the 3rd party marketplace. | string |
required not null min 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 |
required not null min length is 1 |
sku |
Current marketplace SKU. | string |
required not null min length is 1 |
title |
Current marketplace title. | string |
required not null min length is 1 |
quantity |
Current marketplace stock level. | integer |
required not null min is 0 |
price |
Current marketplace price. | number |
required not null min 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": "21hlrfsj5-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 |
required not null min 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 |
required min is 1 |
images |
List of image URLs. | array<string> |
Attribute
Key | Description | Types | Restrictions |
---|---|---|---|
code |
Code to reference the attribute by. | string |
required not null min length is 1 |
value |
Value of the attribute. | string |
required min length is 0 |
label |
Label of the attribute. | string |
required min length is 0 |
MarketplaceLocation
Key | Description | Types | Restrictions |
---|---|---|---|
marketplace_location_id |
ID of the marketplace location mapping. | integer |
required not null min is 1 |
quantity |
Current quantity. | integer |
required not null min 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 |
required not null min length is 1 |
value |
Value of the resource metadata. | string |
required not null min length is 1 |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
product_variation_id |
The ID for the product variation. | integer |
required not null min is 1 |
sku |
Current marketplace SKU. | string |
required not null min length is 1 |
title |
Current marketplace title. | string |
required not null min 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 |
required not null min length is 1 |
quantity |
Current marketplace stock level. | integer |
required not null min is 0 |
price |
Current marketplace price. | number |
required not null min is 0 |
status |
The listing status. | enum(draft, live, void, pending_live, pending_void) |
required not null |
keep_price |
Should BladePRO keep the price. | boolean |
required not null |
keep_title |
Should BladePRO keep the title. | boolean |
required not null |
keep_description |
Should BladePRO keep the description. | boolean |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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
.
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min is 1 |
quantity |
The listed quantity. | integer |
required not null min is 0 |
marketplace_location_id |
The marketplace location ID, if enabled in the app. | integer |
required min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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> |
required not null min count is 1 |
locales |
List of locale codes. | array<string> |
required not null min 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": "21hlrfsj5-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 |
required not null |
locale |
Locale code. | string |
required not null match 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min is 1 |
resource_ids |
List of resource ID’s. | array<number> |
required not null min count is 1 |
locales |
List of resource ID’s. | array<string> |
required not null min 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": "21hlrfsj5-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
.
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
required not null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
required not null min is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
required not null min is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not null min is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
required not null min is 1 |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
channel |
The product channel’s ID. | integer |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min length is 1 max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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. | string or integer |
required not null if type is string , then min length is 3 if type is integer , then min is 1 |
reference |
Order specific reference. | string |
required not null min length is 1 |
currency |
Currency ISO code. | string |
required not null min length is 3 |
goodsouts |
List of goodsouts to create on the order. | array< Goodsout > |
required not null min count is 1 |
Address
Key | Description | Types | Restrictions |
---|---|---|---|
title |
Title. | string |
not null |
first_name |
First name. | string |
required not null |
last_name |
Last name. | string |
required not null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
required not null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
required not null |
country_id |
Country ISO 2 or ISO 3 code. | string |
required not null min length is 2 max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
required not 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 |
required not null min length is 1 |
value |
Value of the attribute | string |
required not 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 |
required not null min is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
required not 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 |
required not null min length is 3 |
date_placed |
Customer placed date. | date |
required not null |
shipping_address |
Customer shipping address. | Address |
required not null |
lines |
The list of products. | array< Line > |
required not null min 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 required not null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally required not 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 |
required not null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
required not null min is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
required not null min is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not null min is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
required not null min 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 null min length is 1 |
packing_requirements |
Packing Requirements | CreateOrderGoodsoutLinePackingRequirements |
Shipping
Key | Description | Types | Restrictions |
---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
required not null min is 0 |
shipping_code |
Shipping code. | string |
not null min length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
channel |
The product channel’s ID. | integer |
required not null min 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",
],
"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",
},
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"
},
"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"
},
"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": "21hlrfsj5-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 |
required not null min length is 3 |
order |
Order. | Order |
required not null |
date_placed |
Customer placed date. | date |
required not null |
shipping_address |
Customer shipping address. | Address |
required not null |
lines |
The list of products. | array< Line > |
required not null min 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 required not null |
gift_message_template_shortcode |
Shortcode for the gift message template to be used. If presented, gift_message is required. | string |
optionally required not 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 0 max 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 |
Attribute
Key | Description | Types | Restrictions |
---|---|---|---|
name |
Name of the attribute | string |
required not null min length is 1 |
value |
Value of the attribute | string |
required not 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 |
required not null min is 1 |
references |
References required by the label type. Use their ‘code’ field as keys in this map. | object |
required not 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 |
required not null |
net_unit_principal |
The net amount paid for a single one of these items. | number |
required not null min is 0 |
principal_tax |
The ID of the tax that should be applied to the line principal value. | integer |
required not null min is 1 |
discount |
The amount of discount to be applied to the line principal value. | number |
not null min is 0 |
discount_type |
The type of discount to apply. | enum(percentage, value) |
not null |
quantity |
The quantity ordered. | integer |
required not null min 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 null min length is 1 |
Order
Key | Description | Types | Restrictions |
---|---|---|---|
channel |
Channel’s unique short code or ID. | string or integer |
required not null if type is string , then min length is 3 if type is integer , then min is 1 |
reference |
Order specific reference. | string |
required not null min length is 1 |
currency |
Currency ISO code. | string |
required not null min length is 3 |
OrderResourceMetadata
Key | Description | Types | Restrictions |
---|---|---|---|
key |
Metadata key. | string |
required not null |
value |
Metadata value. | string |
required not null |
Shipping
Key | Description | Types | Restrictions |
---|---|---|---|
customer_principal |
The net amount the customer paid for shipping. | number |
required not null min is 0 |
shipping_code |
Shipping code. | string |
not null min length is 2 |
duty_paid |
Duty paid. | boolean |
not null |
Variation
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
channel |
The product channel’s ID. | integer |
required not null min 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": "21hlrfsj5-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 |
required not null min length is 1 |
name |
The file name. | string |
required not null min length is 1 |
extension |
The file extension. | string |
required not null min length is 1 |
mime |
The file mime. | string |
required not null min length is 1 |
category |
The document category. | enum(document) |
required not null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not null min is 0 |
mapping_template_id |
The ID for the mapping template. | integer |
required not null min is 1 |
organisation_id |
The ID for the organisation. | integer |
required not null min is 1 |
order_channel_id |
The ID for the order channel. | integer |
required not null min is 1 |
brand_id |
The ID for the brand. | integer |
required not null min is 1 |
currency_id |
The ID for the currency. | integer |
required not null min is 1 |
fields |
The array of fields of the file. | string |
required not null |
slug |
The slug. | string |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
name |
The file name. | string |
required not null min length is 1 |
extension |
The file extension. | string |
required not null min length is 1 |
mime |
The file mime. | string |
required not null min length is 1 |
category |
The document category. | enum(document) |
required not null |
paper_size |
The paper size. | enum(A4, 6x4) |
not null |
print_at_despatch |
The number of copies to print at desptach. | number |
not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min length is 0 max 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": "21hlrfsj5-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 |
required not null min length is 0 max 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": "21hlrfsj5-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 |
required not null |
last_name |
Last name. | string |
required not null |
company |
Company name. | string |
not null |
address_one |
First line of address. | string |
required not null |
address_two |
Second line of address. | string |
not null |
address_three |
Third line of address. | string |
not null |
town |
Town. | string |
required not null |
country_id |
Country ISO 2 or ISO 3 code. | string |
required not null min length is 2 max length is 3 |
county |
County. | string |
not null |
postcode |
Postcode. | string |
required not 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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 |
required not 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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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> |
required not null 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 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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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 |
required not null min is 1 |
order_references |
List of order references to check. | array<string> |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
location |
A text summary of where (location) the update has occurred. | string |
required not null min length is 1 |
tracking_number |
The specific tracking number for the update. | string |
required not null min length is 1 |
timestamp_utc |
The date/time of when the update was created (UTC format only). | date |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 4 |
name |
Name of the code. | string |
required not null min length is 1 |
duty_rate |
The duty rate applied to this customs code. | number |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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",
],
],
],
]),
"headers" => [
"Content-Type" => "application/json",
"Access-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",
},
],
},
}, {
access_token: 'my-token-from-login',
content_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"
}
]
}
},
headers: {
"Access-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"
}
]
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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 |
required not null match is /^[a-z0-9\-_.]{2,}$/i |
name |
The product’s name. | string |
required not null min length is 3 |
barcode |
The product barcode. | string |
required not null match is /^\d{3,20}$/ |
brand |
Product brand id. | integer |
required not null min is 1 |
channel |
Product channel id. | integer |
required not null min 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 required not 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 required not null min count is 1 |
Doq
Key | Description | Types | Restrictions |
---|---|---|---|
length |
Length in MM. | integer |
required not null min is 1 |
width |
Width in MM. | integer |
required not null min is 1 |
height |
Height in MM. | integer |
required not null min is 1 |
weight |
Weight in KG. | number |
required not null min is 0.001 |
quantity |
Quantity. | integer |
required not null min is 1 |
type |
Short code for the DOQ. | enum(INNER_PACK, MASTER_CASE, PALLET, SINGLE_PRODUCT) |
required not null |
shippable |
Is this a shippable item? | boolean |
required not null |
barcode |
Barcode. | string |
not null match is /^[0-9]{6,}$/ |
ExistingComponent
Key | Description | Types | Restrictions |
---|---|---|---|
id |
The product component ID. | integer |
required not null min is 1 |
quantity |
The quantity required to build the virtual product. | integer |
required not null min is 1 |
NewComponent
Key | Description | Types | Restrictions |
---|---|---|---|
perishable |
Is the product perishable? | boolean |
required not null |
organic |
Is the product organic? | boolean |
required not 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 |
required not null min length is 1 |
made_of |
Part of customs details: What is the product made of? | string |
required not null min length is 1 |
used_for |
Part of customs details: What is the product used for? | string |
required not null min length is 1 |
customs_country_of_origin_country |
The ISO2 or ISO3 code or the ID of the country of origin. | string or integer |
required not null if type is string , then min length is 1 if type is string , then max length is 3 if type is integer , then min is 1 |
product_component_customs_code_id |
Customs code ID. | integer |
required not null min is 1 |
doqs |
List of product DOQs. | array< Doq > |
required not null min count is 1 |
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": "21hlrfsj5-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": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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": "21hlrfsj5-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. | string or integer |
required not null if type is string , then min length is 2 if type is string , then max length is 2 if type is integer , then min is 1 |
name |
Name. | string |
required not null min length is 1 |
full_description |
Description. | string |
required not null min 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": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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": "21hlrfsj5-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
}
}
}
],
"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
}
],
"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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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> |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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 |
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-03-18T13:50:21.950Z",
],
"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-03-18T13:50:21.950Z",
},
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-03-18T13:50:21.950Z"
},
"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-03-18T13:50:21.950Z"
},
"lines": [
{
"sku": "DEMO-SKU-01",
"product_component_id": null,
"quantity": 3200,
"cost_price": 156.5,
"duty": 14.5
}
]
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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
}
},
"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 |
required not null |
product_component_supplier_id |
Supplier ID. | number |
required not null |
references |
List of references. | array< Reference > |
not null |
warehouse_code |
Warehouse code. | string |
required not null min length is 1 |
currency_code |
Currency code | string |
required not null min length is 3 max length is 3 |
goodsin |
First goodsin. | Goodsin |
required not null |
lines |
Products ordered. | array< Line > |
not null |
Goodsin
Key | Description | Types | Restrictions |
---|---|---|---|
expected_pallets |
Number of expected pallets. | integer |
required not null min is 0 |
expected_cartons |
Number of expected cartons. | integer |
required not null min 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) |
required not null |
expected_delivery_date |
Expected delivery date. | date |
required not null |
Line
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
Product SKU. | string |
optionally required not null min length is 1 match is /^[0-9a-z_.-]+$/i |
product_component_id |
Product component ID. | integer |
optionally required not null min is 1 |
quantity |
Ordered quantity. | integer |
required not null min is 1 |
cost_price |
Cost price. | number |
not null min is 0 |
duty |
Duty rate. | number |
not null min is 0 |
Reference
Key | Description | Types | Restrictions |
---|---|---|---|
name |
Name. | string |
required not null |
value |
Value. | string |
required not 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": "21hlrfsj5-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
}
},
"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 |
required not null min length is 1 |
product_channel_id |
Product channel ID. | number |
required not null |
currency_code |
Currency code | string |
required not null min length is 3 max length is 3 |
reference |
Reference value. | string |
required not null |
lines |
Products ordered. | array< Line > |
required not null min count is 1 |
Line
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
Product SKU. | string |
required not null min length is 1 match is /^[0-9a-z_-]+$/i |
quantity |
Ordered quantity. | integer |
required not null min 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": "21hlrfsj5-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
}
},
"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
.
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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null max length is 65535 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
items |
List of items. | array< Item > |
required not null min count is 1 |
Item
Key | Description | Types | Restrictions |
---|---|---|---|
sku |
The product’s stock keeping unit (SKU). | string |
required not null min length is 1 |
quantity |
The quantity to return. | integer |
required not null min is 1 |
action |
The return action. | enum(refund, exchange, stock) |
required not null |
reason |
The reason for return. | string |
required not null min length is 1 |
description |
The description of why the item is being returned. | string |
not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 max length is 50 |
description |
Description of the tag. | string |
required not null min length is 1 max length is 250 |
shortcode |
A unique code associated with the tag. | string |
required not null min length is 1 max length is 20 match 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" => 45,
"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: 45,
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": 45,
"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": 45,
"vendor_order": 1546
}
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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 |
required not null |
message |
The message to be recorded. | string |
required not null min 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 null match 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": "21hlrfsj5-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 |
required not null min length is 1 |
endpoint |
Endpoint to be hit. | Endpoint |
required not null |
metadata |
Metadata. | map<string, string> |
required not null min length is 0 |
payload |
Payload. | boolean or number or object or string |
required not null |
application |
Definition of the application the task belongs to. | Application |
required not null |
Application
Key | Description | Types | Restrictions |
---|---|---|---|
id |
The ID of the application. | number |
required not null |
name |
The name of the application. | string |
required not null min length is 1 |
instance_id |
The ID of the application’s instance. | number |
required not null |
Endpoint
Key | Description | Types | Restrictions |
---|---|---|---|
url |
URL. | string |
required not null min length is 1 |
method |
HTTP method. | string |
required not null match 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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-03-18T13:50:31.741Z",
"confirmed_delivery_date": "2025-03-19T13:50:31.741Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-03-13T13:50:31.741Z",
"modified": "2025-03-13T13:50:31.741Z"
}
]
}
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": "21hlrfsj5-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-03-18T13:50:31.742Z",
"confirmed_delivery_date": "2025-03-19T13:50:31.742Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-03-13T13:50:31.742Z",
"modified": "2025-03-13T13:50:31.742Z"
}
}
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-03-18T13:50:31.743Z",
]),
"headers" => [
"Content-Type" => "application/json",
"Access-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-03-18T13:50:31.743Z",
}, {
access_token: 'my-token-from-login',
content_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-03-18T13:50:31.743Z"
},
headers: {
"Access-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-03-18T13:50:31.743Z"
}'
Example result:
{
"meta": {
"request_reference": "21hlrfsj5-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-03-18T13:50:31.743Z",
"confirmed_delivery_date": "2025-03-19T13:50:31.743Z",
"submitted_quantity": 1000,
"accepted_quantity": 850,
"received_quantity": null,
"unit_cost": 12.34,
"created": "2025-03-13T13:50:31.743Z",
"modified": "2025-03-13T13:50:31.743Z"
}
}
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 |
required not null min is 1 |
accepted_quantity |
Accepted quantity. | integer |
required not null min is 0 |
expected_delivery_date |
Expected delivery date. | date |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null max 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": "21hlrfsj5-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-03-13T13:50:31.737Z",
"deliver_from": "2025-03-18T13:50:31.737Z",
"deliver_to": "2025-03-23T13:50:31.737Z",
"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-03-13T13:50:31.737Z",
"modified": "2025-03-13T13:50:31.737Z"
}
]
}
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-05-20T00:00:00.000Z",
"deliver_from" => "2025-05-20T00:00:00.000Z",
"deliver_to" => "2025-05-27T00: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-03-18T13:50:31.739Z",
"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-05-20T00:00:00.000Z",
deliver_from: "2025-05-20T00:00:00.000Z",
deliver_to: "2025-05-27T00: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-03-18T13:50:31.739Z",
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-05-20T00:00:00.000Z",
"deliver_from": "2025-05-20T00:00:00.000Z",
"deliver_to": "2025-05-27T00: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-03-18T13:50:31.739Z",
"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-05-20T00:00:00.000Z",
"deliver_from": "2025-05-20T00:00:00.000Z",
"deliver_to": "2025-05-27T00: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-03-18T13:50:31.739Z",
"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": "21hlrfsj5-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-03-13T13:50:31.738Z",
"deliver_from": "2025-03-18T13:50:31.738Z",
"deliver_to": "2025-03-23T13:50:31.738Z",
"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-03-13T13:50:31.738Z",
"modified": "2025-03-13T13:50:31.738Z"
}
}
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 |
required not null min is 1 |
vendor_order |
The vendor order. | VendorOrder |
required not null |
Item
Key | Description | Types | Restrictions |
---|---|---|---|
product_variation_id |
ID of the product variation. | integer |
required min is 1 |
model_number |
Model number. | string |
required min length is 1 max length is 191 |
asin |
ASIN. | string |
required min length is 1 max length is 191 |
sku |
SKU. | string |
required min length is 1 max length is 191 |
name |
Product name. | string |
required min length is 1 max length is 191 |
expected_delivery_date |
Expected delivery date. | date |
required |
submitted_quantity |
Submitted quantity. | integer |
required not null min is 1 |
unit_cost |
Unit cost. | number |
required not null |
VendorOrder
Key | Description | Types | Restrictions |
---|---|---|---|
code |
Third party ID. | string |
required not null min length is 1 max length is 100 |
vendor |
Description of the vendor. | string |
required not null min length is 1 max length is 191 |
warehouse |
Delivery destination. | string |
required min length is 1 max length is 191 |
ordered_on |
Date of ordering as described by the third party. | date |
required not null |
deliver_from |
Start date of requested delivery window. | date |
required not null |
deliver_to |
End date of requested delivery window. | date |
required not null |
freight_terms |
Freight terms. | string |
required min length is 1 max length is 191 |
payment_method |
Payment method. | string |
required min length is 1 max length is 191 |
payment_terms |
Payment terms. | string |
required min length is 1 max length is 191 |
purchasing_entity |
Purchasing entity. | string |
required min length is 1 max length is 191 |
delivery_party |
Delivery Party. | string |
required min length is 1 max length is 191 |
currency_id |
ISO code of currency. | string |
required not null min length is 2 max length is 3 match is /^[A-Z]{2,3}$/i |
items |
Vendor order items. | array< Item > |
required not null min 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 |
required min length is 2 max length is 3 match 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": "21hlrfsj5-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-03-13T13:50:31.740Z",
"deliver_from": "2025-03-18T13:50:31.740Z",
"deliver_to": "2025-03-23T13:50:31.740Z",
"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-03-13T13:50:31.740Z",
"modified": "2025-03-13T13:50:31.740Z"
}
}
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": "21hlrfsj5-c893v86"
},
"data": {
"id": 123,
"code": "QWER123ASD",
"status": "processing",
"vendor": "VEN-01",
"ordered_on": "2025-03-13T13:50:31.740Z",
"deliver_from": "2025-03-18T13:50:31.740Z",
"deliver_to": "2025-03-23T13:50:31.740Z",
"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-03-13T13:50:31.741Z",
"modified": "2025-03-13T13:50:31.741Z"
}
}
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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null |
location |
Location details. | CreateVirtualWarehouseLocation |
required not null |
CreateVirtualWarehouseLocation
Key | Description | Types | Restrictions |
---|---|---|---|
barcode |
Identifier of the location the virtual warehouse starts out with. | string |
required not null min length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
required not null |
Warehouse
Key | Description | Types | Restrictions |
---|---|---|---|
name |
Name. | string |
required not null min length is 1 |
description |
Description. | string |
required not null min length is 0 |
api_managed_only |
Is this warehouse managed by an API? | boolean |
required not null |
location_creation_enabled |
Is creating additional locations allowed? | boolean |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null min length is 1 |
sellable |
Should the stock in this location be considered sellable? | boolean |
required not 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": "21hlrfsj5-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": "21hlrfsj5-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": "21hlrfsj5-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 |
required not null not 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": "21hlrfsj5-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 |
required not null min 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": "21hlrfsj5-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 null min is 1 |
product_variation_id |
Product variation ID. | integer |
required not null min is 1 |
quantity |
Quantity to adjust the stock by. | integer |
required not null not 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": "21hlrfsj5-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 > |
required not null min count is 1 |
set_skipped_skus_to_zero |
Should unlisted products in the listed locations be set to 0 quantity? | boolean |
required not null |
Stock
Key | Description | Types | Restrictions |
---|---|---|---|
location_id |
Virtual warehouse location ID. Required if the warehouse allows for multiple locations. | integer |
not null min is 1 |
product_variation_id |
Product variation ID. | integer |
required not null min is 1 |
quantity |
Quantity to set the stock to. | integer |
required not null min 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": "21hlrfsj5-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": "21hlrfsj5-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"
}
]
}
]
}
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"
}
]
}