A Shopping Cart Abstraction
- Setup initial state
$event = Event::init($data)
- Create Cart
$cart = new Cart('[email protected]', $event)
- Create Registration Form
$registration = new Registration($cart->getParticipants());
- Add ticket to cart
$cart->addTicket($event->getCategoryById(1), 1);
- Get participants
$cart->getParticipants();
- Get order details
$tickets = $cart->tickets()
$subTotal = $cart->subTotal()
$total = $cart->total()
- Add product to cart
$cart->addProduct($product)
- Remove product from cart
$cart->removeProduct($productId, $productVariantId)
- Get product details
$cart->getProducts()
$cart->countProducts()
$cart->productsSubtotal()
- Coupon
The cart can only use one coupon, but a coupon can be used for multiple tickets
$cart->getCoupon()
$cart->setCoupon(Coupon $coupon)
$cart->applyCoupon()
$cart->cancelCoupon()
$cart->getDiscount()
$cart->usedCouponQuantity()
- Get currency
$cart->currency()
- Render a form
$registration->renderParticipant($trackId);
- Fill a form
$registration->fillParticipant($trackId, $data);
- Get errors of a participant form
$registration->getErrors($trackId);
- Redirect to next page
$registration->redirectTo();