Interface LineItemDraft

All Superinterfaces:
CustomizableDraft<LineItemDraft>, io.vrap.rmf.base.client.Draft<LineItemDraft>
All Known Implementing Classes:
LineItemDraftImpl

public interface LineItemDraft extends CustomizableDraft<LineItemDraft>, io.vrap.rmf.base.client.Draft<LineItemDraft>

For Product Variant identification, either the productId and variantId, or sku must be provided.


Example to create an instance using the builder pattern

     LineItemDraft lineItemDraft = LineItemDraft.builder()
             .build()
 
  • Method Details

    • getKey

      User-defined unique identifier of the LineItem.

      Returns:
      key
    • getProductId

      id of a published Product.

      Returns:
      productId
    • getVariantId

      id of the ProductVariant in the Product. If not provided, the Master Variant is used.

      Returns:
      variantId
    • getSku

      sku of the ProductVariant.

      Returns:
      sku
    • getQuantity

      Quantity of the Product Variant to add to the Cart.

      Returns:
      quantity
    • getAddedAt

      Date and time (UTC) the Product Variant is added to the Cart. If not set, it defaults to the current date and time.

      Optional for backwards compatibility reasons.

      Returns:
      addedAt
    • getDistributionChannel

      Used to select a Product Price. The referenced Channel must have the ProductDistribution ChannelRoleEnum.

      If the Cart is bound to a Store with distributionChannels set, the Channel must match one of the Store's distribution channels.

      Returns:
      distributionChannel
    • getSupplyChannel

      Used to identify Inventory entries that must be reserved. The referenced Channel must have the InventorySupply ChannelRoleEnum.

      Returns:
      supplyChannel
    • getExternalPrice

      @Valid @Valid Money getExternalPrice()

      Sets the LineItem price value, and the priceMode to ExternalPrice LineItemPriceMode.

      Returns:
      externalPrice
    • getExternalTotalPrice

      Sets the LineItem price and totalPrice values, and the priceMode to ExternalTotal LineItemPriceMode.

      Returns:
      externalTotalPrice
    • getExternalTaxRate

      External Tax Rate for the Line Item if the Cart has the External TaxMode.

      Returns:
      externalTaxRate
    • getInventoryMode

      Inventory mode specific to the Line Item only, and valid for the entire quantity of the Line Item. Set only if the inventory mode should be different from the inventoryMode specified on the Cart.

      Returns:
      inventoryMode
    • getShippingDetails

      Container for Line Item-specific addresses.

      Returns:
      shippingDetails
    • getCustom

      @Valid @Valid CustomFieldsDraft getCustom()

      Custom Fields for the Line Item.

      Specified by:
      getCustom in interface CustomizableDraft<LineItemDraft>
      Returns:
      custom
    • setKey

      void setKey(String key)

      User-defined unique identifier of the LineItem.

      Parameters:
      key - value to be set
    • setProductId

      void setProductId(String productId)

      id of a published Product.

      Parameters:
      productId - value to be set
    • setVariantId

      void setVariantId(Long variantId)

      id of the ProductVariant in the Product. If not provided, the Master Variant is used.

      Parameters:
      variantId - value to be set
    • setSku

      void setSku(String sku)

      sku of the ProductVariant.

      Parameters:
      sku - value to be set
    • setQuantity

      void setQuantity(Long quantity)

      Quantity of the Product Variant to add to the Cart.

      Parameters:
      quantity - value to be set
    • setAddedAt

      void setAddedAt(ZonedDateTime addedAt)

      Date and time (UTC) the Product Variant is added to the Cart. If not set, it defaults to the current date and time.

      Optional for backwards compatibility reasons.

      Parameters:
      addedAt - value to be set
    • setDistributionChannel

      Used to select a Product Price. The referenced Channel must have the ProductDistribution ChannelRoleEnum.

      If the Cart is bound to a Store with distributionChannels set, the Channel must match one of the Store's distribution channels.

      Parameters:
      distributionChannel - value to be set
    • setSupplyChannel

      Used to identify Inventory entries that must be reserved. The referenced Channel must have the InventorySupply ChannelRoleEnum.

      Parameters:
      supplyChannel - value to be set
    • setExternalPrice

      void setExternalPrice(Money externalPrice)

      Sets the LineItem price value, and the priceMode to ExternalPrice LineItemPriceMode.

      Parameters:
      externalPrice - value to be set
    • setExternalTotalPrice

      Sets the LineItem price and totalPrice values, and the priceMode to ExternalTotal LineItemPriceMode.

      Parameters:
      externalTotalPrice - value to be set
    • setExternalTaxRate

      External Tax Rate for the Line Item if the Cart has the External TaxMode.

      Parameters:
      externalTaxRate - value to be set
    • setInventoryMode

      void setInventoryMode(InventoryMode inventoryMode)

      Inventory mode specific to the Line Item only, and valid for the entire quantity of the Line Item. Set only if the inventory mode should be different from the inventoryMode specified on the Cart.

      Parameters:
      inventoryMode - value to be set
    • setShippingDetails

      Container for Line Item-specific addresses.

      Parameters:
      shippingDetails - value to be set
    • setCustom

      Custom Fields for the Line Item.

      Specified by:
      setCustom in interface CustomizableDraft<LineItemDraft>
      Parameters:
      custom - value to be set
    • of

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

      static LineItemDraft of(LineItemDraft template)
      factory method to create a shallow copy LineItemDraft
      Parameters:
      template - instance to be copied
      Returns:
      copy instance
    • deepCopy

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

      builder factory method for LineItemDraft
      Returns:
      builder
    • builder

      create builder for LineItemDraft instance
      Parameters:
      template - instance with prefilled values for the builder
      Returns:
      builder
    • withLineItemDraft

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