Feature: Adding Checkout Services and Events
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\Checkout\Events;
|
||||
|
||||
use Lunar\DataTypes\ShippingOption;
|
||||
use Lunar\Models\Cart;
|
||||
|
||||
/**
|
||||
* Dispatched by CheckoutService::selectShippingOption() — carries the fully
|
||||
* resolved ShippingOption (name, price, carrier identifier), not just the
|
||||
* string identifier the caller passed in. Deliberate divergence from
|
||||
* CartService's events, which carry a plain Cart/CartLine model reference —
|
||||
* a live-priced carrier quote (see docs/checkout.md's note on
|
||||
* ShippingManifest::getOptions() already being backed by the merged
|
||||
* Shipping-Carriers ACS/Box Now live-rate drivers) is meaningfully more
|
||||
* expensive for a listener to re-derive later than a CartLine reference is.
|
||||
*/
|
||||
class ShippingOptionSelected
|
||||
{
|
||||
public function __construct(
|
||||
public readonly Cart $cart,
|
||||
public readonly ShippingOption $option,
|
||||
) {}
|
||||
}
|
||||
Reference in New Issue
Block a user