/** * Loads basket service * * @return void */ private function loadBasket() { // For brevity $mm = $this->moduleManager; $webPageManager = $mm->getModule('Cms')->getService('webPageManager'); $pageManager = $mm->getModule('Pages')->getService('pageManager'); $shop = $mm->getModule('Shop'); // Grab basket manager and load data from a storage $basketManager = $shop->getService('basketManager'); $config = $shop->getService('configManager')->getEntity(); $basketWebPageId = $pageManager->fetchWebPageIdById($config->getBasketPageId()); $basketUrl = $webPageManager->getUrlByWebPageId($basketWebPageId); // Now tweak basket's entity $basket = new BasketEntity(); $basket->setUrl($basketUrl); $basket->setTotalPrice($basketManager->getTotalPrice()); $basket->setTotalQty($basketManager->getTotalQuantity()); $basket->setCurrency($config->getCurrency()); $basket->setEnabled($config->getBasketEnabled()); // Finally add $basket entity and append a script which handles a basket $this->view->addVariable('basket', $basket)->getPluginBag()->appendScript('@Shop/site.module.js'); }