/home/sharedstore/public_html/prestashop.sharedstore.ma/src/Adapter/Cart
Edit: /home/sharedstore/public_html/prestashop.sharedstore.ma/src/Adapter/Cart/AbstractCartHandler.php (2853B)
* @copyright Since 2007 PrestaShop SA and Contributors
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
*/
namespace PrestaShop\PrestaShop\Adapter\Cart;
use Cart;
use Currency;
use Customer;
use PrestaShop\PrestaShop\Adapter\ContextStateManager;
use PrestaShop\PrestaShop\Adapter\Validate;
use PrestaShop\PrestaShop\Core\Domain\Cart\Exception\CartException;
use PrestaShop\PrestaShop\Core\Domain\Cart\Exception\CartNotFoundException;
use PrestaShop\PrestaShop\Core\Domain\Cart\ValueObject\CartId;
use PrestaShopException;
use Shop;
/**
* Provides reusable methods for cart handlers
*
* @internal
*/
abstract class AbstractCartHandler
{
/**
* @param CartId $cartId
*
* @return Cart
*
* @throws CartNotFoundException
*/
protected function getCart(CartId $cartId)
{
try {
$cart = new Cart($cartId->getValue());
} catch (PrestaShopException $e) {
throw new CartException(sprintf('An error occurred when trying to load cart with id "%s', $cartId->getValue()));
}
if (!Validate::isLoadedObject($cart) || $cartId->getValue() !== (int) $cart->id) {
throw new CartNotFoundException(sprintf('Cart with id "%s" was not found', $cartId->getValue()));
}
return $cart;
}
/**
* @param ContextStateManager $contextStateManager
* @param Cart $cart
*/
protected function setCartContext(ContextStateManager $contextStateManager, Cart $cart): void
{
$contextStateManager
->saveCurrentContext()
->setCart($cart)
->setCustomer(new Customer($cart->id_customer))
->setCurrency(new Currency($cart->id_currency))
->setLanguage($cart->getAssociatedLanguage())
->setCountry($cart->getTaxCountry())
->setShop(new Shop($cart->id_shop))
;
}
}