Как стать автором
Обновить
0

Magento *

Система управления интернет-магазинами

Сначала показывать
Порог рейтинга
Уровень сложности

Magento 2: минимальная инсталляция и зависимости — исследование

Время на прочтение59 мин
Количество просмотров7.3K

Я занимаюсь back-end / full-stack разработкой на Magento 2 уже 3.5 года. Все эти годы у меня никак не хватает сил и времени перетащить один свой старый (но всё еще довольно популярный) проект с убогого Web-CMS uWeb на что-то более-менее толковое, поддерживаемое и расширяемое. Идей было много - писать с нуля на Symfony, изучать Drupal и делать на нем, привлекать React JS... Но всё это требует значительных временных затрат и от этих идей приходилось отказываться.

И вот недавно мне в голову пришла другая идея: а что если использовать Magento 2 как каркас для моего кастомного проекта?..

Читать
Всего голосов 12: ↑11 и ↓1+10
Комментарии13

Новости

PHP-SPX простой профайлер трейсер для PHP

Время на прочтение4 мин
Количество просмотров12K
Работая с различными PHP проектами часто приходится дебажить приложение чтобы найти и исправить ошибку. Во многих случаях вполне хватает xDebug, однако он не подходит для всех задач. Иногда нужно понять почему та или иная страница долго загружается, что съедает так много памяти или просто как работает большой и запутанный код.
php-spx logo webmageic
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии3

За что я люблю Magento 2

Время на прочтение25 мин
Количество просмотров13K

Знаете, сейчас, в эпоху хороших фреймворков принято презирать всякие %bad CMS Name% и прочие битриксы. И не мудрено, ведь многие CMS как будто созданы не для программистов а для кодеров. Они решают множество нужных и полезных задач, имеют огромные коммьюнити и тысячи плагинов, но когда ты смотришь под капот - медленно седеющие волосы на голове начинают шевелиться в такт "архитектуре".

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Очереди на очереди: Magento 2 + RabbitMQ

Время на прочтение7 мин
Количество просмотров6.7K

Привет! Меня зовут Павел и я Magento 2 бэкенд-разработчик. Когда-то давно, когда я только начинал знакомство с Magento 2 (для краткости буду называть ее M2), мне понадобилось автоматизировать обработку однотипных событий при разработке одного решения. Тогда я удивился, насколько мало информации на русском языке об интеграции очередей в M2. Время идет, а ситуация не меняется: информации об этом на просторах рунета все так же мало. Раскроем эту тему. Для начала кратко поговорим про очереди: что это такое и зачем они нужны, потом рассмотрим интеграцию M2 с популярным менеджером очередей Rabbit MQ (далее по тексту — RMQ), а также напишем простую реализацию работы с очередями в качестве примера. Погнали!

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Истории

Разгоняем Magento Rest API c помощью RoadRunner

Время на прочтение7 мин
Количество просмотров5.7K

Ускорение Magento c помощью RoadRunner
PHP создан умирать. И все было бы хорошо, но в последнее время это сделать ему не дают. Год назад на хабре состоялся анонс инструмента RoadRunner, заставляющего PHP процесс выйти из бесконечного круга гибели и воскрешения.


Принцип работы RoadRunner заключается в удержании запущенного процесса и подкидывания в него поступающих запросов, что позволяет, по словам разработчиков, увеличить производительность приложения (иногда даже в 40 раз).


Поскольку долгом работы я связан с Magento, то показалось отличной идеей проверить инструмент не на мифическом фреймворке, а на реальном приложении, для чего отлично подошла Magento Open Source.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии18

Magento 2: импорт продуктов прямо в базу

Время на прочтение11 мин
Количество просмотров3.9K

В предыдущей статье я описал процесс импорта продуктов в Magento 2 обычным способом — через модели и репозитории. Обычный способ отличается весьма низкой скоростью обработки данных. На моём ноутбуке выходило примерно один продукт в секунду. В данном продолжении я рассматриваю альтернативный способ импорта продукта — прямой записью в базу, в обход стандартных механизмов Magento 2 (модели, фабрики, репозитории). Последовательность шагов, обеспечивающих импорт продуктов, может быть адаптирована под любой язык программирования, способный работать с MySQL.


Disclaimer: В Magento есть готовый функционал по импорту данных и, скорее всего, вам его хватит. Однако если вам нужен более полный контроль за процессом импорта, не ограничивающийся подготовкой CSV-файла для того, что есть — добро пожаловать под кат.


image

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

Debug Oriented Programming или печаль в глазах Интегратора

Время на прочтение4 мин
Количество просмотров5.5K

Так получилось, что в последние несколько лет я сшиваю Франкенштейнов, а не ваяю милые фарфоровые статуэтки пастушек и трубочистов. Я создаю решения на базе Magento 2. Это значит, что исходный материал у меня — мечта любого археолога. Культурный слой со следами различных "эпох" и "цивилизаций". По нему можно изучать развитие программистской мысли в PHP/JS сообществах в течение последнего десятилетия.


И это только базис, а надстройка — сторонние модули, которые нужно интегрировать вовнутрь. Вот тут уже можно столкнуться с проявлениями внеземного разума. Некоторые модули созданы развитыми существами, очень похожими по мышлению на создателей базиса, но попадаются такие, что хочется приобнять автора за плечо, проникновенно заглянуть ему в глаза и по-дружески так спросить: "Ты с какой планеты, родной?"


image


Сшить Франкенштейна из такого материала помогает отладчик (debugger). Ниже идёт мой персональный топ приёмов кодирования, которые способны усложнить жизнь любому, кто, как и я, ежедневно использует отладчик в своей жизни. Он небольшой, на четыре позиции, но каждый раз, когда я сталкиваюсь с подобным при отладке — я печалюсь. Может быть мой пост уменьшит количество скорбей в мире, а может и нет. Я, по крайней мере, попытаюсь.

Читать дальше →
Всего голосов 31: ↑23 и ↓8+15
Комментарии43

Magento 2: импорт продуктов из внешних источников

Время на прочтение6 мин
Количество просмотров4.9K

Magento является e-commerce решением, т.е. больше нацелено на продажу продуктов, чем на сопутствующий продажам складской, логистический или финансовый учёт. Для сопутствующего лучше подходят другие приложения (например, ERP-системы). Поэтому достаточно часто в практике использования Magento возникает задача интеграции магазина с этими другими системами (например, с 1С).


По большому счёту интеграцию можно свести к репликации данных по:


  • каталогу (продукты, категории);
  • инвентарным данным (остатки продуктов на складах и цены);
  • клиентам;
  • заказам;

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

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

Magento 2: рендерер для ячейки грида

Время на прочтение5 мин
Количество просмотров3.1K

Выход версии 2.3.0 приблизил использование PWA на фронте Magento-приложений на расстояние вытянутой руки. И если для фронта видны какие-то подвижки в применяемых технологиях, то с админкой всё гораздо стабильнее — старый добрый лабиринт из различных типов файлов, которые нужно поредактировать, чтобы на UI проявилось что-то полезное, усовершенствовать не планируется. В этой статье я описываю создание собственного рендерера для колонки грида в админке — вещи довольно несложной и, в то же самое время, довольно полезной при правильном применении. Например, рендерер для формирования в гриде заказов ссылки на карточку клиента, оформившего заказ:


image

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

Adobe купила Magento за $1.68 млрд

Время на прочтение2 мин
Количество просмотров9.6K
Сегодня Adobe анонсировала, что покупает Magento за 1.68 млрд. долларов.
Эта покупка даст Adobe недостающую часть e-commerce платформы, которая работает в B2B и B2C сегментах и должна отлично вписаться в облачный стек компании.

Это также должно помочь Adobe конкурировать с Salesforce, которая предлагает свою облачную платформу и которая купила Demandware за более чем за 2 млрд долларов в 2016 году, чтобы предложить подобный функционал.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Magento Meetup Kharkov — видео и презентации

Время на прочтение1 мин
Количество просмотров2.4K
26 января в Харькове прошел митап, посвященный платформе Magento. Это уже второй такой ивент в городе, и он набирает обороты. Мероприятие посетили 130 человек: разработчики, тестировщики, дизайнеры.

Прозвучали три доклада о тестировании, технологии AMP и кастомизации Magento 2. Хотим с вами поделиться видео и презентациями. Кто интересуется платформой, найдёт их полезными.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии2

MageConf 2017 видео и материалы конференции

Время на прочтение2 мин
Количество просмотров3.6K


16го Декабря в Киеве прошла самая большая техническая конференция посвященная платформе Magento и eCommerce в целом. Конференция проходила в 4 параллельных потока, на которых было презентовано 30 докладов и воркшопов. Конференцию посетили 600+ участников.

Главному ивенту предшествовал Magento Contribution Day, проводимый в офисе компании Magento за день до этого и собравший более 100 человек, которые вместе с Magento Core программистами и архитекторами работали над улучшением платформы и исправлением багов. А также над разработкой новой функциональности системы — Multi-Source Inventory.



В ходе ивента было поставлено 40+ Pull Request в Magento 2 репозиторий.

В данном посте предлагаю ознакомиться с видео всех выступлений, которые вы найдете под катом. С программой конференции MageConf 2017 можно ознакомиться перейдя по ссылке.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Погружение в ценообразование Magento 2, убираем копейки после скидок

Время на прочтение8 мин
Количество просмотров7K

Ценообразование — пожалуй, достоинство в Magento и самая интересная часть системы.
А для владельца магазина — самая важная часть, так как связано с деньгами.
Ранее коллеги рисовали диаграммы, которые еле помещались на Китайской Стене, пытаясь уместить все-все-все этапы расчета. В этой статье попробую изложить только основные этапы расчета, и пример округления скидок в пользу магазина. К счастью, по сравнению с Magento 1, новшества коснулись самых глубин, подход остался неизменным.

Верхушка айсберга


image

Когда клиент меняет содержимое корзины начинается расчет. Скорость расчета зависит от множества действий «на глубине». Начнем погружение с видных мест. попутно увидим события и зависимости типов товаров, методов доставки, ценовых правил корзины и каталога.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии9

Ближайшие события

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

Время на прочтение13 мин
Количество просмотров9.9K


В данной статье будет рассмотрен Service Layer в Magento 2 и сервисы (API интерфейсы) для управления сущностями, которые были описаны в предыдущей статье, посвященной проектированию и выделению доменных сущностей для системы управления складом (Inventory).
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии31

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

Время на прочтение6 мин
Количество просмотров10K
image
Итак, после постановки требований описанной в части 1 можно перейти к проектированию системы.

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

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

Время на прочтение6 мин
Количество просмотров13K

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

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

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

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

Время на прочтение1 мин
Количество просмотров7.4K
image

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


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

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

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

Время на прочтение3 мин
Количество просмотров6.8K

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

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

Magento 2. Ui Grid

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

Разработка модулей для Magento 1.x — большой гайд + видео

Время на прочтение100 мин
Количество просмотров27K


Привет, Хабр! Несмотря на давно уже выпущеную Magento 2, Magento первой версии еще живее всех живых и пока еще не собирается нас покидать. Команда Magento будет поддерживать первую версию продукта 3 года с даты выпуска версии 2, т.е. примерно до ноября 2018. Рынок пестрит широчайшим выбором тем, модулей и сервисов заточеных под Magento 1.x версии. И большое количество сайтов, которые сейчас на Magento 1.x, не торопятся обновляться. Работы много — выхлопа мало. А значит, разработка под Magento первых версий еще актуальна и так будет несколько лет.

Но не о перспективах развития e-commerce решений пойдет речь в этой статье. Тут я решил собрать своеобразный гайд по созданию модулей для Magento 1.x (далее просто Magento). Но не простой гайд, в котором надо всего лишь следовать инструкциям, а с небольшими пояснениями «почему пишем так, а не иначе». Я старался найти золотую середину между краткостью и достаточностью. И в первую очередь, гайд несет пользу новичкам в деле разработки модулей для Magento. Но и более опытным пользователям данный материал может принести пользу.
Всего голосов 15: ↑14 и ↓1+13
Комментарии5
1