This commit is contained in:
2026-01-23 20:42:17 -08:00
parent a033c13b8d
commit b682ec1577
3 changed files with 21 additions and 7 deletions

View File

@@ -18,17 +18,12 @@ use CakeCarts\Model\Table\CartsTable;
*/
class ShoppingCartComponent extends Component {
/**
* @var string $userIdField
*/
protected string $userIdField;
/**
* @var \CakeCarts\Model\Table\CartsTable|\Cake\ORM\Table $Carts
*/
protected CartsTable|Table $Carts;
/**
* @param array $config
* @return void
*/
public function initialize(array $config): void {
@@ -46,6 +41,7 @@ class ShoppingCartComponent extends Component {
protected array $_defaultConfig = [];
/**
* @param \Cake\Event\EventInterface $event
* @return void
*/
public function beforeFilter(EventInterface $event): void {
@@ -62,7 +58,7 @@ class ShoppingCartComponent extends Component {
/**
* @param string $cartId
*
* @return mixed
* @return \Cake\Datasource\EntityInterface|\CakeCarts\Model\Entity\Cart
*/
public function getCartForUserById(string $cartId) {
$identity = $this->getController()->getRequest()->getAttribute('identity');
@@ -81,6 +77,12 @@ class ShoppingCartComponent extends Component {
return $cartsQ->firstOrFail();
}
/**
* @param string $sessionId
* @param int|null $cartTypeId
* @return EntityInterface|\CakeCarts\Model\Entity\Cart
*/
public function findExistingCartOrCreate(string $sessionId, int|null $cartTypeId = null) {
$identity = $this->getController()->getRequest()->getAttribute('identity');
@@ -114,6 +116,9 @@ class ShoppingCartComponent extends Component {
return $cart;
}
/**
* @return string
*/
public function getUserIdField() {
return $this->userIdField;
}

View File

@@ -13,6 +13,9 @@ enum CartTypeId: int implements EnumLabelInterface
case Wishlist = 2;
case CustomList = 3;
/**
* @return string
*/
public function label(): string {
return match ($this) {
static::Cart => 'Cart',

View File

@@ -84,6 +84,12 @@ class CartItemsTable extends Table {
return $validator;
}
/**
* Requires Pricing validation rules.
*
* @param \Cake\Validation\Validator $validator Validator instance.
* @return \Cake\Validation\Validator
*/
public function validationRequiresPricing(Validator $validator): Validator {
$validator = $this->validationDefault($validator);