Create ship-to (v1) - Fabric

Create ship-to (v1)

cURL

curl --request POST \
  --url https://prod01-apigw.yourcompany.fabric.zone/api-cart/ship-to/v1/cart/{cartId} \
  --header 'Content-Type: application/json' \
  --header 'x-site-context: <x-site-context>' \
  --data '\
{
  "shipToType": "SHIP_TO_ADDRESS",
  "warehouseId": "123456abcdef123456abcdef",
  "isPickup": true,
  "shipMethod": 10002,
  "taxCode": "FR1000",
  "storeId": "TBD",
  "pickupPerson": {
    "name": {
      "first": "John",
      "last": "Smith"
    },
    "email": "johnsmith@fabric.inc"
  },
  "altPickupPerson": {
    "name": {
      "first": "John",
      "last": "Smith"
    },
    "email": "johnsmith@fabric.inc"
  }
}
'

Python

import requests

url = "https://prod01-apigw.yourcompany.fabric.zone/api-cart/ship-to/v1/cart/{cartId}"

payload = {
    "shipToType": "SHIP_TO_ADDRESS",
    "warehouseId": "123456abcdef123456abcdef",
    "isPickup": True,
    "shipMethod": 10002,
    "taxCode": "FR1000",
    "storeId": "TBD",
    "pickupPerson": {
        "name": {
            "first": "John",
            "last": "Smith"
        },
        "email": "johnsmith@fabric.inc"
    },
    "altPickupPerson": {
        "name": {
            "first": "John",
            "last": "Smith"
        },
        "email": "johnsmith@fabric.inc"
    }
}
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({
    shipToType: 'SHIP_TO_ADDRESS',
    warehouseId: '123456abcdef123456abcdef',
    isPickup: true,
    shipMethod: 10002,
    taxCode: 'FR1000',
    storeId: 'TBD',
    pickupPerson: {name: {first: 'John', last: 'Smith'}, email: 'johnsmith@fabric.inc'},
    altPickupPerson: {name: {first: 'John', last: 'Smith'}, email: 'johnsmith@fabric.inc'}
  })
};

fetch('https://prod01-apigw.yourcompany.fabric.zone/api-cart/ship-to/v1/cart/{cartId}', 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-cart/ship-to/v1/cart/{cartId}",
  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([
    'shipToType' => 'SHIP_TO_ADDRESS',
    'warehouseId' => '123456abcdef123456abcdef',
    'isPickup' => true,
    'shipMethod' => 10002,
    'taxCode' => 'FR1000',
    'storeId' => 'TBD',
    'pickupPerson' => [
        'name' => [
                'first' => 'John',
                'last' => 'Smith'
        ],
        'email' => 'johnsmith@fabric.inc'
    ],
    'altPickupPerson' => [
        'name' => [
                'first' => 'John',
                'last' => 'Smith'
        ],
        'email' => 'johnsmith@fabric.inc'
    ]
  ]),
  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;
}
?>

Go

package main

import (
    "fmt"
    "strings"
    "net/http"
    "io"
)

func main() {

url := "https://prod01-apigw.yourcompany.fabric.zone/api-cart/ship-to/v1/cart/{cartId}"

payload := strings.NewReader("{\n  \\"shipToType\\": \\\"SHIP_TO_ADDRESS\\\",
  \\"warehouseId\\": \\\"123456abcdef123456abcdef\\\",
  \\"isPickup\\": true,
  \\"shipMethod\\": 10002,
  \\"taxCode\\": \\\"FR1000\\\",
  \\"storeId\\": \\\"TBD\\\",
  \\"pickupPerson\\": {\n    \\"name\\": {\n      \\"first\\": \\\"John\\\",
      \\"last\\": \\\"Smith\\\"
    },\n    \\"email\\": \\\"johnsmith@fabric.inc\\\"
  },\n  \\"altPickupPerson\\": {\n    \\"name\\": {\n      \\"first\\": \\\"John\\\",
      \\"last\\": \\\"Smith\\\"
    },\n    \\"email\\": \\\"johnsmith@fabric.inc\\\"
  }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-site-context", "<x-site-context>")
    req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}

Response Example

{
  "shipToType": "SHIP_TO_ADDRESS",
  "warehouseId": "123456abcdef123456abcdef",
  "isPickup": true,
  "shipMethod": {
    "shipMethodId": "1a2b3c4d5e6f7g8h9i0j",
    "cost": {
      "currency": "USD",
      "amount": 5.99
    },
    "shipmentCarrier": "Fedex",
    "shipmentMethod": "Next Day"
  },
  "taxCode": "FR1000",
  "storeId": "TBD",
  "pickupPerson": {
    "name": {
      "first": "John",
      "last": "Smith"
    },
    "phone": {
      "number": "123-456-7890",
      "kind": "Mobile"
    },
    "email": "johnsmith@fabric.inc"
  },
  "altPickupPerson": {
    "name": {
      "first": "John",
      "last": "Smith"
    },
    "phone": {
      "number": "123-456-7890",
      "kind": "Mobile"
    },
    "email": "johnsmith@fabric.inc"
  },
  "address": {
    "attention": "Leave at the back door.",
    "street1": "123 Main Street",
    "street2": "ABC Boulevard",
    "city": "Seattle",
    "state": "WA",
    "country": "United States of America",
    "zipCode": "10008-1234",
    "kind": "TBD",
    "name": {
      "first": "John",
      "last": "Smith"
    },
    "phone": {
      "number": "123-456-7890",
      "kind": "Mobile"
    },
    "email": "johnsmith@fabric.inc"
  },
  "cartId": "5e5818a84d030c206b2ffb02",
  "shipToId": 13812,
  "_id": "5fee9d59f2f08a1b3cbdea08",
  "createdAt": "2020-12-31T02:09:53.914Z",
  "updatedAt": "2020-12-31T02:09:53.914Z"
}

Error Response Example

{
  "code": "SHIPPING_METHOD_NOT_FOUND",
  "message": "Shipping Method Not Found."
}