Merge guest cart with user cart (cart decoupled) - Fabric
Merge guest cart with user cart (cart decoupled)
cURL
curl --request PATCH \
--url https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/merge \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"guestCartId": "5f8f0da2d4cc8e00084b9e8e"
}
'```
### Python
import requests
url = "https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/merge"
payload = { "guestCartId": "5f8f0da2d4cc8e00084b9e8e" }
headers = {
"x-site-context": "
response = requests.patch(url, json=payload, headers=headers)
print(response.text)
### JavaScript
const options = {
method: 'PATCH',
headers: {'x-site-context': '
fetch('https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/merge', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err));
### PHP
"https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/merge",
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([
'guestCartId' => '5f8f0da2d4cc8e00084b9e8e'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-site-context:
### Go
package main
import ( "fmt" "strings" "net/http" "io" )
func main() {
url := "https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/merge"
payload := strings.NewReader("{\n "guestCartId": "5f8f0da2d4cc8e00084b9e8e"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-site-context", "
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body)) }
### Ruby
require 'uri' require 'net/http'
url = URI("https://prod01-apigw.yourcompany.fabric.zone/api-cart/cart-decoupled/merge")
http = Net::HTTP.new(url.host, url.port) http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-site-context"] = '
response = http.request(request) puts response.read_body
### Status Codes
- **200**: Success
- **400**: Bad Request
- **404**: Not Found
- **500**: Server Error
### Response Example
#### Successful Response
```json
{
"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"
}
]
}
Error Response Example
{
"code": "CART_NOT_FOUND",
"message": "Cart not found."
}
Headers
- x-site-context: required, a JSON object containing necessary identifiers like
account,channel, etc.
Body
- guestCartId: required, string length:
24
Example:
"5f8f0da2d4cc8e00084b9e8e"