Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Пример модуля для Magento 2

PHPРазработка под e-commerce


Данная статья устарела. Вот новая.



На неделе пощупал пример создания модуля для Magento 2. В ходе прощупывания пытался сформировать рабочее окружение по аналогии с выработавшимся у нас на данный момент окружением для разработки модулей под Magento 1.

  • размещение кода модуля в репозитории Github'а;
  • подключение модуля к Magento-приложению при помощи Composer'а;
  • автоматизация процесса развертывания девелоперской/тестовой версии Magento;

Под катом ссылка на github-проект с примером модуля под Magento 2 с (полу)автоматическим развертыванием среды для его разработки.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Просмотры22K
Комментарии 9

Вышел Magento 2.0 Release Candidate

Разработка веб-сайтовPHPРазработка под e-commerce
Magento 2.0 release candidate

5 ноября 2015 года после долгих месяцев разработки первый релиз кандидат Magento 2 опубликован на GitHub и ждёт как критики, так и активного соучастия в разработке от своего сообщества.
Под катом подробности из официального changelog
Всего голосов 22: ↑17 и ↓5+12
Просмотры17K
Комментарии 18

Пример модуля для Magento 2 другимъ манеромъ

Разработка под e-commerce
Осенью прошлого года, когда вышла Magento 2.0, я написал статью "Пример модуля для Magento 2", в которой обрисовал один из возможных вариантов формирования окружения для разработки модуля под вторую версию Magento. Совсем недавно вышли обновления (v 2.0.1 и v 2.0.2), судя по которым разработчики Magento уходят от схемы развертывания с использованием Magento Composer Installer (при помощи которого разворачивается Magento 1 и разворачивалась в моем предыдущем примере Magento 2.0.0), По крайней мере, простое изменение версии Magento c 2.0.0 на 2.0.1 приводило к тому, что то, что разворачивалось, работать как Magento-приложение совершенно не хотело.

Под катом — новый пример развертывания окружения, адаптированный под изменившиеся условия.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Просмотры8.9K
Комментарии 6

DI плагины в Magento 2

PHPРазработка под e-commerce
В Magento 2 вместо rewrite'ов, использовавшихся в первой версии, появились плагины, которые позволяют переопределить поведение большинства методов, перехватив поток выполнения тремя способами:

  • before
  • after
  • around

Подробнее про плагины можно узнать в документации, а под катом — просто пример использования.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Просмотры12K
Комментарии 4

Magento 2: cookies, registry, session

Разработка под e-commerce
Tutorial

Иногда при обработке запросов в web-приложениях возникает необходимость в кратковременном сохранении промежуточной информации. Для записи информации в браузер клиента используется механизм cookies, для сохранения данных в пределах одного запроса — реестр, для сохранения данных между запросами — сессии. Под катом — примеры для Magento 2.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Просмотры7.3K
Комментарии 4

Magento 2: добавление колонки к гриду админки

Разработка под e-commerce
Tutorial

Под катом пример добавления в гриде админки Magento 2 дополнительной колонки с данными из таблицы, связанной с основной таблицей грида, и "грязный хак" для работы фильтра по дополнительной колонке. Допускаю, что это не вполне "Magento 2 way", но это как-то работает, а потому — имеет право на существование.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Просмотры9K
Комментарии 14

Автоматическое изменение типов продуктов в Magento 2

Разработка под e-commerceMagento
Tutorial
Иногда по тем или иным причинам контент менеджерам необходимо конвертировать тот или иной продукт из Simple в Virtual или наоборот, сменить ему атрибут сет и так далее… Чаще всего это ложится на плечи разработчиков. И тут я хотел бы описать 1 новую и очень интересную особенность Magento 2, которая никак не описана в официальной документации.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Просмотры4.9K
Комментарии 0

Magento 2: Создание грида в adminhtml

Разработка под e-commerce
Tutorial

Краткая памятка по созданию гридов в админке Magento 2. В качестве примера я взял простой грид из трех колонок, данные для которого (коды стран по ISO 3166) поставляются из прописанного в коде массива. Для того, чтобы сфокусироваться на основных аспектах построения грида я отбросил из дескриптора UI-компонента максимум возможного (дополнительные кнопки, фильтры, сортировка, bookmarks, ...) и часть настроек перенес в конструктор провайдера данных для грида. Если можно сделать еще короче без потери читабельности — с максимальным удовлетворением внесу соответствующие правки (UPD: спасибо коллеге Oxidant за контроллер). Код примера на github'е.



Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Просмотры12K
Комментарии 9

Magento 2. Le Roi est mort! Vive le Roi?

Разработка под e-commerceMagento

Впервые с Magento (тогда еще "единичкой") я столкнулся лет, эдак, 6 назад. С тех пор так с ней и работаю, с большей или меньшей плотностью. Изначально пост хотел назвать "Quo vadis, Magento?", но, как оказалось, этим популярным вопросом сообщество задавалось уже не раз — и когда Magento приобреталась ebay'ем, и когда продавалась, и все то время, пока делалась "двоечка", да и поныне этот вопрос остается актуальным (раз уж даже у меня возникло желание использовать такое название). Поэтому пост называется так, как он называется.


image


Под катом же я попытался сформулировать свое собственное (сиречь — субъективное) вИдение перспектив этой платформы — полное брюзжания и уныния. Без подробных выкладок. Без детальных размышлений. Без доказательств. И главное —

... без надежды
Всего голосов 11: ↑9 и ↓2+7
Просмотры6.8K
Комментарии 14

Как создать тему для Magento 2 с нуля

PHPРазработка под e-commerceMagento


Здравствуйте, уважаемые хабрапользователи! В этой публикации хочу описать процесс создания темы для Magento 2 с нуля. Magento 2 имеет достаточно большое количество нововведений и улучшений по сравнению с первой версией. По большей части они относятся к клиентской части.

Вот некоторые из них:

  1. Полная поддержка HTML5 и CSS3;
  2. Встроенный препроцессор LESS;
  3. Асинхронная загрузка модулей с помощью RequireJS (без ручного добавления скриптов в cекцию head);
  4. jQuery/jQuery UI вместо библиотеки Prototype;
  5. Magento UI библиотека (набор компонентов для простого и гибкого рендеринга пользовательского интерфейса).

Самое интересное – под катом!
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Просмотры28K
Комментарии 2

Magento 2. Ui Grid

Разработка под e-commerceMagento
Tutorial
Абсолютно все пользователи Magento 2 обратили внимание на обновленный интерфейс админ панели. В этой статье я хотел бы рассмотреть новый интерфейс Grid страниц и главное, как можно создать свою собственную Grid страницу с подробным описанием.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Просмотры30K
Комментарии 0

Magento 2: ObjectManager и Proxy-классы

Разработка под e-commerceMagento
Tutorial

Процесс создания объектов в Magento 2 включает в себя некоторые особенности, присущие именно Magento 2 и связанные с автоматической генерацией кода при определенных условиях (proxies, factories и interceptors). С interceptor'ами для меня было все более-менее понятно, а вот назначение двух других типов генерируемых классов было скрыто туманом непонимания. И если относительно фабрик у меня туман пока еще остается, то вот относительно прокси-классов — туман развеялся.

Для чего нам этот тюнинг в зоопарке
Всего голосов 10: ↑10 и ↓0+10
Просмотры5.5K
Комментарии 1

Swagger в Magento 2

Разработка под e-commerce

Тенденция перехода от сборки HTML-страниц на стороне сервера к их сборке на стороне клиента уже даже не тенденция, а тренд. Magento 2, шагая в ногу со временем в меру своих возможностей, также пытается быть в тренде, разнося обработку данных и их представление. Как простому разработчику заглянуть в "чистые" данные, если их представление вынесено достаточно далеко? Есть множество других хороших решений (начиная c tcpdump), и есть swagger.


image


Swagger достаточно хорошо интегрирован в Magento 2 (если только вам в голову не пришла дурацкая затея изменить код для "default" витрины). Все, что нужно для того, чтобы начать разглядывать "чистые" данные в Magento 2 с точки зрения удаленного приложения — использовать интегрированный в нее Swagger. В данном материале я не рассматриваю особенности использования самого Swagger'а, а просто привожу пример того, как использовать Swagger, интегрированный в Magneto 2, в режиме анонимного пользователя и в режиме аутентифицированного пользователя.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Просмотры7.7K
Комментарии 0

Отчет и материалы конференции MageConf 2016

Конференции
image
10 Декабря 2016 года в Киеве прошла конференция MageConf 2016. Тематика конференции — весь стек технологий, используемых в Magento. Конференция прошла в 2 потока: Backend и Frontend.

Под катом вы сможете найти видео всех докладов презентованных на конференции:
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Просмотры4.5K
Комментарии 2

Magento BarCamp — новый сезон докладов. Март 2017

Конференции
image

Баркемп (англ. BarCamp) — международная сеть конференций, которая создаётся её участниками. Конференции открыты для всех, проходят в формате докладов, тренингов, презентаций, обсуждений. Весь материал предоставляется самими участниками. © — Wiki

Подобные мероприятия в Magento проходят на регулярной основе. И в последующем также будут освещаться здесь.
Вашему вниманию представляются видео докладов с мартовского ивента.


Больше под хабракатом
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Просмотры2.3K
Комментарии 0

Magento U опубликовало бесплатный курс Fundamentals of Magento 2 Development

PHPРазработка под e-commerceMagento
Tutorial
image

Magento U опубликовало 4 бесплатных курса:


Которые будут доступны до 31го марта 2017 года абсолютно бесплатно для всех желающих.
Курсы включают набор видео уроков, а также pdf материалы и презентации с задачами и тестами в конце каждого урока, которые помогут быстрей разобраться с архитектурой Magento 2.

Содержание курса под хабракатом.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Просмотры6.3K
Комментарии 0

Политика обратной совместимости при разработке фреймворка на примере Magento 2. Часть 1

PHPАнализ и проектирование системПроектирование и рефакторингРазработка под e-commerceMagento
image
*Поломанный кран в офисе Magento и быстрое решение воплощенное в жизнь одним из инженеров — типичный Backward Compatible фикс.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Просмотры7.9K
Комментарии 17

Запрещенные изменения в коде или продолжение истории ремонта одного крана

PHPПроектирование и рефакторингРазработка под e-commerceMagento

Данная статья является продолжением ранее опубликованной статьи, которую можно найти здесь.

В текущей статье я уделю больше внимания тому, как, не смотря на ограничения, которые вводит политика обратной совместимости, не идти на компромисс в качестве кода. И выполнять непрерывный рефакторинг в ходе любых изменений кода, а не откладывать рефакторинг до тех пор когда будет позволено внести обратно несовместимые изменения, т.к. только непрерывный рефакторинг, который производится при каждом изменении кода, ведет к постоянному улучшению дизайна кода и архитектуры приложения, что ведет к улучшению расширяемости и поддержки кода в целом.

Откладывание рефакторинга на потом ведет к увеличению технического долга и созданию задач (user story) на рефакторинг, которые не имеют business value для product owner-a, а соответственно такие задачи не будут попадать в топ продуктового беклога.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Просмотры12K
Комментарии 7

Система управления складом с использованием CQRS и Event Sourcing. Постановка требований

PHPПроектирование и рефакторингРазработка под e-commerceMagento
image

В последнее время стала популярна концепция Omnichannel, когда чтобы улучшить качество обслуживания клиентов, различные каналы продаж интегрируются в один. И не важно как и где совершается продажа, для продавца имеет смысл объединить все каналы сбыта для того, чтобы выполнить заказ. На практике это означает, что неважно клиент пришел к вам оффлайн, сделал заказ на сайте, в мобильном приложении или в телефонном режиме — вы должны использовать все доступные средства для его выполнения. И для вас, как для продавца, каждый отдельный канал не должен представлять большой разницы. Презентация omni channel на примере Франкфуртского аэропорта (англ.).

Для интеграции описанной выше, со стороны продавца очень важно иметь возожность интегрировать уровни запасов товаров. Потому что инфраструктура розничной торговли может быть достаточно сложной и объединять внешние склады, магазины, магазины с возможностью заказа товаров в магазин (store pick-up), дропшиппинг (схема торговли, при которой Вы продаёте изделия фирмы-поставщика, которая сама пересылает их покупателю от Вашего имени, а Вы только принимаете от покупателя деньги).

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Просмотры4.1K
Комментарии 0

Система управления складом с использованием CQRS и Event Sourcing. Проектирование

PHPСовершенный кодПроектирование и рефакторингРазработка под e-commerceMagento
image
Итак, после постановки требований описанной в части 1 можно перейти к проектированию системы.

Основная наша задача в проектировании, как это понятно из названия статьи, добиться разделения интерфейсов на Query и Command, чтобы впоследствии разделить бизнес сценарии на те, которые будут читать данные (Query интерфейсы) и на те, которые будут изменять данные (Command интерфейсы). А также обеспечить минимальное время ожидание (latency) на обновление данных, доступных через Query, после того как мы изменили данные через Command.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Просмотры8.9K
Комментарии 11