`mergeBasket` requires `Content-Type: application/json`
ShopperBaskets.mergeBasket requires the content-type application/json or it fails with an HTTP 415 (unsupported media type).
The API itself is a bit odd, in that no request body is needed, so this behaviour is sorta unexpected.
Maybe our existing logic is looking for the existence of a required request payload to send this header:
https://github.com/SalesforceCommerceCloud/commerce-sdk-isomorphic/blob/0d2cdea01e84da859e3cbc4bdf51bb4bc1c831b8/templates/operations.ts.hbs#L170-L172
It might be a safe default to always send it or alternatively special case this method.
Alternatively, maybe we could request a change to the RAML. 🤷
The workaround for customers is to provide the header manually:
const mergeResponse = await new capi.ShopperBaskets(
clientConfig
).mergeBasket({
headers: {
"Content-Type": "application/json",
},
parameters: { createDestinationBasket: true },
})
Here is a sample script showing the behaviour:
https://gist.github.com/johnboxall/eed791f95ad6636baa01269a1d178bbb
This issue has been linked to a new work item: W-12659232
Hi @johnboxall, thanks for bringing this to our attention. This work has been added to our backlog and we'll loop you back in when we have updates.