Add item to cart (cart decoupled) - Fabric

Add item to cart (cart decoupled)

cURL

curl --request POST \
  --url https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/item \
  --header 'Content-Type: application/json' \
  --header 'x-site-context: <x-site-context>' \
  --data '
{
  "cartId": "5e5818a84d030c206b2ffb02",
  "userAuthToken": "JWT",
  "registeredUser": false,
  "items": [
    {
      "itemId": 1000000012,
      "taxCode": "TC1234567890",
      "sku": "sk231212",
      "weight": 4.2,
      "title": "fabric T-shirt",
      "quantity": 2,
      "price": {
        "currency": "USD",
        "base": 15.99,
        "discount": {
          "price": 10.99,
          "discountAmount": 10.99,
          "promosApplied": [
            {}
          ]
        },
        "sale": 10.99
      },
      "group": [
        "5ddd1a156c5a5fed1e0d91fb"
      ],
      "sample": false,
      "priceListId": 1000000012,
      "weightUnit": "lb",
      "extra": {}
    }
  ]
}
'

Python

import requests

url = "https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/item"

payload = {
    "cartId": "5e5818a84d030c206b2ffb02",
    "userAuthToken": "JWT",
    "registeredUser": False,
    "items": [
        {
            "itemId": 1000000012,
            "taxCode": "TC1234567890",
            "sku": "sk231212",
            "weight": 4.2,
            "title": "fabric T-shirt",
            "quantity": 2,
            "price": {
                "currency": "USD",
                "base": 15.99,
                "discount": {
                    "price": 10.99,
                    "discountAmount": 10.99,
                    "promosApplied": [{}]
                },
                "sale": 10.99
            },
            "group": ["5ddd1a156c5a5fed1e0d91fb"],
            "sample": False,
            "priceListId": 1000000012,
            "weightUnit": "lb",
            "extra": {}
        }
    ]
}
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({
    cartId: '5e5818a84d030c206b2ffb02',
    userAuthToken: 'JWT',
    registeredUser: false,
    items: [
      {
        itemId: 1000000012,
        taxCode: 'TC1234567890',
        sku: 'sk231212',
        weight: 4.2,
        title: 'fabric T-shirt',
        quantity: 2,
        price: {
          currency: 'USD',
          base: 15.99,
          discount: {price: 10.99, discountAmount: 10.99, promosApplied: [{}]},
          sale: 10.99
        },
        group: ['5ddd1a156c5a5fed1e0d91fb'],
        sample: false,
        priceListId: 1000000012,
        weightUnit: 'lb',
        extra: {}
      }
    ]
  })
};

fetch('https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/item', 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://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/item",
  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([
    'cartId' => '5e5818a84d030c206b2ffb02',
    'userAuthToken' => 'JWT',
    'registeredUser' => false,
    'items' => [
        [
                'itemId' => 1000000012,
                'taxCode' => 'TC1234567890',
                'sku' => 'sk231212',
                'weight' => 4.2,
                'title' => 'fabric T-shirt',
                'quantity' => 2,
                'price' => [
                                'currency' => 'USD',
                                'base' => 15.99,
                                'discount' => [
                                                                'price' => 10.99,
                                                                'discountAmount' => 10.99,
                                                                'promosApplied' => [[{}]]
                                ],
                                'sale' => 10.99
                ],
                'group' => [
                                '5ddd1a156c5a5fed1e0d91fb'
                ],
                'sample' => false,
                'priceListId' => 1000000012,
                'weightUnit' => 'lb',
                'extra' => []
        ]
    ]
  ]),
  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-decoupled/item"

payload := strings.NewReader("{\n  \"cartId\": \"5e5818a84d030c206b2ffb02\",\n  \"userAuthToken\": \"JWT\",\n  \"registeredUser\": false,\n  \"items\": [\n    {\n      \"itemId\": 1000000012,\n      \"taxCode\": \"TC1234567890\",\n      \"sku\": \"sk231212\",\n      \"weight\": 4.2,\n      \"title\": \"fabric T-shirt\",\n      \"quantity\": 2,\n      \"price\": {\n        \"currency\": \"USD\",\n        \"base\": 15.99,\n        \"discount\": {\n          \"price\": 10.99,\n          \"discountAmount\": 10.99,\n          \"promosApplied\": [\n            {}\n          ]\n        },\n        \"sale\": 10.99\n      },\n      \"group\": [\n        \"5ddd1a156c5a5fed1e0d91fb\"\n      ],\n      \"sample\": false,\n      \"priceListId\": 1000000012,\n      \"weightUnit\": \"lb\",\n      \"extra\": {}\n    }\n  ]\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))
}

Unirest (Java)

HttpResponse<String> response = Unirest.post("https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/item")
  .header("x-site-context", "<x-site-context>")
  .header("Content-Type", "application/json")
  .body("{\n  \"cartId\": \"5e5818a84d030c206b2ffb02\",\n  \"userAuthToken\": \"JWT\",\n  \"registeredUser\": false,\n  \"items\": [\n    {\n      \"itemId\": 1000000012,\n      \"taxCode\": \"TC1234567890\",\n      \"sku\": \"sk231212\",\n      \"weight\": 4.2,\n      \"title\": \"fabric T-shirt\",\n      \"quantity\": 2,\n      \"price\": {\n        \"currency\": \"USD\",\n        \"base\": 15.99,\n        \"discount\": {\n          \"price\": 10.99,\n          \"discountAmount\": 10.99,\n          \"promosApplied\": [\n            {}\n          ]\n        },\n        \"sale\": 10.99\n      },\n      \"group\": [\n        \"5ddd1a156c5a5fed1e0d91fb\"\n      ],\n      \"sample\": false,\n      \"priceListId\": 1000000012,\n      \"weightUnit\": \"lb\",\n      \"extra\": {}\n    }\n  ]\n}")
  .asString();

Ruby

require 'uri'
require 'net/http'

url = URI("https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/item")

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

request = Net::HTTP::Post.new(url)
request["x-site-context"] = '<x-site-context>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"cartId\": \"5e5818a84d030c206b2ffb02\",\n  \"userAuthToken\": \"JWT\",\n  \"registeredUser\": false,\n  \"items\": [\n    {\n      \"itemId\": 1000000012,\n      \"taxCode\": \"TC1234567890\",\n      \"sku\": \"sk231212\",\n      \"weight\": 4.2,\n      \"title\": \"fabric T-shirt\",\n      \"quantity\": 2,\n      \"price\": {\n        \"currency\": \"USD\",\n        \"base\": 15.99,\n        \"discount\": {\n          \"price\": 10.99,\n          \"discountAmount\": 10.99,\n          \"promosApplied\": [\n            {}\n          ]\n        },\n        \"sale\": 10.99\n      },\n      \"group\": [\n        \"5ddd1a156c5a5fed1e0d91fb\"\n      ],\n      \"sample\": false,\n      \"priceListId\": 1000000012,\n      \"weightUnit\": \"lb\",\n      \"extra\": {}\n    }\n  ]\n}"

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

Response

{
  "registeredUser": false,
  "account": "<string>",
  "approver": "<string>",
  "po": "<string>",
  "cartId": 111166,
  "status": "pending",
  "allPromosApplied": "<array>",
  "attributes": "<array>",
  "__v": 0,
  "totalAmount": {
    "currency": "USD",
    "amount": 38
  },
  "quantity": 2,
  "_id": "5fee9d59f2f08a1b3cbdea08",
  "createdAt": "2020-12-31T02:09:53.914Z",
  "updatedAt": "2020-12-31T02:09:53.914Z",
  "deleted": false,
  "items": [
    {
      "price": {
        "discount": {
          "discountAmount": 0,
          "price": 0,
          "promosApplied": "<array>"
        },
        "sale": 0,
        "base": 19,
        "currency": "USD"
      },
      "sample": false,
      "isUnique": false,
      "discountedQuantity": 0,
      "group": [
        "123123123123123123123123"
      ],
      "weightUnit": "lb",
      "isPickup": false,
      "itemId": 15,
      "sku": "sk231212",
      "taxCode": "TC1234567890",
      "title": "fabric t-shirt",
      "weight": 4.2,
      "quantity": 2,
      "lineItemId": 1,
      "attributeTotalPrice": 0,
      "totalPrice": {
        "currency": "USD",
        "amount": 38
      },
      "attributes": "<array>",
      "id": "6141a40c13f13a000876272a",
      "_id": "5fee9d59f2f08a1b3cbdea08",
      "createdAt": "2020-12-31T02:09:53.914Z",
      "updatedAt": "2020-12-31T02:09:53.914Z"
    }
  ]
}
{
  "code": "<string>",
  "message": "<string>"
}
{
  "code": "<string>",
  "message": "<string>"
}