orderrow.campaignID is GUID.Empty even when there is a valid active campaign for the product

orderrow.campaignID is GUID.Empty even when there is a valid campaign for the product.

Litium version: 5

What’s the campaign type?

If it’s applied on the order level (like buy X for Y, buy Z get discount on the cheapest), the campaign is added as an OrderDiscount on the Order.

It is a campaign on product. “Sänk produktens pris med procent”

With the information given it’s hard to say what’s happening, can you please provide steps to reproduce?

I hope when there is an active campaign for a product, orderRow.CampaignID would be set to the campaign ID. In our case it is always GUID.Empty

this is how the campaign looks in the back office

I’m unable to reproduce this. Using a similar discount, the campaign id is there for the order rows on the order carrier. If I fetch the order, the Campaign is there on the order row.

Could you please share some code for when you’re retrieving the order and it’s Guid.Empty?

it is inside the ShoppingCartViewModelBuilder, please find the screenshot below

Debugging the same lines works just fine for me.

Are there any tiered prices on the product you’re using?
Are there any other campaigns that are applied that can’t be combined with this one?

I think it is not specific to any products, but specific to website.
I have set the campaign to be used with all other campaigns

How should we activate campaign prices if we have tier price for the product

The tier price restrictions are built into the actions themselves, so you’d either have to create custom actions or use a different approach with price lists to facilitate the campaign instead.