Interface CartDiscountPatternTarget

All Superinterfaces:
CartDiscountTarget

public interface CartDiscountPatternTarget extends CartDiscountTarget

Pattern targets can be used to model Buy and Get discounts.

Unlike CartDiscountLineItemsTarget and CartDiscountCustomLineItemsTarget, it does not apply to a (Custom) Line Item as a whole, but to individual units of a (Custom) Line Item. The discounts can apply multiple times on the same cart, but each unit can be discounted only once.


Example to create an instance using the builder pattern

     CartDiscountPatternTarget cartDiscountPatternTarget = CartDiscountPatternTarget.builder()
             .plusTriggerPattern(triggerPatternBuilder -> triggerPatternBuilder)
             .plusTargetPattern(targetPatternBuilder -> targetPatternBuilder)
             .selectionMode(SelectionMode.CHEAPEST)
             .build()
 
  • Field Details

  • Method Details

    • getTriggerPattern

      @NotNull @Valid @NotNull @Valid List<PatternComponent> getTriggerPattern()

      Defines the set of units of (Custom) Line Items in a Cart that trigger a discount application.

      Based on the availability of matching units, the triggerPattern can match multiple times, limiting the number of maximum times the discount will be applied. To further limit the discount application, set the maxOccurrence.

      If empty, the Discount will apply indefinitely.

      Returns:
      triggerPattern
    • getTargetPattern

      @NotNull @Valid @NotNull @Valid List<PatternComponent> getTargetPattern()

      Defines the set of units of (Custom) Line Items in a Cart on which the Discount is applied.

      Based on the availability of matching units and the limits from the triggerPattern or maxOccurence, the targetPattern can match multiple times.

      This array cannot be empty.

      Returns:
      targetPattern
    • getMaxOccurrence

      Integer getMaxOccurrence()

      Maximum number of times the Discount can apply on a Cart.

      If empty or not set, the Discount will apply indefinitely.

      Returns:
      maxOccurrence
    • getSelectionMode

      @NotNull @NotNull SelectionMode getSelectionMode()

      Determines which of the matching units of (Custom) Line Items are discounted.

      Returns:
      selectionMode
    • setTriggerPattern

      void setTriggerPattern(PatternComponent... triggerPattern)

      Defines the set of units of (Custom) Line Items in a Cart that trigger a discount application.

      Based on the availability of matching units, the triggerPattern can match multiple times, limiting the number of maximum times the discount will be applied. To further limit the discount application, set the maxOccurrence.

      If empty, the Discount will apply indefinitely.

      Parameters:
      triggerPattern - values to be set
    • setTriggerPattern

      void setTriggerPattern(List<PatternComponent> triggerPattern)

      Defines the set of units of (Custom) Line Items in a Cart that trigger a discount application.

      Based on the availability of matching units, the triggerPattern can match multiple times, limiting the number of maximum times the discount will be applied. To further limit the discount application, set the maxOccurrence.

      If empty, the Discount will apply indefinitely.

      Parameters:
      triggerPattern - values to be set
    • setTargetPattern

      void setTargetPattern(PatternComponent... targetPattern)

      Defines the set of units of (Custom) Line Items in a Cart on which the Discount is applied.

      Based on the availability of matching units and the limits from the triggerPattern or maxOccurence, the targetPattern can match multiple times.

      This array cannot be empty.

      Parameters:
      targetPattern - values to be set
    • setTargetPattern

      void setTargetPattern(List<PatternComponent> targetPattern)

      Defines the set of units of (Custom) Line Items in a Cart on which the Discount is applied.

      Based on the availability of matching units and the limits from the triggerPattern or maxOccurence, the targetPattern can match multiple times.

      This array cannot be empty.

      Parameters:
      targetPattern - values to be set
    • setMaxOccurrence

      void setMaxOccurrence(Integer maxOccurrence)

      Maximum number of times the Discount can apply on a Cart.

      If empty or not set, the Discount will apply indefinitely.

      Parameters:
      maxOccurrence - value to be set
    • setSelectionMode

      void setSelectionMode(SelectionMode selectionMode)

      Determines which of the matching units of (Custom) Line Items are discounted.

      Parameters:
      selectionMode - value to be set
    • of

      factory method
      Returns:
      instance of CartDiscountPatternTarget
    • of

      factory method to create a shallow copy CartDiscountPatternTarget
      Parameters:
      template - instance to be copied
      Returns:
      copy instance
    • deepCopy

      factory method to create a deep copy of CartDiscountPatternTarget
      Parameters:
      template - instance to be copied
      Returns:
      copy instance
    • builder

      builder factory method for CartDiscountPatternTarget
      Returns:
      builder
    • builder

      create builder for CartDiscountPatternTarget instance
      Parameters:
      template - instance with prefilled values for the builder
      Returns:
      builder
    • withCartDiscountPatternTarget

      default <T> T withCartDiscountPatternTarget(Function<CartDiscountPatternTarget,T> helper)
      accessor map function
      Type Parameters:
      T - mapped type
      Parameters:
      helper - function to map the object
      Returns:
      mapped value
    • typeReference

      static com.fasterxml.jackson.core.type.TypeReference<CartDiscountPatternTarget> typeReference()
      gives a TypeReference for usage with Jackson DataBind
      Returns:
      TypeReference