# Add custom campaign condition if article price is below or over a specific price

**URL:** <https://forum.litium.com/t/add-custom-campaign-condition-if-article-price-is-below-or-over-a-specific-price/422>\
**Category:** Questions\
**Tags:** litium-6, accelerator\
**Created:** [December 10, 2018, 2:24pm UTC](https://forum.litium.com/t/add-custom-campaign-condition-if-article-price-is-below-or-over-a-specific-price/422 "2018-12-10T14:24:11Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cissi](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/cissi/32/18_2.png) [@Cissi](https://forum.litium.com/u/Cissi)\
**Post date:** [December 10, 2018, 2:24pm UTC](https://forum.litium.com/t/add-custom-campaign-condition-if-article-price-is-below-or-over-a-specific-price/422/1 "2018-12-10T14:24:12Z")

</div>

I want to add write a custom conditioon. Cause when we create this campaign for examle: “get product for free if you have something from this product list in the checkout” I also want to say that it’s only valid if the products in the list costs 1000 kr or more.

I was reading the docs for this to do this for the amount of the order. [https://docs.litium.com/documentation/previous-versions/litium-6/litium-documentation/sales/campaigns/creating-a-custom-condition](https://docs.litium.com/documentation/previous-versions/litium-6/litium-documentation/sales/campaigns/creating-a-custom-condition)

How do extend so I can make the campaign valid depending on a price condition.

Litium version: 6.2.2

---

<div class="post-metadata">

**Author:** ![anusha.ganegoda](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.litium.com/anusha.ganegoda/32/58_2.png) [@anusha.ganegoda](https://forum.litium.com/u/anusha.ganegoda)\
**Post date:** [December 12, 2018, 12:54pm UTC](https://forum.litium.com/t/add-custom-campaign-condition-if-article-price-is-below-or-over-a-specific-price/422/2 "2018-12-12T12:54:45Z")

</div>

Note that, you do have the list of order rows in conditionArgs.FilteredOrderRows.

Following is a sample which fetches prices. However, in your case, I suppose the List price is already there in the filteredOrderRow.

```
  public bool Process(ConditionArgs conditionArgs)
        {
            var priceListIds = IoC.Resolve<IPriceCalculator>()
                .GetPriceLists(new PriceCalculatorArgs
                {
                    UserSystemId = conditionArgs.UserID,
                    CurrencySystemId = conditionArgs.OrderCarrier.CurrencyID,
                    DateTimeUtc = HttpContext.Current?.Timestamp.ToUniversalTime() ?? DateTime.UtcNow,
                    WebSiteSystemId = conditionArgs.WebSiteID
                })
                .Select(x => x.SystemId)
                .ToList();

            var rows = conditionArgs.FilteredOrderRows
                .Where(row =>
                {
                    return _includeTierPrices || _variantService.
                        Get(row.ArticleID)
                        .Prices
                        .Where(price => priceListIds.Contains(price.PriceListSystemId))
                        .All(price => price.MinimumQuantity == 0);
                }).ToList();

            conditionArgs.FilteredOrderRows = rows;

            return rows.Any();
        }
```
