Pricing Strategy

To combine prices for Customers, there are two predefined Pricing Strategies:

  • Merge by priority
  • Minimal prices

To create your own strategy, implement the PriceCombiningStrategyInterface interface and register the service with the ‘oro_pricing.price_strategy’ tag.

Example:

oro_pricing.pricing_strategy.merge_price_combining_strategy:
    class: Acme\Bundle\AcmeBundle\PricingStrategy\YourPricingStrategy
    parent: acme.pricing_strategy.your_pricing_strategy
    tags:
        - { name: acme.price_strategy, alias: your_strategy }

After this, your strategy will be available in the System\Configuration\Commerce\Catalog\Pricing\Pricing Strategy in the OroCommerce back-office.

Merge By Priority

Merge By Priority Strategy picks the first price from the given sequence of the Price Lists for an empty slot.

The Merge Allowed flag shows whether a particular Price List is allowed to be merged with the other prices. When Merge Allowed is disabled for a price list, its price will be exclusively used for the product that has no price provided in other price lists with higher priority.

Example1:

Product Price List Price Merge Allowed
SKU1 Default PriceList 9$ / 1 item true
SKU1 Default PriceList 8$ / 2 item true
SKU1 Default PriceList 6$ / 5 item true
SKU1 Custom PriceList 8$ / 1 item true
SKU1 Custom PriceList 7$ / 2 item true
SKU1 Custom PriceList 7$ / 4 item true

Result:

Product Price
SKU1 9$ / 1 item
SKU1 8$ / 2 item
SKU1 7$ / 4 item
SKU1 6$ / 5 item

Example 2:

Product Price List Price Merge Allowed
SKU1 Default PriceList 9$ / 1 item false
SKU1 Default PriceList 8$ / 2 item false
SKU1 Default PriceList 6$ / 5 item false
SKU1 Custom PriceList 8$ / 1 item true
SKU1 Custom PriceList 7$ / 2 item true
SKU1 Custom PriceList 7$ / 4 item true

Result:

Product Price
SKU1 9$ / 1 item
SKU1 8$ / 2 item
SKU1 6$ / 5 item

Example 3:

Product Price List Price Merge Allowed
SKU1 Default PriceList 9$ / 1 item true
SKU1 Default PriceList 8$ / 2 item true
SKU1 Default PriceList 6$ / 5 item true
SKU1 Custom PriceList 8$ / 1 item false
SKU1 Custom PriceList 7$ / 2 item false
SKU1 Custom PriceList 7$ / 4 item false
SKU1 Custom2 PriceList 5$ / 10 item true
SKU1 Custom2 PriceList 4$ / 100 item true

Result:

Product Price
SKU1 9$ / 1 item
SKU1 8$ / 2 item
SKU1 6$ / 5 item
SKU1 5$ / 10 item
SKU1 4$ / 100 item

Minimal Prices

Minimal Prices Strategy picks the minimum price from the given sequence of Price Lists.

Product Price List Price
SKU1 Default PriceList 9$ / 1 item
SKU1 Default PriceList 8$ / 2 item
SKU1 Default PriceList 6$ / 4 item
SKU1 Custom PriceList 8$ / 1 item
SKU1 Custom PriceList 7$ / 2 item
SKU1 Custom PriceList 7$ / 4 item

Result:

Product Price
SKU1 8$ / 1 item
SKU1 7$ / 2 item
SKU1 6$ / 4 item