Интеграция NRules (алгоритм Rete) с купонами

Я пытаюсь реализовать nrules со следующим доменом:

Order order = null;
Customer customer = null;
IEnumerable<Coupon> Coupons = null;

Купон имеет следующий класс:

public class Coupon
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }

    public bool Active { get; set; } = true;

    public double Amount { get; set; }

    public bool AllowFreeShipping { get; set; }

    public DateTime? EndDate { get; set; }

    public Guid? IncludedProducts { get; set; }
    public Guid? ExcludedProducts { get; set; }

    public Guid? IncludedTags { get; set; }
    public Guid? ExcludedTags { get; set; }

    public string AllowedEmailsExcludedByComma { get; set; }

    public int? LimitUsagePerCoupon { get; set; }
    public int? LimitUsagePerClient { get; set; }

    public int? LimitIndividualArticlesCount { get; set; }



}

//https://docs.woocommerce.com/document/coupon-management/
public enum CouponType
{
    //A percentage discount for selected products only. For example, if the cart contains three (3) t-shirts @ $20 each = $60, a coupon for 10% off applies a discount of $6.
    PercentageDiscount = 1,
    //A fixed total discount for the entire cart. For example, if the cart contains three (3)  t-shirts @ $20 each = $60, a coupon for $10 off gives a discount of $10.
    FixedCartDiscount = 2,
    //A fixed total discount for selected products only. Customer receives a set amount of discount per item. For example, three (3) t-shirts @ $20 each with a coupon for $10 off applies a discount of $30.
    FixedProductDiscount = 3
}

Проблема в том, что я не знаю, как это интегрировать. Все примеры с одной сущностью.

Здесь я должен решить, является ли купон действительным для этого клиента и использовался ли купон в прошлом.

Также есть разница между тем, когда был заказ.

Я хотел бы знать, как реализовать первый NRule.

0 ответов

Другие вопросы по тегам