Skip to main content

Setting Campaign Metadata

How can we set metadata on Campaign and Ordered Product Spec objects?

CampaignMetadata is a Record<string, any> that allows you to attach arbitrary key-value pairs to a Campaign or to individual Ordered Product Specs. The metadata is persisted when the campaign order is placed.


On Campaign level

const updates = {
metadata: {
someKey: 'someValue'
}
}

window.hapi.campaign.state.campaignForm = window.hapiUtils.mergeDeepOverwriteArrays(
window.hapi.campaign.state.campaignForm.value,
updates
)

On Ordered Product Spec level

const campaignForm = window.hapi.campaign.state.campaignForm.value
const idOfProductOrContract = '5ef02666-4609-4b0f-b31c-101f62fae958'
const updatedOrderedProductsSpecs = {
...campaignForm.orderedProductsSpecs,
[idOfProductOrContract]: {
...campaignForm.orderedProductsSpecs[idOfProductOrContract],
metadata: {
someKey: 'someValue'
}
}
}

window.hapi.campaign.state.campaignForm = window.hapiUtils.mergeDeepOverwriteArrays(
window.hapi.campaign.state.campaignForm.value,
{
orderedProductsSpecs: updatedOrderedProductsSpecs
}
)
info

Campaign metadata support was introduced in version 3.6.