TABLE OF CONTENTS


B2C Shopping Cart 

Shopping carts help you collect and manage items users select as they navigate through the purchase flows.  The cart can either be built and updated as a stand-alone object or it can be built directly in the checkout call when the order is submitted.


Note: Creating a stand-alone shopping cart isn’t required for checkout but the shopping cart object is used in most of the checkout flows.  For that reason, we strongly recommend using the shopping cart features.


Method


Endpoint


Actions


Request Payload


Response Payload


POST

/v2/b2c/carts

Create a new shopping cart

Shopping Cart Object*

Shopping Cart ID

GET

/v2/b2c/carts/{id}

Get an existing shopping cart

None

Shopping Cart Object

PUT

/v2/b2c/carts/{id}

Update an existing shopping cart

Shopping Cart Object

Shopping Cart Object

DELETE

/v2/b2c/carts/{id}

Delete an existing shopping cart

None

Shopping Cart Object

*If you’d like to create an empty shopping cart, pass an empty object {} into the create a new shopping cart call


Shopping Cart Object

FieldDescriptionNotes
idIf it's an existing shopping cart then the id of the cart.
tempVisitorId

ACME internal use only.  Use customerId below.


visitorId

ACME internal use only.  Use customerId below.


membershipIdACME internal use only.  Use membershipIds below.
membershipCategoryIdThe ID of the level. If you don't have the membership id but know the membership level then you can pass this in to give them membership discounts and access.  If you pass in a membership id then this will not be used.
couponCode ACME internal use only. Use couponCodes below.  Populating this field will cause the coupons to not be applied to the cart.
items

A list of items in the shopping cart.  See Shopping Cart Item Object

for details.

Required
comboItems

A list of combo items in the cart.  This is for a combo event not combo ticket category. See Shopping Cart Combo Item Object for details.


forms

ACME internal use only.


couponCodesA list of coupon codes being applied to this cart.  
customerIdThe id of an existing customer. This is ignored when creating a cart outside of checkout. A new customer can be created during B2C Checkout
membershipIdsA list of membership IDs that are being used on the order
orderContact

ACME internal use only.


saleChannel

The sales channel that this order was completed on.  one of (online, customerRep, pointOfSale, reseller, kiosk or collaborator)

Required
org

ACME internal use only


verifyEntitlements

When a POST call is made to Checkout with the Shopping Cart, if this is set to true, then ACME will validate the quantity of tickets in the cart against the entitlement rules configured in B2B



 

Shopping Cart Item Object

FieldDescriptionNotes
itemIdA unique id for this itemRead Only
eventIdEvent id of the itemRequired for Events
ticketingTypeIdType of ticketRequired for Events
eventNameThe name of the eventRead Only
ticketTypeNameThe name of the ticket typeRead Only
quantityThe number of these items in the shopping cartRequired
unitPriceThe price for each item in the shopping cartRead Only
amountThe total amount (quantity * unitPrice). Used only for variable donation prices.Read Only
itemTypeThe type of item.  Can be one of Event, Inventory, ComboEvent, ComboInventory. The default is Event.Required
inventoryIdIf this item is not an event then this is the inventory id of the item.Required for Add On or Donation
inventoryNameName of the item, if it's not an event.Read Only
membershipInfoInformation about the membership being purchased.  See Membership Info Object
discountIdIf a discount is applicable (i.e. if you are using a coupon code), the discount id will be returnedRead Only
donationDetailThe details about the donation if this item is a donation.  See Donation Details Object belowOptional
ignoreEntitlementsIf a membership is being used to make this purchase then setting this flag will ignore restrictions on the membership.  Like Gold members can only buy two tickets will be ignored and the member will be able to buy more.

  

Shopping Cart Combo Item Object

FieldDescription
itemIdThe inventory item id, if this is an inventory item.
comboTemplateIdThe combo template id associated with this combo item.
comboTemplateNamethe name of the combo template.
comboTemplateTypeEither fixedPrice or Discount depending on the type combo template.
ticketsThe list of tickets for this combo item.
tickets[x].eventTemplateIdThe event template associated with this ticket.
tickets[x].ticketTypeIdThe id for the type of ticket.
tickets[x].nameThe name on the ticket.
tickets[x].descriptionA description of what the ticket is for.
tickets[x].priceThe retail price of the ticket.
tickets[x].discountedPriceThe price after discounts for resellers are applied to the retail price.
tickets[x].quantityThe number of tickets.
tickets[x].subTotalThe subtotal of the retail price of the tickets for the purchased quantity
tickets[x].discountedSubTotalThe subtotal of the discounted price of the tickets for the purchased quantity
eventsA list of events in this combo.
events[x].eventTemplateIdThe id of the event template for this event.
events[x].eventIdThe id of the event.
events[x].eventNameThe name of the event.
events[x].eventStartTimeThe start time of the event.
addOnsThe list of add ons in this combo item.
addOns[x].addOnIdThe id of the add-on .
addOns[x].nameThe name of the add on.
addOns[x].quantityThe number of items of this add on in the shopping cart.
addOns[x].unitPriceThe price of these items.
addOns[x].priceSplitEither 'each' or 'total'. If each then the price will be quantity * unitPrice, if total the price will be unitPrice.

 

Donation Details Object

Information about the donation being made

FieldDescriptionNotes
donorRecognition'self', 'anonymous' or the name of the organization

This maps to "DonorRecognitionCorpName" in reporting. If donor recognition type is

  • self: field will be 'self' (read only)
  • organization: field will be the entered organization
  • anonymous: field will be 'anonymous' (read only)
donorRecognitionTagThe recognition notes
donorRecognitionType

Whether the donation is a 'self', 'organization', or 'anonymous' donation

Required. If 'self', customer (donor) information is pulled from checkout billing information

dedicationLastNameLast name of the person that is being honored in beneficiary type 
dedicationFirstNameFirst name of the person that is being honored in beneficiary type
donationCampaignNameName of the campaign that the donation is forCampaigns are created in ACME B2B.  
Use Get Campaigns to get the available list.
donationAppealNameAppeal that the donation is forAppeals are created in ACME B2B.
Use Get Appeals to get the available list.
donationFundNameFund that the donation is forFunds are created in ACME B2B.
Use Get Funds to get the available list.
beneficiaryType'In honor of' or 'In memory of'
beneficiaryLastNamelast name of the person being informed
beneficiaryFirstNamefirst name of the person being informed
beneficiaryEmailemail of the person being informed
beneficiaryPhoneNumberphone number of the person being informed
beneficiaryStreetAddress1street address 1 of the person being informed
beneficiaryStreetAddress2street address 2 of the person being informed
beneficiaryCitycity of the person being informed
beneficiaryStatestate of the person being informed
beneficiaryZipzip code of the person being informed
beneficiaryCountrycountry of the person being informed
notes'in honor of' or 'in memory of' notes
customFieldValuesA list of name value pairs associated with this donation
customFieldValues[x].name

customFieldValues[x].value
 


Sample Request Bodies


Create a new shopping cart or update an existing shopping cart.  This example includes all possible items that can be included in a cart.  Add or remove items depending on what the user selects.

//Event Example
{ 
    "items": [{  
            "itemType": "Event",
            "eventName": "History of Magic",
            "eventId": "5d96453460309f26d082bc80",
            "ticketingTypeName": "Adult",
            "ticketingTypeId": "55268c54e4b0fb9be01106bd",
            "quantity": 2,
            "unitPrice": "20.00",
            "amount": "40.00"
        },
//Event Add-On Example
        {
            "itemType": "Inventory",
            "eventName": "History of Magic",
            "eventId": "5d96453460309f26d082bc80",
            "inventoryName": "Horocrux",
            "inventoryId": 594,
            "quantity": 1,
            "unitPrice": "100.00",
            "amount": "100.00"
        },
//Discrete Add-On Example (does not have an event attached)
        {
            "itemType": "Inventory",
            "inventoryName": "Floo Powder",
            "inventoryId": 818,
            "quantity": 1,
            "unitPrice": "10.00",
            "amount": "10.00"
        },
//Fixed Donation Example
        {
            "itemType": "Inventory",
            "addonType": "fixedDonation",
            "inventoryName": "$10 Donation",
            "inventoryId": 889,
            "quantity": 1,
            "unitPrice": "100.00",
            "amount": "100.00",
            "donationDetail": {
                "donationAppealName": "Appeal One",
                "donationCampaignName": "Spring Direct Mail Appeal",
                "donationFundName": "General Fund",
                "donorRecognition": "self",
                "donorRecognitionType": "self",
                "dedicationLastName": "Longbottom",
                "dedicationFirstName": "Mr. and Mrs.",
                "beneficiaryType": "In memory of",
                "beneficiaryLastName": "Longbottom",
                "beneficiaryFirstName": "Neville",
                "beneficiaryEmail": "nlongbottom@hsww.magic.edu",
                "beneficiaryPhoneNumber": "555-555-5555",
                "beneficiaryStreetAddress1": "123 Main Street",
                "beneficiaryStreetAddress2": "Apt 2B",
                "beneficiaryCity": "Anytown",
                "beneficiaryState": "GA",
                "beneficiaryZipCode": "30303",
                "beneficiaryCountry": "United States"
            }
        },
//Variable Donation Example
        {
            "itemType": "Inventory",
            "addonType": "donation",
            "inventoryName": "Variable Donation",
            "inventoryId": 888,
            "quantity": 1,
            "unitPrice": "10000.00",
            "amount": "10000.00",
            "donationDetail": {
                "donationAppealName": "Appeal One",
                "donationCampaignName": "Spring Direct Mail Appeal",
                "donationFundName": "General Fund",
                "donorRecognition": "anonymous",
                "donorRecognitionType": "anonymous"
            }
        },
//Membership Purchase Example (new membership only)
        {
            "itemType": "MembershipPurchase",
            "quantity": 1,
            "unitPrice": "100.00",
            "amount": "100.00",
            "membershipInfo": {
                "membershipCategoryId": "5a049c3b60309f5d917c6e63",
                "membershipCategoryName": "Founders",
                "membershipOfferingId": "519d569cd32748ae9e3c507fe0456e5e",
                "membershipOfferingName": "Offering One",
                "pricePointId": "59aeb29a60309f07f6c6bef6",
                "pricePointName": "Membership",
                "membershipCards": [{
                    "cardType": "primary",
                    "name": "B Bagshot",
                    "email": "bbagshot@email.com",
                    "firstName": "B",
                    "lastName": "Bagshot",
                    "phoneNumber": "555-555-5555",
                    "streetAddress1": "123 Main St",
                    "streetAddress2": "Apt 2",
                    "city": "Springfield",
                    "state": "Oregon",
                    "zipCode": "97477",
                    "country": "United States"
                }, 
                {
                    "cardType": "secondary",
                    "email": "hsimpson@springfieldnuclear.org",
                    "firstName": "H",
                    "lastName": "Simpson",
                    "phoneNumber": "939-555-0113"
                }
                ],
                "isGift": false
            }
        }
    ],
    "forms": [],
    "comboItems": [],
    "verifyEntitlements": false,
    "reservationId": "10788"
}




Sample Responses

 

Empty shopping cart object

{
"id": "5e14cd4f60309f41499e653b",
"tempVisitorId": "706ae7924a824d2483ac8827db78511e",
"items": [],
"forms": [],
"comboItems": [],
"verifyEntitlements": false
}


 

Full shopping cart object

***coupon code and membership id cannot be used at the same time

{
    "id": "5e173d6060309f41499e6602",
    "tempVisitorId": "43b66f951401416781903934f8c68e9a",
    "membershipCategoryId": "5a049c3b60309f5d917c6e63",
    "membershipId": "000000000***",
    "couponCodes" : ["CouponCode***"],
    "items": [
        {
            // typical ticket example
            "itemId": "fb433e2a72594339bfe1be054440cd41",
            "eventId": "5d96453460309f26d082bc80",
            "ticketingTypeId": "55268c54e4b0fb9be01106bd",
            "eventName": "History of Magic",
            "ticketingTypeName": "Adult",
            "quantity": 2,
            "unitPrice": "20.00",
            "retailUnitPrice": "20.00",
            "amount": "40.00",
            "itemType": "Event",
            "admissionType": "standard",
            "isRetail": false,
            "ignoreEntitlements": false
        },
{
            // full price ticket when using entitlements example
            "itemId": "fb433e2a72594339bfe1be054440cd41",
            "eventId": "5d96453460309f26d082bc80",
            "ticketingTypeId": "55268c54e4b0fb9be01106bd",
            "eventName": "History of Magic",
            "ticketingTypeName": "Adult",
            "quantity": 2,
            "unitPrice": "20.00",
            "retailUnitPrice": "20.00",
            "amount": "40.00",
            "itemType": "Event",
            "admissionType": "standard",
            "isRetail": true,
            "ignoreEntitlements": false
        },
        {
            // addon tied to event example
            "itemId": "0b2dc945b9e34bd2ab3c1ff8fb407d7b",
            "eventId": "5d96453460309f26d082bc80",
            "eventName": "History of Magic",
            "quantity": 1,
            "unitPrice": "100.00",
            "retailUnitPrice": "0.00",
            "amount": "100.00",
            "itemType": "Inventory",
            "inventoryId": 594,
            "inventoryName": "Horocrux",
            "admissionType": "standard",
            "isRetail": false,
            "ignoreEntitlements": false
        },
        {
            // addon not tied to an event example
            "itemId": "b898f7f493834dab8d21946838a89b4f",
            "quantity": 1,
            "unitPrice": "10.00",
            "retailUnitPrice": "0.00",
            "amount": "10.00",
            "itemType": "Inventory",
            "inventoryId": 818,
            "inventoryName": "Floo Powder",
            "admissionType": "standard",
            "isRetail": false,
            "ignoreEntitlements": false
        },
        {
            // fixed donation example
            "itemId": "75df1d03e1534e37bbcefd6b956aaa2e",
            "quantity": 1,
            "unitPrice": "100.00",
            "retailUnitPrice": "0.00",
            "amount": "100.00",
            "itemType": "Inventory",
            "inventoryId": 889,
            "inventoryName": "$10 Donation",
            "admissionType": "standard",
            "addonType": "fixedDonation",
            "donationDetail": {
                "donorRecognition": "self",
                "donorRecognitionType": "self",
                "dedicationLastName": "Longbottom",
                "dedicationFirstName": "Mr. and Mrs.",
                "donationCampaignName": "Spring Direct Mail Appeal",
                "donationFundName": "General Fund",
                "beneficiaryType": "In memory of",
                "beneficiaryLastName": "Longbottom",
                "beneficiaryFirstName": "Neville",
                "beneficiaryEmail": "nlongbottom@hsww.magic.edu",
                "beneficiaryPhoneNumber": "555-555-5555",
                "beneficiaryStreetAddress1": "123 Main Street",
                "beneficiaryStreetAddress2": "Apt 2B",
                "beneficiaryCity": "Anytown",
                "beneficiaryState": "GA",
                "beneficiaryZipCode": "30303",
                "beneficiaryCountry": "United States",
                "customFieldValues": [],
                "donationAppealName": "Appeal One"
            },
            "isRetail": false,
            "ignoreEntitlements": false
        },
        {
            // variable donation example
            "itemId": "d52ab9a933e64b0bb82771cfeb1a871d",
            "quantity": 1,
            "unitPrice": "10000.00",
            "retailUnitPrice": "0.00",
            "amount": "10000.00",
            "itemType": "Inventory",
            "inventoryId": 888,
            "inventoryName": "Variable Donation",
            "admissionType": "standard",
            "addonType": "donation",
            "donationDetail": {
                "donorRecognition": "anonymous",
                "donorRecognitionType": "anonymous",
                "donationCampaignName": "Spring Direct Mail Appeal",
                "donationFundName": "General Fund",
                "customFieldValues": [],
                "donationAppealName": "Appeal One"
            },
            "isRetail": false,
            "ignoreEntitlements": false
        },
        {
            // membership purchase example
            "itemId": "b278c0577a8a42d497dbaeca8bc7112a",
            "quantity": 1,
            "unitPrice": "100.00",
            "retailUnitPrice": "100.00",
            "amount": "100.00",
            "itemType": "MembershipPurchase",
            "membershipInfo": {
                "membershipCategoryId": "5a049c3b60309f5d917c6e63",
                "membershipCategoryName": "Founders",
                "membershipOfferingId": "519d569cd32748ae9e3c507fe0456e5e",
                "membershipOfferingName": "Offering One",
                "pricePointId": "59aeb29a60309f07f6c6bef6",
                "pricePointName": "Membership",
                "membershipCards": [
                    {
                        "cardType": "primary",
                        "name": "B Bagshot",
                        "email": "bbagshot@email.com",
                        "firstName": "B",
                        "lastName": "Bagshot",
                        "phoneNumber": "555-555-5555",
                        "streetAddress1": "123 Main St",
                        "streetAddress2": "Apt 2",
                        "city": "Springfield",
                        "state": "Oregon",
                        "zipCode": "97477",
                        "country": "United States",
                        "deceased": "no",
                        "primaryCard": "no",
                        "startDate": "1969-12-31T19:00:01-05:00",
                        "expirationDate": "2030-01-18T22:14:07-05:00",
                        "excludeCardOnMemberCreation": false,
                        "ignoreUpdates": false
                    },
                    {
                        "cardType": "secondary",
                        "name": "H Simpson",
                        "email": "hsimpson@springfieldnuclear.org",
                        "firstName": "H",
                        "lastName": "Simpson",
                        "phoneNumber": "939-555-0113",
                        "deceased": "no",
                        "primaryCard": "no",
                        "startDate": "1969-12-31T19:00:01-05:00",
                        "expirationDate": "2030-01-18T22:14:07-05:00",
                        "excludeCardOnMemberCreation": false,
                        "ignoreUpdates": false
                    }
                ],
                "waiveBenefits": false,
                "isGift": false,
                "notifyGiftRecipient": false,
                "donationAmount": "0.00",
                "markDonationAsAnonymous": false,
                "cancellationRefundAmount": "0.00",
                "auxiliary": false
            },
            "admissionType": "standard",
            "isRetail": false,
            "ignoreEntitlements": false
        }
    ],
    "forms": [],
    "comboItems": [],
    "verifyEntitlements": false
}