. * */ namespace Vvveb\Component; use function Vvveb\siteSettings; use Vvveb\System\Cart\Cart as ShoppingCart; use Vvveb\System\Component\ComponentBase; use Vvveb\System\Event; class Cart extends ComponentBase { public static $defaultOptions = [ 'language_id' => null, 'site_id' => null, ]; public $cacheExpire = 0; //seconds function cacheKey() { //disable caching return false; } protected $options = []; function results() { $site = siteSettings($this->options['site_id'], $this->options['language_id']); $this->options += array_intersect_key($site, array_flip(['weight_type_id', 'length_type_id', 'currency_id', 'country_id'])); $cart = ShoppingCart::getInstance($this->options); $results['products'] = $cart->getAll(); $results['coupons'] = $cart->getCoupons(); $results['total_items'] = $cart->getNoProducts(); $results['totals'] = $cart->getTotals(); $results['total'] = $cart->getGrandTotal(); $results['total_formatted'] = $cart->getGrandTotalFormatted(); list($results) = Event :: trigger(__CLASS__,__FUNCTION__, $results); return $results; } }