Сторінка 25 - Блог
- 2 хв читання
Назва меню [ідентифікатор]
Dashboard [Magento_Backend::dashboard]
Sales [Magento_Sales::sales]
Operations [Magento_Sales::sales_operation]
Orders [Magento_Sales::sales_order]
Invoices [Magento_Sales::sales_invoice]
Shipments [Magento_Sales::sales_shipment]
Credit Memos [Magento_Sales::sales_creditmemo]
Billing Agreements [Magento_Paypal::paypal_billing_agreement]
Transactions [Magento_Sales::sales_transactions]
Products [Magento_Catalog::catalog]
Inventory [Magento_Catalog::inventory]
Catalog [Magento_Catalog::catalog_products]
Categories [Magento_Catalog::catalog_categories]
Customers [Magento_Customer::customer]
All Customers [Magento_Customer::customer_manage]
Now Online [Magento_Customer::customer_online]
Marketing [Magento_Backend::marketing]
Promotions [Magento_CatalogRule::promo]
Catalog Price Rule [Magento_CatalogRule::promo_catalog]
Cart Price Rules [Magento_SalesRule::promo_quote]
Communications [Magento_Backend::marketing_communications]
Email Templates [Magento_Email::template]ihor
- 1 хв читання
Файлetc/adminhtml/menu.xml використовується для керування меню адміністративної панелі Magento 2 та додавання до нього нових елементів, зокрема.
Створіть цей файл у папці , щоб додати новий елемент меню:
etc/adminhtml/menu.xml
та додайте туди наступний код:
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd"> <menu> <add id="VendorName_ModuleName::key1" title="Title 1" module="VendorName_ModuleName" parent="OtherVendorName_OtherModuleName::content" sortOrder="10" resource="VendorName_ModuleName::key1"/> <add id="VendorName_ModuleName::key2" title="Title 2" module="VendorName_ModuleName" parent="VendorName_ModuleName::key1" sortOrder="10" action="path/controllerName" resource="VendorName_ModuleName::key2"/> </menu></config>
id - унікальний ;title - текст елемента;module – визначає, до якого модуля належить елемент;parent – ідентифікатор батьківськогоihor
- 1 хв читання
У розділі ми описали, як створити власний розділ на сторінці конфігурації Magento 2 (Stores > Configuration).
Щоб встановити значення за замовчуванням для полів конфігурації, вам потрібно створити наступний файл у папці :
etc/config.xml
та додати цей код:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd"> <default> <section_id> <group_id> <field_id>default_value</field_id> </group_id> </section_id> </default></config>
Ієрархіяsection_id/group_id/field_id має відповідати структурі у файлі system.xml.
Щоб очистити кеш, виконайте команду CLI:
php bin/magento cache:clean
Перевірте результат.
У прикладах ми створюємо модуль для FAQ. Змінений код модуля можна переглянути на GitHub.
- 2 хв читання
У розділі ми пояснили, як налаштувати та розмежувати права доступу для користувачів адміністративної панелі Magento 2. У цій статті ви дізнаєтеся, як створювати власні правила доступу (Ресурси ролей).
Вам потрібно створити файл ACL (ACL - Список контролю доступу) у папці :
etc/acl.xml
додайте туди наступний код:
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd"> <acl> <resources> <resource id="Magento_Backend::admin"> <resource id="Magento_Backend::content"> <resource id="VendorName_ModuleName::key1" title="Title 1" sortOrder="10"> <resource id="VendorName_ModuleName::key2" title="Title 2" sortOrder="10" /> </resource> </resource> <resource id="Magento_Backend::stores"> <resource id="Magento_Backend::stores_settings">ihor
- 2 хв читання
Щоб знайти сторінку конфігурації Magento 2, перейдіть до Панель адміністратора Magento 2 > Магазини > Конфігурація.
Усі вкладки та форми на цій сторінці налаштовано за допомогою цього файлу
etc/adminhtml/system.xml
, який містить більшість .
Додайте наступний код до файлу system.xml у вашому модулі, щоб створити власний розділ:
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> <system> <tab id="tab_id" translate="label" sortOrder="110"> <label>My Tab</label> </tab> <section id="section_id" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> <class>separator-top</class> <label>My Section</label> <tab>tab_id</tab> <resource>VendorName_ModuleName::acl_path</resource> <group id="group_id" translate="label" type="text"ihor
- 4 хв читання
Щоб додати нову таблицю до бази даних Magento 2, потрібно створити файл у папці :
app/code/<VendorName>/<ModuleName>/Setup/InstallSchema.php
додайте до нього наступний код:
<?php
namespace VendorName\ModuleName\Setup;
use Magento\Framework\Setup\InstallSchemaInterface;use Magento\Framework\Setup\ModuleContextInterface;use Magento\Framework\Setup\SchemaSetupInterface;use Magento\Framework\DB\Adapter\AdapterInterface;
class InstallSchema implements InstallSchemaInterface{ public function install(SchemaSetupInterface $setup, ModuleContextInterface $context) { $installer = $setup; $installer->startSetup();
//new table script will be there
$installer->endSetup(); }}
InstallSchema.php — це файл, який відповідає за зміну структури бази даних під час встановлення модулів. Під час виконання команди CLI php bin/magento setup:upgrade Magento 2 перевіряє, чи з'явився новий модуль у системі та чи містить він файл InstallSchema.php. Якщо такihor
- 3 хв читання
Оскільки ви вже знаєте, як та як відображати текст "Hello World" на вашій власній сторінці, у цій статті ми покажемо вам, як відобразити його в новому блоці.
1. Додайте новий блок класу PHP.
Створіть цей файл:
app/code/<VendorName>/<ModuleName>/Block/SomeName.php
та додайте до нього наступний код:
<?php
namespace VendorName\ModuleName\Block;
class SomeName extends \Magento\Framework\View\Element\Template{ public function getWelcomeText() { return 'Hello World'; }}
де
SomeName – це випадкова назва у форматі CamelCase . \Magento\Framework\View\Element\Template – клас, від якого ви успадковуєте власний блок, що взаємодіє з шаблоном. getWelcomeText — публічний метод, який ми створили для повернення тексту "Hello World". Ви можете створити для нього назву самостійно.
2. Додайте файл шаблону (файл шаблону .phtml)
Створіть цей файл:
app/code/<VendorName>/<ModuleName>/view/frontend/templates/some-name.phtml
та додайте туди наступний код:
<h1><?php echo $block->escapeHtml($block->getWelcomeText())ihor
- 2 хв читання
Щоб відобразити "Hello World" на вашій власній сторінці в Magento 2, виконайте такі дії:
1. Зареєструйте маршрутизатор для вітрини.
Створіть цей файл:
app/code/<VendorName>/<ModuleName>/etc/frontend/routes.xml
та додайте туди наступний код:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="standard"> <route id="VendorName_ModuleName" frontName="path"> <module name="VendorName_ModuleName" /> </route> </router></config>
Ви можете використовувати ім'я розробника (VendorName), пов'язане з назвою модуля (ModuleName), як ідентифікатор маршрутизатора . frontName використовується в URL-адресі для доступу до ваших контролерів.
Обидва імені мають бути унікальними.
2. Створіть контролер.
Додайте новий файл:
app/code/<VendorName>/<ModuleName>/Controller/Index/Index.php
додайте в нього наступний код:
<?php
namespace VendorName\ModuleName\Controller\Index;ihor
- 2 хв читання
Щоб створити Basic модуль Magento 2 , вам потрібно лише 2 файли: module.xml та registration.php.
1. Спочатку створіть :
app/code/<VendorName>/<ModuleName>/
та папку, яка міститиме файли конфігурації модуля:
app/code/<VendorName>/<ModuleName>/etc/
Якщо папка app/code відсутня у вашій інсталяції Magento 2, створіть її.
2. Помістіть файл module.xml з наступним вмістом у папку app/code/ / /etc/ папка
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="VendorName_ModuleName" setup_version="2.0.0"> <sequence> <module name="Magento_Cms"/> <module name="Magento_Catalog"/> </sequence> </module></config>
послідовність не є обов'язковим елементом і призначена для визначення модулів, від яких залежить ваш модуль. Якщо залежності невідомі, їх можна вказати пізніше. setup_version — визначає поточну версію модуля.
3. Створітьihor
- 2 хв читання
Після того, як ви призначите атрибути для , кожен продукт матиме унікальний набір характеристик. Однак, коли вам потрібно це змінити, ви виявите, що Magento не пропонує жодної опції масового налаштування для цього. Вам потрібно змінювати набір атрибутів для кожного продукту, один за одним. Але не якщо у вас є .
Отже, сьогодні ви дізнаєтеся, як масово змінювати набори атрибутів для кількох продуктів лише за лічені секунди.
Щоб масово змінити набір атрибутів продукту в Magento 2:
1. Перейдіть до Каталог > Продукти та позначте всі продукти, для яких ви хочете змінити набір атрибутів, або виберіть Вибрати всі варіант.
Примітка: ви можете , а потім змінити набір атрибутів для всіх продуктів у певній категорії.
2. Виберіть Змінити набір атрибутів з випадаючого меню Дії та виберіть набір атрибутів, на який ви хочете змінити поточний.
3. Підтвердіть , що ви хочете Змінити набір атрибутів для вибраних продуктів.
4. Перевірте змінені набори атрибутів продукту.
Якщо ви бажаєте побачити, як масовоihor
- 2 хв читання
Хоча Magento дозволяє створювати кілька , немає можливості редагувати їхні значення масово. Ось чому вам знадобиться деякий час, щоб перейти з однієї сторінки товару на іншу та оновити їх. Але тепер, якщо ви знаєте, як масово редагувати атрибути товару в Magento.
Вам не потрібно оновлювати жодних файлів чи вивчати редагування коду тут і зараз. Все, що вам потрібно, це — розширення, яке дозволяє масово редагувати атрибути товару безпосередньо з сітки товарів.
Щоб масово редагувати атрибути товару в Magento 2:
1. Перейдіть до Каталог > Товари та натисніть на один із товарів, які ви хочете редагувати, щоб побачити меню редагування.
2. Позначте всі товари , атрибути яких потрібно оновити, та змініть значення атрибута у відповідному полі. Потім натисніть Застосувати.
3. Після застосування нових значень ви побачите, як вони зміняться відповідно до ваших змін. Однак, щоб їх зберегти, потрібно натиснути кнопку Зберегти зміни .
Ось як ви можете масово редагувати атрибути товару в Magento 2. Всьогоihor
- 1 хв читання
Спочатку в сітці товарів Magento 2 не було опції фільтрації товарів за категорією . Це трохи незручно, оскільки ви можете шукати конкретні товари певної категорії, коли хочете оновити їхню інформацію. Це не проблема, коли у вас тисяча , але як щодо кількох тисяч?
Відповідно, фільтр категорій сітки товарів економить багато часу, дозволяючи вам сортувати товари за категоріями за лічені секунди. У цій статті ви дізнаєтеся, як фільтрувати товари за категоріями в сітці товарів без оновлення коду.
Вам просто потрібен , який вже має цю функцію. Але фільтр категорій — не єдина функція, яку ви отримуєте з цим розширенням.
Виконайте такі кроки, щоб фільтрувати товари за категоріями в сітці товарів Magento 2:
1. Перейдіть до Каталог > Товари та натисніть кнопку Фільтри .
2. Виберіть категорію , за якою ви хочете фільтрувати товари, у фільтрі категорій та отримайте всі товари з цієї категорії, перелічені в сітці.
Отже, що тепер?
Ви відфільтрували товари за категоріями, оскільки вам потрібно змінитиihor
- 4 хв читання
Блог Magento 2 – це найкращий маркетинговий інструмент, який ви можете використовувати, щоб залучити більше клієнтів до вашого магазину, поділитися релевантною інформацією та зібрати лояльних підписників, які прагнуть дізнатися більше про досвід, про який розповідається у ваших публікаціях у блозі. Контент – це король, і було б злочином не використовувати його на повну потужність для отримання більшого трафіку.
Ведучи блог у своєму магазині Magento 2, ви створюєте спільноту підписників. Вони поділяють вашу ідею та хочуть регулярно отримувати оновлення на теми, які їх цікавлять.
Відповідно, окрім поширення ваших публікацій у блозі в соціальних мережах, вам слід розглянути можливість їх надсилання електронною поштою своїм підписникам. Маючи сотні або тисячі підписників блогу, зробити це вручну буде неможливо.
Саме тому в цій статті ви дізнаєтеся, як автоматично надсилати свої публікації електронною поштою за допомогою Mailchimp, універсальної платформи email-маркетингу.
Перш ніж почати налаштовуватиihor
- 8 хв читання
Керування бізнесом, що розвивається, іноді може бути досить складним. Однак, делегуючи обов'язки різним членам вашої команди, ви можете зробити це менш стресовим.
Ролі користувачів Magento 2 допомагають у цьому. Вони дозволяють вам надавати користувачам доступ до різних розділів вашого бекенду. Це не тільки розвантажує простір, але й дозволяє захистити адміністратора від будь-яких несанкціонованих змін та покращити .
Отже, в цьому посібнику ви дізнаєтеся, як створювати ролі користувачів Magento та як використовувати їх у своїх інтересах.
Що таке ролі користувачів Magento 2?
Ролі користувачів Magento – це дозволи на доступ до певних розділів та функцій адміністратора, обмежені певними користувачами-адміністраторами. Вони дозволяють вам визначити, які частини вашого бекенду користувач може переглядати або змінювати.
Це допомагає уникнути несанкціонованих змін, оптимізувати робочий процес і захистити конфіденційні дані. Це важливо для делегування завдань, управління командами та, звичайноihor
- 1 хв читання
Цього року Magefan пишається тим, що є серед срібних спонсорів онлайн-конференції MageCONF, яка відбудеться 24 жовтня 2020 року.
Mageconf 2020 – це обов’язкова для відвідування онлайн-конференція , яка дозволить вам зануритися у світ унікального спільного досвіду, представленого експертними агентствами Magento, постачальниками послуг та розробниками, дізнатися про останні тенденції та інновації електронної комерції.
Зареєструйтесь зараз безкоштовно. Не пропустіть!
- 1 хв читання
Якщо ви використовуєте одне з розширень Amasty, наприклад, Amasty Layered navigation, ви можете зіткнутися з проблемою непрацюючих зображень у блозі після завантаження.
Ми виявили проблему в розширеннях Amasty_Shopby , яка порушує роботу деяких інших розширень, що використовують функцію завантаження зображень, включаючи наше .
Amasty_Shopby у цьому файлі:
app/code/Amasty/Shopby/etc/adminhtml/di.xml
додає плагін до моделі Magento\Catalog\Model\ImageUploader .
Судячи з коду в наступному файлі:
app/code/Amasty/Shopby/Plugin/Catalog/Model/ImageUploaderPlugin.php
, схоже, що Amasty додав деяке виправлення для Magento 2.3.4. і проблема полягає в плагіні beforeMoveFileFromTmp.
Оригінальне оголошення Magento MoveFileFromTmp виглядає так:
public function moveFileFromTmp($imageName, $returnRelativePath = false)
і плагіну Amasty бракує другого параметра $returnRelativePath:
public function beforeMoveFileFromTmp(\Magento\Catalog\Model\ImageUploader $subject, $path)
Отже, по суті, плагін Amasty знищуєihor
- 1 хв читання
Якщо ви зіткнулися з неочікуваним перенаправленням 301 або 302 у Magento 2 і не знаєте, чому це відбувається або який код це викликає, ви можете легко виявити це, тимчасово відредагувавши такі файли:
/vendor/magento/framework/HTTP/PhpEnvironment/Response.php
/vendor/magento/framework/Controller/Result/Redirect.php
Відкрийте Response.php та додайте наступний рядок на початок функції setRedirect :
var_dump($url); \Magento\Framework\Debug::backtrace(false, true, false); exit();
Приклад:
public function setRedirect($url, $code = 302){
var_dump($url); \Magento\Framework\Debug::backtrace(false, true, false); exit(); $this->setHeader('Location', $url, true) ->setHttpResponseCode($code); return $this;}
Тепер відкрийте другий файл Redirect.php та додайте це:
var_dump($this->url); \Magento\Framework\Debug::backtrace(false, true, false); exit();
після кожного рядка, що містить:
$this->url =
Приклад:
public function setRefererUrl(){ $this->url = $this->redirect->getRefererUrl();ihor
- 2 хв читання
Вітаємо шанувальників Magento!
Оскільки Magento — наша улюблена платформа електронної комерції, і ми всі з нетерпінням чекали на випуск Magento 2.4.0, ми раді повідомити чудову новину.
Трохи передісторії
Наше розширення мало великий вплив на спільноту Magento. Це цінний внесок у будь-який магазин Magento 2. Саме тому Magento зацікавилася його додаванням до ядра Magento 2.4.0.
Отже, восени 2019 року компанія Adobe Systems Incorporated , яка володіє платформою Magento, зв'язалася з нами з пропозицією. Звісно, ми не могли відмовити, адже Magefan — фанати Magento .
. Замість того, щоб писати новий код з нуля, Magento запитали про інтеграцію, яку ми однозначно підтримали.
Таким чином, ми передали авторські права на розширення " Login as Customer " компанії Adobe . Потім, на початку 2020 року, ми працювали з командою Magento Community Engineering над інтеграцією нашого модуля в ядро Magento. Модуль вийшов з покращеннями коду та деякими новими функціями.
Що нового у Login as Customer?
Теперihor
- 3 хв читання
Хоча всі так відчайдушно намагаються піднятися на вершину SERP, слідуючи за , вони майже не звертають уваги на одну з головних речей, за допомогою яких можна покращити швидкість завантаження сторінки – оптимізацію зображень.
Якщо ви , ви помітите, що зображення займають багато часу завантаження вашого веб-сайту.
Отже, щоб отримати більше трафіку, вам потрібно подбати про багато речей, включаючи зображення.
Багато веб-сайтів використовують застарілі неоптимізовані зображення, які точно не сприяють покращенню швидкості веб-сайту, оскільки їх завантаження займає певний час. Кажуть, що якщо сторінка завантажується довше 3 секунд, більшість людей підуть.
Якщо ви дійсно хочете залучити більше клієнтів за допомогою швидкодіючого веб-сайту, вам потрібно оптимізувати свої зображення.
Ми підготували 3 найкращі поради щодо оптимізації зображень у Magento 2.
Порада 1 - Зображення WebP
Формати зображень PNG та JPG застарілі та великі за розміром. Через це вони завантажуються довше та відповідно уповільнюютьihor
- 3 хв читання
Базові команди Linux
pwd – відображає інформацію про поточне розташування у файловій системі (шлях до каталогу (папки), в якій ви знаходитесь);
dir, ls – показує список файлів і папок у поточному каталозі;
cd – (змінити поточний каталог) дозволяє перейти до іншої папки;
Приклад:
cd ../ - will move to a folder on a higher level;cd foo - will go to the child folder "foo";cd /var - will go to the "var" folder located in the root of the file system;
touch fine_name – створити новий файл з назвою "fine_name";
mkdir dir_name – створити нову папку "dir_name" у поточному каталозі;
rm file_name - видалити файл "file_name";
rm -r dir_name - видалити папку "dir_name";
cp origin_name new_name - копіювати файли та папки;
mv old_name new_name - переміщувати файли та папки;
ln -s origin_name link_name - створити символічне посилання;
Пошук за вмістом
Щоб знайти файл за вмістом , скористайтеся цією командою:
grep -rnw 'path' -e 'some text'
Використовуйте модифікатор l , щоб відобразити лише список відповіднихihor
- 3 хв читання
Модулі у файловій структурі Magento 2
Файли модулів у Magento 2 розташовані у 2 каталогах.
1. app/code/<VendorName>/<ModuleName>/
2. vendor/<vendor-name>/<module-name>/
Назва постачальника — назва компанії/особи, яка розробила модуль. У деяких випадках назва постачальника може збігатися з назвою компанії замовника. Тому перед розробкою нового модуля слід узгодити назву. У прикладах ми використовуємо нашу назву — Magefan.
Файли модулів, розроблені на замовлення, або модулі від інших компаній, встановлені через FTP, знаходяться в папці app/code .
Папка vendor містить кореневі модулі, а також модулі, встановлені за допомогою майстра веб-налаштування або Composer. Ви знайдете кореневі модулі Magento у vendor/magento .
Цікаво знати: У репозиторії Magento 2 (гілка dev) на GitHub ( https://github.com/magento/magento2 ) усі кореневі модулі знаходяться в папці app code/Magento. А всі бібліотеки PHP знаходяться в lib/internal/Magento.
Ця структура використовувалася під час розробки Magento 2ihor