Interface CartDraft

All Superinterfaces:
CustomizableDraft<CartDraft>, io.vrap.rmf.base.client.Draft<CartDraft>, WithKey
All Known Implementing Classes:
CartDraftImpl

public interface CartDraft extends CustomizableDraft<CartDraft>, WithKey, io.vrap.rmf.base.client.Draft<CartDraft>
CartDraft
Example to create an instance using the builder pattern

     CartDraft cartDraft = CartDraft.builder()
             .currency("{currency}")
             .build()
 
  • Method Details

    • getCurrency

      @NotNull @NotNull String getCurrency()

      Currency the Cart uses.

      Returns:
      currency
    • getKey

      User-defined unique identifier for the Cart.

      Specified by:
      getKey in interface WithKey
      Returns:
      key
    • getCustomerId

      id of the Customer that the Cart belongs to.

      Returns:
      customerId
    • getCustomerEmail

      Email address of the Customer that the Cart belongs to.

      Returns:
      customerEmail
    • getCustomerGroup

      ResourceIdentifier to the Customer Group of the Customer that the Cart belongs to. Used for LineItem Price selection.

      It is automatically set if the Customer referenced in customerId belongs to a Customer Group. It can also be set explicitly when no customerId is present.

      Returns:
      customerGroup
    • getAnonymousId

      Anonymous session associated with the Cart.

      Returns:
      anonymousId
    • getBusinessUnit

      ResourceIdentifier to the Business Unit the Cart should belong to. When the customerId of the Cart is also set, the Customer must be an Associate of the Business Unit.

      Returns:
      businessUnit
    • getStore

      ResourceIdentifier to the Store the Cart should belong to. Once set, it cannot be updated.

      Returns:
      store
    • getLineItems

      @Valid @Valid List<LineItemDraft> getLineItems()

      Line Items to add to the Cart.

      Returns:
      lineItems
    • getCustomLineItems

      Custom Line Items to add to the Cart.

      Returns:
      customLineItems
    • getTaxMode

      Determines how Tax Rates are set.

      Returns:
      taxMode
    • getExternalTaxRateForShippingMethod

      External Tax Rate for the shippingMethod if the Cart has External TaxMode.

      Returns:
      externalTaxRateForShippingMethod
    • getTaxRoundingMode

      Determines how monetary values are rounded when calculating taxes for taxedPrice.

      Returns:
      taxRoundingMode
    • getTaxCalculationMode

      Determines how taxes are calculated when calculating taxes for taxedPrice.

      Returns:
      taxCalculationMode
    • getInventoryMode

      Determines how stock quantities are tracked for Line Items in the Cart.

      Returns:
      inventoryMode
    • getBillingAddress

      Billing address associated with the Cart.

      Returns:
      billingAddress
    • getShippingAddress

      Shipping address associated with the Cart. Determines eligible ShippingMethod rates and Tax Rates of Line Items.

      Returns:
      shippingAddress
    • getShippingMethod

      Shipping Method for a Cart with Single ShippingMode. If the referenced ShippingMethod has a predicate that does not match the Cart, an InvalidOperation error is returned when creating a Cart.

      Returns:
      shippingMethod
    • getShippingRateInput

      Used as an input to select a ShippingRatePriceTier. The data type of this field depends on the shippingRateInputType.type configured in the Project:

      • If CartClassification, it must be ClassificationShippingRateInputDraft.
      • If CartScore, it must be ScoreShippingRateInputDraft.
      • If CartValue, it cannot be set.
      Returns:
      shippingRateInput
    • getShippingMode

      • If set to Single, only a single Shipping Method can be added to the Cart.
      • If set to Multiple, multiple Shipping Methods can be added to the Cart.
      Returns:
      shippingMode
    • getCustomShipping

      Custom Shipping Methods for a Cart with Multiple ShippingMode.

      Returns:
      customShipping
    • getShipping

      @Valid @Valid List<ShippingDraft> getShipping()

      Shipping Methods for a Cart with Multiple ShippingMode.

      Returns:
      shipping
    • getItemShippingAddresses

      Multiple shipping addresses of the Cart. Each address must contain a key that is unique in this Cart. The keys are used by LineItems to reference these addresses under their shippingDetails.

      Eligible Shipping Methods or applicable Tax Rates are determined by the address shippingAddress, and not itemShippingAddresses.

      Returns:
      itemShippingAddresses
    • getDiscountCodes

      code of the existing DiscountCodes to add to the Cart.

      Returns:
      discountCodes
    • getCountry

      Used for LineItem Price selection. If used for Create Cart in Store, the provided country must be one of the Store's countries.

      Returns:
      country
    • getLocale

      Languages of the Cart. Can only contain languages supported by the Project.

      Returns:
      locale
    • getOrigin

      Indicates how the Cart was created.

      Returns:
      origin
    • getDeleteDaysAfterLastModification

      Number of days after which an active Cart is deleted since its last modification. If not provided, the default value for this field configured in Project settings is assigned.

      Create a ChangeSubscription for Carts to receive a ResourceDeletedDeliveryPayload upon deletion of the Cart.

      Returns:
      deleteDaysAfterLastModification
    • getCustom

      @Valid @Valid CustomFieldsDraft getCustom()

      Custom Fields for the Cart.

      Specified by:
      getCustom in interface CustomizableDraft<CartDraft>
      Returns:
      custom
    • setCurrency

      void setCurrency(String currency)

      Currency the Cart uses.

      Parameters:
      currency - value to be set
    • setKey

      void setKey(String key)

      User-defined unique identifier for the Cart.

      Parameters:
      key - value to be set
    • setCustomerId

      void setCustomerId(String customerId)

      id of the Customer that the Cart belongs to.

      Parameters:
      customerId - value to be set
    • setCustomerEmail

      void setCustomerEmail(String customerEmail)

      Email address of the Customer that the Cart belongs to.

      Parameters:
      customerEmail - value to be set
    • setCustomerGroup

      ResourceIdentifier to the Customer Group of the Customer that the Cart belongs to. Used for LineItem Price selection.

      It is automatically set if the Customer referenced in customerId belongs to a Customer Group. It can also be set explicitly when no customerId is present.

      Parameters:
      customerGroup - value to be set
    • setAnonymousId

      void setAnonymousId(String anonymousId)

      Anonymous session associated with the Cart.

      Parameters:
      anonymousId - value to be set
    • setBusinessUnit

      ResourceIdentifier to the Business Unit the Cart should belong to. When the customerId of the Cart is also set, the Customer must be an Associate of the Business Unit.

      Parameters:
      businessUnit - value to be set
    • setStore

      ResourceIdentifier to the Store the Cart should belong to. Once set, it cannot be updated.

      Parameters:
      store - value to be set
    • setLineItems

      void setLineItems(LineItemDraft... lineItems)

      Line Items to add to the Cart.

      Parameters:
      lineItems - values to be set
    • setLineItems

      void setLineItems(List<LineItemDraft> lineItems)

      Line Items to add to the Cart.

      Parameters:
      lineItems - values to be set
    • setCustomLineItems

      void setCustomLineItems(CustomLineItemDraft... customLineItems)

      Custom Line Items to add to the Cart.

      Parameters:
      customLineItems - values to be set
    • setCustomLineItems

      Custom Line Items to add to the Cart.

      Parameters:
      customLineItems - values to be set
    • setTaxMode

      void setTaxMode(TaxMode taxMode)

      Determines how Tax Rates are set.

      Parameters:
      taxMode - value to be set
    • setExternalTaxRateForShippingMethod

      void setExternalTaxRateForShippingMethod(ExternalTaxRateDraft externalTaxRateForShippingMethod)

      External Tax Rate for the shippingMethod if the Cart has External TaxMode.

      Parameters:
      externalTaxRateForShippingMethod - value to be set
    • setTaxRoundingMode

      void setTaxRoundingMode(RoundingMode taxRoundingMode)

      Determines how monetary values are rounded when calculating taxes for taxedPrice.

      Parameters:
      taxRoundingMode - value to be set
    • setTaxCalculationMode

      void setTaxCalculationMode(TaxCalculationMode taxCalculationMode)

      Determines how taxes are calculated when calculating taxes for taxedPrice.

      Parameters:
      taxCalculationMode - value to be set
    • setInventoryMode

      void setInventoryMode(InventoryMode inventoryMode)

      Determines how stock quantities are tracked for Line Items in the Cart.

      Parameters:
      inventoryMode - value to be set
    • setBillingAddress

      void setBillingAddress(BaseAddress billingAddress)

      Billing address associated with the Cart.

      Parameters:
      billingAddress - value to be set
    • setShippingAddress

      void setShippingAddress(BaseAddress shippingAddress)

      Shipping address associated with the Cart. Determines eligible ShippingMethod rates and Tax Rates of Line Items.

      Parameters:
      shippingAddress - value to be set
    • setShippingMethod

      Shipping Method for a Cart with Single ShippingMode. If the referenced ShippingMethod has a predicate that does not match the Cart, an InvalidOperation error is returned when creating a Cart.

      Parameters:
      shippingMethod - value to be set
    • setShippingRateInput

      Used as an input to select a ShippingRatePriceTier. The data type of this field depends on the shippingRateInputType.type configured in the Project:

      • If CartClassification, it must be ClassificationShippingRateInputDraft.
      • If CartScore, it must be ScoreShippingRateInputDraft.
      • If CartValue, it cannot be set.
      Parameters:
      shippingRateInput - value to be set
    • setShippingMode

      void setShippingMode(ShippingMode shippingMode)
      • If set to Single, only a single Shipping Method can be added to the Cart.
      • If set to Multiple, multiple Shipping Methods can be added to the Cart.
      Parameters:
      shippingMode - value to be set
    • setCustomShipping

      void setCustomShipping(CustomShippingDraft... customShipping)

      Custom Shipping Methods for a Cart with Multiple ShippingMode.

      Parameters:
      customShipping - values to be set
    • setCustomShipping

      Custom Shipping Methods for a Cart with Multiple ShippingMode.

      Parameters:
      customShipping - values to be set
    • setShipping

      void setShipping(ShippingDraft... shipping)

      Shipping Methods for a Cart with Multiple ShippingMode.

      Parameters:
      shipping - values to be set
    • setShipping

      void setShipping(List<ShippingDraft> shipping)

      Shipping Methods for a Cart with Multiple ShippingMode.

      Parameters:
      shipping - values to be set
    • setItemShippingAddresses

      void setItemShippingAddresses(BaseAddress... itemShippingAddresses)

      Multiple shipping addresses of the Cart. Each address must contain a key that is unique in this Cart. The keys are used by LineItems to reference these addresses under their shippingDetails.

      Eligible Shipping Methods or applicable Tax Rates are determined by the address shippingAddress, and not itemShippingAddresses.

      Parameters:
      itemShippingAddresses - values to be set
    • setItemShippingAddresses

      void setItemShippingAddresses(List<BaseAddress> itemShippingAddresses)

      Multiple shipping addresses of the Cart. Each address must contain a key that is unique in this Cart. The keys are used by LineItems to reference these addresses under their shippingDetails.

      Eligible Shipping Methods or applicable Tax Rates are determined by the address shippingAddress, and not itemShippingAddresses.

      Parameters:
      itemShippingAddresses - values to be set
    • setDiscountCodes

      void setDiscountCodes(String... discountCodes)

      code of the existing DiscountCodes to add to the Cart.

      Parameters:
      discountCodes - values to be set
    • setDiscountCodes

      void setDiscountCodes(List<String> discountCodes)

      code of the existing DiscountCodes to add to the Cart.

      Parameters:
      discountCodes - values to be set
    • setCountry

      void setCountry(String country)

      Used for LineItem Price selection. If used for Create Cart in Store, the provided country must be one of the Store's countries.

      Parameters:
      country - value to be set
    • setLocale

      void setLocale(String locale)

      Languages of the Cart. Can only contain languages supported by the Project.

      Parameters:
      locale - value to be set
    • setOrigin

      void setOrigin(CartOrigin origin)

      Indicates how the Cart was created.

      Parameters:
      origin - value to be set
    • setDeleteDaysAfterLastModification

      void setDeleteDaysAfterLastModification(Long deleteDaysAfterLastModification)

      Number of days after which an active Cart is deleted since its last modification. If not provided, the default value for this field configured in Project settings is assigned.

      Create a ChangeSubscription for Carts to receive a ResourceDeletedDeliveryPayload upon deletion of the Cart.

      Parameters:
      deleteDaysAfterLastModification - value to be set
    • setCustom

      Custom Fields for the Cart.

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

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

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

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

      builder factory method for CartDraft
      Returns:
      builder
    • builder

      static CartDraftBuilder builder(CartDraft template)
      create builder for CartDraft instance
      Parameters:
      template - instance with prefilled values for the builder
      Returns:
      builder
    • withCartDraft

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