Update shipping details for all items in a specific cart - Fabric
Update shipping details for all items in a specific cart
cURL
curl --request PATCH \
--url https://prod.cart.fabric.inc/v2/carts/{cartId}/shipping-details \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"cartId": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",
"shipToId": "fef78121-bee3-4448-bf1c-d5b5461dbda2",
"shipMethod": {
"shipMethodId": "1234",
"shipmentCarrier": "FedEx",
"shipmentMethod": "Next Day"
},
"address": {
"attention": "Billing manager",
"street1": "100 NE 100th St.",
"street2": "Suite 710",
"street3": "Seventh floor",
"street4": "Attention: Pat E. Kake",
"city": "Seattle",
"state": "Washington",
"country": "USA",
"zipCode": "98125",
"email": "test@mail.com",
"kind": "shipping",
"name": {
"first": "Pat",
"middle": "E",
"last": "Kake"
},
"phone": {
"number": "123-456-7899",
"kind": "MOBILE"
}
},
"shipToType": "SHIP_TO_ADDRESS",
"taxCode": "FR1000",
"isPickup": true,
"altPickupPerson": {
"name": {
"first": "Pat",
"middle": "E",
"last": "Kake"
},
"email": "test@mail.com"
},
"pickupPerson": {
"name": {
"first": "Pat",
"middle": "E",
"last": "Kake"
},
"email": "test@mail.com"
},
"warehouseId": "XYZ-1234",
"storeId": "ABC-123",
"estimatedShipDate": "2022-02-18T15:12:40.974580",
"estimatedDeliveryDate": "2022-02-18T15:12:40.974580",
"shipmentInstructions": "Additional user instructions for shipping"
}
'
Python Example
import requests
url = "https://prod.cart.fabric.inc/v2/carts/{cartId}/shipping-details"
payload = {
"cartId": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",
"shipToId": "fef78121-bee3-4448-bf1c-d5b5461dbda2",
"shipMethod": {
"shipMethodId": "1234",
"shipmentCarrier": "FedEx",
"shipmentMethod": "Next Day"
},
"address": {
"attention": "Billing manager",
"street1": "100 NE 100th St.",
"street2": "Suite 710",
"street3": "Seventh floor",
"street4": "Attention: Pat E. Kake",
"city": "Seattle",
"state": "Washington",
"country": "USA",
"zipCode": "98125",
"email": "test@mail.com",
"kind": "shipping",
"name": {
"first": "Pat",
"middle": "E",
"last": "Kake"
},
"phone": {
"number": "123-456-7899",
"kind": "MOBILE"
}
},
"shipToType": "SHIP_TO_ADDRESS",
"taxCode": "FR1000",
"isPickup": True,
"altPickupPerson": {
"name": {
"first": "Pat",
"middle": "E",
"last": "Kake"
},
"email": "test@mail.com"
},
"pickupPerson": {
"name": {
"first": "Pat",
"middle": "E",
"last": "Kake"
},
"email": "test@mail.com"
},
"warehouseId": "XYZ-1234",
"storeId": "ABC-123",
"estimatedShipDate": "2022-02-18T15:12:40.974580",
"estimatedDeliveryDate": "2022-02-18T15:12:40.974580",
"shipmentInstructions": "Additional user instructions for shipping"
}
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)
Fetch API Example
const options = {
method: 'PATCH',
headers: {
'x-site-context': '<x-site-context>',
Authorization: '<authorization>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
cartId: 'd7e78a21-bee3-4448-bf1c-d5b5461dbda2',
shipToId: 'fef78121-bee3-4448-bf1c-d5b5461dbda2',
shipMethod: {shipMethodId: '1234', shipmentCarrier: 'FedEx', shipmentMethod: 'Next Day'},
address: {
attention: 'Billing manager',
street1: '100 NE 100th St.',
street2: 'Suite 710',
street3: 'Seventh floor',
street4: 'Attention: Pat E. Kake',
city: 'Seattle',
state: 'Washington',
country: 'USA',
zipCode: '98125',
email: 'test@mail.com',
kind: 'shipping',
name: {first: 'Pat', middle: 'E', last: 'Kake'},
phone: {number: '123-456-7899', kind: 'MOBILE'}
},
shipToType: 'SHIP_TO_ADDRESS',
taxCode: 'FR1000',
isPickup: true,
altPickupPerson: {name: {first: 'Pat', middle: 'E', last: 'Kake'}, email: 'test@mail.com'},
pickupPerson: {name: {first: 'Pat', middle: 'E', last: 'Kake'}, email: 'test@mail.com'},
warehouseId: 'XYZ-1234',
storeId: 'ABC-123',
estimatedShipDate: '2022-02-18T15:12:40.974580',
estimatedDeliveryDate: '2022-02-18T15:12:40.974580',
shipmentInstructions: 'Additional user instructions for shipping'
})
};
fetch('https://prod.cart.fabric.inc/v2/carts/{cartId}/shipping-details', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
PHP Example
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prod.cart.fabric.inc/v2/carts/{cartId}/shipping-details",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'cartId' => 'd7e78a21-bee3-4448-bf1c-d5b5461dbda2',
'shipToId' => 'fef78121-bee3-4448-bf1c-d5b5461dbda2',
'shipMethod' => [
'shipMethodId' => '1234',
'shipmentCarrier' => 'FedEx',
'shipmentMethod' => 'Next Day'
],
'address' => [
'attention' => 'Billing manager',
'street1' => '100 NE 100th St.',
'street2' => 'Suite 710',
'street3' => 'Seventh floor',
'street4' => 'Attention: Pat E. Kake',
'city' => 'Seattle',
'state' => 'Washington',
'country' => 'USA',
'zipCode' => '98125',
'email' => 'test@mail.com',
'kind' => 'shipping',
'name' => [
'first' => 'Pat',
'middle' => 'E',
'last' => 'Kake'
],
'phone' => [
'number' => '123-456-7899',
'kind' => 'MOBILE'
]
],
'shipToType' => 'SHIP_TO_ADDRESS',
'taxCode' => 'FR1000',
'isPickup' => true,
'altPickupPerson' => [
'name' => [
'first' => 'Pat',
'middle' => 'E',
'last' => 'Kake'
],
'email' => 'test@mail.com'
],
'pickupPerson' => [
'name' => [
'first' => 'Pat',
'middle' => 'E',
'last' => 'Kake'
],
'email' => 'test@mail.com'
],
'warehouseId' => 'XYZ-1234',
'storeId' => 'ABC-123',
'estimatedShipDate' => '2022-02-18T15:12:40.974580',
'estimatedDeliveryDate' => '2022-02-18T15:12:40.974580',
'shipmentInstructions' => 'Additional user instructions for shipping'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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 Example
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://prod.cart.fabric.inc/v2/carts/{cartId}/shipping-details"
payload := strings.NewReader("{\n \"cartId\": \"d7e78a21-bee3-4448-bf1c-d5b5461dbda2\",\n \"shipToId\": \"fef78121-bee3-4448-bf1c-d5b5461dbda2\",\n \"shipMethod\": {\n \"shipMethodId\": \"1234\",\n \"shipmentCarrier\": \"FedEx\",\n \"shipmentMethod\": \"Next Day\"\n },\n \"address\": {\n \"attention\": \"Billing manager\",\n \"street1\": \"100 NE 100th St.\",\n \"street2\": \"Suite 710\",\n \"street3\": \"Seventh floor\",\n \"street4\": \"Attention: Pat E. Kake\",\n \"city\": \"Seattle\",\n \"state\": \"Washington\",\n \"country\": \"USA\",\n \"zipCode\": \"98125\",\n \"email\": \"test@mail.com\",\n \"kind\": \"shipping\",\n \"name\": {\n \"first\": \"Pat\",\n \"middle\": \"E\",\n \"last\": \"Kake\"\n },\n \"phone\": {\n \"number\": \"123-456-7899\",\n \"kind\": \"MOBILE\"\n }\n },\n \"shipToType\": \"SHIP_TO_ADDRESS\",\n \"taxCode\": \"FR1000\",\n \"isPickup\": true,\n \"altPickupPerson\": {\n \"name\": {\n \"first\": \"Pat\",\n \"middle\": \"E\",\n \"last\": \"Kake\"\n },\n \"email\": \"test@mail.com\"\n },\n \"pickupPerson\": {\n \"name\": {\n \"first\": \"Pat\",\n \"middle\": \"E\",\n \"last\": \"Kake\"\n },\n \"email\": \"test@mail.com\"\n },\n \"warehouseId\": \"XYZ-1234\",\n \"storeId\": \"ABC-123\",\n \"estimatedShipDate\": \"2022-02-18T15:12:40.974580\",\n \"estimatedDeliveryDate\": \"2022-02-18T15:12:40.974580\",\n \"shipmentInstructions\": \"Additional user instructions for shipping\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-site-context", "<x-site-context>")
req.Header.Add("Authorization", "<authorization>")
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))
}
Unirest Example
HttpResponse<String> response = Unirest.patch("https://prod.cart.fabric.inc/v2/carts/{cartId}/shipping-details")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"cartId\": \"d7e78a21-bee3-4448-bf1c-d5b5461dbda2\",\n \"shipToId\": \"fef78121-bee3-4448-bf1c-d5b5461dbda2\",\n \"shipMethod\": {\n \"shipMethodId\": \"1234\",\n \"shipmentCarrier\": \"FedEx\",\n \"shipmentMethod\": \"Next Day\"\n },\n \"address\": {\n \"attention\": \"Billing manager\",\n \"street1\": \"100 NE 100th St.\",\n \"street2\": \"Suite 710\",\n \"street3\": \"Seventh floor\",\n \"street4\": \"Attention: Pat E. Kake\",\n \"city\": \"Seattle\",\n \"state\": \"Washington\",\n \"country\": \"USA\",\n \"zipCode\": \"98125\",\n \"email\": \"test@mail.com\",\n \"kind\": \"shipping\",\n \"name\": {\n \"first\": \"Pat\",\n \"middle\": \"E\",\n \"last\": \"Kake\"\n },\n \"phone\": {\n \"number\": \"123-456-7899\",\n \"kind\": \"MOBILE\"\n }\n },\n \"shipToType\": \"SHIP_TO_ADDRESS\",\n \"taxCode\": \"FR1000\",\n \"isPickup\": true,\n \"altPickupPerson\": {\n \"name\": {\n \"first\": \"Pat\",\n \"middle\": \"E\",\n \"last\": \"Kake\"\n },\n \"email\": \"test@mail.com\"\n },\n \"pickupPerson\": {\n \"name\": {\n \"first\": \"Pat\",\n \"middle\": \"E\",\n \"last\": \"Kake\"\n },\n \"email\": \"test@mail.com\"\n },\n \"warehouseId\": \"XYZ-1234\",\n \"storeId\": \"ABC-123\",\n \"estimatedShipDate\": \"2022-02-18T15:12:40.974580\",\n \"estimatedDeliveryDate\": \"2022-02-18T15:12:40.974580\",\n \"shipmentInstructions\": \"Additional user instructions for shipping\"\n}")
.asString();
Request Body
- cartId: required (string) - Cart ID (e.g.
"d7e78a21-bee3-4448-bf1c-d5b5461dbda2")
- shipToId: required (string) - Shipping details ID (e.g.
"fef78121-bee3-4448-bf1c-d5b5461dbda2")
- shipMethod: object - Shipping method and details.
- address: object - Shipping address.
- shipToType: optional (string) - Shipping type (e.g.
"SHIP_TO_ADDRESS")
- taxCode: optional (string) - Shipping tax code (e.g.
"FR1000")
- isPickup: optional (boolean) - True if item is set for pickup.
- altPickupPerson: object - Alternative pickup person.
- pickupPerson: object - Designated pickup person.
- warehouseId: optional (string) - Warehouse ID (e.g.
"XYZ-1234")
- storeId: optional (string) - Store ID (e.g.
"ABC-123")
- estimatedShipDate: optional (string) - Estimated shipping date.
- estimatedDeliveryDate: optional (string) - Estimated delivery date.
- shipmentInstructions: optional (string) - User instructions for shipping.