Сторінка 24 - Блог
- 2 хв читання
Команда Magefan вітає вас!
Ні для кого не секрет, що Закон України «Про забезпечення функціонування української мови як державної» почав діяти ще у липні 2019 року, проте впроваджується він поступово. Щороку буде починати діяти наступна норма закону. Для прикладу, 16 січня 2021 року вступила в силу норма про обслуговування споживачів державною мовою, та про подання інформації для загального ознайомлення (оголошення, вивіски, вказівники тощо), що повинно здійснюватись державною мовою.
Впродовж наступних трьох років поступово будуть введені в дію наступні норми, зокрема і норма, що стосується державної мови у віртуальному світі. Вона почне діяти 16 липня 2022 року.
Що це означає?
Відповідно до Статті 27. пункту 6 цього закону - “Інтернет-представництва (в тому числі веб-сайти, веб-сторінки в соціальних мережах) органів державної влади, органів місцевого самоврядування, підприємств, установ і організацій державної і комунальної форм власності, засобів масової інформації, зареєстрованих в Україніihor
- 1 хв читання
Іноді вам потрібно запустити код Magento 2 зовні, у таких випадках:
Інтеграція Magento 2 з іншими фреймворками або платформами, встановленими на тому ж веб-сервері,
швидке тестове виконання деякого методу, наприклад, завдання cron.
Наприклад, створіть файл test.php у кореневому каталозі Magento 2 та додайте до нього наступний код:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
use Magento\Framework\App\Bootstrap;require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$obj = $bootstrap->getObjectManager();
$state = $obj->get(Magento\Framework\App\State::class);$state->setAreaCode('adminhtml');
$object = $obj->create(\VendorName\ModuleName\Folder\Class::class);$object->someMethod();
VendorName\ModuleName\Folder\Class - назва класу, який ви хочете виконати;someMethod - назва методу, який ви хочете виконати;Увага!Переконайтеся, що__DIR__. '/app/bootstrap.php – це правильний шлях до файлу Magento 2 app/bootstrap.php.
Ви можете запустити test.php у веббраузеріihor
- 3 хв читання
У Magento 2 ви можете створювати плагіни (перехоплювачі), які дозволяють розширювати функціональність та виконувати власний код до, після або навколо будь-якого публічного методу PHP-класу.
Наприклад, є PHP-клас із публічними функціями "setName", "getName", "save":
<?phpnamespace VendorName\ModuleName\Folder;class SomeModel{ private $name; public function setName($name, $storeId = 0) { $this->name[0] = $name; } public function getName($storeId = 0) { return $this->name[$storeId]; } public function save($fields, $customData) { /* some save logic here */ }}
Як створити плагін у Magento 2?
1. Створіть файл etc/di.xml у папці та додайте туди наступний код:
<?xml version="1.0"?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="VendorName\ModuleName\Folder\SomeModel"> <plugin name="mycompany_mymodule_plugin_modulename_Folder_somemodel" type="MyCompany\MyModule\Plugin\ModuleName\Folder\SomeModelPlugin"ihor
- 2 хв читання
Продукти, що завантажуються в Magento 2, не мають фізичної форми та практично не потребують управління. Вам не потрібно займатися виробництвом, публікацією, доставкою чи доставки тощо. І саме це робить продукти, що завантажуються, такими популярними.
У Magento 2, окрім створення продукту для завантаження, потрібно налаштувати загальні Варіанти продуктів для завантаження.
Ці кроки для налаштування опцій завантажуваних продуктів у Magento 2:
Перейти до Магазини > Конфігурація > Каталог > Каталог і знайти Варіанти продуктів для завантаження розділ.
Виберіть Стан замовлення для активації завантажень який визначає, чи потрібно виконувати замовлення Виставлено рахунок або Очікує на розгляд щоб клієнт міг завантажити продукт.
Встановіть Максимальна кількість завантажень за замовчуванням доступно для 1 клієнта після придбання продукту, який можна завантажити.
Виберіть, чи хочете ви, щоб завантажуваний продукт був Можна поділитися, це означає, що клієнти отримають посилання для завантаження електронноюihor
- 2 хв читання
Одним з першочергових завдань будь-якого власника магазину є зробити досвід покупок максимально різноманітним та просунутим. У цьому можуть допомогти налаштування Magento 2. Вони допомагають вам надати вашим клієнтам можливість вибирати варіанти товарів відповідно до їхніх потреб, не покладаючись на їх атрибути.
Такий функціонал дозволяє вам класифікувати товари, створювати ціни в кошику та . Таким чином, ви можете налаштувати його і для власного магазину. І саме це ви сьогодні дізнаєтесь.
Як налаштувати власні параметри Magento 2?
1. Перейдіть до Каталог > Продукти і виберіть продукт, для якого ви хочете налаштувати параметри налаштування, або Додати новий продукт якщо потрібно.
Примітка: Ви не можете налаштувати власні параметри Magento для простих продуктів, які вже входять до .
2. Прокрутіть униз до Налаштовувані параметри розділ і натисніть кнопку Додати опцію кнопка.
Вкажіть Назва опції і Тип.
Позначте, якщо ви хочете, щоб ця опція була Обов'язково.
Примітка: як тільки ви перевіритеihor
- 3 хв читання
У розділі ви дізналися, як створювати нові таблиці в базі даних Magento 2. У цьому розділі ви дізнаєтеся більше про моделі, що використовуються для роботи з базою даних Magento 2, що дозволяє читати, редагувати та видаляти дані.
Magento 2 та Magento 1 використовують ORM Model/ResourceModel/Collection ( Об'єктно-реляційне відображення ) для цих цілей. Щоб реалізувати цю концепцію, вам потрібно створити 3 файли (model, resource model, collection).
1. Створіть файл моделі:
app/code/VendorName/ModuleName/Model/Somemodel.php
додайте до нього наступний код:
<?php
namespace VendorName\ModuleName\Model;
class Somemodel extends \Magento\Framework\Model\AbstractModel{ protected function _construct() { $this->_init('VendorName\ModuleName\Model\ResourceModel\Somemodel'); }}
Конструкція _ініціалізує модель ресурсу. Передайте назву класу моделі ресурсу (створіть його на наступному кроці) методу _init . Найчастіше ви будете працювати з
Model . Цей клас має бути успадкований відihor
- 1 хв читання
Під час розробки інтернет-магазину на базі Magento 2 ви можете зіткнутися з проблемою розширення стандартної функціональності Magento 2 або .
Редагування основних файлів або модулів Magento заборонено, оскільки ці зміни будуть перезаписані під час .
Отже, як внести зміни до файлу шаблону фронтенду (інтерфейсу), css, js?
УВАГА! Наступні інструкції не можна використовувати для перевизначення файлів макета.
Перевизначте файли view-файлів модулів у папці app/code.
Припустимо, вам потрібно змінити цей файл:
app/code/Magefan/Blog/view/frontend/templates/post/view.phtml
Зробіть його копію в папці теми за таким шляхом:
app/design/frontend/ThemeVendor/themename/Magefan_Blog/templates/post/view.phtml
Внесіть необхідні зміни до щойно створеного файлу теми.
Якщо вашої власної теми немає у вашій інсталяції Magento, створіть нову тему.
Перевизначте файли перегляду модулів у папці vendor.
Припустимо, вам потрібно змінити цей файл:
vendor/magefan/module-blog/view/frontend/web/css/blog-custom.css
Зробітьihor
- 1 хв читання
Якщо у вашому Magento 2 виникає помилка «Елемент з кореневим ідентифікатором вже існує», найімовірніше, це пов’язано зі стороннім розширенням, яке викликає методи для повторного рендерингу сторінки.
Щоб виправити помилку «Елемент з кореневим ідентифікатором вже існує»:
1. Знайдіть PHP-файл і рядок, який викидає виняток.
2. Відкрийте CLI (термінал), перейдіть до кореневого каталогу Magento та виконайте такі команди, щоб знайти потрібний файл:
grep vendor/ -re ' ID already exists'grep app/ -re ' ID already exists'
В результаті ви отримаєте результат, подібний до цього:
vendor/magento/framework/Data/Form.php: 'An element with a "' . $elementId . '" ID already exists.'vendor/magento/framework/Data/Test/Unit/FormTest.php: $this->expectExceptionMessage('An element with a "1" ID already exists.');vendor/magento/framework/Data/Structure.php: new \Magento\Framework\Phrase('An element with a "%1" ID already exists.', [$elementId])
3. Потім відкрийте кожен файл (крім *Test.php) та додайте та завершітьihor
- 1 хв читання
Якщо ви хочете змінити тип з випадаючого списку на текстовий у Magento 2, все, що вам потрібно зробити, це виконати такі SQL-запити (будь ласка, зробіть резервну копію бази даних перед виконанням):
1. Цей запит змінить налаштування атрибута та перетворить його на текстовий атрибут.
UPDATE eav_attribute SET backend_type = "varchar", frontend_input = "text", source_model = ""WHERE attribute_code = "MY_ATTRIBUTE_CODE";
2. Цей запит скопіює дані атрибута випадаючого списку до таблиці значень атрибута тексту та замінить ідентифікатори опцій їхніми фактичними мітками (текст).
INSERT INTO catalog_product_entity_varchar SELECT null as value_id, pei.attribute_id, pei.store_id, pei.entity_id, aov.value as value FROM catalog_product_entity_int pei LEFT JOIN eav_attribute_option ao ON pei.attribute_id = ao.attribute_id LEFT JOIN eav_attribute_option_value aov ON ao.option_id = aov.option_id WHERE pei.value IS NOT NULL AND pei.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_codeihor
- 2 хв читання
Іноді під час вам потрібно отримати інформацію про магазин програмно. Вам може знадобитися отримати поточний ідентифікатор магазину, код магазину, назву, ідентифікатор веб-сайту або .
Щоб отримати ці дані, використовуйте екземпляр singleton наступного класу:
\Magento\Store\Model\StoreManagerInterface
Наприклад, ви можете включити його до конструктора класу, а потім викликати:
<?phpnamespace \MyCompany\ExampleModule\Model;class Example{ private $storeManager;
public function __construct(
...
\Magento\Store\Model\StoreManagerInterface $storeManager,
...
) { ...
$this->storeManager = $storeManager;
...
}
/** * Examples */ public function execute() { /* Get Current Store ID */ $storeId = $this->storeManager->getStore()->getId(); /* Get Current Store Code */ $storeCode = $this->storeManager->getStore()->getCode(); /* Get Current Store Name */ $storeName = $this->storeManager->getStore()->getName();ihor
- 1 хв читання
Отримати URL-адресу у файлах шаблонів .phtml
1. Отримати URL-адресу головної сторінки магазину (http://domain.com/):
<?= $this->getUrl() ?>
2. Отримати URL-адресу деякої сторінки, наприклад, "Зв'яжіться з нами" (http://domain.com/contacts/):
<?= $this->getUrl('contacts') ?>
3. Отримати URL-адресу статичного файлу теми, наприклад:
app/design/frontend/ThemeVendor/theme_name/web/css/custom.cssapp/design/frontend/ThemeVendor/theme_name/Magefan_Blog/web/js/lazyload.jsapp/code/Magefan_Blog/view/frontend/web/js/lazyload.jsvendor/magefan/module-blog/view/frontend/web/js/lazyload.js
використовуйте наступний код:
<?= $this->getViewFileUrl('css/custom.css') ?><?= $this->getViewFileUrl('Magefan_Blog::js/lazyload.js') ?>
4. Отримати URL-адресу статичного файлу в pub/media:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();$mediaUrl = $objectManager->get(Magento\Store\Model\StoreManagerInterface::class) ->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
<?=ihor
- 2 хв читання
Вітаємо шанувальників Magento!
Привіт! Минуло чимало часу з тих пір, як ми востаннє ділилися оновленнями Magefan . Ви готові до січневої збірки новин?
Тоді почнемо!
Ми хотіли б почати з нового модуля, який нещодавно вийшов. З розширенням ви можете забути про непрацюючий веб-сайт та підвищений показник відмов під час розгортання.
Вам не потрібно втрачати прибуток або вибирати найнезручніший час для запуску команд розгортання, коли ви можете зробити це безпечно за допомогою цього модуля.
— розширення, яке допомагає вам збільшити швидкість завантаження вашого веб-сайту та підвищити продуктивність — тепер ще корисніше. Ми покращили парсинг фону стилів HTML-тегів та сумісність модулів з темами MGS. Крім того, ми виправили таку помилку:
TypeError: strtolower() expects parameter 1 to be string, null given in app/code/Magefan/WebP/Plugin/Magento/Framework/View/Element/AbstractBlock.php:69 .
Ми закликаємо тих, хто ще не оновився до версії 2.1.1, зробити це негайно, щоб уникнутиihor
- 2 хв читання
Одним з найунікальніших варіантів, які пропонує вам Magento 2, є віртуальний продукт. Але що таке віртуальний продукт у Magento і чим він такий особливий?
Він виділяється тим, що ви не можете ні відчути його на дотик, ні встановити вагу, ні завантажити віртуальний продукт у Magento 2. Деякі поширені приклади цього типу продукту - це членство, послуги, підписки та гарантії.
Їх можна продавати окремо або як частину або . Розділ конфігурації містить знайомі поля, які ви можете легко заповнити. Сьогодні ви дізнаєтеся, як це зробити детальніше.
Що таке віртуальний продукт у Magento 2?
Віртуальний продукт Magento 2 є нематеріальним і не має фізичного представлення. Таким чином, його не можна ні відправити, ні доставити. Єдиним свідченням того, що клієнт придбав такий продукт, є підтвердження електронною поштою.
Деякі з найпопулярніших прикладів віртуальних продуктів – це підписки, гарантії, членства тощо. Ви можете продавати віртуальні продукти окремо або як частину інших типів продуктів.
Якihor
- 3 хв читання
Популярність продуктів, які можна завантажити, різко зросла як у світі, так і зокрема в Magento. Однак це не дивно. Такі продукти, як електронні книги, музика, відео, , оновлення чи інструкції з експлуатації, активно продаються. Вони не потребують додаткового виробництва чи доставки, що є перевагою.
Разом з іншими , платформа дозволяє створювати продукти для завантаження з безкоштовними зразками. Процес не сильно відрізняється від процесу створення простого продукту. Однак, перед створенням продукту для завантаження потрібно налаштувати .
Але давайте розберемося з усім цим. Продовжуйте читати, щоб дізнатися, як створити продукт, який можна завантажити, в Magento 2.
Що таке продукт, який можна завантажити з Magento?
Продукт Magento, що завантажується, – це цифровий тип продукту Magento, який клієнти можуть завантажити з вашого магазину. Як згадувалося вище, електронні книги, посібники та додатки є найкращими прикладами цього типу продукту.
Під час створення продуктів для завантаження у васihor
- 1 хв читання
Якщо ви використовуєте деякі модулі Geo IP (наприклад, наші розширення Magento 2 та ) та у вас встановлено Varnish, тоді вам потрібно зробити деякі додаткові налаштування для нього.
Найпростіше налаштування – додати такі рядки до конфігураційного файлу varnish:
if (req.http.cookie !~ "PHPSESSID=" && req.http.User-Agent !~ "bot" && req.http.User-Agent !~ "loader") { return (pass); }
У цьому випадку перший візит клієнта не буде кешований varnish, php Magento згенерує відповідні файли cookie, переключиться на правильний вигляд магазину та змінить валюту.
Однак недоліком цього підходу є те, що вигляд магазину буде відображатися без кешу varnish під час першого відвідування. Якщо ви хочете уникнути цього, ви можете налаштувати кеш Varnish так, щоб він мав різні кеші для різних країн
. Для цього вам потрібно налаштувати Geo IP за допомогою Varnish. Перейдіть за цим посиланням для отримання покрокових інструкцій.
- 4 хв читання
Одна з багатьох переваг Magento 2 — це різноманітність продуктів, які він дозволяє створювати. Проте, пакетні продукти Magento 2 безумовно виділяються. Це унікальний варіант, оскільки він дозволяє клієнтам налаштовувати атрибути продуктів, доступних у пакеті.
Багато хто з вас знайде величезну схожість між пакетом та , і вона все ж таки є. Однак ці два типи продуктів все ж мають деякі відмінності, про які вам слід знати.
Якщо всі ці концепції вас трохи бентежать, ви потрапили на потрібну сторінку. Сьогодні ви не лише дізнаєтеся більше деталей про пакетні продукти Magento, але й дізнаєтеся, як їх створювати в Magento 2.
Різниця між пакетним продуктом Magento 2 та згрупованими продуктами
Купуючи згруповані товари, клієнт може видалити або додати деякі елементи до набору (групи), але не вибрати жодного варіанта товару. Комплектні товари Magento 2 працюють навпаки. Крім того, вони складаються з простих та .
Наприклад, якщо у вас є згрупований товар, що складається зі спортивної сумки, формиihor
- 2 хв читання
Нікому не подобається бачити, як його вебсайт не працює під час , оскільки це відлякує потенційних клієнтів і змушує їх покидати сайт. Не зовсім те, що шукають потенційні успішні власники магазинів Magento 2.
На щастя, існує розширення , яке виправляє це та зводить час простою до нуля. Воно дозволяє виконувати команди розгортання без пошкодження вебсайту. До речі, ось список команд розгортання, які потрібно виконати , щоб скоротити час простою до НУЛЯ .. Щоб повністю повторно розгорнути Magento, потрібно виконати
bin/magento magefan:zero-downtime:deploy
. Якщо ви хочете лише розгорнути ін'єкцію залежностей ( bin/magento setup:di:compile ), використовуйте
bin/magento magefan:zero-downtime:deploy -d
. Щоб запустити статичний контент Magento ( bin/magento setup:static-content:deploy ), використовуйте
bin/magento magefan:zero-downtime:deploy -s
. Якщо ви хочете запустити скрипт з кількома параметрами, використовуйте таку команду
bin/magento magefan:zero-downtime:deploy -d -s
. Якщо ви хочетеihor
- 2 хв читання
– це розширення, яке вирішує ваші проблеми зі сторінками обслуговування 503 під час розгортання. Воно запобігає збоям у роботі вашого веб-сайту та втраті потенційних клієнтів, навіть під час виконання команд . Крім того, налаштування дуже просте. Тож перейдемо до справи.
Конфігурація розгортання без простою має 4 різні розділи: Загальне, Файли та папки екземплярів, Композитор і Гіт в межах яких ви можете знайти різні варіанти.
Наступні кроки для налаштування модуль Magento 2 Zero Downtime Deployment :
Загальне
1. Перейдіть до Магазини > Конфігурація > Розширення Magefan > Розгортання без простоїв.
2. Увімкнути розширення.
3. Виберіть Розгортання статичного контенту варіант. Ви можете Розгортати лише ввімкнені теми або Розгорнути всі теми.
4. Визначте, скільки завдань ви хочете обробляти паралельно під час розгортання в Кількість завдань для паралельної обробки розгортання статичного контенту поле.
5. Виберіть, чи Увімкнути всі кеші після розгортання оскільки іноді деякі з них можна вимкнутиihor
- 2 хв читання
Згрупований продукт Magento 2 – один із багатьох , які пропонує платформа. Як ви, можливо, знаєте, вона пропонує набір різних пов’язаних простих продуктів, щоб збільшити шанси клієнтів на придбання більшої кількості товарів.
У цьому випадку кожен можна придбати окремо або групою. Однак кожен товар відображається як окремий продукт у кошику для покупок.
Оскільки згруповані продукти Magento відносно легко створити, ви дізнаєтесь усі необхідні кроки з цього посібника.
Щоб створити згруповані продукти Magento:
1. Перейдіть до Каталог > Продукти та виберіть Згрупований продукт з випадаючого списку Додати продукти .
2. Увімкніть згрупований продукт та виберіть для нього набір атрибутів .
3. Введіть Назва продукту, вкажіть Артикул та встановіть його Стан запасу.
Примітка: ви не можете встановити Ціну та Кількість , оскільки вони встановлюються окремо для кожного продукту групи.
4. Виберіть категорію згрупованого товару Magento.
5. Встановіть значення Видимість згрупованого товару.
6. Введіть діапазонihor
- 7 хв читання
Конфігурований продукт – це один із багатьох , які пропонує платформа. Він називається конфігурованим продуктом Magento, оскільки дозволяє клієнтам «конфігурувати», вибирати різні параметри, такі як розмір, колір або матеріал, для придбання продукту.
Це дає людям більше гнучкості під час покупок. Не дивно, що це найпопулярніший тип продукту в Magento, вам точно потрібно знати, як ним користуватися.
Отже, в цьому посібнику ви дізнаєтеся більше про товари, які можна налаштувати, як вони працюють і як їх налаштувати у вашому магазині.
Прості та налаштовувані продукти: у чому різниця?
Люди часто плутають прості продукти Magento з налаштовуваними. Саме тому, перш ніж ми перейдемо до створення налаштовуваних продуктів, нам слід це прояснити.
Хоча на перший погляд вони виглядають схожими, прості та налаштовувані продукти відіграють різні ролі. Крім того, вони по-різному впливають як на взаємодію з клієнтами, так і на управління серверною частиною.
А простий продукт у Magento 2 є базовим типомihor
- 3 хв читання
Прості продукти Magento 2 – це найбазовіші та найважливіші продукти Magento. Простий продукт не має варіацій. Він продається окремо, оскільки має один SKU. Однак його також можна придбати як частину , або .
Наступні кроки для створення простого продукту в Magento 2:
1. Перейдіть до Каталог > Продукти і вибрати Простий продукт з Додати продукт випадаючий список.
2. Увімкнути або вимкнути простий продукт.
3. Виберіть Набір атрибутів ви хочете, щоб цей продукт мав. Magento надає набір атрибутів за замовчуванням. Однак ви можете вибрати з різних інших опцій. Крім того, ви можете додати або .
4. Встановіть Продукт Ім'я і Артикул.
5. Встановіть виріб Ціна.
Бувають випадки, такі як розпродажі, акції чи будь-які інші види пропозицій, коли вам потрібно встановити Розширене ціноутворення для продукту.
наприклад, ви можете використовувати його для або для налаштування правил каталожних цін
Набір Спеціальна ціна, ціна, яку клієнт побачить під час розпродажів або за інших умов.
Оберіть спеціальну цінуihor