> ## Documentation Index
>
> Fetch the complete documentation index at: [/llms.txt](https://developer.fabric.inc/llms.txt)
>
> Use this file to discover all available pages before exploring further.

[Skip to main content](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#content-area)

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

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#parameter-x-site-context)

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\"}"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#parameter-x-api-key)

x-api-key

string

API Key for Gateway

Example:

`"zaCELgL.0imfnc8mVLWwsAawjYr4Rx-Af50DDqtlx"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#parameter-authorization)

Authorization

string

required

Authorization token for the user

Example:

`"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxZjIyMTU4..."`

#### Path Parameters

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#parameter-cart-id)

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

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-account-one-of-0)

account

string \| null

Cart account ID

Example:

`"61b8e921d0cf2e000882b09f"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-approver-one-of-0)

approver

string \| null

Cart approver ID

Example:

`"620d8896058edb0009385311"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-purchase-order-one-of-0)

purchaseOrder

string \| null

Cart purchase order

Example:

`"112-2624363-4906652"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-priced-attributes-one-of-0)

pricedAttributes

object\[\] \| null

Attributes added at the cart level

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-name-one-of-0)

name

string \| null

Name for the cart

Example:

`"cart-sales"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-description-one-of-0)

description

string \| null

Description for the cart

Example:

`"cart for sales team"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-company-one-of-0)

company

string \| null

Company name for the cart

Example:

`"fabric Inc"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-shared-user-ids-one-of-0)

sharedUserIds

string\[\] \| null

UserIds that represents the users who share the cart

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-extra-one-of-0)

extra

object \| null

Extra metadata for the cart

Example:

```
{ "productFamily": "Laptop computers" }
```

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#body-fees-one-of-0)

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

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-items)

items

object\[\]

required

Items in cart

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-currency)

currency

string

default:USD

required

Currency type

Example:

`"USD"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-metadata)

metadata

object

required

Metadata for this cart

Example:

```
{ "approver": "620d8896058edb0009385311" }
```

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-all-promos-applied)

allPromosApplied

object\[\]

required

All promotions or coupons for items in this cart

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-shared-user-ids-one-of-0)

sharedUserIds

string\[\] \| null

required

UserIds of the users who share the cart

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-error)

error

object

required

Errors in this cart

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-cart-id-one-of-0)

cartId

string \| null

Cart ID

Example:

`"d7e78a21-bee3-4448-bf1c-d5b5461dbda2"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-created-at-one-of-0)

createdAt

string \| null

Cart creation time

Example:

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

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-updated-at-one-of-0)

updatedAt

string<date-time> \| null

Last time cart was updated

Example:

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

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-total-items-one-of-0)

totalItems

integer<int32> \| null

Number of items in the cart

Example:

`3`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-total-unique-items-one-of-0)

totalUniqueItems

integer<int32> \| null

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

Example:

`2`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-cart-state)

cartState

enum<string>

Cart status

Available options:

`ACTIVE`,

`PENDING`,

`PENDING_APPROVAL`,

`APPROVED`,

`SUBMITTED`,

`DELETED`,

`REJECTED`

Example:

`"PENDING"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-tenant-id-one-of-0)

tenantId

string \| null

Merchant ID

Example:

`"5f689caa4216e7000750d1ef"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-account-id-one-of-0)

accountId

string \| null

Customer account ID

Example:

`"5f689caa4216e7000750d1ef"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-user-id-one-of-0)

userId

string \| null

User ID

Example:

`"61b8e921d0cf2e000882b09f"`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-configuration-one-of-0)

configuration

object \| null

Cart configurations

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-customer-one-of-0)

customer

object \| null

Customer context

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-total-amount-one-of-0)

totalAmount

number<double> \| null

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

Example:

`95`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-sub-total-one-of-0)

subTotal

number<double> \| null

Total price of cart items including Shipping without any discount

Example:

`120`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-total-discount-one-of-0)

totalDiscount

number<double> \| null

Total discount applied to cart

Example:

`25`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-total-fees-one-of-0)

totalFees

number<double> \| null

Total fees applied to cart

Example:

`25`

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-attributes-one-of-0)

attributes

object\[\] \| null

Additional item options

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-fees-one-of-0)

fees

object\[\] \| null

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

Showchild attributes

[​](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/add-or-update-cart-attributes#response-suggested-products-one-of-0)

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](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/delete-specific-cart-fee) [Delete item fees](https://developer.fabric.inc/v2/api-reference/cart-api/attribute/delete-item-fees)

Ctrl+I

Assistant

Responses are generated using AI and may contain mistakes.
