1 - Infos About StoreGet Current store Id :inject \Magento\Store\Model\StoreManagerInterface $storeManage$this->storeManager = $storeManager;and get the id with :$id = $this->storeManager->getStore()->getId();get base Url :$baseUrl = $this->storeManager->getStore()->getBaseUrl();you can inject \Magento\Framework\UrlInterface and use use constants of class as parameters (UrlInterface::URL_TYPE_LINK) :const URL_TYPE_LINK = 'link';const URL_TYPE_DIRECT_LINK = 'direct_link';const URL_TYPE_WEB = 'web';const URL_TYPE_MEDIA = 'media';const URL_TYPE_STATIC = 'static';const URL_TYPE_JS = 'js';get base currency code or (getBaseCurrency() , getDefaultCurrencyCode(), getDefaultCurrency()):$baseCurrency = $this->storeManager->getStore()->getBaseCurrencyCode();get current currency code or (getCurrentCurrency(), getAvailableCurrencyCodes(),getAllowedCurrencies()) :$currentCurrency = $this->storeManager->getStore()->getCurrentCurrencyCode();Retrieve base media directory path :$baseMediaDir = $this->storeManager->getStore()->getBaseMediaDir();Retrieve base static directory path :$baseStaticDir = $this->storeManager->getStore()->getBaseStaticDir();For other function like website_id , group_id, code name or secure test got to class Magento\Store\Model\Store and explore …2 – Cart Datainject Magento\Checkout\Model\Cart $cart$this->cart = $cart;get total number items:$cartCount = $this->cart->getItemsCount();
get quote data :$cartQuote= $this->cart->getQuote()->getData();print_r($cartQuote);you cant get [base_currency_code] [store_currency_code] [quote_currency_code] [grand_total] or [base_grand_total] and many others see all details inside print_recho $cartQuote['base_grand_total'];- iterate items of cart from session :inject Magento\Checkout\Model\Session $session$this->session = $session;foreach ($this->session->getQuote()->getAllItems() as $item) {echo $item->getName();}-clear quote$this->session ->clearQuote();3 - Catalog:inject \Magento\Framework\Registry $registry$this->registry = $registry;get current category :$category = $this->registry->registry('current_category');get cuurent category id:$cid = $this->registry->registry('current_category')->getId();get current category level:$level = $this->registry->registry('current_category')->getLevel();-get current product :$pid =$this->registry->registry('current_product');retrieve crosssell products from current product:$products = [];foreach ($this->registry->registry('current_product')->getCrossSellProducts() as $product) {$products[$product->getId()] = ['position' => $product->getPosition()];}print_r($products);retrieve related products from current product:$products = [];foreach ($this->registry->registry('current_product')->getRelatedProducts() as $product) {$products[$product->getId()] = ['position' => $product->getPosition()];}print_r($products);retrieve upsell products from current product:$products = [];foreach ($this->registry->registry('current_product')->getUpSellProducts() as $product) {$products[$product->getId()] = ['position' => $product->getPosition()];}print_r($products);test if current product is registered:if ($this->registry->registry('current_product')) {$product = $this->registry->registry('current_product');} else {throw new \LogicException('Product is not defined');}4 - CMSinject \Magento\Framework\Registry $registry$this->registry = $registry;-get current cms page :$page = $this->registry->registry('cms_page');get id of current cms page:$cmsId = $this->registry->registry('cms_page')->getId();test if cms page exist in table :if ($this->registry->registry('cms_page')->getId()) {return $this->registry>registry('cms_page')->getTitle();} else {return __('New Page');}5 - Viewinside any block that extend \Magento\Framework\View\Element\Template you can use ://getting assets elements url from your extension in current theme$loader = $this->getViewFileUrl("ibnab_lazy::images/loader.svg");//or getting from assets of current theme :$js = $this->getViewFileUrl("js/my.js");
Comments
Post a Comment