Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityDoc feedbackLog In
GitHubNuGetDev CommunityDoc feedback


When setting up a website, one configuration option to consider is how carts are assigned. By default, carts are assigned to the User. It is also possible to assign the cart to the Bill To or the Ship To address. If configured to be by User, a different cart is used any time the User signs in with a different username/password combination. If by Bill To or Ship To, a new cart is used any time the user selects a different Bill To or Ship To address.

Consider the following scenarios:

<table class="TableStyle-Borders" style="margin-left: 0; margin-right: auto; width: 100%;" data-cellspacing="0"> <colgroup> <col style="width: 33%" /> <col style="width: 33%" /> <col style="width: 33%" /> </colgroup> <thead> <tr class="header TableStyle-Borders-Head-Header1"> <th class="TableStyle-Borders-HeadE-Regular-Header1">Setting Value</th> <th class="TableStyle-Borders-HeadE-Regular-Header1">Scenario</th> <th class="TableStyle-Borders-HeadD-Regular-Header1">Result</th> </tr> </thead> <tbody> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>ByUser</strong></td> <td class="TableStyle-Borders-BodyE-Regular-Row1">A user logs in as Diane with Company A as her customer. Diane then changes her customer to Company B, or changes her Ship To.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">The cart stays populated.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td rowspan="2" class="TableStyle-Borders-BodyE-Regular-Row1"><strong>ByCustomer<br /> (BIll To)</strong></td> <td class="TableStyle-Borders-BodyE-Regular-Row1">A user logs in as Diane with Company A as her customer. Diane then changes her customer to Company B.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">A new cart is created for Company B. When Diane changes back to Company A, the cart is still populated.</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">A user logs in as Diane with Company A as her customer with a Ship To of Location 1. Diane then changes her Ship To to Location 2.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">The cart stays populated.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td rowspan="2" class="TableStyle-Borders-BodyE-Regular-Row1"><strong>ByShipTo</strong></td> <td class="TableStyle-Borders-BodyE-Regular-Row1">A user logs in as Diane with Company A as her customer. Diane then changes her customer to Company B.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">New cart is created.</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyB-Regular-Row1">A user logs in as Diane with Company A as her customer with a Ship To of Location 1. Diane then changes her Ship To to Location 2.</td> <td class="TableStyle-Borders-BodyA-Regular-Row1">New cart is created.</td> </tr> </tbody> </table>

To configure this functionality, the **Cart Provider** Setting needs to be updated:

  1. Go to **Admin Console** \> **Administration** \> **System** \> **Settings**.

  2. In the **Search** box, enter and then select **Cart Provider**.

  3. Select the desired option from the provided menu:

    • **ByUser** – the cart is specific to the user

    • **ByCustomer (BillTo)** – the cart is specific to the Bill To

    • **ByShipTo** – the cart is specific to the Ship To

Note

Changing this Setting to **ByCustomer** or **ByShipTo** should be done only when the **Website Access** Setting is set to anything but No Sign In Required. If not, the cart will be emptied any time a User logs into the website and selects a customer. The default value is **ByUser**, which is the most common setup.