Bulk insert to inventory - Fabric

Bulk insert to inventory

cURL

curl --request POST \
  --url https://prod01-apigw.yourcompany.fabric.zone/api-inventory/inventory/bulk-insert \
  --header 'Content-Type: application/json' \
  --header 'x-site-context: <x-site-context>' \
  --data '\n[\
  {\
    "sku": "1597422",\
    "itemId": 1597422,\
    "totalQuantity": 25,\
    "reservedQuantity": 0,\
    "locationId": 175,\
    "type": "Stock",\
    "channelId": 12,\
    "transitRef": "wo-2002",\
    "transitOrderDate": "2019-12-14",\
    "transitStockDate": "2019-12-14"\
  }\
]'

Python

import requests

url = "https://prod01-apigw.yourcompany.fabric.zone/api-inventory/inventory/bulk-insert"

payload = [\
    {\
        "sku": "1597422",\
        "itemId": 1597422,\
        "totalQuantity": 25,\
        "reservedQuantity": 0,\
        "locationId": 175,\
        "type": "Stock",\
        "channelId": 12,\
        "transitRef": "wo-2002",\
        "transitOrderDate": "2019-12-14",\
        "transitStockDate": "2019-12-14"\
    }\
]
headers = {\
    "x-site-context": "<x-site-context>",\
    "Content-Type": "application/json"\
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)

JavaScript (Fetch)

const options = {\
  method: 'POST',\
  headers: {'x-site-context': '<x-site-context>', 'Content-Type': 'application/json'},\
  body: JSON.stringify([\
    {\
      sku: '1597422',\
      itemId: 1597422,\
      totalQuantity: 25,\
      reservedQuantity: 0,\
      locationId: 175,\
      type: 'Stock',\
      channelId: 12,\
      transitRef: 'wo-2002',\
      transitOrderDate: '2019-12-14',\
      transitStockDate: '2019-12-14'\
    }\
  ])\
};

fetch('https://prod01-apigw.yourcompany.fabric.zone/api-inventory/inventory/bulk-insert', options)
  .then(res => res.json())\
  .then(res => console.log(res))\
  .catch(err => console.error(err));

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, [\
  CURLOPT_URL => "https://prod01-apigw.yourcompany.fabric.zone/api-inventory/inventory/bulk-insert",\
  CURLOPT_RETURNTRANSFER => true,\
  CURLOPT_ENCODING => "",\
  CURLOPT_MAXREDIRS => 10,\
  CURLOPT_TIMEOUT => 30,\
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\
  CURLOPT_CUSTOMREQUEST => "POST",\
  CURLOPT_POSTFIELDS => json_encode([\
    [\
        'sku' => '1597422',\
        'itemId' => 1597422,\
        'totalQuantity' => 25,\
        'reservedQuantity' => 0,\
        'locationId' => 175,\
        'type' => 'Stock',\
        'channelId' => 12,\
        'transitRef' => 'wo-2002',\
        'transitOrderDate' => '2019-12-14',\
        'transitStockDate' => '2019-12-14'\
    ]\
  ]),\
  CURLOPT_HTTPHEADER => [\
    "Content-Type: application/json",\
    "x-site-context: <x-site-context>"\
  ],\
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>

Responses

Successful Response

{
  "messages": [\
    "Import Inventory job started: Mon Nov 02 2020 22:26:10 GMT+0000 (Coordinated Universal Time)"\
  ],
  "keyId": "api-1604355970096",
  "type": "api",
  "status": "FINISHED",
  "totalItems": 1,
  "totalItemsUploaded": 1,
  "totalRows": 2,
  "totalRowsErrors": 2,
  "__v": 0,
  "_id": "5fee9d59f2f08a1b3cbdea08",
  "createdAt": "2020-12-31T02:09:53.914Z",
  "updatedAt": "2020-12-31T02:09:53.914Z"
}

Error Response (Inventory Insert Failed)

{
  "code": "INVENTORY_INSERT_FAILED",
  "message": "Inventory insert failed: Row 1: Cannot find \"Location Id\" 999."
}

Other Error Responses

{
  "message": "Forbidden"
}
{
  "code": "<string>",
  "message": "<string>"
}