A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Removing Variant-Level Pricing and Applying Custom Line Item Pricing via Admin Form in Optimizely Commerce

Vote:
 

Hi everyone,

I have a requirement in Optimizely Commerce where we need to remove all pricing from the Variant level for few custom Variants and instead manage pricing entirely through a custom Admin form.

Requirement Details

  • Variants will not have any prices configured in price lists

  • Admin users will use a custom form where they:

    • Select a SKU / line item from a dropdown

    • Enter a price

  • The entered price should act as:

    • List price

    • Sell price

  • This price must be used consistently across:

    • Cart

    • Promotions

    • Taxes

    • Order processing

Current Understanding

I understand that Optimizely Commerce assumes pricing is resolved via price lists and IPriceService. If no prices exist on the variant, default price resolution will return nothing and cart calculations can break.

 

Questions

  1. Is removing all variant-level pricing a supported and safe approach in Commerce?

  2. Are there any pitfalls around promotions, taxes, or order totals with this approach?

  3. Would decorating IPriceService be a better option, or is IPlacedPriceProcessor preferred?

  4. Are there any official guidelines or examples for this pattern?

I’d appreciate insights from anyone who has implemented a similar pricing model or has guidance on best practices.

 

Thanks in advance!

#341387
Jan 08, 2026 15:41
Vote:
 

I think overriding IPriceService and return (special) prices for certain SKUs is the approach. As you said a lot parts of the system rely on IPriceService and if you return an empty price list, things might break and hard to fix those all 

#341390
Jan 09, 2026 8:18
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.