Interface DirectDiscountDraft

All Superinterfaces:
io.vrap.rmf.base.client.Draft<DirectDiscountDraft>
All Known Implementing Classes:
DirectDiscountDraftImpl

public interface DirectDiscountDraft extends io.vrap.rmf.base.client.Draft<DirectDiscountDraft>

Represents a CartDiscount that can only be associated with a single Cart or Order.

Direct Discounts are always active and valid, and have the default Stacking StackingMode. They apply in the order in which they are listed in the directDiscounts array of Carts or Orders, and do not have a sorting order like Cart Discounts.

If a Direct Discount is present, any matching Cart Discounts in the Project are ignored. Additionally, a Cart or Order supports either Discount Codes or Direct Discounts at the same time.


Example to create an instance using the builder pattern

     DirectDiscountDraft directDiscountDraft = DirectDiscountDraft.builder()
             .value(valueBuilder -> valueBuilder)
             .build()
 
  • Method Details

    • getValue

      @NotNull @Valid @NotNull @Valid CartDiscountValue getValue()

      Defines the effect the Discount will have.

      Returns:
      value
    • getTarget

      @Valid @Valid CartDiscountTarget getTarget()

      Defines what segment of the Cart will be discounted.

      If value is set to giftLineItem, this must not be set.

      Returns:
      target
    • setValue

      void setValue(CartDiscountValue value)

      Defines the effect the Discount will have.

      Parameters:
      value - value to be set
    • setTarget

      void setTarget(CartDiscountTarget target)

      Defines what segment of the Cart will be discounted.

      If value is set to giftLineItem, this must not be set.

      Parameters:
      target - value to be set
    • of

      static DirectDiscountDraft of()
      factory method
      Returns:
      instance of DirectDiscountDraft
    • of

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

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

      static DirectDiscountDraftBuilder builder()
      builder factory method for DirectDiscountDraft
      Returns:
      builder
    • builder

      create builder for DirectDiscountDraft instance
      Parameters:
      template - instance with prefilled values for the builder
      Returns:
      builder
    • withDirectDiscountDraft

      default <T> T withDirectDiscountDraft(Function<DirectDiscountDraft,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<DirectDiscountDraft> typeReference()
      gives a TypeReference for usage with Jackson DataBind
      Returns:
      TypeReference