Add attribute to cart - Fabric
Add attribute to cart
cURL
curl --request PATCH \
--url https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart/{cartId}/attribute \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '\n[\n {\n "attributeId": "60a77de306f682000975c24c",\n "attributeValue": "true/false"\n }\n]\n'
Python
import requests
url = "https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart/{cartId}/attribute"
payload = [\
{\
"attributeId": "60a77de306f682000975c24c",\
"attributeValue": "true/false"\
}\
]
headers = {\
"x-site-context": "<x-site-context>",\
"Content-Type": "application/json"\
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)
JavaScript
const options = {\
method: 'PATCH',\
headers: {'x-site-context': '<x-site-context>', 'Content-Type': 'application/json'},\
body: JSON.stringify([{attributeId: '60a77de306f682000975c24c', attributeValue: 'true/false'}])\
};
fetch('https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart/{cartId}/attribute', 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/cart/{cartId}/attribute",\
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([\
[\
'attributeId' => '60a77de306f682000975c24c',\
'attributeValue' => 'true/false'\
]\
]),\
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/cart/{cartId}/attribute"
payload := strings.NewReader("[\n {\n \"attributeId\": \"60a77de306f682000975c24c\",\n \"attributeValue\": \"true/false\"\n }\n]")
req, _ := http.NewRequest("PATCH", 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))
}
jQuery
HttpResponse<String> response = Unirest.patch("https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart/{cartId}/attribute")
.header("x-site-context", "<x-site-context>")
.header("Content-Type", "application/json")
.body("[\n {\n \"attributeId\": \"60a77de306f682000975c24c\",\n \"attributeValue\": \"true/false\"\n }\n]")
.asString();
Ruby
require 'uri'
require 'net/http'
url = URI("https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart/{cartId}/attribute")
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["Content-Type"] = 'application/json'
request.body = "[\n {\n \"attributeId\": \"60a77de306f682000975c24c\",\n \"attributeValue\": \"true/false\"\n }\n]"
response = http.request(request)
puts response.read_body
Response Codes
Example Response JSON
{
"deleted": false,
"allPromosApplied": [\
{\
"unit": "<string>",\
"value": 123,\
"ON": {\
"kind": "SKU",\
"value": ""\
},\
"id": "<string>",\
"promoId": "<string>",\
"promoCode": "<string>"\
}\
],
"items": [\
{\
"itemId": 1000000012,\
"quantity": 2,\
"price": {\
"currency": "USD",\
"base": 15.99,\
"discount": {\
"price": 10.99,\
"discountAmount": 10.99,\
"promosApplied": [\
{\
"unit": "<string>",\
"value": 123,\
"ON": {\
"kind": "SKU",\
"value": ""\
},\
"id": "<string>",\
"promoId": "<string>",\
"promoCode": "<string>"\
}\
]\
},\
"sale": 10.99\
},\
"group": [\
"5ddd1a156c5a5fed1e0d91fb"\
],\
"priceListId": 100002,\
"isUnique": 123,\
"discountedQuantity": 0,\
"lineItemId": 1,\
"totalPrice": {\
"currency": "USD",\
"amount": 200\
},\
"id": "5fee9d59f2f08a1b3cbdea08",\
"sample": false,\
"weightUnit": "kg",\
"isPickup": false,\
"sku": "blue",\
"taxCode": "PH0607",\
"title": "item title",\
"weight": 7,\
"attributeTotalPrice": 0,\
"attributes": [\
{\
"price": 10,\
"_id": "6146e98408e3700008b64611",\
"attributeId": "60a77de306f682000975c24c",\
"value": "true/false",\
"name": "Gift Message",\
"type": "<string>",\
"id": "6146e98408e3700008b64611",\
"shipTo": {\
"name": {\
"first": "John",\
"last": "Smith"\
},\
"email": "johnsmith@fabric.inc",\
"street1": "123 Main Street",\
"city": "Seattle",\
"state": "WA",\
"country": "United States of America",\
"zipCode": "10008-1234",\
"phone": {\
"number": "123-456-7890",\
"kind": "Mobile"\
},\
"attention": "Leave at the back door.",\
"street2": "ABC Boulevard",\
"kind": "TBD",\
"shipTo": {\
"shipMethod": {\
"shipMethodId": "1a2b3c4d5e6f7g8h9i0j",\
"shipmentCarrier": "Fedex",\
"shipmentMethod": "Next Day",\
"cost": {\
"currency": "USD",\
"amount": 5.99\
}\
}\
},\
"shipToId": 5269,\
"cartId": "61e03ff6a865fe00094f8620",\
"taxCode": "FR1000",\
"shipToType": "SHIP_TO_ADDRESS"\
}\
}\
],\
"_id": "5fee9d59f2f08a1b3cbdea08",\
"createdAt": "2020-12-31T02:09:53.914Z",\
"updatedAt": "2020-12-31T02:09:53.914Z"\
}\
],\
"registeredUser": false,\
"cartId": 4,\
"totalAmmount" : {\
"currency": "USD",\
"amount": 200\
},\
"quantity": 2,\
"__v": 0,\
"attributes": [\
{\
"price": 10,\
"_id": "6146e98408e3700008b64611",\
"attributeId": "60a77de306f682000975c24c",\
"value": "true/false",\
"name": "Gift Message",\
"type": "<string>",\
"id": "6146e98408e3700008b64611"\
}\
],\
"account": "<string>",\
"approver": "<string>",\
"po": "<string>",\
"company": "<string>",\
"status": "pending",\
"extra": {},\
"errors": {\
"inventory": "<array>",\
"price": "<array>",\
"promo": "<array>"\
},\
"name": {\
"first": "John",\
"last": "Smith"\
},\
"phone": {\
"number": "123-456-7890",\
"kind": "Mobile"\
},\
"email": "johnsmith@fabric.inc"\
}
Error Handling
{
"code": "<string>",
"message": "<string>"
}
{
"code": "ATTRIBUTE_ERROR",
"message": "<string>"
}