Magento — это современная облачная платформа электронной коммерции с открытым исходным кодом. Он написан на PHP, и существует как бесплатная, так и платная версия его платформы. Редакция Community предлагается бесплатно, а платная версия предназначена для предприятий с расширенными возможностями облачной интеграции. Magento обладает некоторыми неотразимыми возможностями для бизнеса электронной коммерции по созданию и развитию уникального интернет-магазина с нуля. Первая стабильная версия Magento была выпущена в 2008 году. В мае 2018 года Adobe приобрела Magento за 1,68 млрд долларов. Текущая стабильная версия — Magento 2.3.0. Установить и настроить Magento 2.3.0 в Ubuntu IВ этом руководстве мы представим вам пошаговое руководство по установке и настройке Magento 2.3.0 в Ubuntu 18.04. Прежде чем перейти к этапам, давайте разберемся с необходимыми условиями. Требования к технологии стека Magento 2.3.x Операционные системы (Linux x86-64): дистрибутивы Linux, такие как дистрибутивы на основе Debian или дистрибутивы на основе Redhat Требования к памяти: Magento рекомендует минимум 2 ГБ ОЗУ… Читать далее »
Установка Magento 2 на Ubuntu Начинаем новый коммерческий проект, Казахстанский интернет магазин строительных товаров. Знаю, знаю их уже много. Но погодите нас хоронить заранее, во первых у нас большой опыт по привлечению органического трафика, во вторых у нас будет фишка, о которой расскажу немного позже. Магазин будет работать в режиме Multistore, то есть мы будем давать возможность размещать товар третьим лицам под своим брендом. CMS-ок под эти нужды в принципе хватает, но после сбора информации, было принято решение использовать Magento 2 Open Source. Возможно TCO (совокупная стоимость владения) в будущем нам будет выходить в копеечку, так как продукт на платной поддержке достаточно дорогой. Но зато он бесплатный на старте и это сейчас более важно, нам нужно сначала пощупать рынок и уже потом будет ясно на сколько мы оказались правы. начинаем настраивать окружение Если почитать официальную документацию, так там так все просто, чуть ли не в два клика ставится. Но на практике… Читать далее »
Шаг 1: Создать файл InstallData.php Мы начнем с класса InstallData, который находится в app /code/you_module/HelloWorld/Setup/InstallData.php. Содержание этого файла: <?php namespaceyou_module\HelloWorld\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } } Шаг 2:Определите метод install() <?php public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { } Шаг 3: Создать пользовательский атрибут Вот все строки кода InstallSchema.php для программного создания атрибута продукта. <?php namespace you_module\HelloWorld\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { $eavSetup = $this->eavSetupFactory->create([‘setup’ => $setup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Product::ENTITY, ‘sample_attribute’, [ ‘type’ => ‘text’, ‘backend’ => », ‘frontend’ => », ‘label’ => ‘Sample Atrribute’, ‘input’ => ‘text’, ‘class’ => », ‘source’ => », ‘global’ => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_GLOBAL, ‘visible’ => true, ‘required’ =>… Читать далее »
В случае, если у вас возникли проблемы с созданием нового администратора через командную строку в Magento 2, этот пост поможет вам. Я столкнулся с проблемой в моей среде разработки при попытке получить доступ к админ-панели Magento 2. Очевидно, что с количеством систем и веб-сайтов, которые мы используем ежедневно, и количеством паролей, которые мы должны иметь, легко забыть один 🙂 или несколько из них. К счастью, в Magento 2 CLI есть специальная команда для создания пользователей с правами администратора. Очень удобно иметь команду для этой цели, поэтому вам не нужно искать по всему интернету, как обновить пароль в Magento 2, поскольку мы привыкли делать это с Magento 1. Команда создания пользователя Admin Команда admin: user: create используется для создания нового администратора с помощью командной строки. Эта команда будет работать, если у вас установлена ванильная версия Magento 2 без каких-либо производственных изменений в authorization_roletable. Командные аргументы были следующими, согласно рекомендации Алекса Палиаруша:… Читать далее »
Первым делом создаем шаблон отправки письма, для этого объявляем наш шаблон app/code/Custom/Module/etc/email_templates.xml <?xml version=»1.0″?> <config xmlns:xsi=»https://www.w3.org/2001/XMLSchema-instance» xsi:noNamespaceSchemaLocation=»urn:Magento:module:Magento_Email:etc/email_templates.xsd»> <template id=»feedback_email_template» label=»New feedback email» file=»email_feedback.html» type=»html» module=»Custom_Module» area=»frontend»/> </config> Создадим наш шаблон по данному пути: app/code/Custom/Module/etc/email_templates.xml <!—@subject Обратная связь с сайта @—> <div> Обратная связь от: {{var name}} <br> Номер заказа: {{var number_order}} <br> E-mail: {{var email}} <br> Телефон: {{var phone}} <br> Сообщение: {{var message}} </div> Создаем helper из которого будет отправляться само письмо: app/code/Custom/Module/Helper/Email.php <?php namespace Custom\Module\Helper; use Magento\Framework\App\Helper\Context; use Magento\Framework\Translate\Inline\StateInterface; use Magento\Framework\Escaper; use Magento\Framework\Mail\Template\TransportBuilder; class Email extends \Magento\Framework\App\Helper\AbstractHelper { /** * @var StateInterface */ protected $inlineTranslation; /** * @var Escaper */ protected $escaper; /** * @var TransportBuilder */ protected $transportBuilder; /** * @var \Psr\Log\LoggerInterface */ protected $logger; /** * @var */ protected $_scopeConfig; public function __construct( Context $context, StateInterface $inlineTranslation, Escaper $escaper, TransportBuilder $transportBuilder, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig ) { parent::__construct($context); $this->inlineTranslation = $inlineTranslation; $this->escaper = $escaper; $this->transportBuilder = $transportBuilder; $this->logger =… Читать далее »
Учебное пособие по созданию методов доставки Magento 2 содержит множество шагов с фрагментами кода, позволяющими с легкостью установить дополнительные способы доставки в магазинах Magento 2. Почему команда Mageplaza предоставляет это руководство сегодня, когда есть некоторые способы доставки? Конечно, Magento 2 — это богатая платформа электронной коммерции, которая также поддерживает несколько способов доставки в процессе оформления заказа. Однако их недостаточно, чтобы вам было удобно. Для того, чтобы быть соразмерным с вашим развитием в будущем, настройка методов доставки очень важна. Поэтому Magento 2 Create Shipping Method создан для того, чтобы все было проще. С простым объяснением, можно следовать шаг за шагом и завершить создание новых методов доставки. Все сгенерированные способы доставки хранятся в админ панели Magento. Перейдите в Магазины> Настройки> Конфигурация> Продажа> Способы доставки, чтобы найти и включить его в витрине магазина. Но подождите, откройте файл /Model/Carries/Generatedshippingmethod.php, в котором вы можете установить конкретную стоимость доставки для каждого метода доставки. А именно, чтобы… Читать далее »
Для атрибута множественного выбора, вы можете добавить: Исходная модель: [VendorName] \ [ModuleName] \ Model \ Category \ Attribute \ Source \ Custom.php Внутренняя модель [VendorName] \ [ModuleName] \ Model \ Category \ Attribute \ Backend \ Custom.php input_renderer для html-области администратора [VendorName] \ [ModuleName] \ Block \ Adminhtml \ Category \ Helper \ Custom \ Options.php Install file[app/code/[VendorName]/[ModuleName]/Setup/InstallData.php] : <?php namespace [VendorName]\[ModuleName]\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { private $eavSetupFactory; /** * Init * * @param EavSetupFactory $eavSetupFactory */ public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } /** * {@inheritdoc} * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { /** @var EavSetup $eavSetup */ $eavSetup = $this->eavSetupFactory->create([‘setup’ => $setup]); /** * Add attributes to the eav/attribute */ $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, ‘multi_custom_attribute’, [ ‘type’ => ‘text’, ‘label’ => ‘Custom Attribute Description’, ‘input’ => ‘multiselect’, ‘required’ => false, ‘source’ => ‘[VendorName]\[ModuleName]\Model\Category\Attribute\Source\Custom’, ‘backend’… Читать далее »
Добавить атрибут изображения в категорию в Magento 2 Здесь рассмотрим, как добавить пользовательский атрибут изображения в категорию. Шаг 1 Создайте файл InstallData.php в папке vendor \ Module \ Setup <?php namespace Vendor\Module\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface; /** * @codeCoverageIgnore */ class InstallData implements InstallDataInterface { /** * EAV setup factory. * * @var EavSetupFactory */ private $_eavSetupFactory; protected $categorySetupFactory; /** * Init. * * @param EavSetupFactory $eavSetupFactory */ public function __construct(EavSetupFactory $eavSetupFactory, \Magento\Catalog\Setup\CategorySetupFactory $categorySetupFactory) { $this->_eavSetupFactory = $eavSetupFactory; $this->categorySetupFactory = $categorySetupFactory; } /** * {@inheritdoc} * * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function install( ModuleDataSetupInterface $setup, ModuleContextInterface $context ) { /** @var EavSetup $eavSetup */ $eavSetup = $this->_eavSetupFactory->create([‘setup’ => $setup]); $setup = $this->categorySetupFactory->create([‘setup’ => $setup]); $setup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, ‘custom_image’, [ ‘type’ => ‘varchar’, ‘label’ => ‘Custom Image’, ‘input’ => ‘image’, ‘backend’ => ‘Magento\Catalog\Model\Category\Attribute\Backend\Image’, ‘required’ => false, ‘sort_order’ => 9, ‘global’ => \Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface::SCOPE_STORE, ‘group’ => ‘General… Читать далее »
Как программно добавить атрибут категории в Magento 2 Создать файл InstallData.php Мы начнем с класса InstallData, который находится в app / code / Mageplaza / HelloWorld / Setup / InstallData.php. Содержание для этого файла: <?php namespace Mageplaza\HelloWorld\Setup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } } Определите метод install () <?php public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { } Создайте атрибут категории программно <?php namespace Mageplaza\HelloWorld\Setup; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; use Magento\Eav\Setup\EavSetupFactory; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } public function install( ModuleDataSetupInterface $setup, ModuleContextInterface $context ) { $eavSetup = $this->eavSetupFactory->create([‘setup’ => $setup]); $eavSetup->addAttribute( \Magento\Catalog\Model\Category::ENTITY, ‘mp_new_attribute’, [ ‘type’ => ‘varchar’, ‘label’ => ‘Mageplaza Attribute’, ‘input’ => ‘text’, ‘sort_order’ => 100, ‘source’ => », ‘global’ => 1, ‘visible’ => true, ‘required’ => false, ‘user_defined’… Читать далее »
Magento 1 и Magento 2 сеттеры и геттеры Для получения и внесения данных в сессию или атрибуты объектов в Magento используются конструкции get и set. Для этого мы программно устанавливаем некоторые значения для объектов и получаем их. В начале рассмотрим пример с сессиями. Сессия — это временный объект, который создается на сервере для каждого пользователя магазина Magento для хранения некоторых значений (например, товаров в корзине). Если вы хотите сохранить данные, которые нужно передать с одной страницы на другую для одного и того же пользователя, вам нужно сохранить их в сеансе. Для начала рассмотрим подробный пример на Magento 1. $inputMessage = ‘Hello World’; Mage::getSingleton(‘core/session’)->setWelcomeMessage($inputMessage); $outputMessage = Mage::getSingleton(‘core/session’)->getWelcomeMessage(); echo $this->__($outputMessage); Все достаточно просто, данный код на Magento 1 можно вынести в Helper или использовать его в конкретном шаблоне если не требуется его повторения по всему проекту. Вторым примером рассмотрим использование сессии в Magento 2. class MyTestSession { protected $session; public function __construct( \Magento\Framework\Session\SessionManagerInterface $session, … ){ $this->session = $session; … } public function setValue($value){… Читать далее »