Сегодня в ТОП-5 — новый метод сохранения вредоносного ПО на серверах Magento, фишинговые письма от Google, критическая уязвимость в библиотеке Rust, новая техника обмана разработчиков GitHub и атака новой группировки на российские компании. Новости подготовил аналитик центра информационной безопасности «Инфосистемы Джет» Данил Глазырин.
Хакеры нацелились на платежные данные подписчиков Forbes
Злоумышленники встроили вредоносный код в сайт для оформления подписки на журнал Forbes. Обфусцированный онлайн-скиммер копировал и отправлял взломщикам платежные данные пользователей, включая коды CVV/CVC, а также их контактную информацию.
О Dependency Injection в Magento 2
В этой статье поговорим об инъекции (внедрении) зависимостей в Magento 2. Как ее использовать и для чего она нужна.
Итак, внедрение зависимостей — это паттерн проектирования предназначенный для того, чтобы предоставлять какому-либо объекту зависимости, необходимые для его работы. Это более совершенная альтернатива наследованию, позволяющая уменьшить связанность классов и компонентов между собой.
В основе этого подхода лежит принцип Dependency Inversion (инверсия зависимостей) из принципов SOLID, который предполагает использование абстракций вместо конкретных классов, где детали реализации должны зависеть от абстракций, а абстракции не должны зависеть от деталей реализации.
Vue Storefront: Поднимаем backend
Продолжаю продвигать свою реферальную ссылку на IaaS-провайдера Exostate и запиливаю вторую статью своей рекламной кампании. В первой статье я развернул и запустил приложение 'vue-storefront' как отдельный сервер, без привязки к каким-либо данным, маскируя таким нелепым образом свой коммерческий интерес в продажах сервисов Exoscale. Мои жалкие потуги были успешно вскрыты коллегой aol-nnov и я был выведен на чистую воду. Что ж, второй этап моей рекламной кампании по результату не отличается от первого — такая же страница с ошибкой:
Фронт теперь привязан к backend'у ('vue-storefront-api'), но в браузере клиента то же самое безрадостное сообщение "Something went wrong ...". Поэтому я, отбросив ложную скромность, вынес свою реферальную ссылку до ката, а всю маскировку поместил под кат — детали того, каким образом я совмещал "Vue Storefront" с "Vue Storefront API".
Vue Storefront: Заливаем данные в ES
Ещё один пост в рамках рекламной кампании по продвижению своей реферальной ссылки. В первой и второй публикации я поднял фронт-сервер, api-сервер и два вспомогательных сервиса (Elasticsearch & Redis), которые используются api-сервером. На этом шаге я попытался залить какие-то данные из существующего Magento-проекта в моё тестовое VSF-приложение.
На третьем шаге появился некоторый прогресс. PWA-приложение в браузере перестало сообщать об ошибке и начало показывать более-менее пристойную домашнюю страничку. Пусть даже и не с теми данными, которые были в моём Magento-проекте. Любое изменение лучше, чем топтание на месте.
Под катом описание того, каким образом залить данные из своего Magento-магазина в приложение Vue StoreFront так, чтобы вместо них клиенту показывались демо-данные. Да, результат опять не очень, но для рекламной кампании это не самое главное.
Vue Storefront: Импорт каталога из Magento 2
Наконец-то получилось увидеть данные из Magento (категории и продукты) в приложении Vue Storefront (VSF). Это уже четвёртая статья (1, 2, 3), в которой я описываю процесс изучения возможностей интеграции VSF с электронным магазином на базе Magento 2, и первая, где данные из Magento проскочили в браузер покупателя.
Под катом ссылка на скрипты развёртывания и краткое описание шагов.
7 ошибок одного Black Friday и как работает Magento Cloud — видео
Слайды хорошо видны, поэтому файлы презентаций сюда не добавляю. Если кто хочет поклацать презентации — пишите в комментарии.
Как сделать фронтенд в три раза быстрее и когда применять команды вместо репозиториев? Видео
В Харькове прошёл Magento-митап, и на нём прозвучали доклады Робина ван Раана, Александра Шкурко и Максима Грома. В них много полезного. Ловите.
Робин ван Раан рассказал о новейших практиках оптимизации RequireJS. С их помощью фронтенд сайта можно ускорить в 3 раза!
Александр Шкурко рассказал, в каких случаях лучше использовать команды вместо репозиториев в Magento 2. Всё это проиллюстрировано лучшими, на мой взгляд, картинками!
Максим Гром коснулся скользкой темы ныряния в Magento DI. Многим это тоже будет полезно.
Введение во Vue Storefront
Добрый день, меня зовут Андрей Солдатов, мы в команде Россельхозбанка разрабатываем новые интересные проекты, связанные с сельским хозяйством. В качестве фронтального решения для некоторых из них мы решили использовать интересное open source решение Vue Storefront. В этой статье вы можете ознакомиться с ключевыми возможностями и особенностями этого решения. Статья является переводом статьи из официального блога Vue Storefront, оригинал доступен по ссылке.
Vue Storefront - это достаточно сложное решение с обширными возможностями. Изучение их всех может занять некоторое время. В этой статье я за несколько минут постараюсь объяснить вам его ключевые понятия, чтобы показать все необходимое для начала работы с Vue Storefront.
Структура модуля Magento 2
В данной статье мы рассмотрим структуру модуля Magento 2. Посмотрим из чего она состоит, разберем какие бывают конфигурационные файлы и для чего они нужны. В будущем оставлю ссылки на статьи, где каждая упомянутая тут тема будет рассмотрена в деталях.
Magento 2. Добавление картинок в динамический массив
Приветствую вас, хабравчане! Немного набравшись смелости решил написать свою первую статью, точнее поделиться небольшим опытом, в интересной как мне показалось теме, а именно как в динамический массив в конфиге, добавить загрузчик файлов.
Пошаговое создание модуля в Magento — руководство начинающего разработчика
Сколько о Magento не пиши, а все равно вопросов много ;) © jeje
При изучении электронного магазина Magento, я встречал много статей, описывающих создание модуля на примерах, однако практически все они дают пошаговые инструкции «сделай то, сделай это и получишь это», не объясняя зачем делается тот или иной шаг. В результате при возникновении ошибки довольно сложно определить что сделано не так, также труднее переделывать модуль под свои нужды.
В данной статье я попытаюсь показать создание модуля пошагово с объяснениями каждого изменения на примере модуля новостей «DS News», где DS — это Namespace (Пространство имён), а News — это название модуля. Данная схема именования модулей является довольно удобной для того, чтобы не бояться конфликта имён в названии модулей. Особый упор постараюсь сделать на объяснение значений, используемых в файле конфигурации — названия узлов и места, где они используются. Сам я пользуюсь данным руководством постоянно при создании нового модуля, т.к. запомнить откуда какие данные идут, какие классы нужно наследовать и т.д… просто невозможно физически. А тут всё в одной статье.
Не буду описывать установку Magento и заполнение товарами, считая что система уже работает. Однако следует убедиться в том, что кеширование отключено (кеш можно отключить в админке на странице System/Cache Management) — это необходимо для того, чтобы сразу видеть производимые изменения.
Совет по размещению стилевой разметки для отдельных CMS страниц в Magento
Конференция Meet Magento Russia 2013
Впервые в России пройдет официальная международная конференция Meet Magento, посвященная самой популярной платформе электронной коммерции в мире — Magento Commerce.
Magento. Процесс загрузки конфигурационных файлов
Это моя первая статья, поэтому не судите строго. Несколько лет я занимаюсь разработкой интернет магазинов на базе Magento. За это время у меня накопилось много информации относительно работы данной платформы, которую невозможно вечно держать в голове, поэтому я решил структурировать ее в виде серии статей.
Кому интересно, добро пожаловать под кат.
Доклады конференции Meet Magento Russia 2013
О конференции
Конференция Meet Magento Russia 2013 пройдет 24 августа в Москве (Измайлово).
Magento — это мощная платформа электронной коммерции, принадлежащая компании eBay/PayPal.
Magento лидирует как на рынке бесплатных движков электронных магазинов, так и в корпоративном сегменте.
Участие в конференции совершенно бесплатно и требует лишь предварительной регистрации.
Подробности о конференции вы можете прочитать этом посте или на сайте Meet Magento Russia.
Доклады
Мы собрали по-настоящему звездный состав докладчиков.
Перед вами выступят ведущие разработчики, менеджеры из компании Magento, а также ведущие специалисты и владельцы компаний ориентированных на разработку модулей и магазинов электронной коммерции на платформе Magento.
Система управления складом с использованием CQRS и Event Sourcing. Постановка требований
В последнее время стала популярна концепция Omnichannel, когда чтобы улучшить качество обслуживания клиентов, различные каналы продаж интегрируются в один. И не важно как и где совершается продажа, для продавца имеет смысл объединить все каналы сбыта для того, чтобы выполнить заказ. На практике это означает, что неважно клиент пришел к вам оффлайн, сделал заказ на сайте, в мобильном приложении или в телефонном режиме — вы должны использовать все доступные средства для его выполнения. И для вас, как для продавца, каждый отдельный канал не должен представлять большой разницы. Презентация omni channel на примере Франкфуртского аэропорта (англ.).
Для интеграции описанной выше, со стороны продавца очень важно иметь возожность интегрировать уровни запасов товаров. Потому что инфраструктура розничной торговли может быть достаточно сложной и объединять внешние склады, магазины, магазины с возможностью заказа товаров в магазин (store pick-up), дропшиппинг (схема торговли, при которой Вы продаёте изделия фирмы-поставщика, которая сама пересылает их покупателю от Вашего имени, а Вы только принимаете от покупателя деньги).
Система управления складом с использованием CQRS и Event Sourcing. Проектирование
Итак, после постановки требований описанной в части 1 можно перейти к проектированию системы.
Основная наша задача в проектировании, как это понятно из названия статьи, добиться разделения интерфейсов на Query и Command, чтобы впоследствии разделить бизнес сценарии на те, которые будут читать данные (Query интерфейсы) и на те, которые будут изменять данные (Command интерфейсы). А также обеспечить минимальное время ожидание (latency) на обновление данных, доступных через Query, после того как мы изменили данные через Command.
Magento Dare to Share — Открытая Площадка для докладов о Magento, PHP и eCommerce
20 Июля в Киевском офисе Magento прошло открытое мероприятие под названием Magento meetup «Dare to Share», которое могли посетить и в котором могли принять участие любые желающие кому интересна платформа Magento 2 и тема электронной коммерции (eCommerce).
В данном отчете публикуются видео докладов прозвучавших на мероприятии, а также принимаются заявки на выступление в следующем ивенте.
- Игорь Миняйло, Magento (@iminyaylo on ) — Magento Community Engineering
- Макс Пронько, The Irish Store (@max_pronko on ) — Автоматизация релизов для Magento 2. Опыт компании The Irish Store
- Вячеслав Кравчук, Atwix (@slkra on ) — Story of a Transformation (Укр.)
- Андрей Кравец, Forbytes / Gymgrossisten (@Winfle on ) — Dynamic caching of personalised data in Real Life (Укр.)
- Александр Козырь, Magecom (@kozyr1av on ) — SOLID-ное программирование на Magento 2
Тезисы докладов можно прочитать под Катом
Microservices и Модель Акторов (Actor Model)
Доклад посвящен:
- Пользовательским интерфейсам ориентированным на задачи (Task Based UI)
- CQRS (Command/Query Responsibility Segregation)
- Микросервисы
- Закон Конвея и его влияние на примере организации команд в Magento
- Fine-grained сервисы vs Coarse-grained сервисы
- Синхронность vs Асинхронность
- Модель Акторов (Actor Model)
Вторая часть доклада находится под хабракатом.