Add or update cart attributes - Fabric

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Skip to main content

Add or update cart attributes

cURL

curl --request PATCH \
  --url https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'x-site-context: <x-site-context>' \
  --data @- <<EOF
{
  "account": "61b8e921d0cf2e000882b09f",
  "approver": "620d8896058edb0009385311",
  "purchaseOrder": "112-2624363-4906652",
  "pricedAttributes": [\
    {\
      "attributeId": "60c2a368eb2ec30008ae70a2",\
      "attributeValue": "true"\
    }\
  ],
  "name": "cart-sales",
  "description": "cart for sales team",
  "company": "fabric Inc",
  "sharedUserIds": [\
    "[\"*\"] or [userId1,userId2]"\
  ],
  "extra": {
    "productFamily": "Laptop computers"
  },
  "fees": [\
    {\
      "feeId": "73bc09d0-874a-4c3d-84d0-df1670d03578",\
      "name": "gift",\
      "type": "gift_wrap",\
      "amount": 10.5,\
      "attributes": "{'from': 'sam', 'to': 'david' }"\
    }\
  ]
}
EOF
import requests

url = "https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes"

payload = {
    "account": "61b8e921d0cf2e000882b09f",
    "approver": "620d8896058edb0009385311",
    "purchaseOrder": "112-2624363-4906652",
    "pricedAttributes": [\
        {\
            "attributeId": "60c2a368eb2ec30008ae70a2",\
            "attributeValue": "true"\
        }\
    ],
    "name": "cart-sales",
    "description": "cart for sales team",
    "company": "fabric Inc",
    "sharedUserIds": ["[\"*\"] or [userId1,userId2]"],
    "extra": { "productFamily": "Laptop computers" },
    "fees": [\
        {\
            "feeId": "73bc09d0-874a-4c3d-84d0-df1670d03578",\
            "name": "gift",\
            "type": "gift_wrap",\
            "amount": 10.5,\
            "attributes": "{'from': 'sam', 'to': 'david' }"\
        }\
    ]
}
headers = {
    "x-site-context": "<x-site-context>",
    "Authorization": "<authorization>",
    "Content-Type": "application/json"
}

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

print(response.text)
const options = {
  method: 'PATCH',
  headers: {
    'x-site-context': '<x-site-context>',
    Authorization: '<authorization>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    account: '61b8e921d0cf2e000882b09f',
    approver: '620d8896058edb0009385311',
    purchaseOrder: '112-2624363-4906652',
    pricedAttributes: [{attributeId: '60c2a368eb2ec30008ae70a2', attributeValue: 'true'}],
    name: 'cart-sales',
    description: 'cart for sales team',
    company: 'fabric Inc',
    sharedUserIds: ['["*"] or [userId1,userId2]'],
    extra: {productFamily: 'Laptop computers'},
    fees: [\
      {\
        feeId: '73bc09d0-874a-4c3d-84d0-df1670d03578',\
        name: 'gift',\
        type: 'gift_wrap',\
        amount: 10.5,\
        attributes: '{\'from\': \'sam\', \'to\': \'david\' }'\
      }\
    ]
  })
};

fetch('https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [\
  CURLOPT_URL => "https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes",\
  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([\
    'account' => '61b8e921d0cf2e000882b09f',\
    'approver' => '620d8896058edb0009385311',\
    'purchaseOrder' => '112-2624363-4906652',\
    'pricedAttributes' => [\
        [\
                'attributeId' => '60c2a368eb2ec30008ae70a2',\
                'attributeValue' => 'true'\
        ]\
    ],\
    'name' => 'cart-sales',\
    'description' => 'cart for sales team',\
    'company' => 'fabric Inc',\
    'sharedUserIds' => [\
        '["*"] or [userId1,userId2]'\
    ],\
    'extra' => [\
        'productFamily' => 'Laptop computers'\
    ],\
    'fees' => [\
        [\
                'feeId' => '73bc09d0-874a-4c3d-84d0-df1670d03578',\
                'name' => 'gift',\
                'type' => 'gift_wrap',\
                'amount' => 10.5,\
                'attributes' => '{\'from\': \'sam\', \'to\': \'david\' }'\
        ]\
    ]\
  ]),\
  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;
}
package main

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

func main() {

url := "https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes"

payload := strings.NewReader("{\n  \"account\": \"61b8e921d0cf2e000882b09f\",\n  \"approver\": \"620d8896058edb0009385311\",\n  \"purchaseOrder\": \"112-2624363-4906652\",\n  \"pricedAttributes\": [\n    {\n      \"attributeId\": \"60c2a368eb2ec30008ae70a2\",\n      \"attributeValue\": \"true\"\n    }\n  ],\n  \"name\": \"cart-sales\",\n  \"description\": \"cart for sales team\",\n  \"company\": \"fabric Inc\",\n  \"sharedUserIds\": [\n    \"[\\\"*\\\"] or [userId1,userId2]\"\n  ],\n  \"extra\": {\n    \"productFamily\": \"Laptop computers\"\n  },\n  \"fees\": [\n    {\n      \"feeId\": \"73bc09d0-874a-4c3d-84d0-df1670d03578\",\n      \"name\": \"gift\",\n      \"type\": \"gift_wrap\",\n      \"amount\": 10.5,\n      \"attributes\": \"{'from': 'sam', 'to': 'david' }\"\n    }\n  ]\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))

}
HttpResponse<String> response = Unirest.patch("https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes")
  .header("x-site-context", "<x-site-context>")
  .header("Authorization", "<authorization>")
  .header("Content-Type", "application/json")
  .body("{\n  \"account\": \"61b8e921d0cf2e000882b09f\",\n  \"approver\": \"620d8896058edb0009385311\",\n  \"purchaseOrder\": \"112-2624363-4906652\",\n  \"pricedAttributes\": [\n    {\n      \"attributeId\": \"60c2a368eb2ec30008ae70a2\",\n      \"attributeValue\": \"true\"\n    }\n  ],\n  \"name\": \"cart-sales\",\n  \"description\": \"cart for sales team\",\n  \"company\": \"fabric Inc\",\n  \"sharedUserIds\": [\n    \"[\\\"*\\\"] or [userId1,userId2]\"\n  ],\n  \"extra\": {\n    \"productFamily\": \"Laptop computers\"\n  },\n  \"fees\": [\n    {\n      \"feeId\": \"73bc09d0-874a-4c3d-84d0-df1670d03578\",\n      \"name\": \"gift\",\n      \"type\": \"gift_wrap\",\n      \"amount\": 10.5,\n      \"attributes\": \"{'from': 'sam', 'to': 'david' }\"\n    }\n  ]\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"account\": \"61b8e921d0cf2e000882b09f\",\n  \"approver\": \"620d8896058edb0009385311\",\n  \"purchaseOrder\": \"112-2624363-4906652\",\n  \"pricedAttributes\": [\n    {\n      \"attributeId\": \"60c2a368eb2ec30008ae70a2\",\n      \"attributeValue\": \"true\"\n    }\n  ],\n  \"name\": \"cart-sales\",\n  \"description\": \"cart for sales team\",\n  \"company\": \"fabric Inc\",\n  \"sharedUserIds\": [\n    \"[\\\"*\\\"] or [userId1,userId2]\"\n  ],\n  \"extra\": {\n    \"productFamily\": \"Laptop computers\"\n  },\n  \"fees\": [\n    {\n      \"feeId\": \"73bc09d0-874a-4c3d-84d0-df1670d03578\",\n      \"name\": \"gift\",\n      \"type\": \"gift_wrap\",\n      \"amount\": 10.5,\n      \"attributes\": \"{'from': 'sam', 'to': 'david' }\"\n    }\n  ]\n}"

response = http.request(request)
puts response.read_body

200

400

404

500

{
  "items": [\
    {\
      "sku": "16B2GS8LD5FDS",\
      "items": [\
        {\
          "sku": "13B9CL6WT2SLW",\
          "quantity": 15,\
          "items": [\
            "<unknown>"\
          ],\
          "cartItemId": "12gved0f-7645-40cb-y7b0-167f8bggdb3z",\
          "itemId": "1730902008",\
          "title": "Light Cover",\
          "attributes": [\
            {\
              "attributeId": "60c2a358eb2ec30008ae70a1",\
              "name": "gift wrapping (small)",\
              "type": "GIFT",\
              "price": 10,\
              "description": "Gift wrapping for a small package",\
              "mapping": "ITEM",\
              "value": "true",\
              "level": "order",\
              "items": [\
                "1000000001"\
              ]\
            }\
          ],\
          "createdAt": "2022-02-18T15:12:40.974580",\
          "updatedAt": "2022-02-18T15:12:40.974580",\
          "type": "WEB_SHIP",\
          "subType": "Border-free",\
          "priceListId": "108674",\
          "lineItemId": 1,\
          "isActive": true,\
          "unitPrice": {\
            "currency": "USD",\
            "amount": 100,\
            "discount": {\
              "price": 80,\
              "promosApplied": [\
                {\
                  "promoId": "fza065tdr787",\
                  "promoCode": "coupon123",\
                  "value": "20",\
                  "unit": "%OFF"\
                }\
              ],\
              "discounts": [\
                {\
                  "promoId": "fza065tdr787",\
                  "promoCode": "coupon123",\
                  "promoTitle": "New Year discount",\
                  "quantity": 1,\
                  "amount": 20,\
                  "value": 20,\
                  "groupId": "new-items",\
                  "promotionType": "PROMOTION",\
                  "priority": 1,\
                  "stackable": false,\
                  "sku": "16B2GS8LD5FDS",\
                  "itemId": "1000000001",\
                  "itemKey": "Key1234",\
                  "message": "New Year Promotion",\
                  "unit": "%OFF",\
                  "proratedQuantity": 1,\
                  "proratedAmount": 3.33\
                }\
              ],\
              "discountAmount": 20\
            },\
            "sale": 80\
          },\
          "totalPrice": {\
            "currency": "USD",\
            "amount": 100,\
            "discount": {\
              "price": 80,\
              "promosApplied": [\
                {\
                  "promoId": "fza065tdr787",\
                  "promoCode": "coupon123",\
                  "value": "20",\
                  "unit": "%OFF"\
                }\
              ],\
              "discounts": [\
                {\
                  "promoId": "fza065tdr787",\
                  "promoCode": "coupon123",\
                  "promoTitle": "New Year discount",\
                  "quantity": 1,\
                  "amount": 20,\
                  "value": 20,\
                  "groupId": "new-items",\
                  "promotionType": "PROMOTION",\
                  "priority": 1,\
                  "stackable": false,\
                  "sku": "16B2GS8LD5FDS",\
                  "itemId": "1000000001",\
                  "itemKey": "Key1234",\
                  "message": "New Year Promotion",\
                  "unit": "%OFF",\
                  "proratedQuantity": 1,\
                  "proratedAmount": 3.33\
                }\
              ],\
              "discountAmount": 20\
            },\
            "sale": 80\
          },\
          "attributeTotalPrice": 10,\
          "group": [\
            "61d38e117162b7dba69c3d6d"\
          ],\
          "extra": {\
            "productFamily": "Laptop computers"\
          },\
          "channel": 12,\
          "isPickup": true,\
          "warehouseId": "XYZ-1234",\
          "shipToId": "fef78121-bee3-4448-bf1c-d5b5461dbda2",\
          "shipTo": {\
            "shipToId": "fef78121-bee3-4448-bf1c-d5b5461dbda2",\
            "cartId": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",\
            "createdAt": "2022-02-18T15:12:40.974580",\
            "updatedAt": "2022-02-18T15:12:40.974580",\
            "shipMethod": {\
              "cost": {\
                "amount": 10,\
                "currency": "USD",\
                "discount": 5\
              },\
              "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"\
              },\
              "phone": {\
                "number": "123-456-7899",\
                "kind": "MOBILE"\
              },\
              "email": "test@mail.com"\
            },\
            "pickupPerson": {\
              "name": {\
                "first": "Pat",\
                "middle": "E",\
                "last": "Kake"\
              },\
              "phone": {\
                "number": "123-456-7899",\
                "kind": "MOBILE"\
              },\
              "email": "test@mail.com"\
            },\
            "warehouseId": "XYZ-1234",\
            "storeId": "ABC-123"\
          },\
          "fulfillment": {\
            "type": "WEB_SHIP",\
            "networkCode": "ShipToCNC",\
            "channelId": "12",\
            "inventoryType": "availablePreorder",\
            "inventory": {\
              "virtualCounters": {\
                "availableToPurchase": 10\
              },\
              "id": "62272e917b12209e68751d94",\
              "sku": "SKU00025",\
              "itemId": 4225678911,\
              "locationNum": 473746,\
              "channelId": 12,\
              "vendorId": "vendor123",\
              "leadTime": 1234,\
              "inventoryType": "Safety stock",\
              "infiniteInventory": true,\
              "counters": {\
                "on-hand": 10\
              },\
              "attributes": {\
                "buy online, pick up in-store (bopis)": true\
              },\
              "backOrderDate": "2022-08-08T00:00:00.000Z",\
              "preOrderDate": "2022-08-08T00:00:00.000Z",\
              "backOrderLimit": 100,\
              "preOrderLimit": 100,\
              "safetyStock": 10,\
              "lowStock": 10,\
              "segment": "Clothing",\
              "region": "US"\
            }\
          }\
        }\
      ],\
      "quantity": 1,\
      "isPickup": true,\
      "cartItemId": "88cded0f-1439-40eb-a7a0-167e8bffdb3b",\
      "itemId": "1000000001",\
      "title": "Varnet Garden Light Kit",\
      "attributeTotalPrice": 10,\
      "createdAt": "2022-02-18T15:12:40.974580",\
      "updatedAt": "2022-02-18T15:12:40.974580",\
      "priceListId": "100000",\
      "lineItemId": 1,\
      "isActive": true,\
      "unitPrice": {\
        "currency": "USD",\
        "amount": 100,\
        "discount": {\
          "price": 80,\
          "promosApplied": [\
            {\
              "promoId": "fza065tdr787",\
              "promoCode": "coupon123",\
              "value": "20",\
              "unit": "%OFF"\
            }\
          ],\
          "discounts": [\
            {\
              "promoId": "fza065tdr787",\
              "promoCode": "coupon123",\
              "promoTitle": "New Year discount",\
              "quantity": 1,\
              "amount": 20,\
              "value": 20,\
              "groupId": "new-items",\
              "promotionType": "PROMOTION",\
              "priority": 1,\
              "stackable": false,\
              "sku": "16B2GS8LD5FDS",\
              "itemId": "1000000001",\
              "itemKey": "Key1234",\
              "message": "New Year Promotion",\
              "unit": "%OFF",\
              "proratedQuantity": 1,\
              "proratedAmount": 3.33\
            }\
          ],\
          "discountAmount": 20\
        },\
        "sale": 80\
      },\
      "totalPrice": {\
        "currency": "USD",\
        "amount": 100,\
        "discount": {\
          "price": 80,\
          "promosApplied": [\
            {\
              "promoId": "fza065tdr787",\
              "promoCode": "coupon123",\
              "value": "20",\
              "unit": "%OFF"\
            }\
          ],\
          "discounts": [\
            {\
              "promoId": "fza065tdr787",\
              "promoCode": "coupon123",\
              "promoTitle": "New Year discount",\
              "quantity": 1,\
              "amount": 20,\
              "value": 20,\
              "groupId": "new-items",\
              "promotionType": "PROMOTION",\
              "priority": 1,\
              "stackable": false,\
              "sku": "16B2GS8LD5FDS",\
              "itemId": "1000000001",\
              "itemKey": "Key1234",\
              "message": "New Year Promotion",\
              "unit": "%OFF",\
              "proratedQuantity": 1,\
              "proratedAmount": 3.33\
            }\
          ],\
          "discountAmount": 20\
        },\
        "sale": 80\
      },\
      "attributes": [\
        {\
          "attributeId": "60c2a358eb2ec30008ae70a1",\
          "name": "gift wrapping (small)",\
          "type": "GIFT",\
          "price": 10,\
          "description": "Gift wrapping for a small package",\
          "mapping": "ITEM",\
          "value": "true",\
          "level": "order",\
          "items": [\
            "1000000001"\
          ]\
        }\
      ],\
      "priceAdjustments": [\
        {\
          "id": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",\
          "reason": "compensation for delay",\
          "amount": 20,\
          "attributes": {\
            "goldMember": [\
              false\
            ]\
          }\
        }\
      ],\
      "warehouseId": "XYZ-1234",\
      "shipTo": {\
        "shipToId": "fef78121-bee3-4448-bf1c-d5b5461dbda2",\
        "cartId": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",\
        "createdAt": "2022-02-18T15:12:40.974580",\
        "updatedAt": "2022-02-18T15:12:40.974580",\
        "shipMethod": {\
          "cost": {\
            "amount": 10,\
            "currency": "USD",\
            "discount": 5\
          },\
          "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"\
          },\
          "phone": {\
            "number": "123-456-7899",\
            "kind": "MOBILE"\
          },\
          "email": "test@mail.com"\
        },\
        "pickupPerson": {\
          "name": {\
            "first": "Pat",\
            "middle": "E",\
            "last": "Kake"\
          },\
          "phone": {\
            "number": "123-456-7899",\
            "kind": "MOBILE"\
          },\
          "email": "test@mail.com"\
        },\
        "warehouseId": "XYZ-1234",\
        "storeId": "ABC-123"\
      },\
      "channel": 12,\
      "group": [\
        "61d38e117162b7dba69c3d6d"\
      ],\
      "fees": [\
        {\
          "feeId": "73bc09d0-874a-4c3d-84d0-df1670d03578",\
          "name": "gift",\
          "type": "gift_wrap",\
          "amount": 10.5,\
          "attributes": "{'from': 'sam', 'to': 'david' }"\
        }\
      ]\
    }\
  ],
  "currency": "USD",
  "metadata": {
    "approver": "620d8896058edb0009385311"
  },
  "allPromosApplied": [\
    {\
      "promoId": "fza065tdr787",\
      "promoCode": "coupon123",\
      "value": "20",\
      "unit": "%OFF"\
    }\
  ],
  "sharedUserIds": [\
    "[\"*\"] or [userId1,userId2]"\
  ],
  "error": {
    "price": [\
      {\
        "price": {\
          "base": 20,\
          "sale": 10,\
          "cost": 20,\
          "currency": "USD",\
          "finalPrice": 10,\
          "totalPrice": 20,\
          "kind": "Promotion",\
          "discount": 5.5\
        },\
        "channel": 12,\
        "kind": "PROMOTION",\
        "lineItemId": 1,\
        "discounts": [\
          {\
            "promoId": "fza065tdr787",\
            "promoCode": "coupon123",\
            "promoTitle": "New Year discount",\
            "quantity": 1,\
            "amount": 20,\
            "value": 20,\
            "groupId": "new-items",\
            "promotionType": "PROMOTION",\
            "priority": 1,\
            "stackable": false,\
            "sku": "16B2GS8LD5FDS",\
            "itemId": "1000000001",\
            "itemKey": "Key1234",\
            "message": "New Year Promotion",\
            "unit": "%OFF",\
            "proratedQuantity": 1,\
            "proratedAmount": 3.33\
          }\
        ]\
      }\
    ],
    "promo": [\
      {\
        "detail": "Item is out of stock",\
        "itemId": "1000000001",\
        "sku": "16B2GS8LD5FDS",\
        "lineItemId": 1\
      }\
    ],
    "inventory": [\
      {\
        "detail": "Item is out of stock",\
        "itemId": "1000000001",\
        "sku": "16B2GS8LD5FDS",\
        "lineItemId": 1\
      }\
    ]
  },
  "cartId": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",
  "createdAt": "2022-02-11T14:09:40.836703",
  "updatedAt": "2022-02-22T22:36:40.194293",
  "totalItems": 3,
  "totalUniqueItems": 2,
  "cartState": "PENDING",
  "tenantId": "5f689caa4216e7000750d1ef",
  "accountId": "5f689caa4216e7000750d1ef",
  "userId": "61b8e921d0cf2e000882b09f",
  "configuration": {
    "allowAnonymousUser": true,
    "orderNumberSource": "CART_ID",
    "softReserve": true,
    "addItemBySkuEnabled": true
  },
  "customer": {
    "id": "d7e78a21-bee3-4448-bf1c-d5b5461dbda2",
    "type": "EMPLOYEE",
    "attributes": {
      "goldMember": [\
        false\
      ]
    },
    "segments": {
      "age": 23,
      "gender": "female"
    }
  },
  "totalAmount": 95,
  "subTotal": 120,
  "totalDiscount": 25,
  "totalFees": 25,
  "attributes": [\
    {\
      "attributeId": "60c2a358eb2ec30008ae70a1",\
      "name": "gift wrapping (small)",\
      "type": "GIFT",\
      "price": 10,\
      "description": "Gift wrapping for a small package",\
      "mapping": "ITEM",\
      "value": "true",\
      "level": "order",\
      "items": [\
        "1000000001"\
      ]\
    }\
  ],
  "fees": [\
    {\
      "feeId": "73bc09d0-874a-4c3d-84d0-df1670d03578",\
      "name": "gift",\
      "type": "gift_wrap",\
      "amount": 10.5,\
      "attributes": "{'from': 'sam', 'to': 'david' }"\
    }\
  ],
  "suggestedProducts": [\
    {\
      "promotionId": "fef78121-bee3-4448-bf1c-d5b5461dbda2",\
      "promotionTitle": "Buy one get one free",\
      "itemId": 19,\
      "itemIds": [\
        19\
      ],\
      "eligiblePriceLists": [\
        1000000001\
      ],\
      "quantity": 1,\
      "promotionQuantity": 1,\
      "free": true,\
      "discountType": "AMOUNT_OFF",\
      "amount": 10\
    }\
  ]
}
{
  "code": "Bad Request",
  "message": "User ID or Cart ID does not exist"
}
{
  "code": "Cart or item not found",
  "message": "If the issue persists please contact support@fabric.inc."
}
{
  "code": "Internal Server Error",
  "message": "An internal error occurred. If the issue persists please contact support@fabric.inc."
}

PATCH

/

v2

/

carts

/

{cartId}

/

attributes

Try it

Add or update cart attributes

cURL

import requests

url = "https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes"

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

print(response.text)
<?php

$curl = curl_init();

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

curl_close($curl);

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

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

func main() {

url := "https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes"

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))

}
require 'uri'
require 'net/http'

url = URI("https://prod.cart.fabric.inc/v2/carts/{cartId}/attributes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

response = http.request(request)
puts response.read_body

200

400

404

500

{
  "code": "Bad Request",
  "message": "User ID or Cart ID does not exist"
}
{
  "code": "Cart or item not found",
  "message": "If the issue persists please contact support@fabric.inc."
}
{
  "code": "Internal Server Error",
  "message": "An internal error occurred. If the issue persists please contact support@fabric.inc."
}

Headers

x-site-context

string

required

The x-site-context header is a JSON object that contains information about the source you wish to pull from. The mandatory account is the 24 character identifier found in Copilot. The channel (Sales channel ID), stage (environment name), and date attributes can be used to further narrow the scope of your data source.

Example:

"{\"date\": \"2023-01-01T00:00:00.000Z\", \"channel\": 12, \"account\": \"1234abcd5678efgh9ijklmno\",\"stage\":\"production\"}"

x-api-key

string

API Key for Gateway

Example:

"zaCELgL.0imfnc8mVLWwsAawjYr4Rx-Af50DDqtlx"

Authorization

string

required

Authorization token for the user

Example:

"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxZjIyMTU4..."

Path Parameters

cartId

string

required

ID of cart for which attributes will be added or updated

Example:

"d7e78a21-bee3-4448-bf1c-d5b5461dbda2"

Body

application/json

Cart attribute information to be added or updated

Cart attribute information

account

string | null

Cart account ID

Example:

"61b8e921d0cf2e000882b09f"

approver

string | null

Cart approver ID

Example:

"620d8896058edb0009385311"

purchaseOrder

string | null

Cart purchase order

Example:

"112-2624363-4906652"

pricedAttributes

object[] | null

Attributes added at the cart level

Showchild attributes

name

string | null

Name for the cart

Example:

"cart-sales"

description

string | null

Description for the cart

Example:

"cart for sales team"

company

string | null

Company name for the cart

Example:

"fabric Inc"

sharedUserIds

string[] | null

UserIds that represents the users who share the cart

extra

object | null

Extra metadata for the cart

Example:

{ "productFamily": "Laptop computers" }

fees

object[] | null

Fees associated with a specific cart or an individual line item of a cart

Showchild attributes

Response

200

application/json

OK

Cart details

items

object[]

required

Items in cart

Showchild attributes

currency

string

default:USD

required

Currency type

Example:

"USD"

metadata

object

required

Metadata for this cart

Example:

{ "approver": "620d8896058edb0009385311" }

allPromosApplied

object[]

required

All promotions or coupons for items in this cart

Showchild attributes

sharedUserIds

string[] | null

required

UserIds of the users who share the cart

error

object

required

Errors in this cart

Showchild attributes

cartId

string | null

Cart ID

Example:

"d7e78a21-bee3-4448-bf1c-d5b5461dbda2"

createdAt

string | null

Cart creation time

Example:

"2022-02-11T14:09:40.836703"

updatedAt

string | null

Last time cart was updated

Example:

"2022-02-22T22:36:40.194293"

totalItems

integer | null

Number of items in the cart

Example:

3

totalUniqueItems

integer | null

Number of unique items in the cart based on line item ID

Example:

2

cartState

enum

Cart status

Available options:

ACTIVE,

PENDING,

PENDING_APPROVAL,

APPROVED,

SUBMITTED,

DELETED,

REJECTED

Example:

"PENDING"

tenantId

string | null

Merchant ID

Example:

"5f689caa4216e7000750d1ef"

accountId

string | null

Customer account ID

Example:

"5f689caa4216e7000750d1ef"

userId

string | null

User ID

Example:

"61b8e921d0cf2e000882b09f"

configuration

object | null

Cart configurations

Showchild attributes

customer

object | null

Customer context

Showchild attributes

totalAmount

number | null

Total price of cart items after discount including Shipping and Shipping Discount

Example:

95

subTotal

number | null

Total price of cart items including Shipping without any discount

Example:

120

totalDiscount

number | null

Total discount applied to cart

Example:

25

totalFees

number | null

Total fees applied to cart

Example:

25

attributes

object[] | null

Additional item options

Showchild attributes

fees

object[] | null

Fees associated with a specific cart or an individual line item of a cart

Showchild attributes

suggestedProducts

object[] | null

List of recommended products that are available for purchase along with the item added to the cart

Showchild attributes

Was this page helpful?

YesNo

Delete specific cart fee Delete item fees

Ctrl+I

Assistant

Responses are generated using AI and may contain mistakes.