Create or update price - Fabric
Create or update price
cURL
curl --request POST \
--url https://live.copilot.fabric.inc/api-offers/price \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"itemIds": [
10000001
],
"offers": [
{
"channel": 12,
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"price": {
"base": 299,
"sale": 199,
"cost": 149,
"currency": "USD"
},
"kind": 12,
"additionalAttributes": [
{
"customSkuTitle": "HOUSE TREE",
"customCategory": "HOME"
}
]
}
],
"priceListId": "100-TwoWeeks",
"itemSkus": [
"SKU0123456"
]
}
'
Python Example
import requests
url = "https://live.copilot.fabric.inc/api-offers/price"
payload = {
"itemIds": [10000001],
"offers": [
{
"channel": 12,
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"price": {
"base": 299,
"sale": 199,
"cost": 149,
"currency": "USD"
},
"kind": 12,
"additionalAttributes": [
{
"customSkuTitle": "HOUSE TREE",
"customCategory": "HOME"
}
]
}
],
"priceListId": "100-TwoWeeks",
"itemSkus": ["SKU0123456"]
}
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>",
"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>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
itemIds: [10000001],
offers: [
{
channel: 12,
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
price: {base: 299, sale: 199, cost: 149, currency: 'USD'},
kind: 12,
additionalAttributes: [{customSkuTitle: 'HOUSE TREE', customCategory: 'HOME'}]
}
],
priceListId: '100-TwoWeeks',
itemSkus: ['SKU0123456']
})
};
fetch('https://live.copilot.fabric.inc/api-offers/price', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
PHP Example
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://live.copilot.fabric.inc/api-offers/price",
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([
'itemIds' => [
10000001
],
'offers' => [
[
'channel' => 12,
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'price' => [
'base' => 299,
'sale' => 199,
'cost' => 149,
'currency' => 'USD'
],
'kind' => 12,
'additionalAttributes' => [
[
'customSkuTitle' => 'HOUSE TREE',
'customCategory' => 'HOME'
]
]
]
],
'priceListId' => '100-TwoWeeks',
'itemSkus' => [
'SKU0123456'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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 Example
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.copilot.fabric.inc/api-offers/price"
payload := strings.NewReader("{\n \"itemIds\": [\n 10000001\n ],\n \"offers\": [\n {\n \"channel\": 12,\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"price\": {\n \"base\": 299,\n \"sale\": 199,\n \"cost\": 149,\n \"currency\": \"USD\"\n },\n \"kind\": 12,\n \"additionalAttributes\": [\n {\n \"customSkuTitle\": \"HOUSE TREE\",\n \"customCategory\": \"HOME\"\n }\n ]\n }\n ],\n \"priceListId\": \"100-TwoWeeks\",\n \"itemSkus\": [\n \"SKU0123456\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-site-context", "<x-site-context>")
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))
}
Response Codes
- 200: OK
- 400: Bad Request
- 404: Not Found
- 500: Internal Server Error
Response Structure
{
"id": "<string>",
"isSoftDeleted": true,
"itemId": 1000000051,
"itemSku": "SKU123456",
"priceListId": 100000,
"offerId": 2386,
"offers": [
{
"kind": 12,
"channel": 12,
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"price": {
"base": 299,
"sale": 199,
"cost": 149,
"currency": "USD"
},
"priceMethodType": "Range-Base",
"additionalAttributes": [
{
"customSkuTitle": "HOUSE TREE",
"customCategory": "HOME"
}
]
}
],
"createdAt": "2020-02-02T17:22:48.570Z",
"updatedAt": "2020-02-02T17:22:48.570Z",
"job": false
}
Error Messages
PRICE_TIME_RANGE_ERROR: The start date must be at least 15 minutes before the end date, and both dates must be in the future.
PRICE_LIST_NOT_FOUND: No Price List with this ID Found.
INTERNAL_SERVER_ERROR: Internal server error.