diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000000000000000000000000000000000000..9362f1986f017c5b905a96884fde138726d2eeaf --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="PublishConfigData" remoteFilesAllowedToDisappearOnAutoupload="false"> + <serverData> + <paths name="Local or mounted folder"> + <serverdata> + <mappings> + <mapping local="$PROJECT_DIR$" web="/" /> + </mappings> + </serverdata> + </paths> + </serverData> + </component> +</project> \ No newline at end of file diff --git a/.idea/magento-uafrica-shipping-extension.iml b/.idea/magento-uafrica-shipping-extension.iml new file mode 100644 index 0000000000000000000000000000000000000000..c956989b29ad0767edc6cf3a202545927c3d1e76 --- /dev/null +++ b/.idea/magento-uafrica-shipping-extension.iml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="WEB_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..3ce358829caa98cea142c0d523e95c04df039a10 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="MarkdownSettingsMigration"> + <option name="stateVersion" value="1" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..4966609571ba2b0a31e495dcc6401b37abfe57d1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/magento-uafrica-shipping-extension.iml" filepath="$PROJECT_DIR$/.idea/magento-uafrica-shipping-extension.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/uafrica/Customshipping/Block/System/Config/Form/Field/Version.php b/uafrica/Customshipping/Block/System/Config/Form/Field/Version.php new file mode 100644 index 0000000000000000000000000000000000000000..469ffe1026a318d35fe1594ee5d530beb0be3a37 --- /dev/null +++ b/uafrica/Customshipping/Block/System/Config/Form/Field/Version.php @@ -0,0 +1,52 @@ +<?php +namespace uafrica\Customshipping\Block\System\Config\Form\Field; + +use Magento\Framework\Data\Form\Element\AbstractElement; + +/** + * @category BobGroup + * @package uafrica_customshipping + * @author info@bob.co.za + * @website https://www.bob.co.za + */ +class Version extends \Magento\Config\Block\System\Config\Form\Field +{ + const EXTENSION_URL = 'https://www.bob.co.za'; + + /** + * @var \uafrica\Customshipping\Helper\Data $helper + */ + protected $_helper; + + /** + * @param \Magento\Backend\Block\Template\Context $context + * @param \uafrica\Customshipping\Helper\Data $helper + */ + public function __construct( + \Magento\Backend\Block\Template\Context $context, + \uafrica\Customshipping\Helper\Data $helper + ) { + $this->_helper = $helper; + parent::__construct($context); + } + + + /** + * @param AbstractElement $element + * @return string + */ + protected function _getElementHtml(AbstractElement $element) + { + $extensionVersion = $this->_helper->getExtensionVersion(); + $extensionTitle = 'BobGo'; + $versionLabel = sprintf( + '<a href="%s" title="%s" target="_blank">%s</a>', + self::EXTENSION_URL, + $extensionTitle, + $extensionVersion + ); + $element->setValue($versionLabel); + + return $element->getValue(); + } +} diff --git a/uafrica/Customshipping/Helper/Data.php b/uafrica/Customshipping/Helper/Data.php new file mode 100644 index 0000000000000000000000000000000000000000..60754bd7a6836388e257dddf957a217031f0c0e5 --- /dev/null +++ b/uafrica/Customshipping/Helper/Data.php @@ -0,0 +1,83 @@ +<?php +namespace uafrica\Customshipping\Helper; + +/** + * @category uafrica + * @package uafrica_customshipping + * @author uafrica + * @website https://www.bob.co.za + */ +class Data extends \Magento\Framework\App\Helper\AbstractHelper +{ + + const XML_PATH_ENABLED = 'uafrica_customshipping/general/enabled'; + const XML_PATH_DEBUG = 'uafrica_customshipping/general/debug'; + + /** + * @var \Psr\Log\LoggerInterface + */ + protected $_logger; + + /** + * @var \Magento\Framework\Module\ModuleListInterface + */ + protected $_moduleList; + + /** + * @param \Magento\Framework\App\Helper\Context $context + * @param \Magento\Framework\Module\ModuleListInterface $moduleList + */ + public function __construct( + \Magento\Framework\App\Helper\Context $context, + \Magento\Framework\Module\ModuleListInterface $moduleList + ) { + $this->_logger = $context->getLogger(); + $this->_moduleList = $moduleList; + + parent::__construct($context); + } + + /** + * Check if enabled + * + * @return string|null + */ + public function isEnabled() + { + return $this->scopeConfig->getValue( + self::XML_PATH_ENABLED, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ); + } + + public function getDebugStatus() + { + return $this->scopeConfig->getValue( + self::XML_PATH_DEBUG, + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ); + } + + public function getExtensionVersion() + { + $moduleCode = 'uafrica_Customshipping'; + $moduleInfo = $this->_moduleList->getOne($moduleCode); + return $moduleInfo['setup_version']; + } + + /** + * + * @param $message + * @param bool|false $useSeparator + */ + public function log($message, $useSeparator = false) + { + if ($this->getDebugStatus()) { + if ($useSeparator) { + $this->_logger->addDebug(str_repeat('=', 100)); + } + + $this->_logger->addDebug($message); + } + } +} diff --git a/uafrica/Customshipping/Model/Carrier/Customshipping.php b/uafrica/Customshipping/Model/Carrier/Customshipping.php new file mode 100644 index 0000000000000000000000000000000000000000..f6eea26866ae84e3cdcf87c0addfbe59fef6a84d --- /dev/null +++ b/uafrica/Customshipping/Model/Carrier/Customshipping.php @@ -0,0 +1,127 @@ +<?php + +namespace uafrica\Customshipping\Model\Carrier; + +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\DataObject; +use Magento\Shipping\Model\Carrier\AbstractCarrier; +use Magento\Shipping\Model\Carrier\CarrierInterface; +use Magento\Shipping\Model\Config; +use Magento\Shipping\Model\Rate\ResultFactory; +use Magento\Store\Model\ScopeInterface; +use Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory; +use Magento\Quote\Model\Quote\Address\RateResult\Method; +use Magento\Quote\Model\Quote\Address\RateResult\MethodFactory; +use Magento\Quote\Model\Quote\Address\RateRequest; +use Psr\Log\LoggerInterface; + +/** + * @category uafrica + * @package uafrica_Customshipping + * @author info@bob.co.za + * @website https://www.bob.co.za + */ +class Customshipping extends AbstractCarrier implements CarrierInterface +{ + /** + * Carrier's code + * + * @var string + */ + protected $_code = 'uafrica'; + + /** + * Whether this carrier has fixed rates calculation + * + * @var bool + */ + protected $_isFixed = true; + + /** + * @var ResultFactory + */ + protected $_rateResultFactory; + + /** + * @var MethodFactory + */ + protected $_rateMethodFactory; + + /** + * @param ScopeConfigInterface $scopeConfig + * @param ErrorFactory $rateErrorFactory + * @param LoggerInterface $logger + * @param ResultFactory $rateResultFactory + * @param MethodFactory $rateMethodFactory + * @param array $data + */ + public function __construct( + ScopeConfigInterface $scopeConfig, + ErrorFactory $rateErrorFactory, + LoggerInterface $logger, + ResultFactory $rateResultFactory, + MethodFactory $rateMethodFactory, + array $data = [] + ) { + $this->_rateResultFactory = $rateResultFactory; + $this->_rateMethodFactory = $rateMethodFactory; + parent::__construct($scopeConfig, $rateErrorFactory, $logger, $data); + } + + /** + * Generates list of allowed carrier`s shipping methods + * Displays on cart price rules page + * + * @return array + * @api + */ + public function getAllowedMethods() + { + return [$this->getCarrierCode() => __($this->getConfigData('name'))]; + } + + /** + * Collect and get rates for storefront + * + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * @param RateRequest $request + * @return DataObject|bool|null + * @api + */ + public function collectRates(RateRequest $request) + { + /** + * Make sure that Shipping method is enabled + */ + if (!$this->isActive()) { + return false; + } + + /** @var \Magento\Shipping\Model\Rate\Result $result */ + $result = $this->_rateResultFactory->create(); + + $shippingPrice = $this->getConfigData('price'); + + $method = $this->_rateMethodFactory->create(); + + /** + * Set carrier's method data + */ + $method->setCarrier($this->getCarrierCode()); + $method->setCarrierTitle($this->getConfigData('title')); + + /** + * Displayed as shipping method under Carrier + */ + $method->setMethod($this->getCarrierCode()); + $method->setMethodTitle($this->getConfigData('name')); + + $method->setPrice($shippingPrice); + $method->setCost($shippingPrice); + + $result->append($method); + + return $result; + } + +} diff --git a/uafrica/Customshipping/Readme.md b/uafrica/Customshipping/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..7d894ccb566462edf3b57b1202cb1549ad0542ae --- /dev/null +++ b/uafrica/Customshipping/Readme.md @@ -0,0 +1,62 @@ +<!--- Document The Magento Bobgo shipping plugin with Read Me Styling, Installation and everything---> + +# Magento 2 Bobgo Shipping Extension + +## Introduction + +Magento 2 Bobgo Shipping Extension is a Magento 2 extension that allows you to integrate your Magento 2 store with Bobgo shipping service. This extension allows you to get real-time shipping rates from Bobgo shipping service and display them to your customers during checkout. This extension also allows you to print shipping labels and track shipments. + +## How to install Magento 2 Bobgo Shipping Extension + +### ✓ Install via composer (recommend) + +Run the following command in Magento 2 root folder:</br> +<Note: You must have composer installed on your server & at this point this option does not work> + +``` +composer require uafrica/bobgo +php bin/magento setup:upgrade +php bin/magento setup:static-content:deploy +``` + +### ✓ Install via zip file + +1. Download the extension +2. Unzip the file +3. Create a folder {Magento root}/app/code/uafrica/Customshipping +4. Copy the content from the unzip folder +5. Go to Magento root folder and run upgrade command line to install `uafrica_Customshipping`: + +``` +php bin/magento setup:upgrade +php bin/magento setup:static-content:deploy +``` + +## How to configure Magento 2 Bobgo Shipping Extension + +### ✓ Step 1: Create an account on Bobgo + +You need to create an account on Bobgo to get API key and API secret<Not Sure About This At This Point> . Please visit [Bobgo](https://bobgo.co.za) to create an account. + +### ✓ Step 2: Login to Magento Admin + +Login to Magento Admin and go to `Stores > Configuration > Sales > Delivery Methods` + + +### ✓ Step 3: Configure Bobgo Shipping Extension + +1. Select `Bobgo` as shipping method +2. Enter API key and API secret +3. Select `Enable` to enable the extension +4. Select `Enable Test Mode` to enable test mode +5. Select `Enable Debug Mode` to enable debug mode +6. Click `Save Config` +7. Flush cache (System > Cache Management) and reindex (System > Index Management) +8. Clear generated files(`rm -rf var/generation/*`) +9. Reindex data (`php bin/magento indexer:reindex`) +10. Deploy static content (`php bin/magento setup:static-content:deploy`) +11. Run `php bin/magento cache:clean` +12. Run `php bin/magento cache:flush` +13. Run `php bin/magento setup:upgrade` +14. Run `php bin/magento setup:di:compile` +15. Run `php bin/magento setup:static-content:deploy` diff --git a/uafrica/Customshipping/composer.json b/uafrica/Customshipping/composer.json new file mode 100644 index 0000000000000000000000000000000000000000..b900607992c43bc0c84bc13d8bb9594d8105fcd1 --- /dev/null +++ b/uafrica/Customshipping/composer.json @@ -0,0 +1,27 @@ +{ + "name": "uafrica/bobgo", + "description": "Streamline your shipments and order fulfilments with bobgo", + "type": "magento2-module", + "version": "1.0.0", + "authors": [ + { + "name": "Gundo Sifhufhi", + "email": "gundo@bob.co.za", + "homepage": "https://www.bob.co.za" + } + ], + "license": [ + " Apache-2.0" + ], + "require": { + "php": "~5.5.0|~5.6.0|~7.0.0|~7.1.0" + }, + "autoload": { + "files": [ + "registration.php" + ], + "psr-4": { + "uafrica\\Customshipping\\": "" + } + } +} diff --git a/uafrica/Customshipping/etc/adminhtml/system.xml b/uafrica/Customshipping/etc/adminhtml/system.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f4f38d0abea2d5b83c92e1565d00be872d88b57 --- /dev/null +++ b/uafrica/Customshipping/etc/adminhtml/system.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<!-- +/** + * @category Uafrica + * @package Uafrica_Customshipping + * @author Uafrica + */ +--> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> + <system> + + <tab id="uafrica" translate="label" sortOrder="200"> + <label>uafrica</label> + </tab> + <section id="uafrica_customshipping" showInDefault="1"> + <tab>uafrica</tab> + <label>bobGo</label> + <resource>Magento_Config::config</resource> + <group id="general" showInDefault="1"> + <label>General Settings</label> + <field id="version" translate="label" type="label" sortOrder="1" showInDefault="1" showInWebsite="0" showInStore="0"> + <label>Version</label> + <frontend_model>uafrica\Customshipping\Block\System\Config\Form\Field\Version</frontend_model> + </field> + <!--<field id="enabled" translate="label" type="select" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Enabled</label> + <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> + </field>--> + <field id="debug" translate="label" type="select" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Debug Mode</label> + <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> + </field> + + </group> + </section> + <section id="carriers" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> + <group id="uafrica" translate="label" type="text" sortOrder="2" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>bobGo</label> + <field id="version" translate="label" type="label" sortOrder="0" showInDefault="1" showInWebsite="0" showInStore="0"> + <label>Version</label> + <frontend_model>uafrica\Customshipping\Block\System\Config\Form\Field\Version</frontend_model> + </field> +<!-- <field id="active" translate="label" type="select" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="0">--> +<!-- <label>Enabled</label>--> +<!-- <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>--> +<!-- </field>--> + <field id="title" translate="label" type="text" sortOrder="2" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Title</label> + </field> + <field id="name" translate="label" type="text" sortOrder="3" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Method Name</label> + </field> + <field id="price" translate="label" type="text" sortOrder="4" showInDefault="1" showInWebsite="1" showInStore="0"> + <label>Shipping Cost</label> + <validate>validate-number validate-zero-or-greater</validate> + </field> + <field id="specificerrmsg" translate="label" type="textarea" sortOrder="80" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Displayed Error Message</label> + </field> + <field id="sallowspecific" translate="label" type="select" sortOrder="90" showInDefault="1" showInWebsite="1" showInStore="0"> + <label>Ship to Applicable Countries</label> + <frontend_class>shipping-applicable-country</frontend_class> + <source_model>Magento\Shipping\Model\Config\Source\Allspecificcountries</source_model> + </field> + <field id="specificcountry" translate="label" type="multiselect" sortOrder="91" showInDefault="1" showInWebsite="1" showInStore="0"> + <label>Ship to Specific Countries</label> + <source_model>Magento\Directory\Model\Config\Source\Country</source_model> + <can_be_empty>1</can_be_empty> + </field> + <field id="showmethod" translate="label" type="select" sortOrder="92" showInDefault="1" showInWebsite="1" showInStore="0"> + <label>Show Method if Not Applicable</label> + <frontend_class>shipping-skip-hide</frontend_class> + <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> + </field> + <field id="sort_order" translate="label" type="text" sortOrder="100" showInDefault="1" showInWebsite="1" showInStore="0"> + <label>Sort Order</label> + </field> + </group> + </section> + + + </system> +</config> diff --git a/uafrica/Customshipping/etc/config.xml b/uafrica/Customshipping/etc/config.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0128631672de6b9479a731981e743b443047f9e --- /dev/null +++ b/uafrica/Customshipping/etc/config.xml @@ -0,0 +1,30 @@ +<?xml version="1.0"?> +<!-- +/** + * @category Uafrica + * @package Uafrica_Customshipping + * @author Uafrica + */ +--> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> + <default> + <uafrica_customshipping> + <general> + <debug>0</debug> + </general> + </uafrica_customshipping> + + <carriers> + <uafrica> + <active>0</active> + <sallowspecific>0</sallowspecific> + <price>0</price> + <model>uafrica\Customshipping\Model\Carrier\Customshipping</model> + <name>Fixed</name> + <title>bobGo</title> + <specificerrmsg>This shipping method is not available. To use this shipping method, please contact us.</specificerrmsg> + </uafrica> + </carriers> + + </default> +</config> diff --git a/uafrica/Customshipping/etc/module.xml b/uafrica/Customshipping/etc/module.xml new file mode 100644 index 0000000000000000000000000000000000000000..d580cd3b909a81799b5ec990da15cf0b34935e03 --- /dev/null +++ b/uafrica/Customshipping/etc/module.xml @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<!-- +/** + * @category Uafrica + * @package Uafrica_Customshipping + * @author Uafrica + */ +--> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> + <module name="uafrica_Customshipping" setup_version="1.0.0"> + </module> +</config> diff --git a/uafrica/Customshipping/i18n/en_US.csv b/uafrica/Customshipping/i18n/en_US.csv new file mode 100644 index 0000000000000000000000000000000000000000..09ef6059efe59917e951137999e4054f9a615699 --- /dev/null +++ b/uafrica/Customshipping/i18n/en_US.csv @@ -0,0 +1 @@ +"Enabled","Enabled" \ No newline at end of file diff --git a/uafrica/Customshipping/registration.php b/uafrica/Customshipping/registration.php new file mode 100644 index 0000000000000000000000000000000000000000..3874a8c7c571621285294fb2e7411bbc0c4b18d7 --- /dev/null +++ b/uafrica/Customshipping/registration.php @@ -0,0 +1,6 @@ +<?php +\Magento\Framework\Component\ComponentRegistrar::register( + \Magento\Framework\Component\ComponentRegistrar::MODULE, + 'uafrica_Customshipping', + __DIR__ +); diff --git a/uafrica/Customshipping/view/frontend/layout/checkout_cart_index.xml b/uafrica/Customshipping/view/frontend/layout/checkout_cart_index.xml new file mode 100644 index 0000000000000000000000000000000000000000..2c08acb3437459f52f010a28450a53ab6d43dd21 --- /dev/null +++ b/uafrica/Customshipping/view/frontend/layout/checkout_cart_index.xml @@ -0,0 +1,24 @@ +<?xml version="1.0"?> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> + <body> + <referenceBlock name="checkout.cart.shipping"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="components" xsi:type="array"> + <item name="summary-block-config" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="shipping-rates-validation" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="uafrica-rates-validation" xsi:type="array"> + <item name="component" xsi:type="string">uafrica_Customshipping/js/view/shipping-rates-validation</item> + </item> + </item> + </item> + </item> + </item> + </item> + </argument> + </arguments> + </referenceBlock> + </body> +</page> diff --git a/uafrica/Customshipping/view/frontend/layout/checkout_index_index.xml b/uafrica/Customshipping/view/frontend/layout/checkout_index_index.xml new file mode 100644 index 0000000000000000000000000000000000000000..3d41b4eac5eb388c255204ad196ae32b769ec5f5 --- /dev/null +++ b/uafrica/Customshipping/view/frontend/layout/checkout_index_index.xml @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> + <body> + <referenceBlock name="checkout.root"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="components" xsi:type="array"> + <item name="checkout" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="steps" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="shipping-step" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="step-config" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="shipping-rates-validation" xsi:type="array"> + <item name="children" xsi:type="array"> + <item name="uafrica-rates-validation" xsi:type="array"> + <item name="component" xsi:type="string">uafrica_Customshipping/js/view/shipping-rates-validation</item> + </item> + </item> + </item> + </item> + </item> + </item> + </item> + </item> + </item> + </item> + </item> + </item> + </argument> + </arguments> + </referenceBlock> + </body> +</page>