Interface BasePriceableTarget

All Known Implementing Classes:
PriceableTarget, PriceableTargetRef

public interface BasePriceableTarget
Defines the essential properties of a priceable target to make comparisons and shared logic easier between PriceableTarget and PriceableTargetRef.
Since:
Pricing Client 2.0.3
Author:
Nathan Moore (nathandmoore)
See Also:
  • Method Details

    • getTargetId

      String getTargetId()
      Gets the identifier of the target.
      Returns:
      the identifier of the target.
    • setTargetId

      void setTargetId(String id)
      Sets the identifier of the target.
      Parameters:
      id - the identifier of the target.
    • getTargetType

      String getTargetType()
      Gets the type of the target, e.g., SKU or PRICING_KEY.
      Returns:
      the identifier of the target.
    • setTargetType

      void setTargetType(String type)
      Sets the type of the target, e.g., SKU or PRICING_KEY.
      Parameters:
      type - the type of the target.
    • getVendorRef

      String getVendorRef()
      Key to external system indicating that this PriceableTarget is specific to a vendor. This can be populated to support security controls based on a vendor based claim.
      Returns:
      a reference to a vendor (e.g. vendorId or vendorCode)
    • setVendorRef

      void setVendorRef(@Nullable String vendorRef)
      Key to external system indicating that this PriceableTarget is specific to a vendor.
      Parameters:
      vendorRef - a reference to a vendor (e.g. vendorId or vendorCode)
    • getPaymentStrategy

      default String getPaymentStrategy()
      Gets the payment strategy of the price of the target, e.g., ONE_TIME, PREPAID, POSTPAID. This indicates that the caller wants a specific price for the given payment strategy and prices should be filtered accordingly.
      Returns:
      the payment strategy of the price desired for the target.
      Since:
      2.0.4
      See Also:
    • setPaymentStrategy

      default void setPaymentStrategy(@Nullable String paymentStrategy)
      Sets the payment strategy of the price of the target, e.g., ONE_TIME, PREPAID, POSTPAID.
      Parameters:
      paymentStrategy - the payment strategy of the price desired for the target.
      Since:
      2.0.4
    • getRecurringPeriodFrequency

      default Integer getRecurringPeriodFrequency()
      Gets the frequency of the recurring price of the target, e.g., 1, 6, 12. This indicates that the caller wants a specific price for the given recurring price frequency and prices should be filtered accordingly.
      Returns:
      the frequency of the recurring price desired for the target.
      Since:
      2.0.4
    • setRecurringPeriodFrequency

      default void setRecurringPeriodFrequency(@Nullable Integer recurringPeriodFrequency)
      Sets the frequency of the recurring price of the target, e.g., 1, 6, 12.
      Parameters:
      recurringPeriodFrequency - the frequency of the recurring price desired for the target.
      Since:
      2.0.4
    • getRecurringPeriodType

      default String getRecurringPeriodType()
      Gets the recurring price period type of the target, e.g., MONTHLY, QUARTERLY, ANNUALLY. This indicates that the caller wants a specific price for the given recurring period type and prices should be filtered accordingly.
      Returns:
      the recurring period type of the price desired for the target
      Since:
      2.0.4
      See Also:
    • setRecurringPeriodType

      default void setRecurringPeriodType(@Nullable String type)
      Sets the recurring period type of the target, e.g., MONTHLY, QUARTERLY, ANNUALLY.
      Parameters:
      type - the recurring period type of the price desired for the target
      Since:
      2.0.4
    • getTermDurationLength

      Integer getTermDurationLength()
      Gets the term duration length of the target, e.g., 12, 24, 36. This indicates that the caller wants a specific price for the given term length and prices should be filtered accordingly.
      Returns:
      the term duration length of the price desired for the target.
    • setTermDurationLength

      void setTermDurationLength(@Nullable Integer durationLength)
      Sets the term duration length of the target, e.g., 12, 24, 36.
      Parameters:
      durationLength - the term duration length of the price desired for the target.
    • getTermDurationType

      String getTermDurationType()
      Gets the term duration type of the target, e.g., DAYS, MONTHS, YEARS. This indicates that the caller wants a specific price for the given term type and prices should be filtered accordingly.
      Returns:
      the term duration type of the price desired for the target
      See Also:
    • setTermDurationType

      void setTermDurationType(@Nullable String type)
      Sets the term duration type of the target, e.g., DAYS, MONTHS, YEARS.
      Parameters:
      type - the term duration type of the price desired for the target
    • getCharacteristics

      Map<String,String> getCharacteristics()
      Gets the characteristics of the target, e.g., capacity:128GB. This indicates that the caller wants a specific price targeting these characteristics not just a base or default price for the target item. This is useful when the target is a flattened Product with no variations but still has configurable options that could drive pricing.
      Returns:
      the characteristics of the target
    • setCharacteristics

      void setCharacteristics(Map<String,String> characteristics)
      Sets the characteristics of the target, e.g., size: red, capacity: 128GB.
      Parameters:
      characteristics - the characteristics of the target
    • getPricingCategory

      String getPricingCategory()
      Optional. A category id that can be targeted in a pricing modifier formula to transform pricing for products assigned to it.
      Since:
      Pricing Client 2.0.4
    • setPricingCategory

      void setPricingCategory(String pricingCategory)
      Optional. A category id that can be targeted in a pricing modifier formula to transform pricing for products assigned to it.
      Since:
      Pricing Client 2.0.4