Create a location - Fabric

Create a location

cURL

curl --request POST \
  --url https://api.fabric.inc/v3/locations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
  --data '
{
  "locationNumber": 23,
  "name": "Seattle Store",
  "isActive": true,
  "type": "DC",
  "capacity": {
    "maxAllocations": 30,
    "infiniteAllocation": true,
    "allocationPercentage": 20,
    "isCapacityFull": true
  },
  "services": {
    "brand": "WHBM",
    "channel": "Frontline"
  },
  "operatingHours": [
    {
      "day": "SUNDAY",
      "hours": [
        {
          "open": 10,
          "close": 20,
          "type": "PICK_UP"
        }
      ]
    }
  ],
  "coordinates": {
    "type": "Point",
    "coordinates": [
      -122.3493,
      47.6205
    ]
  },
  "attributes": {
    "isReturns": "true"
  },
  "supportedCarriers": [
    {
      "carrier": "FedEx",
      "serviceLevels": [
        {
          "name": "FedEx",
          "shippingMethod": "FedEx"
        }
      ]
    }
  ],
  "activeFulfillmentMethods": {
    "ShipToHome": "true"
  },
  "transfer": {
    "isAutoReceiving": true,
    "autoStockWindow": "PT10M"
  }
}
'

Python Example

import requests

url = "https://api.fabric.inc/v3/locations"

payload = {
    "locationNumber": 23,
    "name": "Seattle Store",
    "isActive": True,
    "type": "DC",
    "capacity": {
        "maxAllocations": 30,
        "infiniteAllocation": True,
        "allocationPercentage": 20,
        "isCapacityFull": True
    },
    "services": {
        "brand": "WHBM",
        "channel": "Frontline"
    },
    "operatingHours": [
        {
            "day": "SUNDAY",
            "hours": [
                {
                    "open": 10,
                    "close": 20,
                    "type": "PICK_UP"
                }
            ]
        }
    ],
    "coordinates": {
        "type": "Point",
        "coordinates": [-122.3493, 47.6205]
    },
    "attributes": { "isReturns": "true" },
    "supportedCarriers": [
        {
            "carrier": "FedEx",
            "serviceLevels": [
                {
                    "name": "FedEx",
                    "shippingMethod": "FedEx"
                }
            ]
        }
    ],
    "activeFulfillmentMethods": { "ShipToHome": "true" },
    "transfer": {
        "isAutoReceiving": True,
        "autoStockWindow": "PT10M"
    }
}
headers = {
    "x-fabric-tenant-id": "<x-fabric-tenant-id>",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.text)

JavaScript Example

const options = {
  method: 'POST',
  headers: {
    'x-fabric-tenant-id': '<x-fabric-tenant-id>',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    locationNumber: 23,
    name: 'Seattle Store',
    isActive: true,
    type: 'DC',
    capacity: {
      maxAllocations: 30,
      infiniteAllocation: true,
      allocationPercentage: 20,
      isCapacityFull: true
    },
    services: {brand: 'WHBM', channel: 'Frontline'},
    operatingHours: [{day: 'SUNDAY', hours: [{open: 10, close: 20, type: 'PICK_UP'}]}],
    coordinates: {type: 'Point', coordinates: [-122.3493, 47.6205]},
    attributes: {isReturns: 'true'},
    supportedCarriers: [{carrier: 'FedEx', serviceLevels: [{name: 'FedEx', shippingMethod: 'FedEx'}]}],
    activeFulfillmentMethods: {ShipToHome: 'true'},
    transfer: {isAutoReceiving: true, autoStockWindow: 'PT10M'}
  })
};

fetch('https://api.fabric.inc/v3/locations', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));

Response Example

{
  "locationNumber": 23,
  "name": "Seattle Store",
  "locationId": "9372919a8219e8",
  "isActive": true,
  "address": {
    "region": "WA",
    "addressLine1": 123,
    "addressLine2": "Suite 100",
    "addressLine3": "Seventh floor",
    "addressLine4": "Attention: Pat E. Kake",
    "city": "Seattle",
    "countryCode": "US",
    "postalCode": 98121,
    "type": "Home",
    "contacts": [
      {
        "type": "OFFICE",
        "email": "abc@mail.com",
        "phone": [
          {
            "number": "0281923712",
            "type": "MOBILE"
          }
        ],
        "name": {
          "firstName": "Pat",
          "middleName": "E",
          "lastName": "Kake"
        }
      }
    ]
  },
  "type": "DC",
  "capacity": {
    "maxAllocations": 30,
    "currentAllocations": 5,
    "infiniteAllocation": true,
    "allocationPercentage": 20,
    "isCapacityFull": true
  },
  "services": {
    "brand": "WHBM",
    "channel": "Frontline"
  },
  "zones": ["<string>"],
  "createdAt": "2022-05-25T07:58:30.996Z",
  "updatedAt": "2022-05-25T07:58:30.996Z",
  "operatingHours": [
    {
      "day": "SUNDAY",
      "hours": [
        {
          "open": 10,
          "close": 20,
          "type": "PICK_UP"
        }
      ]
    }
  ],
  "coordinates": {
    "type": "Point",
    "coordinates": [-122.3493, 47.6205]
  },
  "attributes": {
    "isReturns": "true"
  },
  "supportedCarriers": [
    {
      "carrier": "FedEx",
      "serviceLevels": [
        {
          "name": "FedEx",
          "shippingMethod": "FedEx"
        }
      ]
    }
  ],
  "activeFulfillmentMethods": {"ShipToHome": "true"},
  "transfer": {
    "isAutoReceiving": true,
    "autoStockWindow": "PT10M"
  }
}

Error Response Example

{
  "type": "CLIENT_ERROR",
  "errorCode": "SERVICE-4003",
  "message": "Mandatory param(s): `requiredField1` is/are missing",
  "errors": [
    {
      "type": "CLIENT_ERROR",
      "errorCode": "SERVICE-4002",
      "message": "Invalid value(s) specified for 'requiredField.field3'",
      "errors": []
    }
  ],
  "context": {
    "service": "orders",
    "endpoint": "POST /v3/orders"
  }
}