Broadleaf Microservices
  • v1.0.0-latest-prod

Cart Types

AddAttributeRequest

Property Type Description

key

string

The attributes’s key.

value

unknown

The attribute’s value.

AddCodeRequest

Property Type Description

code

string

The code to add.

AddCodeToCartResponse

Property Type Description

cart

Cart

The updated cart related to the add code submission

code

string

The code which was sent.

responseCode

string

The response of the request.

message

string

Any additional messages from the server, typically an error message.

adjustments

Array<Adjustment>

Any adjustments to cart as the result of applied offers.

vouchers

Array<Voucher>

Any vouchers added to cart as the result of applied offers.

AddItemFailure

Property Type Description

addItemRequest

AddItemRequest

The add item request that failed

type

'VALIDATION' | 'PRODUCT_MISSING'

The type of failure that this request encountered.

invalideCartItem

CartItem

If type is 'VALIDATION', this object represents the invalid cart item that was built based on the provided addItemRequest.

AddItemListToCartRequest

Property Type Description

itemListIds

Array<string>

Set of ids representing the Item Lists that are to be added to cart.

AddItemRequest

Property Type Description

variantId?

string

The id of the variant for this add item request. Used to retrieve variant information for the cart item.

productId

string

The id of the product for this add item request. Used to retrieve product information for the cart item.

sku?

string

The SKU code for the item (e.g., Product or Variant).

quantity

number

The amount of this item to be added to the cart.

itemAttributes?

Record<string, string>

Miscellaneous attributes that should be copied to the cart item’s attributes for this request.

itemAttributeChoices?

Record<string, string>

Attribute choices that should be copied to cart item’s attribute choices for this request.

cartAttributes?

Record<string, string>

Attributes that should be copied to the cart’s attributes for this request.

dependentCartItems?

Array<AddItemRequest>

A list of additional AddItemRequests that should be processed as dependent items of the resulting parent item of this current AddItemRequest.

itemChoiceKey?

string

If this AddItemRequest is one within dependentCartItems, this is the key to use to relate to this cart item to a configured product item choice.

additionalAttributes?

Record<string, unknown>

Miscellaneous attributes that can be set to this request in cart to inform business logic for adding a cart item.

AdditionalItemPricing

Property Type Description

pricingModel?

string

How to determine the pricing of this chosen item relative to its parent product - i.e. included or an additional cost.

Deprecated: undefined

overridePrice?

MonetaryAmount

The price of this choice, only relevant when the pricing model of this choice is ADD_TO_PARENT.

pricingKey?

string

System-wide unique identifier to configure specific pricing for the choice.

pricingTargetType

string

The type of the item to which this pricing belongs, for example SKU or PRICING_KEY.

Address

Property Type Description

firstName?

string

The first name of the individual at this address.

lastName?

string

The last name of the individual at this address.

fullName?

string

The combined names of the individual at this address. It is considered better UX to use a full name field in place of separate first and last name fields.

emailAddress?

string

The email address of the individual at this physical address.

companyName?

string

The name of the company at this address.

addressLine1

string

Primary address information, typically street name and building number.

addressLine2?

string

Secondary address information, like apartment, suite, or unit number.

addressLine3?

string

Tertiary address information, typically for international addresses.

city

string

The city, town or village of this address.

county?

string

The county of this address.

stateProvinceRegion

string

The state, province or region of this address.

country

string

The country for this address.

postalCode

string

Postal code or ZIP code for this address.

phonePrimary?

Phone

The primary phone number for this address.

phoneSecondary?

Phone

The secondary phone number for this address.

phoneFax?

Phone

The fax number for this address.

isDefault?

boolean

Whether this address is the default address of the owner.

isActive?

boolean

Whether this address is an active address of the owner.

[key: string]

unknown

Any additional custom attributes included on this customer address.

AddToCartApiError

extends ApiError

An ApiError used for errors during CartItem validation.

Property Type Description

globalConfigErrors

Array<ConfigError>

List of global configuration errors for the CartItem

attributeConfigErrors

Record<string, Array<ConfigError>>

The key would be the attribute’s name like COLOR.

dependentItemConfigErrors

Record<string, Array<ConfigError>>

The key would be the item’s identifier like a choiceKey.

Adjustment

Property Type Description

offerRef

OfferRef

A reference to the offer that originated this adjustment.

offerCodeRef?

string

A reference to the OfferCode (if any).

amount

MonetaryAmount

The amount of this adjustment.

codeUsed?

string | null

The code used (if any) that triggered the application of the offer for this adjustment.

alternateAdjustmentSource

DefaultAlternateAdjustmentSource | string

If this adjustment is not created by an offer this parameter will specify the source of adjustment.

qualifierDetails

Array<OfferItemDetail>

A list of OfferItemDetails representing the qualifier items where this adjustment was from.

quantityPerUsage?

number

The quantity per offer usage of the target item that this adjustment is for.

itemAdjustmentQuantity?

number

The quantity of the current line item that this offer was applied to.

offerUses?

number

The number of times that the offer this adjustment was created from is applied.

campaignTrackingId?

string

The campaign tracking id (if any) for this adjustment.

serviceLevel?

string

The serviceLevel that this adjustment applies to (typically used only with fulfillment group offers to indicate that the discount applies to the portion of the fulfillment price related to a specific service level. For example, for a group containing some items shipped by STANDARD and some as EXPRESS it is possible the discount only applies to the EXPRESS items. A blank value would indicate the discount applies to all service levels.

AttributeChoiceValue

Property Type Description

optionLabel?

string

The label shown to customers for the option.

label

string

What the customer sees for display.

value

string

The value based on what the user selected.

BulkAddToCartResponse

Property Type Description

cart

Cart

The most up-to-date cart that includes all requests that were successfully processed

addItemFailures

Array<AddItemFailure>

All failures that occurred during the add process.

CampaignRef

Property Type Description

campaignTrackingId

string

A text identifier used to track a specific campaign.

campaignCode

string

The user provided text code that refers to the campaign.

Cart

Represents a customer facing shopping cart with items, pricing and fulfillment information.

Property Type Description

id

string

The unique id for this cart.

name?

string

A unique name for the cart, used for retrieval. This field is not displayed anywhere.

type?

DefaultCartType | string

The type of cart.

status

DefaultCartStatus | DefaultQuoteStatus | string

The status of this cart.

customerRef?

CustomerRef

A reference to the customer that owns this cart.

approverEmail?

string

The cart approver’s email address.

This field is only needed for B2B carts to represent the cart approver’s email address.

emailAddress

string

The customer’s email address.

orderNumber?

string

The unique number associated with this Cart.

createDate

string

The date that the originating cart was first created.

submitDate?

string

The date that this cart was submitted.

locale

string

The locale for this cart.

cartPricing

CartPricing

All the pricing information on this cart.

cartItems

Array<CartItem>

Items that are contained within this cart. Typically represents a good or service that the customer is purchasing.

fulfillmentGroups

Array<FulfillmentGroup>

A list of fulfillment information for this cart. A cart can have many fulfillment groups associated with it in cart to support multi-address and multi-type shipping.

adjustments?

Array<Adjustment>

Adjustments to cart pricing that were applied to the subtotal.

vouchers?

Array<Voucher>

Any vouchers added to cart as the result of applied offers.

offerCodes?

Array<string>

A list of offer codes that were added to this cart. Used to apply Adjustments to different aspects of the cart.

campaignRefs?

Array<CampaignRef>

A list of campaign references that are attached to this cart.

payments?

Array<Payment>

The list of payments associated with this cart.

Deprecated: These are no longer stored on the cart.

activePayments?

Array<Payment>

The list of payments associated with this cart.

Deprecated: These are no longer stored on the cart.

attributes?

Record<string, unknown>

Miscellaneous attributes for this cart.

internalAttributes?

Record<string, unknown>

Miscellaneous internal attributes for this cart.

attributeChoices?

Record<string, AttributeChoiceValue>

Attribute choices for this cart driven by its items' product options, where each key is the attributeName from an attribute choice.

checkoutSubmissions?

Record<string, string>

The checkout submissions made for this cart where each key is the request ID of a checkout and the value is a timestamp of when the checkout was made.

priced

boolean

Whether this cart has been fully priced.

taxEstimated

boolean

Whether the taxes on the cart are estimates.

version

number

The version of this cart. Used for checking that the requested version of the cart is up-to-date before saving changes.

cartAlerts?

Array<CartAlert>

The list of the alerts for this cart. NOTE: This is a transient property that is not persisted in the database.

lastCatalogReprice?

string

The last time the cart was fully repriced with the most updated catalog pricing.

expirationDate?

string

The expiration date of the cart. This is typically only used for QUOTE carts.

currency

string

The currency unit used for the pricing of this Cart.

anonymous

boolean

Whether or not the cart is for an anonymous user.

quantity

number

The number of items in this cart.

assignedSalesRepId?

String

The id of the sales rep assignment assinged to the cart.

assignedSalesRepEmail?

String

The email of the sales rep assignment assinged to the cart.

CartActionAudit

Property Type Description

id

string

The context ID of the cart action audit.

cartId

string

The ID of the cart this cart action audit was created after.

actionType

string

The action type of this audit.

oldStatus

string

The old {@link Cart.status} prior the cart action in which this audit was created for.

newStatus

string

The new {@link Cart.status} after the cart action in which this audit was created for.

For example, this field would be {@link DefaultCartStatus.REJECTED} if the {@link Cart} was rejected.

userType

string

The type of user who performed the cart action.

For example, this could be an account approver.

userId

string

The id of the user who performed the cart action.

For example, this would be the id of the account approver who rejected the cart.

userEmail

string

The email of the user who performed the cart action.

For example, this would be the email of the account approver who rejected the cart.

comment

string

A comment related to the audit

timestamp

string

The time at which the {@link CartActionAudit} was created

data?

Record<string, unknown>

Additional or custom audit information

CartAlert

Property Type Description

type

string

The type of the alert.

message

string

The message for this alert.

additionalAttributes?

Record<string, unknown>

Contains the additional information about this alert.

CartApprovalProcessFailureType (Enum)

Name Value Description

INVALID_CART_STATUS

'INVALID_CART_STATUS'

INVALID_ACCESS

'INVALID_ACCESS'

CartApprovalProcessRequest

Request DTO used for providing information for the cart approval flows, such as submitting cart for approval or rejecting cart.

Property Type Description

comment

string

A comment a user wishes to include with this action.

additionalAttributes?

Record<string, unknown>

A map of additional fields suitable for adding any data not currently represented.

CartApprovalProcessResponse

DTO for communicating the result of the cart approval flow, such as request cart for approval or rejecting a cart.

Property Type Description

cart

Cart

The most up-to-date cart.

additionalAttributes?

Record<string, unknown>

Miscellaneous attributes that can be set to this response in order to provide more information on validation failures.

CartClientCallOptions

extends ClientCallOptions

Property Type Description

version?

number

The current cart version.

guestToken?

string

Optional guest checkout token.

CartCreationRequest

Property Type Description

addItemRequest?

AddItemRequest

The initial AddItemRequest to populate the cart.

priceCartRequest?

PriceCartRequest

The initial PriceCartRequest to price the cart.

type?

DefaultCartType | string

The type of the cart to create.

name?

string

The name of the cart. Typically blank except for quotes

expirationDate?

string

The expiration date if a quote. Often left blank.

CartFulfillmentResponse

Property Type Description

cart

Cart

fulfillmentOptionResponse

FulfillmentOptionResponse

CartItem

An item in a Cart. Contains information related to pricing, quantity, and external object references.

Property Type Description

id

string

The unique id for this cart item.

name?

string

The name of this item. Typically derived from the product or sku name.

uri?

string

The navigable uri of the corresponding catalog entry (e.g. product) for this cart item.

quantity

number

The number of this item in the Cart.

dependentCartItems?

Array<CartItem>

CartItems that depend on this CartItem. Also could be called "child items".

dependentItemDetails

DependentItemDetails

If this CartItem is a dependent cart item, this contains additional details about the dependent CartItem’s dependency on its parent.

overridePriceFlag?

boolean

Whether the price of this CartItem was specifically overridden, whether from a CSR or an automatic process.

priceListId?

string

The id of the price list used to get the pricing for this CartItem.

unitPrice

MonetaryAmount

The individual unit price for an CartItem.

unitPriceType

string

The type of the unit price for an CartItem. Typically "salePrice", "standardPrice", or "basePrice".

adjustmentsTotal

MonetaryAmount

The total adjustment price for all adjustments of an CartItem.

subtotal

MonetaryAmount

The subtotal price of this CartItem.

total

MonetaryAmount

The total price of this CartItem.

itemAdjustments?

Array<Adjustment>

Adjustments to item pricing that should be applied to the subtotal

proratedOrderOfferAdjustments?

Array<ProratedOfferAdjustment>

Prorated adjustments for this item from order-level offers.

variantId?

string

The id to the corresponding variant for this item.

productId?

string

The id to the corresponding product for this item.

categoryIds?

Array<string>

The ids to the corresponding categories for this item’s product. Used for validating item choice configuration and offers.

sku?

string

Represents a SKU code, similar to productId or variantId, except this is a unified, unique concept across both products and variants.

imageAsset?

ImageAssetRef

The image asset for this item, usually sourced from the product.

discountable

boolean

Whether this item can be applied to any offers or promotions.

vendorRef?

string

A reference to the corresponding vendor for this item.

merchandisingContext?

string

The merchandising context for this cart item.

attributes?

Record<string, unknown>

Miscellaneous attributes for this item.

internalAttributes?

Record<string, unknown>

Miscellaneous internal attributes for this item.

attributeChoices?

Record<string, AttributeChoiceValue>

Attribute choices for this item driven by product options, where each key is the attributeName from an attribute choice.

isPriced

boolean

Flag to indicate whether this item has been priced.

globalConfigErrors

Array<ConfigError>

List of global configuration errors.

attributeConfigErrors

Record<string, Array<ConfigError>>

Map of configuration errors for related to this item’s attribute choices that are derived from ProductOptions where the key is the attribute name.

dependentItemConfigErrors

Record<string, Array<ConfigError>>

Map of configuration errors for related to this item’s dependent cart items where the key is the item’s identifier such as ProductOption choiceKey.

overrideDetails?

Array<OverrideDetail>

List of details about any price overrides which have been performed on this item.

taxable

boolean

Whether this item is taxable.

cartVersion

number

The Cart’s version. Used for version checking when the cart is not part of the request.

catalogRef

string | null

A reference to the corresponding catalog for this item.

unitPriceWithDependentItems

MonetaryAmount

Computed unit price with dependent items included.

subtotalWithDependentItems

MonetaryAmount

Computed subtotal with dependent items included.

adjustmentsTotalWithDependentItems

MonetaryAmount

Computed adjustments total with dependent items included.

totalWithDependentItems

MonetaryAmount

Computed total with dependent items included.

pricingStrategy?

DefaultPricingStrategyType | string

For dependent cart items, this strategy is used to indicate how the price should be incorporated into the overall cart subtotal - i.e. whether this cart item’s price should be added to the subtotal (the ADD_TO_PARENT strategy) or if the parent cart item’s price already includes this item’s price (the INCLUDED_IN_PARENT strategy). By default, the ADD_TO_PARENT strategy is used.

>Note: Regardless of this strategy, if the dependent cart item has a related FulfillmentItem, then there will likely be a tax amount related to the item that be included in the cart’s overall price.

pricingKey?

string

System-wide unique identifier to configure specific pricing for the choice.

productTags

Array<string>

The list of simple labels used to categorize the corresponding product for this item.

brandId?

string

The id to the corresponding data driven enum for this item’s product’s brand. Used for validating offers.

merchandisingTypeId?

string

The id to the corresponding data driven enum for this item’s product’s merchandising type. Used for validating offers.

targetDemographicId?

string

The id to the corresponding data driven enum for this item’s product’s target demographic. Used for validating offers.

type?

DefaultCartItemType | string

The type of this cart item.

CartNote

Informational notes manually added for an Cart or CartItem by a buyer or seller.

This is only used for quotes by default.

Property Type Description

id

string

The context ID of the note.

cartId

string

The id of the Cart that this note belongs to.

cartItemId?

string

The id of the CartItem that this note belongs to, this field is only relevant for CartItem-level notes.

note

string

The content of the note

replies?

Array<CartNote>

A list of notes representing the replies.

dateCreated

string

When this note was created.

authorType

DefaultCartNoteAuthorType | string

The type of the user that created this note.

authorId

string

The id of the user that created this note.

authorEmail

string

The email of the user that created this note.

internalOnly

boolean

Whether this note is for internal view only. Internal notes are only visible to sellers.

additionalData?

Record<string, unknown>

Map to hold additional data.

CartPricing

Property Type Description

currency

string

The currency unit used for the pricing of this Cart.

totalTax

MonetaryAmount

The total tax amount for this Cart.

fulfillmentTotal

MonetaryAmount

The total fulfillment price of this Cart, including adjustments.

subtotal

MonetaryAmount

The subtotal price of this Cart.

adjustmentsTotal

MonetaryAmount

The total adjustment price for all adjustments of an Cart and its cart items.

total

MonetaryAmount

The total price of this Cart.

feesTotal

MonetaryAmount

The total fees of this Cart. This is the sum of all subtotals for cart items with type [DefaultCartItemType] EXTRA_FEE.

taxIncludedType?

TaxIncludedType | string

Indicates if any taxes are included in the subtotal.

includedTaxAmount?

MonetaryAmount

The amount of taxes that are included in the subtotal (VAT).

CartRequestHeaderType (Enum)

Name Value Description

GUEST_TOKEN

'X-Guest-Token'

CART_VERSION

'X-Cart-Version'

CheckoutClientCallOptions

extends ClientCallOptions

Property Type Description

version?

number

The current cart version.

guestToken?

string

Optional guest checkout token.

CheckoutProcessRequest

Property Type Description

requestId

string

A unique id used to represent the request. This value can be used to link various persisted entities/values to the originating request.

CheckoutResponse

Property Type Description

cart

Cart

The cart related to the checkout submission.

success

boolean

Whether the checkout submission was successful.

awaitingPaymentResult

boolean

Whether or not the cart was submitted for checkout but awaiting payment result.

failureType?

string

The type of checkout failure which can be used programmatically by the client application to react to the failure.

failureMessage?

string

Message intended to inform why the checkout submission failed if success is false.

itemFailureMessages?

Record<string, string>

Line item error messages used to describe issues with individual fields, cart items, etc. For example, this may consist of map entries where the key is a cart item id (or name) & the value is an explanation of why the item is misconfigured.

paymentSummaries?

Array<PaymentSummary>

A collection of payment summaries related to the cart.

paymentNextActions?

Array<PaymentNextAction>

A collection of PaymentNextActions describing the required next steps for the payment.

paymentTransactionFailureDetails?

Array<PaymentTransactionFailureDetail>

A collection of payment transaction failure details describing how the transaction(s) failed.

requestId

string

The id representing the customer’s request to checkout

CollectOnDeliveryFee

Property Type Description

name

string

amount

number

currency

string

discountable?

boolean

taxable?

boolean

refundable?

boolean

ConfigError

Property Type Description

errorCode

string

The error code for this configuration error. Intended to be used with auditing or mapping to a human readable explanation.

errorMessage

string

The error message for this configuration error. Intended to be shown to the customer as a human readable explanation.

ContactInfoRequest

Property Type Description

emailAddress

string

Email addresses that should be used as a point of contact for the cart.

CreatePaymentRequest

extends PaymentRequest

Property Type Description

ownerType

DefaultPaymentOwnerType | string

Describes the owner of the payment. For example, the payment could have originated with a cart or a subscription, therefore this value might be BLC_CART or BLC_SUBSCRIPTION.

ownerId

string

The id of the entity that owns this payment. For example, this may be a cart id, or a subscription billing cycle id.

owningUserType?

DefaultPaymentOwningUserType | string

Describes the type of the owning user of the payment. For example, the payment could belong to a Broadleaf customer or an account, therefore this value might be BLC_CUSTOMER, or BLC_ACCOUNT.

owningUserName?

string

Describes the name of the owning user of the payment.

owningUserEmailAddress?

string

Describes the email address of the owning user of the payment.

CustomerRef

Property Type Description

customerId

string

The ID of the customer that owns this cart.

username

string

The customer’s username.

fullname?

string

The customer’s fullname.

isRegistered

boolean

Whether this customer is registerd.

accountId?

string

The id of the account this customer belongs to.

rootAccountId?

string

The id of the root account the account member belongs to.

accountHierarchy?

Array<string>

The hierarchy of accounts, from the root account to the account member’s account.

DefaultAddressSource (Enum)

Enumerates the sources where the address can be found for tax calculations.

Name Value Description

SHIPPING_ADDRESS

'SHIPPING_ADDRESS'

The tax address should be populated from FulfillmentGroup #address.

PAYMENT_ADDRESS

'PAYMENT_ADDRESS'

The tax address should be populated from the billing address of the payment with the maximum amount in the active payment.

DefaultAlternateAdjustmentSource (Enum)

The default alternate adjustment source names.

Name Value Description

BUNDLE_ITEM_ADJUSTMENT

'BUNDLE_ITEM_ADJUSTMENT'

This value indicates that the adjustment was added by the price proration of the bundle price to its items.

DefaultCartItemType (Enum)

The default types of cart items.

Name Value Description

STANDARD

'STANDARD'

A normal cart item with typical behavior.

EXTRA_FEE

'EXTRA_FEE'

Represents a fee applied to the cart such as for Collect on Delivery or other payment options. These are not to be included in the cart subtotal or quantity.

COD_FEE

'COD_FEE'

Represents a fee applied to the cart for Collect on Delivery. These are not to be included in the cart subtotal or quantity.

CUSTOM_QUOTE_ITEM

'CUSTOM_QUOTE_ITEM'

Represents a quote item that is a custom item specified by the customer.

This is used for supporting [DefaultCartTypes] QUOTE for buyers to specify any custom items, e.g. training hours, additional service, or items that they couldn’t find the matching catalog items for.

DefaultCartNoteAuthorType (Enum)

Enumerates the types of a CartNote’s author.

Name Value Description

CUSTOMER

'CUSTOMER'

Represents a customer.

SALES_REP

'SALES_REP'

Represents a sales representative.

DefaultCartStatus (Enum)

Enumerates the kinds of statuses that could be represented by a cart’s status.

Name Value Description

IN_PROCESS

'IN_PROCESS'

The Cart is in process and can be modified.

REQUIRES_APPROVAL

'REQUIRES_APPROVAL'

Used to represent a cart that requires approval. This is typically used for B2B account carts.

REJECTED

'REJECTED'

Used to represent a cart that has been rejected. This is typically used for B2B account carts.

AWAITING_PAYMENT_RESULT

'AWAITING_PAYMENT_RESULT'

Indicates that the Cart payment is sent to the payment gateway but awaiting transaction result. Note that if one of the transactions is awaiting result in a multiple-payment scenario, the cart would still have this status.

PENDING_PAYMENT_FAILED

'PENDING_PAYMENT_FAILED'

Indicates that the Cart had a pending payment but is now failed. <p> This can happen when the transaction result is pending during the checkout flow, but later failed from receiving the latest transaction result.

PAYMENT_RESULT_CHECK_IN_PROGRESS

'PAYMENT_RESULT_CHECK_IN_PROGRESS'

Indicates that the Cart is actively being used by the scheduled job to check its payment results and update the Cart accordingly.

LOCKED_FOR_TX_REVERSAL

'LOCKED_FOR_TX_REVERSAL'

Used to represent a cart that has been locked while its transactions requiring reversal are being processed. Setting this status is primarily meant to ensure that no other threads are able to simultaneously modify the cart.

SUBMISSION_IN_PROGRESS

'SUBMISSION_IN_PROGRESS'

Used to represent a cart that has been submitted by the customer & the processing of that submission is in progress. While in this status, the cart should be locked from modification by any customer requests.

SUBMITTED

'SUBMITTED'

Used to represent a cart that has been submitted by the customer & the processing of that submission has been successfully completed. This means that the cart can no longer be modified and is locked in. This also means that the cart should have its Cart#getOrderNumber set.

CANCELLED

'CANCELLED'

The cart has been cancelled either by the customer, a CSR, or an automated process.

CSR_OWNED

'CSR_OWNED'

Represents a cart which is being managed by a CSR for the customer. A cart in this status is not visible to the customer. This cart was either created by a CSR or cloned from an existing customer’s cart, and can be transferred back as the customer’s IN_PROCESS cart.

IN_TRANSFER

'IN_TRANSFER'

Represents an anonymous cart which is primed to be transferred to a user. This cart has no other uses prior to being transferred.

TEST

'TEST'

Represents a cart which is being managed by an admin in preview mode. This cart cannot be submitted during checkout.

DefaultCartType (Enum)

Enumerates the types of carts.

Name Value Description

STANDARD

'STANDARD'

QUOTE

'QUOTE'

DefaultCollectOnDeliveryStatus (Enum)

The default Collect on Delivery statuses possible for a [FulfillmenGroup]. This is stored as an attribute.

Name Value Description

SELECTED

'SELECTED'

Collect on Delivery is selected for this fulfillment group

NOT_SELECTED

'NOT_SELECTED'

Collect on Delivery is not selected for this fulfillment group

DefaultFulfillmentType (Enum)

The default types of fulfillment for FulfillmentGroups.

Name Value Description

NONE

'NONE'

This goes with [InventoryType] NONE and indicates that no fulfillment method is required.

SHIP

'SHIP'

Indicates that an item will be shipped, often to a customer’s home. This is applicable to [InventoryType] PHYSICAL items.

SAME_DAY_DELIVERY

'SAME_DAY_DELIVERY'

This (a.k.a. SDD) is essentially the same as SHIP (with a SAME_DAY_DELIVERY service level). This simply allows "SAME_DAY_DELIVERY" to be its own, special Fulfillment Method.

PICKUP

'PICKUP'

Indicates that an item will be picked up by the customer, often at a store or pickup location. This is applicable to [InventoryType] PHYSICAL items. This is often known as Buy-Online- Pickup-In-Store (or BOPIS).

This should also be able to handle Delayed BOPIS, as the only things that may change are the fulfillment dates and maybe the price.

VIRTUAL

'VIRTUAL'

Indicates that an item will be fulfilled virtually (e.g. via digital download, print, etc.) This is applicable to [InventoryType] VIRTUAL items.

DefaultPaymentOwnerType (Enum)

Name Value Description

BLC_CART

'BLC_CART'

Represents a Broadleaf-managed cart.

BLC_SUBSCRIPTION

'BLC_SUBSCRIPTION'

Represents a Broadleaf-managed subscription.

DefaultPaymentOwningUserType (Enum)

Default types of payments represented by a PaymentRequest.

Name Value Description

BLC_CUSTOMER

'BLC_CUSTOMER'

Represents a Broadleaf-managed customer.

BLC_ACCOUNT

'BLC_ACCOUNT'

Represents a Broadleaf-managed account.

DefaultPaymentType (Enum)

Default types of payments represented by a PaymentRequest.

Name Value Description

GIFT_CARD

'GIFT_CARD'

CREDIT_CARD

'CREDIT_CARD'

BANK_ACCOUNT

'BANK_ACCOUNT'

CHECK

'CHECK'

ELECTRONIC_CHECK

'ELECTRONIC_CHECK'

WIRE

'WIRE'

MONEY_ORDER

'MONEY_ORDER'

CUSTOMER_CREDIT

'CUSTOMER_CREDIT'

COD

'COD'

CUSTOMER_PAYMENT

'CUSTOMER_PAYMENT'

PURCHASE_ORDER

'PURCHASE_ORDER'

STORE_CREDIT

'STORE_CREDIT'

THIRD_PARTY_ACCOUNT

'THIRD_PARTY_ACCOUNT'

APPLE_PAY

'APPLE_PAY'

GOOGLE_PAY

'GOOGLE_PAY'

ACH

'ACH'

KNET

'KNET'

DefaultPricingStrategyType (Enum)

Pricing strategy for a dependent cart item. This is used to indicate whether to add the price of the dependent item when calculating the subtotal amount of the cart.

Name Value Description

ADD_TO_PARENT

'ADD_TO_PARENT'

The price of the dependent cart item will be added to the parent item’s price.

INCLUDED_IN_PARENT

'INCLUDED_IN_PARENT'

The price of the dependent cart item is considered to be already included in the parent item’s price.

DefaultQuoteActionType (Enum)

The default action types that could be performed on [DefaultCartTypes] QUOTE-typed Carts, this facilitates CartActionAudit ActionType.

Name Value Description

DRAFT_QUOTE

'DRAFT_QUOTE'

Used to represent the action of a Cart from [DefaultCartTypes] STANDARD to [DefaultCartTypes] QUOTE.

REQUEST_QUOTE

'REQUEST_QUOTE'

Used to represent the action of requesting the quote to the seller.

CANCEL_QUOTE

'CANCEL_QUOTE'

Used to represent the action of canceling a quote.

ASSIGN_SALES_REP

'ASSIGN_SALES_REP'

Used to represent the action of assigning a sales rep to work on the quote.

PUBLISH_QUOTE

'PUBLISH_QUOTE'

Used to represent the action of publishing the quote back to the buyer.

REJECT_QUOTE

'REJECT_QUOTE'

Used to represent the action of rejecting the quote.

PURCHASE_QUOTE

'PURCHASE_QUOTE'

Used to represent the action of purchasing the quote.

REVISE_PRICES

'REVISE_PRICES'

Used to represent the action of revising prices in the quote.

MODIFY_ITEM

'MODIFY_ITEM'

Used to represent the action of modifying an item in the quote.

ADD_ITEM

'ADD_ITEM'

Used to represent the action of adding an item to the quote.

REMOVE_ITEM

'REMOVE_ITEM'

Used to represent the action of removing an item from the quote.

UNKNOWN

'UNKNOWN'

Used to represent an unknown action.

DefaultQuoteItemRequestTypes (Enum)

Name Value Description

ITEM

'ITEM'

Represents an item.

This is typically used for buyers to request an item in the quote by only specifying an item number, etc.

SERVICE

'SERVICE'

Represents a service, e.g. training hours, additional service, etc.

DefaultQuoteStatus (Enum)

Enumerates the statuses for a quote.

Name Value Description

DRAFTING

'DRAFTING'

Indicates that the quote is being drafted and have not been submitted to the sellers.

It’s typically used for carts that have just been converted into a quote.

QUOTE_REQUESTED

'QUOTE_REQUESTED'

Indicates that the quote has been requested to the seller.

ASSIGNED

'ASSIGNED'

Indicates that the quote is assigned to a sales rep.

PUBLISHED

'PUBLISHED'

Indicates that the quote has been responded back to the requester with the quoted prices.

EDITING

'EDITING'

Indicates that the quote is being edited by the buyer after the seller’s response.

EXPIRED

'EXPIRED'

Indicates that the quote is expired.

PURCHASED

'PURCHASED'

Indicates that the quote has been purchased.

REJECTED

'REJECTED'

Indicates that the quote is rejected.

CANCELED

'CANCELED'

Indicates that the quote is canceled.

DefaultReviewerAssignmentTypes (Enum)

Enumerates the types of reviewer assignments.

Name Value Description

QUOTE

'QUOTE'

DefaultUserTypes (Enum)

Enumerates the types of users.

Name Value Description

BLC_ACCOUNT_MEMBER

'BLC_ACCOUNT_MEMBER'

Represents a customer user who is an account member.

BLC_ACCOUNT_APPROVER

'BLC_ACCOUNT_APPROVER'

Represents a customer user who has permission to approve account carts.

BLC_CUSTOMER

'BLC_CUSTOMER'

Represents a customer.

BLC_SALES_REP

'BLC_SALES_REP'

Represents a sales representative.

Typically used for users who can manage and respond to quotes.

BLC_SYSTEM

'BLC_SYSTEM'

Represents the system.

Typically used for system originated changes such as a scheduled job to mark quotes as expired.

DeletedItemListResponse

Property Type Description

deletedItemListIds

Array<string>

The set of item list IDs that were deleted.

inaccessibleItemListIds

Array<string>

From the list of provided IDs, this represents the set of item list IDs that the user does not have permission to delete.

DependentItemDetails

Property Type Description

itemChoiceKey

string

The key to use to relate to this cart item to a configured product item choice.

itemChoiceOverridePrice?

MonetaryAmount

In the case of a SpecificItemChoice, this will be populated with the override price of the parent ItemChoice.

itemChoicePricingKey?

string

In the case of a SpecificItemChoice, this will be populated with the pricing key of the parent ItemChoice.

additionalItemPricing

AdditionalItemPricing

Dictates how the dependent item should be priced.

variantPricing

Record<string, SpecificItemChoiceVariantPricingOverride>

Pricing overrides if specific variants of the main product this item belongs to are added to the cart.

FulfillmentAddress

Property Type Description

address1?

string

Street address line 1. This is often not required for calculating fulfillment charges, but is included for completeness and in case this detail is required in some cases.

address2?

string

Street address line 2. This is often not required for calculating fulfillment charges, but is included for completeness and in case this detail is required in some cases.

address3?

string

Street address line 3. This is often not required for calculating fulfillment charges, but is included for completeness and in case this detail is required in some cases.

city?

string

The name of a city in which this address or partial address is located.

region?

string

State, Province, or Region in which this address or partial address is located.

country

string

Country code. This should not be null. We should know in which country, at least, this address (or partial address) is located.

postalCode?

string

Postal code (or ZIP code in the US) in which this address or partial address is located.

poBox?

boolean

Indicates if this address or partial address is a Post Office (PO) Box. Some shipping providers cannot ship to a PO Box.

latitude?

number

Latitude for GPS coordinates. Typically, latitude and longitude can be used to determine an exact location, and can be used instead of other properties like region, city, and postal code. These are usually determined by a geolocation service and are required for distance or radius searches, for example.

longitude?

number

Longitude for GPS coordinates. Typically, latitude and longitude can be used to determine an exact location, and can be used instead of other properties like region, city, and postal code. These are usually determined by a geolocation service and are required for distance or radius searches, for example.

FulfillmentGroup

A group of items designated to a certain fulfillment location and type.

Property Type Description

referenceNumber

string

The reference number of the FulfillmentGroup this fulfillment was created from.

type

DefaultFulfillmentType | string

The type of means by which this fulfillment is fulfilled. This could be SHIP, PICKUP, or VIRTUAL, for example.

fulfillmentOption?

FulfillmentOption

The fulfillment option chosen for the type.

Use pricedFulfillmentOption if using Fulfillment Services rather than Shipping Services.

inventoryLocationReference?

string

This is an optional field where the ID or reference number of the expected InventoryLocation is stored.

address

Address

The shipping address for this fulfillment.

taxAddressSource

DefaultAddressSource | string

Where to find the address to be used for tax calculation on this fulfillment group.

groupFulfillmentPriceBeforeAdjustments

MonetaryAmount

The shipping price of this fulfillment group before adjustments are applied.

fulfillmentItemsSubtotal

MonetaryAmount

The total shipping price of this fulfillment group’s fulfillment items.

fulfillmentAdjustmentsTotal?

MonetaryAmount

Sum of the group’s adjustments.

proratedFulfillmentAdjustments?

MonetaryAmount

Prorated amount of the fulfillment adjustments that applies to the #groupFulfillmentPriceBeforeAdjustments. Fulfillment-level adjustments are prorated between the charges of the group and those of the individual items.

fulfillmentTaxableAmount

MonetaryAmount

The amount of the total fulfillment price that can be taxed, including item shipping prices.

totalFulfillmentPrice

MonetaryAmount

The total shipping price of this fulfillment group, including adjustments and item shipping prices. This does not include taxes on the fulfillment price. This does not include taxes.

overrideFulfillmentPriceFlag?

boolean

Whether the total fulfillment price of this order fulfillment was specifically overridden, whether from a CSR or an automatic process.

totalTax

MonetaryAmount

The total tax of this fulfillment, including merchandise and fulfillment tax.

adjustments

Array<Adjustment>

Adjustments to fulfillment pricing that should be applied to fulfillment charge.

fulfillmentItems

Array<FulfillmentItem>

Items within this fulfillment, each of which should relate back to a OrderItem.

isPriced

boolean

Flag to indicate whether this group has been priced.

overrideDetails

Array<OverrideDetail>

List of details about any price overrides which have been performed on this fulfillment.

pricedFulfillmentOption?

PricedFulfillmentOption

The fulfillment option chosen for the type.

Use this instead of fulfillmentOption if using Fulfillment Services instead of Shipping Services.

attributes?

Record<string, unknown>

Additional attributes for this order fulfillment.

serviceLevelFulfillmentPrices

Record<string, MonetaryAmount>

A map of total prices for all PricedFulfillmentOption #serviceLevel for FulfillmentItems in this group. This will aggregate the fulfillment prices for all items that have the same service level.

FulfillmentItem

A cart item designated to a specific FulfillmentGroup for fulfillment.

Property Type Description

referenceNumber

string

The reference number for this fulfillment item.

cartItemId

string

The id of the OrderItem to be represented by this fulfillment item.

quantity

number

The quantity of the item to be fulfilled by this fulfillment.

merchandiseTotalAmount

MonetaryAmount

The unit price of the related cart item multiplied by quantity.

proratedOrderAdjustments

MonetaryAmount

The amount prorated to this item from order adjustments.

merchandiseTaxableAmount

MonetaryAmount

The amount that can be taxed based on the cart item price and usually less any prorated order-adjustments.

merchandiseTotalTax

MonetaryAmount

The total tax of the item merchandise based on the price of the related cart item.

fulfillmentPriceBeforeAdjustments

MonetaryAmount

The fulfillment price of this cart item before adjustments are applied.

fulfillmentAdjustmentsTotal

MonetaryAmount

The total of all the item fulfillment adjustments for this item.

proratedFulfillmentGroupAdjustments

MonetaryAmount

The amount prorated to this item from group adjustments.

fulfillmentTotal

MonetaryAmount

The total fulfillment price of this item, including adjustments. This does not include taxes.

fulfillmentAdjustments

Array<Adjustment>

Adjustments to item fulfillment pricing that should be applied to the total of unitFulfillmentCharge.

availableOnline

boolean

Whether or not this product is available online - ie inventory is available somewhere to fulfill this product

inventoryCheckStrategy?

InventoryCheckStrategy | string

The inventory check strategy of the item. This value helps to determine when an inventory check is required.

inventoryReservationStrategy?

InventoryReservationStrategy | string

The reservation strategy of the item. This value helps to determine when an inventory reservation is required.

cartItemDiscountable

boolean

Whether or not any offers or promotions can be applied to the cart item.

fulfillmentItemTaxDetails?

Array<FulfillmentItemTaxDetail>

The tax details for this fulfillment item.

pricedFulfillmentOption?

PricedFulfillmentOption

The fulfillment option chosen for the type.

attributes

Record<string, unknown>

Additional attributes for this fulfillment item.

FulfillmentItemTaxDetail

Property Type Description

taxCalculated

MonetaryAmount

The amount of taxes calculated.

taxableAmount

MonetaryAmount

The amount that was taxable to determine the calculated tax.

rate

number

The tax rate

jurisdictionType?

string

The jurisdiction type, e.g. city, state, county, etc.

jurisdictionName?

string

The tax jurisdiction name. This may be a state, city, county, etc. For example, "California", "New York City", etc.

country

string

The 2 digit country code.

region?

string

The region that this tax was calculated.

taxName?

string

The tax name for this tax detail. Describes the tax (e.g. TX STATE TAX)

transactionId

string

The transaction ID for this tax detail.

vat

boolean

Whether this is a VAT tax.

FulfillmentOption

Property Type Description

name

string

The name of the fulfilment option.

description?

string

A description for the fulfillment option.

useFlatRates

boolean

Whether the fulfillment option uses flat rates.

taxCode

string

The tax code for the fulfillment option.

taxable

boolean

Whether this fulfillment option is taxable.

FulfillmentOptionPricedResponse

Property Type Description

description

string

The description of the fulfillment option.

name

string

The name of the fulfillment option.

taxCode

string

A tax code for the option.

taxable

boolean

Whether the fulfillment option is taxable

useFlatRates

boolean

Whether this option uses flat rates.

fulfillmentPriceCalculated

MonetaryAmount

The total fulfillment price calculated.

estimatedDeliveryDate

string

The estimated delivery date.

fulfillmentPriceInfos

Record<string, FulfillmentPriceInfo>

The pricing infos for each of the line items, keyed by item id.

FulfillmentOptionResponse

Property Type Description

groupFulfillmentOptions

Record<string, Array<PricedFulfillmentOption>>

Map of options by the fulfillment group reference number

itemFulfillmentOptions

Record<string, Array<PricedFulfillmentOption>>

Map of options by the fulfillment item reference number

FulfillmentPriceInfo

Property Type Description

itemId

string

The id of the line item for this fulfillment pricing info.

skuCode

string

The sku code for the item.

isEstimated

boolean

Whether the calculated price is an estimate.

pricePerUnit

MonetaryAmount

The fulfillment price calculated for a unit of the item.

total

MonetaryAmount

The combined total for all units.

FulfillmentPricingConfig

Property Type Description

id?

string

ID associated with this. May be a DB ID, or another arbitrary ID.

fulfillmentPricingStrategy

FulfillmentPricingStrategy | string

Strategy that defines how a particular context expects Fulfillment Groups to be priced. This indicates if the PricedFulfillmentOption is on the FulfillmentGroup or FulfillmentItem.

defaultServiceLevel

string

The default service level to use if an item or group has not set the level.

FulfillmentPricingStrategy (Enum)

Name Value Description

GROUP

'GROUP'

Indicates that fulfillment pricing should be applied to the Fulfillment Group, rather than each individual item.

ITEM

'ITEM'

Indicates that fulfillment pricing should be applied to the Fulfillment Item, rather than the containing Fulfillment Group. This is the default.

GuestToken

Property Type Description

cartId

string

The id of the cart associated with this guest checkout token.

tokenString

string

The actual guest checkout token.

expirationTime

string

When the token expires.

GuestTokenResponse

Property Type Description

cart

Cart

The cart associated with this guest token.

token

GuestToken

The actual guest checkout token.

GuestTokenValidationResponse

Property Type Description

valid

boolean

Whether the token is valid.

token

GuestToken

The guest checkout token.

ImageAssetRef

Property Type Description

contentUrl

string

The fully-resolvable content-URL to the binary data of the asset.

altText?

string

Text that corresponds to the HTML alt attribute that should be used when this asset is rendered in a browser.

title?

string

Text that corresponds to the HTML title attribute that should be used when this asset is rendered in a browser.

InventoryCheckStrategy (Enum)

Enumerated values that describe when to trigger an inventory check.

Name Value Description

NEVER

'NEVER'

Inventory should never be checked.

ADD_TO_CART

'ADD_TO_CART'

Inventory should be checked when the item is added to the cart.

InventoryReservationStrategy (Enum)

Enumerated values that describe when to trigger an inventory reservation.

Name Value Description

NEVER

'NEVER'

Inventory should never be reserved.

ADD_TO_CART

'ADD_TO_CART'

Inventory should be reserved when the item is added to the cart.

SUBMIT_ORDER

'SUBMIT_ORDER'

Inventory should be reserved when the order is submitted for checkout.

InventoryType (Enum)

Used to distinguish the ways that a Product’s/Variant’s inventory is represented. This is used to determine available fulfillment options & to split order items into different fulfillment groups (e.g. VIRTUAL products will need to be fulfilled in a different way than PHYSICAL).

Name Value Description

NONE

'NONE'

PHYSICAL

'PHYSICAL'

VIRTUAL

'VIRTUAL'

ItemList

Property Type Description

id?

string

The ID of this Item List Item.

name

string

The name of this item list.

items

Array<ItemListItem>

The collection of catalog items.

attributes?

{ [key: string]: unknown }

Miscellaneous attributes for this item list.

ItemListAddToCartResponse

Property Type Description

cart

Cart

The cart related to the add to cart submission

inaccessibleItemListIds

Array<string>

From the list of ids that the user attempted to add to cart, this represents the set of item list ids that the user does not have access to

failedItemAdditions

Record<string, Array<string>>

Map of item list ids to a collection of item list item ids that could not be added to cart

ItemListItem

Property Type Description

id?

string

The ID of this Item List Item.

itemListId

string

The ID of the parent Item List.

itemSkuRef?

ItemSkuRef

A reference to the catalog item.

quantity

number

undefined

attributes?

{ [key: string]: unknown }

Miscellaneous attributes for this item list item.

internalAttributes?

{ [key: string]: unknown }

Miscellaneous internal attributes for this item.

attributeChoices?

{ /** * Attribute choices for this item driven by product * options, where each key is the attributeName from * an attribute choice. */ [key: string]: AttributeChoiceValue }

undefined

ItemListItemPage

extends Page

Property Type Description

content

Array<ItemListItem>

A list of Item List Items.

ItemListPage

extends Page

Property Type Description

content

Array<ItemList>

A list of Item Lists.

ItemProrationDetail

Represents the detail for an order-level adjustment for an item on a per-quantity basis.

For example, if the prorated order adjustment for a item is $5 and the item has a quantity of 3, there should be one detail with quantity of 2 and amount of $1.67, and one detail with quantity of 1 and amount of $1.66, totaling to $5

Property Type Description

unitAmount

MonetaryAmount

The unit proration amount.

quantity

number

The total quantity.

ItemSkuRef

Property Type Description

sku?

string

The SKU being referred.

productId?

string

The ID of the product being referred.

variantId?

string

The ID of the variantId being referred.

NextAction

Object describing the next action for the payment transaction process.

Property Type Description

redirectUrl

string

The gateway-provided url that can redirect to the next action the customer must take. This URL can be used for redirecting to hosted payments page, displaying a 3D Secure form, etc. The customer is typically redirected to this location, but the page can also be rendered within an iframe if this is supported by the gateway.

actionType

string

The type of action that must be taken.

attributes?

Record<string, unknown>

Map holding any additional attributes not matching any defined properties.

NumberedPageableClientCallOptions

extends ClientCallOptions

Property Type Description

page?

number | string

The page number.

size?

number | string

The size of the page.

sort?

string

The field and sort direction.

OfferItemDetail

A DTO structure that provides offer qualifier or target information for a given item.

Property Type Description

offerId

string

The offer id where this item is a qualifier or target of.

itemId

string

The id of the item that is a qualifier or target.

quantityPerUsage

number

The quantity per offer usage of the item that is a qualifier or target.

itemAdjustmentQuantity

number

The quantity of the qualifier or target item that this offer was applied to.

offerUses

number

The number of times the offer is applied.

fulfillmentItemDetail

boolean

Indicates if this detail is for a fulfillment item.

OfferRef

Property Type Description

id

string

The id of the offer.

name

string

The name of the offer.

description?

string | null

A description of what benefits the offer provides to a customer.

cartLabel?

string

A label for this offer typically used by the storefront.

OverrideDetail

Property Type Description

userId

string

The user ID of the admin user who performed the override.

author

string

The admin user who performed the override.

type

string

The type of override performed, e.g. a Cart Item Price override or a Fulfillment Group Price override.

originalAmount

MonetaryAmount

The amount contained in the field prior to being overridden.

overrideAmount

MonetaryAmount

The amount which the field has been overridden to.

reason?

string

The reason the override was performed, for example, "Price Match".

comment?

string

The optional, long-form comment explaining any extra context for the override.

OverridePriceRequest

Property Type Description

overridePrice

MonetaryAmount

The new price value.

reason

string

The reason the override was performed.

comment?

string

Optional, long-form comment explaining any extra context for the override.

Page

Property Type Description

first

boolean

Whether this page is the first page.

last

boolean

Whether this page is the last page.

numberOfElements

number

The number of elements currently on this page.

pagable

PageableNumbered

The implementation of Pageable that should be used to fetch pages of non-narrowed entities with a standard paging strategy.

sort

Array<SortOrder>

The sorting parameters for this page.

content

unknown

Object to return

PageableNumbered

Property Type Description

pageNumber

number

The number of the page when fetching results.

pageSize

number

The size of the page.

paged

boolean

Is this paged

upaged

boolean

Is this unpaged

Payment

Property Type Description

id

string

The id of this payment.

name?

string

The name of this payment. This name is typically something like "Visa ending in 1234".

customerPaymentAccountId?

string | null

The id of the customer’s saved payment account that was used to build this payment object.

Deprecated: in favor of #savedPaymentMethodId for more accurate naming.

savedPaymentMethodId?

string | null

The id of the owning user’s saved payment method that was used to build this payment object.

isSingleUsePaymentMethod?

boolean

Whether or not the underlying payment method can only be used once.

In most cases, we’re managing a single-use token that represents a credit card. This flag is especially important for managing payments with successful transactions. In those cases, the token has already been used and cannot be reused. If we need modify the payment’s amount, then we may actually need to archive the existing payment, and create a new payment, with a new underlying token.

Additionally, this flag is helpful when needing to re-authorize an expired authorization transaction. In that case, if the payment represents a single-use payment method, then the re-authorization may not be possible, and you’ll need to seek an alternative form of payment.

shouldSavePaymentToCustomer?

boolean

Should the payment method be saved to the customer.

Deprecated: In favor of #shouldSavePaymentForFutureUse to support owning user types other than a customer (i.e. account).

shouldSavePaymentForFutureUse?

boolean

Should the payment method be saved to the owning user (i.e. customer or account).

status?

DefaultCartStatus | string

The status of the payment. See DefaultCartStatus.

type

string

The type of this payment like Credit Card or Gift Card.

gatewayType

string

The gateway used to process this payment.

amount

MonetaryAmount

The amount for which this payment is allotted.

subtotal?

MonetaryAmount

The payment’s total usually excluding adjustments, tax, and fulfillment.

adjustmentsTotal?

MonetaryAmount

The payment’s adjustments (a.k.a discounts) total, usually excluding fulfillment discounts.

fulfillmentTotal?

MonetaryAmount

The payment’s total shipping cost

taxTotal?

MonetaryAmount

The payment’s total tax cost

billingAddress

Address

The billing address associated with this payment.

paymentMethodProperties

Record<string, string>

Map to capture any gateway-specific information needed to perform gateway transactions

attributes?

Record<string, string>

General use map to capture any additional attributes needed for this Payment

displayAttributes?

Record<string, string>

General use map to capture any display properties for this Payment.

transactions

Array<PaymentTransaction>

Transaction data representing each payment gateway interaction related to this payment.

archived?

boolean

Whether this payment has been archived.

PaymentClientCallOptions

extends ClientCallOptions

Property Type Description

version?

number

The current payment version.

PaymentMethodOptionResponse

Property Type Description

paymentMethodType

string

The type of this payment like Credit Card or Gift Card.

paymentMethodGatewayType

string

The gateway configured for this payment method.

allowedFulfillmentOptions

Array<string>

The names of the allowed fulfillment options. <p> Will only be applied in the case of Collect on Delivery (COD) type payments by default. We will eventually extend out of box support to any payment options. </p>

fees

Array<CollectOnDeliveryFee>

The list of applicable fees for this payment option. Can be discountable and/or taxable. <p> Will only be applied in the case of Collect on Delivery (COD) type payments by default. We will eventually extend out of box support to any payment options. </p>

cartMinTotalRestriction

Record<string, number>

The maximum total a cart can have for this payment method, per currency. <p> Will only be applied in the case of Collect on Delivery (COD) type payments by default. We will eventually extend out of box support to any payment options. </p>

cartMaxTotalRestriction

Record<string, number>

The minimum total a cart can have for this payment method, per currency. <p> Will only be applied in the case of Collect on Delivery (COD) type payments by default. We will eventually extend out of box support to any payment options. </p>

PaymentNextAction

DTO for communicating the details of a payment’s required next action.

Property Type Description

paymentId

string

The id of the payment.

nextAction?

NextAction

The next step required for the payment gateway to continue processing this payment.

PaymentRequest

Property Type Description

name?

string

The name of this payment. This name is typically something like "Visa ending in 1234".

owningUserName?

string

The full name of the owner of this payment. For example, the customer’s full name.

owningUserEmailAddress?

string

The email address of the owner of this payment.

customerPaymentAccountId?

string

The id of the customer’s saved payment account that was used to build this payment object.

Note: This property is only relevant if the user desires to use a saved payment account to pay for their order. Otherwise, this value should remain unset.

Deprecated: in favor of #savedPaymentMethodId for more accurate naming.

savedPaymentMethodId?

string

The id of the owning user’s saved payment method that was used to build this payment object.

Note: This property is only relevant if the user desires to use a saved payment method to pay for their order. Otherwise, this value should remain unset.

isSingleUsePaymentMethod?

boolean

Whether or not the underlying payment method can only be used once.

In most cases, we’re managing a single-use token that represents a credit card. This flag is especially important for managing payments with successful transactions. In those cases, the token has already been used and cannot be reused. If we need modify the payment’s amount, then we may actually need to archive the existing payment, and create a new payment, with a new underlying token.

Additionally, this flag is helpful when needing to re-authorize an expired authorization transaction. In that case, if the payment represents a single-use payment method, then the re-authorization may not be possible, and you’ll need to seek an alternative form of payment.

type

string

The type of this payment like Credit Card or Gift Card. Defaults to CREDIT_CARD.

gatewayType

string

The gateway used to process this payment. Only a SINGLE payment gateway can modify transactions on a particular payment.

amount

MonetaryAmount

The amount for which the payment is allotted.

subtotal?

MonetaryAmount

The payment’s total usually excluding adjustments, tax, and fulfillment.

adjustmentsTotal?

MonetaryAmount

The payment’s adjustments (a.k.a discounts) total, usually excluding fulfillment discounts.

fulfillmentTotal?

MonetaryAmount

The payment’s total fulfillment cost.

taxTotal?

MonetaryAmount

The payment’s total tax cost

shippingAddress?

Address

The shipping address associated with this payment.

billingAddress?

Address

The billing address associated with this payment.

shouldSavePaymentToCustomer?

boolean

Should the payment method be saved to the customer. Defaults to false.

Deprecated: In favor of #shouldSavePaymentForFutureUse to support owning user types other than a customer (i.e. account).

shouldSavePaymentForFutureUse?

boolean

Should the payment method be saved to the owning user (i.e. customer or account).

paymentMethodProperties

Record<string, string>

Map to capture any gateway-specific information needed to perform gateway transactions

attributes?

Record<string, string>

Map to capture any additional information about the payment

displayAttributes?

Record<string, string>

General use map to capture any display properties for this Payment.

PaymentSummary

Property Type Description

paymentId

string

The id of this payment.

name

string

The name of this payment. This name is typically something like "Visa ending in 1234".

type

string

The type of this payment like Credit Card or Gift Card.

gatewayType

string

The gateway used to process this payment. Only a SINGLE payment gateway can modify transactions on a particular payment.

attributes?

Record<string, string>

General use map to capture any additional attributes needed for this Payment

displayAttributes?

Record<string, string>

General use map to capture any display properties for this Payment.

isSingleUsePaymentMethod?

boolean

Whether or not the underlying payment method can only be used once.

In most cases, we’re managing a single-use token that represents a credit card. This flag is especially important for managing payments with successful transactions. In those cases, the token has already been used and cannot be reused. If we need modify the payment’s amount, then we may actually need to archive the existing payment, and create a new payment, with a new underlying token.

Additionally, this flag is helpful when needing to re-authorize an expired authorization transaction. In that case, if the payment represents a single-use payment method, then the re-authorization may not be possible, and you’ll need to seek an alternative form of payment.

amount

MonetaryAmount

The amount for which this payment is allotted.

subtotal?

MonetaryAmount

The payment’s total usually excluding adjustments, tax, and fulfillment.

adjustmentsTotal?

MonetaryAmount

The payment’s adjustments (a.k.a discounts) total, usually excluding fulfillment discounts.

fulfillmentTotal?

MonetaryAmount

The payment’s total fulfillment cost

taxTotal?

MonetaryAmount

The payment’s total tax cost

amountAuthorized?

MonetaryAmount

The total authorized amount for capture. This value is calculated as "total authorized - total reverse-authed".

amountCaptured?

MonetaryAmount

The total captured amount. This value is calculated as "total captured - total refunded - total voided".

amountRefunded?

MonetaryAmount

The total refunded amount.

amountVoided?

MonetaryAmount

The total voided amount.

amountSettled?

MonetaryAmount

The total settled amount.

amountCredited?

MonetaryAmount

The total detached credit amount.

version

number

The version of this payment. Used for checking that the requested version of the payment is up-to-date before saving changes. Required for any request which results in an update being made to the payment. This should never be manually incremented/decremented.

isPartialReverseAuthSupported

boolean

Whether a portion of an authorization transaction can be reversed, or if the full authorization transaction must be reversed. Defaults to false

isClientSettlementEnabled

boolean

Whether the client is responsible for settling captured payments. If false, this implies that the gateway is responsible for managing payment settlement. Defaults to false.

PaymentSummaryPage

extends Page

Property Type Description

content

Array<PaymentSummary>

A list of payments.

PaymentTransaction

Property Type Description

id

string

The id of this payment transaction.

type

string

The type of this transaction (authorize, capture, refund, etc.)

status

string

The status of the transaction

transactionReferenceId

string

The transaction id known by the payment gateway.

requestId

string

The id used to represent the request that produced this transaction.

amount

MonetaryAmount

The amount related to this transaction.

dateRecorded?

string | null

The timestamp when this transaction response was recorded

gatewayResponseCode

string | null

The response code provided by the payment gateway which may represent a success or failure

failureType?

string | null

The type of transaction failure

declineType?

string | null

The type of transaction failure (hard vs soft failure)

rawResponse

string | null

The string representation of the serialized response from the gateway.

parentTransactionId?

string | null

The id of the parent PaymentTransaction.

attributes?

Record<string, string>

Map of specific attributes that have been gathered from the raw response.

customerIpAddress?

string | null

The customer IP address that instigated this transaction

indeterminateResult?

boolean

Tells if this transaction has an indeterminate result.

PaymentTransactionFailureDetail

Property Type Description

paymentId

string

The id of the payment.

transactionType

string

The type of transaction that was executed.

transactionId

string

The id of the executed transaction.

transactionReferenceId

string

The transaction id known by the payment gateway.

transactionManagementState

string

The management state of this transaction, after it’s been executed.

transactionStatus

string

The status of the transaction.

failureType

string

The type of transaction failure

declineType

string

The type of transaction failure (hard vs soft failure)

gatewayResponseCode

string

The response code provided by the payment gateway which may represent a success or failure.

message

string

Message describing the result of the transaction

threeDSecureVerificationUrl

string

The gateway-provided url where the customer must verify that they are in fact the owner of the payment method. The customer is typically redirected to this location, but the page can also be rendered within an iframe if this is supported by the gateway.

indeterminateResult

boolean

Whether or not this transaction has an indeterminate result.

transactionAmount

MonetaryAmount

The transaction amount that was executed against the payment summary.

requestId

string

The id representing the customer’s request to execute the transaction.

dateRecorded

string

The timestamp when this transaction response was recorded

attributes?

Record<string, string>

Map of specific attributes that have been gathered from the raw response.

Note: It’s very important that this does not include sensitive payment method data.

Phone

Property Type Description

countryCode?

string | null

The country calling code that acts as a prefix to the main telephone number.

phoneNumber

string

The telephone number, including the area code.

extension?

string | null

The internal extension for this phone.

PriceableCartClientCallOptions

extends CartClientCallOptions

Property Type Description

price?

boolean

Whether the cart should be priced or not. Default is true.

PriceableCheckoutClientCallOptions

extends CheckoutClientCallOptions

Property Type Description

price?

boolean

Whether the cart should be priced or not. Default is true.

PriceCartRequest

Property Type Description

locale?

string

The locale to price the cart against.

currency?

string

The currency to price the cart against.

PricedFulfillmentOption

Represents specific fulfillment price data for a particular FulfillmentGroup or FulfillmentItem, including the fulfillment service level and price.

This replaces FulfillmentOption when using the Fulfillment Service rather than the Shipping Service.

Property Type Description

serviceLevel

string

User-defined service level. This will typically include values like "SAME_DAY", "FIRST_CLASS", "OVERNIGHT", "STANDARD", etc. for [DefaultFulfillmentType] SHIP; or "IN_STORE" or "CURBSIDE" for [DefaultFulfillmentType] PICKUP This will depend on how clients (tenants or applications) define their available Fulfillment Option Service levels.

if [AbstractFulfillmentOption] inventoryType is "NONE" then this must return "NONE" as well.

fulfillmentType

string

Broad categorization of how this fulfillment option is fulfilled. For instance, SHIP, PICKUP, or VIRTUAL.

description?

string

Human-readable description (e.g. First Class, USPS First Class, or Pickup at Store #53).

calculatorIds

Set<string>

The list of calculatorIds which were used to compute the price for this option.

fulfillmentReference

string

This is either the ID of the Fulfillment Group or Fulfillment Item, depending on the value of PricedFulfillmentOption pricingStrategy.

estimatedMinDaysToFulfill

number

The minimum number of days estimated for delivery. Null value is possible and means that the estimated days to deliver is unknown.

estimatedMaxDaysToFulfill

number

The maximum number of days expected for delivery. Null value is possible meaning no max days to fulfill has been configured.

price

MonetaryAmount

This will be the price of using this Fulfillment Option. This may be ZERO.

taxable

boolean

Indicate if this fulfillment price is taxable.

taxCode

string

A tax code for this fulfillment option.

additionalAttributes?

Record<string, unknown>

Map to hold arbitrary additional attributes.

ProratedOfferAdjustment

DTO containing prorated price adjustment information for a [EnhancedLineItem] caused by an order-level or fulfillment group-level offer.

If there’s an order-level offer applied to the order, the offer adjustment would be spread across all the discountable EnhancedLineItems.

Practically, this information is only needed for downstream services since the total discount is the same for the [EnhancedLineItem].

Property Type Description

offerRef

OfferRef

The OfferRef for the offer where this prorated adjustment is from.

amount

MonetaryAmount

The amount of the prorated adjustment for the item.

itemProrationDetails

Array<ItemProrationDetail>

The details about how this prorated adjustment on a per-quantity basis.

QuoteProcessRequest

Request DTO used for providing information for the quote flows, such as submitting, editing, or publishing a quote

Property Type Description

cartId?

string

The id of the Cart that the request is for

cart?

Cart

The Cart to be updated.

targetQuoteStatus

DefaultQuoteStatus | string

The target quote status to change into.

additionalAttributes?

Record<string, unknown>

Miscellaneous attributes that can be added to this request in order to provide more information.

QuoteProcessResponse

Request DTO used for providing information for the quote flows, such as submitting, editing, or publishing a quote

Property Type Description

cart

Cart

The updated cart.

additionalAttributes?

Record<string, unknown>

Miscellaneous attributes that can be set to this response in order to provide more information on validation failures.

QuoteProperties

Configuration properties for quote that are to be retrieved at runtime.

Property Type Description

enabled

boolean

Whether quotes are active for the application

QuoteValidationApiError

extends ApiError

An ApiError used for errors during quote Cart validation.

Property Type Description

[key: string]

unknown

RecalculateTaxesClientCallOptions

extends CheckoutClientCallOptions

Property Type Description

actual?

boolean

Whether to calculate actual taxes.

Deprecated: use the estimated flag. If false, it’s assumumed that we want actual calculations.

estimated?

boolean

Hint as to whether to estimate taxes. This can be used to assist in determining a tax provider that might be more efficient or less expensive when an estimate is all that is required. Default is false.

ResolveCartClientCallOptions

extends ClientCallOptions

Property Type Description

statuses?

Array<string>

The list of cart statuses used to resolve the authenticated customer’s cart.

ReviewerAssignment

A record of a reviewer assigned to a Cart. This is used to track admin users assigned to review Quote Requests.

Property Type Description

id

string

Id of the assignment

userId

string

Id of the user assigned

userEmail

string

The assigned user’s email

userType

DefaultUserTypes | string

The type of user assigned

assignmentType

DefaultReviewerAssignmentTypes | string

The type of assignment

additionalData

Record<string, unknown>

Arbitrary additional data

ShareItemListRequest

Property Type Description

listId

string

The ID of the item list being shared. This will be populated from the request path.

valueType

string

Describes the expected format of the value property for each Target (e.g email address, customer ID, etc.).

role

string

The role that will be granted to each target.

targets

Array<Target>

Describes who this list is being shared with.

SortOrder

Property Type Description

property

string

The property to order for.

direction

string

The direction in which to sort. Can be ascending (ASC) or descending (DESC).

ignoreCase

boolean

Whether or not the sorting will be case sensitive.

nullHandling

string

string A hint to the data store (may not be respected) regarding how to sort null values. Possible values

NATIVE (let the data store decide what to do) NULLS_FIRST NULLS_LAST

SpecificItemChoiceVariantPricingOverride

Represents a pricing override to be used for a dependent item (like a warranty) if a specific variant of the parent product is added as the dependent’s parent. For instance, this could be a pricing override for a warranty where the price is increased if a more expensive variant is selected than the default or base variant.

Property Type Description

variantId

string

ID of the variant this pricing should be used with.

pricingKey

string

System-wide unique identifier to configure specific pricing for the choice. Relevant if pricing data is managed in a separate system or data store, like the Broadleaf pricing services.

overridePrice

MonetaryAmount

The price to use for this item when the related variant is selected.

StaleCartApiError

extends ApiError

An ApiError due to a stale cart during a cart modification request.

Property Type Description

newCart

Cart

Current state of the cart.

Target

Property Type Description

value

string

Identifies who the item list is to be shared with. The format of this value is dictated by the valueType of this Target’s related ShareItemListRequest. An example may be an email address or a customer ID.

attributes

{ [key: string]: unknown }

Additional attributes used to describe the target. This collection may include the target’s name or other information that may be useful when the user is notified that they have been granted access.

TaxIncludedType (Enum)

Name Value Description

YES

'YES'

All taxes are included in the subtotal (VAT).

NO

'NO'

No taxes are included in the subtotal.

PARTIAL

'PARTIAL'

A fraction of the total tax amount is included in the subtotal (VAT), and the rest should be added after the subtotal.

TransferCartToken

Property Type Description

token

string

The token string that is used to authorize that a request has access to transfer the given cart.

expirationTime

string

The expiration time of the transfer cart token in UTC. This is used to inform clients of when to expect the token to be expired.

author

string

The username of the author associated with the transfer cart token.

cartId

string

The ID of the cart the token is authorized to transfer.

UpdateCartInfoRequest

Property Type Description

name?

string

The new name for the cart

expirationDate?

string

A new expiration date for a quote-type cart

clearExpirationDate?

boolean

If the expiration date is null and this is true, then the expiration date on the cart will be nulled as well. This is needed because the backend is Java which does not treat undefined and null differently.

UpdateFulfillmentGroupAddressRequest

Property Type Description

address

FulfillmentAddress

fulfillmentGroupReference

string

UpdateFulfillmentGroupRequest

Property Type Description

type?

string

The type of means by which this fulfillment group is fulfilled. This could be SHIP, PICKUP, or VIRTUAL, for example.

fulfillmentOption?

FulfillmentOption

The fulfillment option chosen for the type.

pricedFulfillmentOption?

PricedFulfillmentOption

The fulfillment option chosen for the type.

address

Address

The shipping address for this fulfillment group.

attributes?

Record<string, string>

Map to capture any additional information about the fulfillment group.

UpdateItemRequest

Property Type Description

cartItemId

string

The id of the cart item to update.

variantId?

string

The id of the variant for this add item request. Used to retrieve variant information for the cart item.

quantity

number

The amount of this item to be added to the cart.

itemAttributes?

Record<string, string>

Miscellaneous attributes that should be copied to the cart item’s attributes for this request.

itemAttributeChoices?

Record<string, string>

Attribute choices that should be copied to cart item’s attribute choices for this request.

cartAttributes?

Record<string, string>

Attributes that should be copied to the cart’s attributes for this request.

dependentItemUpdates?

Array<UpdateItemRequest>

A list of additional UpdateItemRequests that should be processed as children items of the resulting parent item of this current request.

parentCartItemId?

string

The id of the parent cart item for this add item request. This would create a child cart item of the parent.

UpdatePaymentRequest

Property Type Description

paymentId

string

The ID of the payment to update. Will be pre-populated in Cart Operations from the request.

name?

string

The name of this payment. This name is typically something like "Visa ending in 1234".

customerPaymentAccountId?

string

The id of the customer’s saved payment account that was used to build this payment object.

Note: This property is only relevant if the user desires to use a saved payment account to pay for their order. Otherwise, this value should remain unset.

Deprecated: in favor of #savedPaymentMethodId for more accurate naming.

savedPaymentMethodId?

string

The id of the owning user’s saved payment method that was used to build this payment object.

Note: This property is only relevant if the user desires to use a saved payment method to pay for their order. Otherwise, this value should remain unset.

isSingleUsePaymentMethod?

boolean

Whether or not the underlying payment method can only be used once.

In most cases, we’re managing a single-use token that represents a credit card. This flag is especially important for managing payments with successful transactions. In those cases, the token has already been used and cannot be reused. If we need modify the payment’s amount, then we may actually need to archive the existing payment, and create a new payment, with a new underlying token.

Additionally, this flag is helpful when needing to re-authorize an expired authorization transaction. In that case, if the payment represents a single-use payment method, then the re-authorization may not be possible, and you’ll need to seek an alternative form of payment.

shouldSavePaymentToCustomer?

boolean

Should the payment method be saved to the customer. Defaults to false.

Deprecated: In favor of #shouldSavePaymentForFutureUse to support owning user types other than a customer (i.e. account).

shouldSavePaymentForFutureUse?

boolean

Should the payment method be saved to the owning user (i.e. customer or account).

type?

string

The type of this payment like Credit Card or Gift Card. Defaults to CREDIT_CARD.

gatewayType?

string

The gateway used to process this payment. Only a SINGLE payment gateway can modify transactions on a particular payment.

amount?

MonetaryAmount

The amount for which the payment is allotted.

subtotal?

MonetaryAmount

The payment’s total usually excluding adjustments, tax, and shipping.

adjustmentsTotal?

MonetaryAmount

The payment’s adjustments (a.k.a discounts) total, usually excluding shipping/fulfillment discounts.

fulfillmentTotal?

MonetaryAmount

The payment’s total fulfillment cost.

taxTotal?

MonetaryAmount

The payment’s total tax cost.

billingAddress?

Address

The billing address associated with this payment.

owningUserType?

DefaultPaymentOwningUserType | string

Describes the type of the owning user of the payment. For example, the payment could belong to a Broadleaf customer or an account, therefore this value might be BLC_CUSTOMER, or BLC_ACCOUNT.

paymentMethodProperties?

Record<string, string>

Map to capture any gateway-specific information needed to perform gateway transactions

attributes?

Record<string, string>

Map to capture any additional information about the payment.

displayAttributes?

Record<string, string>

General use map to capture any display properties for this Payment.

Voucher

Property Type Description

offerRef

OfferRef

A reference to the offer that originated this adjustment.

voucherCampaignId

string

The id of the voucher campaign, which will be used for voucher code generation later on.

generatedCampaignCode

string

The generated campaign code for this voucher.

codeUsed?

string | null

The code used (if any) that triggered the application of the offer for this voucher.