curl --request POST \
--url https://api.fabric.inc/v3/carts/{cartId}/adjustments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"price": {
"amount": 12.99
},
"reason": "Price adjustment from Customer Representative",
"attributes": {
"source": "CSR"
}
}
'import requests
url = "https://api.fabric.inc/v3/carts/{cartId}/adjustments"
payload = {
"price": { "amount": 12.99 },
"reason": "Price adjustment from Customer Representative",
"attributes": { "source": "CSR" }
}
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
price: {amount: 12.99},
reason: 'Price adjustment from Customer Representative',
attributes: {source: 'CSR'}
})
};
fetch('https://api.fabric.inc/v3/carts/{cartId}/adjustments', 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://api.fabric.inc/v3/carts/{cartId}/adjustments",
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([
'price' => [
'amount' => 12.99
],
'reason' => 'Price adjustment from Customer Representative',
'attributes' => [
'source' => 'CSR'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$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://api.fabric.inc/v3/carts/{cartId}/adjustments"
payload := strings.NewReader("{\n \"price\": {\n \"amount\": 12.99\n },\n \"reason\": \"Price adjustment from Customer Representative\",\n \"attributes\": {\n \"source\": \"CSR\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.fabric.inc/v3/carts/{cartId}/adjustments")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"price\": {\n \"amount\": 12.99\n },\n \"reason\": \"Price adjustment from Customer Representative\",\n \"attributes\": {\n \"source\": \"CSR\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/carts/{cartId}/adjustments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"price\": {\n \"amount\": 12.99\n },\n \"reason\": \"Price adjustment from Customer Representative\",\n \"attributes\": {\n \"source\": \"CSR\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "a8577d7f-0d4d-4b22-8e85-7b4a2e90dc93",
"price": {
"amount": 12.99
},
"reason": "Price adjustment from customer representative.",
"attributes": {
"source": "CSR"
},
"updatedAt": "2024-06-13T16:50:00.682Z",
"createdAt": "2024-06-13T16:50:00.682Z"
}{
"type": "BAD_REQUEST",
"message": "x-fabric-tenant-id is required"
}{
"type": "CART_NOT_FOUND",
"message": "Cart not found"
}Create adjustment
Creates adjustments to the corresponding cart. This is useful when a price needs to be adjusted by a CSR agent.
The Cart ID from the Create cart endpoint is used in the path parameter.
curl --request POST \
--url https://api.fabric.inc/v3/carts/{cartId}/adjustments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-fabric-tenant-id: <x-fabric-tenant-id>' \
--data '
{
"price": {
"amount": 12.99
},
"reason": "Price adjustment from Customer Representative",
"attributes": {
"source": "CSR"
}
}
'import requests
url = "https://api.fabric.inc/v3/carts/{cartId}/adjustments"
payload = {
"price": { "amount": 12.99 },
"reason": "Price adjustment from Customer Representative",
"attributes": { "source": "CSR" }
}
headers = {
"x-fabric-tenant-id": "<x-fabric-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-fabric-tenant-id': '<x-fabric-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
price: {amount: 12.99},
reason: 'Price adjustment from Customer Representative',
attributes: {source: 'CSR'}
})
};
fetch('https://api.fabric.inc/v3/carts/{cartId}/adjustments', 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://api.fabric.inc/v3/carts/{cartId}/adjustments",
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([
'price' => [
'amount' => 12.99
],
'reason' => 'Price adjustment from Customer Representative',
'attributes' => [
'source' => 'CSR'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-fabric-tenant-id: <x-fabric-tenant-id>"
],
]);
$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://api.fabric.inc/v3/carts/{cartId}/adjustments"
payload := strings.NewReader("{\n \"price\": {\n \"amount\": 12.99\n },\n \"reason\": \"Price adjustment from Customer Representative\",\n \"attributes\": {\n \"source\": \"CSR\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-fabric-tenant-id", "<x-fabric-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.fabric.inc/v3/carts/{cartId}/adjustments")
.header("x-fabric-tenant-id", "<x-fabric-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"price\": {\n \"amount\": 12.99\n },\n \"reason\": \"Price adjustment from Customer Representative\",\n \"attributes\": {\n \"source\": \"CSR\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fabric.inc/v3/carts/{cartId}/adjustments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-fabric-tenant-id"] = '<x-fabric-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"price\": {\n \"amount\": 12.99\n },\n \"reason\": \"Price adjustment from Customer Representative\",\n \"attributes\": {\n \"source\": \"CSR\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "a8577d7f-0d4d-4b22-8e85-7b4a2e90dc93",
"price": {
"amount": 12.99
},
"reason": "Price adjustment from customer representative.",
"attributes": {
"source": "CSR"
},
"updatedAt": "2024-06-13T16:50:00.682Z",
"createdAt": "2024-06-13T16:50:00.682Z"
}{
"type": "BAD_REQUEST",
"message": "x-fabric-tenant-id is required"
}{
"type": "CART_NOT_FOUND",
"message": "Cart not found"
}Authorizations
This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the Making your first API request section.
Headers
A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.
"617329dfd5288b0011332311"
Unique request ID for tracking.
"263e731c-45c8-11ed-b878-0242ac120002"
x-fabric-channel-id identifies the sales channel through which the API request is being made; primarily for multichannel use cases. It is a required field. The default US channel is 12 while the default Canada channel is 11.
"12"
Path Parameters
The 24-character system-generated Cart ID. This ID is generated using the Create cart endpoint.
Body
Adjustment Request
Price details
Show child attributes
Show child attributes
The reason for the adjustment.
"Price adjustment from Customer Representative"
Custom attributes to provide more context, such as who made the adjustment.
Show child attributes
Show child attributes
{ "source": "CSR" }
Response
Created
Adjustment
The unique identifier of an adjustment generated by this endpoint. This Adjustment ID is used for other endpoints.
"a8577d7f-0d4d-4b22-8e85-7b4a2e90dc93"
Price details
Show child attributes
Show child attributes
The reason for the adjustment.
"Price adjustment from customer representative."
Custom attributes used for price adjustments.
Show child attributes
Show child attributes
{ "source": "CSR" }
The date and time when the adjustment was last updated.
"2024-06-13T16:50:00.682Z"
The date and time when the adjustment was created.
"2024-06-13T16:50:00.682Z"
Was this page helpful?
