Back to top

Nordic Digital API

Nordic Digital API is a simple RESTful (JSON only) interface over HTTPS that enables third-parties to access functionality of the Nordic Digital e-commerce system. We follow the RESTful principles, so the API is stateless and http methods and response codes are used whenever possible.

This document should be used by customers who wish to integrate Nordic Digital into their applications.

The base URL for the requests is: https://api.nordic-digital.com/v1

Introduction

To access this API please contact your salesman or apply for an access to API by sending e-mail to info@nordic-digital.ee

Revision history

Date Version Description
25/01/2018 1.2.4 Added following parameters for Product API endpoints:
net_weight - is in KG. If no data available returns 0.
width - is in CM. If no data available returns 0.
height - is in CM. If no data available returns 0.
depth - is in CM. If no data available returns 0.
origin_country_code - 2-digit ISO code of origin country. Empty if no data available.
origin_country_name - Origin country name in english. Empty if no data available.
04/12/2018 1.2.3 Added cn_code to Product API endpoints.
05/09/2017 1.2.2 Added gross_weight to Product API endpoints. Weight is in KG. If no data available, returns 0
11/07/2017 1.2.1 Added dispatch_time to Stock API endpoints. Displays how many days will take to dispatch product from warehouse.
01/06/2016 1.2 Added Order endpoint for placing orders via API
19/02/2016 1.1 Added per_page parameter for Stock and Product API endpoints
12/10/2015 1 Initial version of API launched

Rate Limits

Each user account is allowed to make up to 30 000 API requests per day (86400 seconds). If this limit is exceeded, the response will contain an HTTP 429 Too Many Requests response code. To help API clients comply with this rate limit, every response to an authenticated call includes these headers:

X-Rate-Limit-Limit The maximum number of API requests allowed
X-Rate-Limit-Remaining The number of API requests remaining for this client before reaching the limit
X-Rate-Limit-Reset The time remaining (in seconds) until the limit resets

Verbs

We use restful verbs.

Verb Description
GET Used to select one or more items. Success returns 200 status code with JSON result item(s) in body.
POST Used to create a new item. Success returns 201 status code with newly created JSON item in body.
PUT Used to update an item. Success returns 200 status code with updated JSON item in body.
DELETE Used to delete an item. Success returns 204 status code with no body.

Status Codes

We’ll respond with one of the following status codes.

Code Description
200 OK Success
201 Created Success - new resource created.
204 No Content Success - no content to return.
302 Redirect Redirect to another resource
400 Bad Request Bad Request - i.e. your request couldn’t be parsed.
403 Forbidden Forbidden - Resource is not accessible by the client
401 Unauthorized Unauthorized - user is not logged in, cannot access resource.
404 Not Found Not Found - resource doesn’t exist.
422 Unprocessable Entity Unprocessable Entity - i.e. validation errors.
429 Too many requests Rate limit exceeded, try again later.
500 Internal Server Error Server error.

Errors

Any 4xx and 5xx response is an error. In addition to the http code we will return additional information in the response payload as follows:

{ “status”: “same as http status code e.g 404”,
“message”: “human readable error message”, “data”: “any additional data information the api may want to send back as json” }

Ping

This is a simple Ping resource which can be used for the clients to ensure the server API is currently running. This resource is not X-Rate-Limit’ed

Perform Ping
GET/ping

Example:

Example URI

GET https://api.nordic-digital.com/v1/ping
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "status": 200,
    "message": 'Pong - 2015-10-01 15:53:41'
}

Authentication

Basic Auth

Authentication to this API occurs via Basic HTTP Auth.

It’s done by sending an Authorization header with the text Basic followed by a base64 encoded string of API Key.

Provide your API Key (found in the My account section ) as the Basic Auth username. Do not provide a password.

curl "https://api.nordic-digital.com/v1/category"
-H "Authorization: Basic QVBJIEtleQ=="

which using Curl is equivalent to (append colon : to the API Key)

curl "https://api.nordic-digital.com/v1/category"
-u "API Key:"

Prerequisites

Collections of resources which might be needed before importing Product catalog and stock

Categories

List all categories
GET/category

Get all Categories with their children Categories and products count. Successful Response 200 will be returned in JSON format. Example:

Example URI

GET https://api.nordic-digital.com/v1/category
Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Category",
    "url": "/v1/category"
  },
  "categories": [
    {
      "id": 426,
      "parent_id": 2,
      "level_depth": 2,
      "products": 479,
      "name": {
        "en": "Cameras",
        "et": "Kaamerad"
      }
    },
    {
      "id": 205,
      "parent_id": 2,
      "level_depth": 2,
      "products": 3,
      "name": {
        "en": "Photo",
        "et": "Fotokaubad"
      },
      "children": [
        {
          "id": 409,
          "parent_id": 205,
          "level_depth": 3,
          "products": 1220,
          "name": {
            "en": "Archival accessories",
            "et": "Arhiveerimistarvikud"
          }
        },
        {
          "id": 203,
          "parent_id": 205,
          "level_depth": 3,
          "products": 79,
          "name": {
            "en": "Binoculars",
            "et": "Binoklid"
          }
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "type": "array",
  "title": "Category schema",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "Unique category identifier"
      },
      "parent_id": {
        "type": "integer",
        "description": "Unique parent category identifier"
      },
      "level_depth": {
        "type": "integer",
        "description": "Category level depth"
      },
      "products": {
        "type": "integer",
        "description": "Products count in category"
      },
      "name": {
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "et": {
            "type": "string"
          },
          "ru": {
            "type": "string"
          },
          "lv": {
            "type": "string"
          }
        },
        "description": "Category name in different languages"
      },
      "children": {
        "type": "array",
        "$ref": "#/items/properties"
      }
    }
  }
}

Feature groups

List all feature groups
GET/feature-group

Each product belongs to Feature group which describes the product type. Products can be filtered by their Feature group. Get all Feature groups with their children Categories and products count. Successful Response 200 will be returned in JSON format. Example:

Example URI

GET https://api.nordic-digital.com/v1/feature-group
Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Feature group",
    "url": "/v1/feature"
  },
  "features": [
    {
      "id": 1,
      "products": 168,
      "name": {
        "en": "Camera battery",
        "et": "Spetsiaalakud"
      }
    },
    {
      "id": 3,
      "products": 474,
      "name": {
        "en": "Lenses",
        "et": "Objektiivid"
      }
    },
    {
      "id": 5,
      "products": 91,
      "name": {
        "en": "Batteries",
        "et": "Patareid"
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "type": "array",
  "title": "Feature group schema",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "Unique feature group identifier"
      },
      "products": {
        "type": "integer",
        "description": "Products count"
      },
      "name": {
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "et": {
            "type": "string"
          },
          "ru": {
            "type": "string"
          },
          "lv": {
            "type": "string"
          }
        },
        "description": "Feature group name in different languages"
      }
    }
  }
}

Brands

Each product belongs to Brand/Manufacturer.

List all brands
GET/brand

Get all Brand names with product count. Successful Response 200 will be returned in JSON format. Example:

Example URI

GET https://api.nordic-digital.com/v1/brand
Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Brands",
    "url": "/v1/brand"
  },
  "brands": [
    {
      "id": 2,
      "products": 28,
      "name": "Camgloss"
    },
    {
      "id": 3,
      "products": 2,
      "name": "Acer"
    },
    {
      "id": 4,
      "products": 4,
      "name": "Adobe"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "type": "array",
  "title": "Brands schema",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "Unique brand identifier"
      },
      "products": {
        "type": "integer",
        "description": "Products count"
      },
      "name": {
        "type": "string",
        "description": "Brand name"
      }
    }
  }
}

Product

Product related resources. Here you can return products with their images, prices, stock and specification tables.

Products

List all products
GET/product{?ids,cat,fg,brand,page,sort,per_page}

Get all or filtered products. Products are returned in batches of 100. Example:

Example URI

GET https://api.nordic-digital.com/v1/product?ids=5647,7859&cat=205&fg=68&brand=50&page=1&sort=id&per_page=1
URI Parameters
HideShow
ids
string (optional) Example: 5647,7859

Product ID or comma separated list of product IDs

cat
string (optional) Example: 205

Category ID or comma separated list 205,429 which can be obtained from Categories resource

fg
string (optional) Example: 68

Feature group ID or comma separated list 68,89 which can be obtained from Feature groups resource

brand
string (optional) Example: 50

Brand ID or comma separated list 50,189 which can be obtained from Brands resource

page
integer (optional) Default: 1 Example: 1

Page number of request

per_page
integer (optional) Default: 100 (max: 1000) Example: 1

Limit items per page

sort
string (optional) Default: id Example: id

Which field to sort by

Choices: id -id created_at -created_at updated_at -updated_at

Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Product",
    "url": "/v1/product",
    "total": 8339,
    "paging": {
      "currentPage": 1,
      "maxPerPage": 100,
      "totalPages": 84,
      "_links": {
        "first": "/v1/product?page=1",
        "last": "/v1/product?page=84",
        "next": "/v1/product?page=2"
      }
    }
  },
  "products": [
    {
      "id": 3,
      "reference": "36571",
      "manufacturer_code": "V103070BE000",
      "cn_code": "",
      "warehouse": true,
      "id_feature_group": 186,
      "id_category": 426,
      "gross_weight": 0.456,
      "net_weight": 0.4,
      "width": 10,
      "height": 10,
      "depth": 10,
      "origin_country_code": "CH",
      "origin_country_name": "China",
      "brand": {
        "id": 50,
        "name": "Olympus"
      },
      "created_at": "2014-06-10 13:49:25",
      "updated_at": "2015-09-30 01:05:58",
      "barcodes": [
        "4545350046255",
        "05033218736"
      ],
      "_links": {
        "self": "/v1/product/3",
        "resources": "/v1/product/3/resources",
        "features": "/v1/product/3/features",
        "stock": "/v1/product/3/stock"
      },
      "name": {
        "en": "Olympus Stylus SP-100EE",
        "et": "Olympus Stylus SP-100EE"
      },
      "description": {
        "en": "<ul>\r\n<li>High‑performance 50&times; zoom lens</li> ...",
        "et": "<ul>\r\n<li>V&otilde;imas, 50&times; suumiga objektiiv</li> ..."
      },
      "description_short": {
        "en": "16 megapixels, 50&times; optical zoom (24-1200 mm), optical stabilizer...",
        "et": "16 megapiksliga CMOS sensor, 50&times; optiline suum (24-1200 mm) ..."
      }
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "type": "array",
  "maxItems": 100,
  "title": "Products schema",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "Unique product identifier"
      },
      "reference": {
        "type": "string",
        "description": "Reference code (displayed in ordering system)"
      },
      "manufacturer_code": {
        "type": "string",
        "description": "Manufacturer code. Might not be 100% accurate"
      },
      "cn_code": {
        "type": "string",
        "description": "CN code. Might not be 100% accurate"
      },
      "warehouse": {
        "type": "boolean",
        "description": "Is product located in our warehouse"
      },
      "id_feature_group": {
        "type": "integer",
        "description": "Products feature group identifier"
      },
      "id_category": {
        "type": "integer",
        "description": "Products category identifier"
      },
      "gross_weight": {
        "type": "float",
        "description": "Product gross weight"
      },
      "net_weight": {
        "type": "float",
        "description": "Product net weight"
      },
      "width": {
        "type": "float",
        "description": "Product package width(cm)"
      },
      "height": {
        "type": "float",
        "description": "Product package height(cm)"
      },
      "depth": {
        "type": "float",
        "description": "Product package depth(cm)"
      },
      "origin_country_code": {
        "type": "string",
        "description": "2-digit ISO code of origin country"
      },
      "origin_country_name": {
        "type": "string",
        "description": "Name of origin country"
      },
      "brand": {
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "description": "Product manufacturer/brand"
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "description": "Datetime of product creation"
      },
      "updated_at": {
        "type": "string",
        "format": "date-time",
        "description": "Datetime of last product update"
      },
      "barcodes": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Product EAN - Barcodes"
      },
      "_links": {
        "type": "object",
        "properties": {
          "self": {
            "type": "string"
          },
          "resources": {
            "type": "string"
          },
          "features": {
            "type": "string"
          },
          "stock": {
            "type": "string"
          }
        },
        "required": [
          "self",
          "resources",
          "features",
          "stock"
        ],
        "description": "Product related resource links."
      },
      "name": {
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "et": {
            "type": "string"
          },
          "ru": {
            "type": "string"
          },
          "lv": {
            "type": "string"
          }
        },
        "description": "Product name in different languages"
      },
      "description": {
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "et": {
            "type": "string"
          },
          "ru": {
            "type": "string"
          },
          "lv": {
            "type": "string"
          }
        },
        "description": "Product description in different languages"
      },
      "description_short": {
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "et": {
            "type": "string"
          },
          "ru": {
            "type": "string"
          },
          "lv": {
            "type": "string"
          }
        },
        "description": "Product short description in different languages"
      }
    },
    "required": [
      "id",
      "reference",
      "manufacturer_code",
      "warehouse",
      "id_feature_group",
      "id_category",
      "gross_weight",
      "brand",
      "created_at",
      "updated_at",
      "barcodes",
      "_links"
    ]
  }
}

Product stock

Product stock and prices
GET/product/{id}/stock

Get product stock status with prices. Example:

Example URI

GET https://api.nordic-digital.com/v1/product/4/stock
URI Parameters
HideShow
id
string (required) Example: 4

Product ID

Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Product stock",
    "url": "/v1/product/4/stock"
  },
  "stock": [
    {
      "id": 4,
      "reference": "36569",
      "manufacturer_code": "V315030SE000",
      "warehouse": true,
      "prices": {
        "rrp": 349,
        "rrp_campaign": 329,
        "wholesale": 232.6667
      },
      "quantity": 1,
      "dispatch_time": "0-1 days",
      "_links": {
        "product": "/v1/product/4"
      },
      "created_at": "2014-06-10 13:49:28",
      "updated_at": "2015-09-30 01:05:58"
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "type": "array",
  "maxItems": 500,
  "title": "Stock schema",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "Unique product identifier"
      },
      "reference": {
        "type": "string",
        "description": "Reference code (displayed in ordering system)"
      },
      "manufacturer_code": {
        "type": "string",
        "description": "Manufacturer code. Might not be 100% accurate"
      },
      "warehouse": {
        "type": "boolean",
        "description": "Is product located in our warehouse"
      },
      "prices": {
        "type": "object",
        "properties": {
          "rrp": {
            "type": "number",
            "description": "Recommended retail price for product. Tax incl."
          },
          "rrp_campaign": {
            "type": "number",
            "description": "Recommended retail price for product. On discount campaign. Tax incl."
          },
          "wholesale": {
            "type": "number",
            "description": "Wholesale price for product. Tax excluded."
          },
          "wholesale_client": {
            "type": "number",
            "description": "Clients personal wholesale price for product. Tax excluded."
          }
        },
        "required": [
          "rrp",
          "wholesale"
        ],
        "description": "Product prices"
      },
      "quantity": {
        "type": "integer",
        "minimum": 0,
        "description": "Current product stock in warehouse"
      },
      "dispatch_time": {
        "type": "string",
        "description": "Time it takes for product to leave warehouse"
      },
      "created_at": {
        "type": "string",
        "format": "date-time",
        "description": "Datetime of product creation"
      },
      "updated_at": {
        "type": "string",
        "format": "date-time",
        "description": "Datetime of last product update"
      },
      "_links": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string"
          }
        },
        "required": [
          "product"
        ],
        "description": "Product resource link."
      }
    },
    "required": [
      "id",
      "reference",
      "manufacturer_code",
      "warehouse",
      "prices",
      "quantity",
      "dispatch_time",
      "created_at",
      "updated_at",
      "_links"
    ]
  }
}

Product resources

Product resources
GET/product/{id}/resources

Get product resources. Example:

Example URI

GET https://api.nordic-digital.com/v1/product/4/resources
URI Parameters
HideShow
id
string (required) Example: 4

Product ID

Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Product Resources",
    "url": "/v1/product/2755/resources"
  },
  "resources": {
    "images": [
      {
        "id": 583992,
        "url": "https://static2.nordic.pictures/583992/original.jpg",
        "default": true
      },
      {
        "id": 583991,
        "url": "https://static1.nordic.pictures/583991/original.jpg"
      }
    ],
    "videos": [
      {
        "id": "OfK-OYPNbqM",
        "url": "https://youtube.com/OfK-OYPNbqM",
        "source": "youtube"
      }
    ]
  }
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "title": "Product resources",
  "items": {
    "type": "object",
    "properties": {
      "images": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "description": "Unique product identifier"
            },
            "url": {
              "type": "string",
              "description": "Location URL of resource"
            },
            "default": {
              "type": "boolean",
              "description": "Is resource default or cover resource"
            }
          },
          "required": [
            "id",
            "url"
          ]
        }
      },
      "videos": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "description": "Unique product identifier"
            },
            "url": {
              "type": "string",
              "description": "Location URL of resource"
            },
            "source": {
              "type": "string",
              "description": "Resource source media"
            }
          },
          "required": [
            "id",
            "url",
            "source"
          ]
        }
      }
    }
  }
}

Product features

Product features
GET/product/{id}/features

Get product features (specification table). Example:

Example URI

GET https://api.nordic-digital.com/v1/product/4/features
URI Parameters
HideShow
id
string (required) Example: 4

Product ID

Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
  "resource": {
    "name": "Product features",
    "url": "/v1/product/2755/features"
  },
  "features": [
    {
      "group_id": 173,
      "group_name": {
        "en": "Software",
        "et": "Tarkvara"
      },
      "features": [
        {
          "feature": {
            "id": 1141,
            "name": {
              "en": "Operating system",
              "et": "Operatsioonisüsteem"
            }
          },
          "value": {
            "id": 8278,
            "value": {
              "en": "iOS 6.0",
              "et": "iOS 6.0"
            }
          }
        }
      ]
    }
  ]
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema",
  "type": "array",
  "title": "Product features",
  "items": {
    "type": "object",
    "properties": {
      "group_id": {
        "type": "integer",
        "description": "Unique feature group identifier"
      },
      "group_name": {
        "type": "object",
        "properties": {
          "en": {
            "type": "string"
          },
          "et": {
            "type": "string"
          },
          "ru": {
            "type": "string"
          },
          "lv": {
            "type": "string"
          }
        },
        "description": "Feature group name in different languages"
      },
      "features": {
        "type": "array",
        "properties": {
          "feature": {
            "id": {
              "type": "integer",
              "description": "Unique feature identifier"
            },
            "name": {
              "type": "object",
              "properties": {
                "en": {
                  "type": "string"
                },
                "et": {
                  "type": "string"
                },
                "ru": {
                  "type": "string"
                },
                "lv": {
                  "type": "string"
                }
              },
              "description": "Feature name in different languages"
            }
          },
          "value": {
            "id": {
              "type": "integer",
              "description": "Unique feature value identifier"
            },
            "value": {
              "type": "object",
              "properties": {
                "en": {
                  "type": "string"
                },
                "et": {
                  "type": "string"
                },
                "ru": {
                  "type": "string"
                },
                "lv": {
                  "type": "string"
                }
              },
              "description": "Feature value in different languages"
            }
          }
        },
        "required": [
          "feature",
          "value"
        ]
      },
      "required": [
        "group_id",
        "group_name",
        "features"
      ]
    }
  }
}

Stock

Stock related resources. Get prices and stock for all products. Returns 500 items per page.

Stock

List all stock and prices
GET/stock{?ids,cat,fg,brand,page,sort,per_page}

Get all or filtered products stock status with prices. Results are returned in batches of 100. Example:

Example URI

GET https://api.nordic-digital.com/v1/stock?ids=5647,7859&cat=205&fg=68&brand=50&page=1&sort=id&per_page=1
URI Parameters
HideShow
ids
string (optional) Example: 5647,7859

Product ID or comma separated list of product IDs

cat
string (optional) Example: 205

Category ID or comma separated list 205,429 which can be obtained from Categories resource

fg
string (optional) Example: 68

Feature group ID or comma separated list 68,89 which can be obtained from Feature groups resource

brand
string (optional) Example: 50

Brand ID or comma separated list 50,189 which can be obtained from Brands resource

page
integer (optional) Default: 1 Example: 1

Page number of request

per_page
integer (optional) Default: 500 (max: 3000) Example: 1

Limit items per page

sort
string (optional) Default: id Example: id

Which field to sort by

Choices: id -id created_at -created_at updated_at -updated_at

Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 298
X-RateLimit-Reset: 3172
X-Cache-TTL: 0
Body
{
    "resource": {
        "name": "Stock",
        "url": "/v1/stock",
        "total": 8339,
        "paging": {
            "currentPage": 1,
            "maxPerPage": 500,
            "totalPages": 17,
            "_links": {
                "first": "/v1/stock?page=1",
                "last": "/v1/stock?page=17",
                "next": "/v1/stock?page=2"
            }
        }
    },
    "stock": [
        {
            "id": 4,
            "reference": "36569",
            "manufacturer_code": "V315030SE000",
            "warehouse": true,
            "prices": {
                "rrp": 349,
                "rrp_campaign": 329,
                "wholesale": 332.6667,
                "wholesale_client": 275,
            },
            "quantity": 1,
            "dispatch_time": "0-1 days",
            "_links": {
                "product": "/v1/product/4"
            }
        }
    ]
}
Schema
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "type": "array",
    "maxItems": 500,
    "title": "Stock schema",
    "items": {
        "type": "object",
        "properties": {
            "id": {
                "type": "integer",
                "description": "Unique product identifier"
            },
            "reference": {
                "type": "string",
                "description": "Reference code (displayed in ordering system)"
            },
            "manufacturer_code": {
                "type": "string",
                "description": "Manufacturer code. Might not be 100% accurate"
            },
            "warehouse": {
                "type": "boolean",
                "description": "Is product located in our warehouse"
            },
            "prices": {
                "type": "object",
                "properties": {
                    "rrp": {
                        "type": "number",
                        "description": "Recommended retail price for product. Tax incl."
                    },
                    "rrp_campaign": {
                        "type": "number",
                        "description": "Recommended retail price for product. On discount campaign. Tax incl."
                    },
                    "wholesale": {
                        "type": "number",
                        "description": "Wholesale price for product. Tax excluded."
                    },
                    "wholesale_client": {
                        "type": "number",
                        "description": "Clients personal wholesale price for product. Tax excluded."
                    }
                },
                "required": [
                    "rrp",
                    "wholesale"
                ],
                "description": "Product prices"
            },
            "quantity": {
                "type": "integer",
                "minimum": 0,
                "description": "Current product stock in warehouse"
            },
            "dispatch_time": {
                "type": "string",
                "description": "Time it takes for product to leave warehouse"
            },
            "created_at": {
                "type": "string",
                "format": "date-time",
                "description": "Datetime of product creation"
            },
            "updated_at": {
                "type": "string",
                "format": "date-time",
                "description": "Datetime of last product update"
            },
            "_links": {
                "type": "object",
                "properties": {
                    "product": {
                        "type": "string"
                    }
                },
                "required": ["product"],
                "description": "Product resource link."
            }
        },
        "required": [
            "id",
            "reference",
            "manufacturer_code",
            "warehouse",
            "prices",
            "quantity",
            "dispatch_time",
            "created_at",
            "updated_at",
            "_links"
        ]
    }
}

Order

Order related resources. Get order addresses and place order via API.

Order Addresses

Order addresses
GET/order/addresses

Get all possible addresses, where it’s possible to order products

Example URI

GET https://api.nordic-digital.com/v1/order/addresses
Response  200
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 300
X-RateLimit-Reset: 3172
Body
{
    "resource": {
        "name": "OrderAddresses",
        "url": "/v1/order/addresses"
    },
    "addresses": [
        {
            "id": 45832,
            "alias": "Eedeni ladu",
            "address": "Kalda tee 1c, Tartu, Eesti"
        },
        {
            "id": 45836,
            "alias": "Kristiine ladu",
            "address": "Endla 45, 10615 Tallinn, Eesti"
        }
    }
}
Schema
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "type": "array",
    "title": "Order addresses",
    "items": {
        "type": "object",
        "properties": {
            "id": {
                "type": "integer",
                "description": "Unique address id identifier"
            },
            "alias": {
                "type": "string",
                "description": "Location address alias name"
            },
            "address": {
                "type": "string",
                "description": "Location address"
            }
        }
    }
}

Order

Order
POST/order

Send JSON as body for creating order. Send Key:Value pairs for “products”, where Key is products reference number and value is desired quantity, see Request Create order for example. Retrieve address_id from /order/addresses endpoint.

Example URI

POST https://api.nordic-digital.com/v1/order
Request  Create order
HideShow
Headers
Content-Type: application/json
Body
{
  "products": {
    "31367": 1,
    "33520": 10
  },
  "address_id": 44036
}
Response  201
HideShow
Headers
Content-Type: application/json
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 300
X-RateLimit-Reset: 3172
Body
{
  "resource": {
    "name": "Order",
    "url": "/v1/order"
  },
  "order": {
    "success": true,
    "message": "Order NDO1606010005 created",
    "order_id": "NDO1606010005"
  }
}

Generated by aglio on 17 Apr 2024