VONQ

Setting Campaign Metadata

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
    }
)

Campaign metadata support was introduced in version 3.6.