Cart flow

Picture this: A user visits your Sylius shop and exclaims, “Someone’s been using my cart! It’s full of items I didn’t add!” Let’s avoid this surprise by exploring how Sylius handles cart functionality.

In Sylius, the cart represents an order in progress that hasn’t been placed yet.

circle-info

Each visitor in Sylius has a cart. The cart can be cleared in three ways, by: - placing an order - removing items manually - using a cart-clearing command

The cart flow varies depending on whether the user is logged in and what’s already in the cart.

First scenario:

Given there is a not logged in user
And this user adds a blue T-Shirt to the cart
And there is a customer identified by email "[email protected]"
And the "[email protected]" customer has a previously created cart with a red Cap in it
When the not logged in user logs in using "[email protected]" email
Then the cart created by a not logged in user should be dropped
And the cart previously created by the user identified by "[email protected]" should be set as the current one
And the "[email protected]" customer's cart should have a red Cap in it

Second scenario:

Given there is a not logged in user
And this user adds a blue T-Shirt to the cart
And there is a customer identified by email "[email protected]" with an empty cart
When the not logged in user logs in using "[email protected]" email
Then the cart created by a not logged in user should not be dropped
And the "[email protected]" customer's cart should have a blue T-Shirt in it

Third scenario:

circle-info

The cart mentioned in the third scenario will be available once the customer logs in again.

Last updated

Was this helpful?