Нулевой конфликт WooCommerce Plugin Architecture

Если вы когда-либо отладили магазин WooCommerce, где рекламный плагин конфликтует с темой, с другим плагином или с пользовательской интеграцией, вы столкнулись с операционной реальностью, что экосистема плагинов WooCommerce вознаграждает архитектурную дисциплину и наказывает за ее отсутствие. Плагины, которые захватывают глобальное состояние, агрессивно переопределяют шаблоны тем или изменяют внутренние шаблоны WooCommerce через исправление, вызывают каскадные сбои, которые появляются как «общая корзина не работает», «кнопка проверки не работает» или «почта жизненного цикла не отправляла» - симптомы, которые трудно диагностировать, потому что фактический конфликт похоронен в шаблонах взаимодействия плагинов.

#10003; GT BOGO Engine PRO включает 30-дневную гарантию возврата денег.

Этот пост предназначен для разработчиков и технических руководителей WooCommerce, которые заботятся об архитектуре плагинов и свойствах устойчивости к конфликтам рекламного слоя. Мы рассмотрим архитектурные принципы, которые приводят к поведению плагинов с нулевым конфликтом, почему большинство рекламных плагинов не соответствуют этим принципам, и что GT BOGO Engine делает архитектурно, что позволяет ему сосуществовать с более широкой экосистемой WooCommerce, а не бороться с другими плагинами для контроля уровня расчета корзины.

Почему конфликты плагинов предсказуемы с точки зрения архитектуры

Структурной причиной конфликтов плагинов в WooCommerce является разрыв между тем, что предоставляют API WordPress и WooCommerce, и тем, что разработчики плагинов хотят делать. WooCommerce раскрывает всеобъемлющий API расчета корзины, систему крючков и структуру шаблонов, которая поддерживает расширение чистого плагина. Но рекламные плагины исторически принимали ярлыки — изменение глобальных переменных PHP, переопределение шаблонов темы оптом, похлопывание обезьянами WooCommerce внутренние или подключение к рендерингу на поздней стадии, а не к вычислению на ранней стадии. Ярлыки работают изолированно, но создают конфликты, когда другие плагины делают аналогичные ярлыки на соседней территории.

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

Данные об отказе от корзины от Baymard Institute, основанные на 50 отдельных исследованиях отказа от корзины, ставят средний мировой показатель в 70,22%. Конфликты плагинов способствуют отказу от корзины, когда клиенты видят нарушенное поведение - кнопки проверки, которые не работают, общие суммы корзины, которые вычисляют несогласованно между страницей корзины и страницей проверки, или рекламная логика, которая дает разные результаты в разных частях пути клиента. Сопротивление конфликтам не является академической архитектурной проблемой; это непосредственно влияет на уровень отказа от корзины. опыт в производстве.

Как выглядит архитектура нулевого конфликта

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

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

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

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

Что GT BOGO Engine предлагает в архитектуре

GT BOGO Engine - первая в мире система автоматизации корпоративного класса Buy X Get Y, созданная специально для WooCommerce. Платформа включает в себя 48 суперспособностей, работающих внутри WooCommerce автоматически, плюс 200 предварительно построенных пакетов кампаний в 19 отраслях, плюс архитектурные принципы с нулевым конфликтом во всем. Платформа сосуществует с более широкой экосистемой WooCommerce, не борясь с другими плагинами для управления. Для использования, ориентированного на разработчиков, в частности, четыре архитектурные возможности имеют значение для операционной реальности развертывания платформы вместе с различными клиентскими плагинами.

Во-первых, вся рекламная логика работает на уровне расчета корзины через документированные крючки WooCommerce. Платформа не патчирует WooCommerce, не модифицирует глобальные переменные PHP и не подключается к рендерингу на поздней стадии в качестве замены расчета на ранней стадии. Итоги корзины вычисляются правильно во всех контекстах (страница корзины, мини-карта, касса, REST API, интеграции без головы), потому что вычисление выполняется один раз на уровне вычислений, а не отдельно в каждом контексте рендеринга.

Во-вторых, таблицы баз данных платформы являются префиксированными и разнесены по пространствам имен, чтобы избежать конфликтов с другими плагинами. Классы PHP платформы используют пространства имен, которые предотвращают глобальное загрязнение состояния. Обратные вызовы крюка используют четкие соглашения об именах. Дисциплина имен означает, что платформа может сосуществовать с другими рекламными плагинами (во время миграций) без конфликтов баз данных, столкновений названий классов или двусмысленности крючка. Для получения дополнительной информации о моделях миграции см. Альтернативу Advanced Coupons WooCommerce.

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

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

Как архитектура с нулевым конфликтом влияет на производство

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

Во-вторых, развертывания мультиплагинов работают правильно без тестирования совместимости по паре. Сайты, работающие на платформе вместе с обычными плагинами WooCommerce (WooCommerce Подписки, WooCommerce Многоязычные, WooCommerce Членства, общие плагины для платежей, общие плагины для доставки, общие плагины для членства) производят предсказуемое поведение, потому что каждый плагин работает в своем документальном пространстве имен крючков, а не борется за контроль. Комбинаторный взрыв пар плагинов не требует тестирования по паре, потому что каждый плагин ведет себя предсказуемо в изоляции.

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

Сравнение: Conflict-Prone против Zero-Conflict

| Архитектурный принцип | Архитектура конфликта | Zero-Conflict Architecture (GT BOGO Engine) | |-- |-- | Использование крючка | Использование задокументированных крючков WooCommerce | Использование задокументированных крючков | | Крючки для расчета на ранней стадии | Имена для расчета на ранней стадии | Имена для таблицы | Префиксированные и пространные имена | Имена для класса PHP | Обработка шаблонов | Обработка шаблонов | Обработка шаблонов | Стандартная иерархия шаблонов | Обновления для пользовательского кода | Часто нарушается | Совместимость с несколькими плагинами | Требуется тестирование на паре | Предсказуемость в изоляции | Прорывы в обновлениях плагинов | Стабильность в обновлениях плагинов | Безголовое и REST API поддержка | Непоследовательная | Стоимость годовой лицензии | Варьировки | 499 долларов / год

Планы развертывания в реальном мире с нулевым конфликтом

Агентство WordPress, обслуживающее 30 клиентов WooCommerce, управляет GT BOGO Engine наряду с различными клиентскими плагинами — тема Astra для некоторых клиентов, тема Flatsome для других, пользовательские темы для нескольких. WooCommerce Подписки на подписных клиентов, WooCommerce Заказы на клиентов назначения, WooCommerce Членства для клиентов членства. Различные платежные плагины, плагины доставки, интеграция бухгалтерского учета и аналитические инструменты по всему портфелю. Платформа сосуществует чисто со всеми этими, потому что архитектурные принципы производят предсказуемое поведение в различных средах.

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

Распределительная платформа B2B, использующая сложную логику, учитывающую уровень сложности, пользовательский расчет доставки и пользовательскую налоговую интеграцию, развертывает платформу вместе с существующими пользовательскими интеграциями. Архитектура платформы с нулевым конфликтом означает, что пользовательские интеграции продолжают работать, промо-логика платформы работает правильно в пользовательском контексте расчета, а расчет корзины дает правильные результаты в полном стеке интеграции. Для более широкого контекста на архитектуре разработчика см. руководство для разработчиков GT BOGO Engine.

Миграционный путь для существующих производственных развертываний

Миграция неразрушительна, поскольку архитектура с нулевым конфликтом позволяет GT BOGO Engine сосуществовать с существующими промо-плагинами без конфликтов. Развертывания производства могут устанавливать GT BOGO Engine вместе с текущей промо-системой, проверять поведение через шаблоны постановки и мониторинга и постепенно мигрировать рекламные функции. График миграции зависит от сложности производственной среды, а не от проблем архитектурной совместимости, потому что архитектура обрабатывает совместимость чисто по дизайну.

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

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

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

Структура цен и лицензий для развертывания производства

GT BOGO Engine PRO составляет 499 долларов в год за магазин WooCommerce без уровней ценообразования на каждую функцию. Цена покрывает развертывание производства независимо от сложности производственной среды - сайты, работающие с различными стеками плагинов, пользовательскими интеграциями, безголовыми интерфейсами или высокими объемами транзакций, платят одну и ту же фиксированную ставку. Нет никаких сборов за каждую функцию для уровня интеллекта клиента, системы электронной почты жизненного цикла, библиотеки пакетов кампаний, возможности белого меча, геотаргетинга, многовалютной поддержки, двигателя тестирования A / B или Налоговой службы.

Индивидуальные отраслевые PRO-пакеты стоят 79,99 долларов каждый. Три уровня пакетов предлагают значительную экономию для клиентов с несколькими отраслями: Starter Bundle (299 долларов за 5 пакетов, экономия 100,95 долларов), Growth Bundle (299 долларов за 9 пакетов, экономия 220,91 долларов) и Complete Arsenal (799 долларов за 15 пакетов, экономия 400,85 долларов). Цена пакета делает отраслевые расширения экономически эффективными, не вынуждая покупки за пакет для каждой новой клиентской отрасли.

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

Часто задаваемые вопросы от разработчиков

Как платформа обрабатывает интеграцию плагинов с несколькими поставщиками или рынком?

Архитектура платформы с нулевым конфликтом сосуществует с рыночными плагинами (Dokan, WC Vendors, WCFM Marketplace) через стандартные крючки WooCommerce. Рекламные правила могут ориентироваться на конкретные продукты для поставщиков, оценивать содержимое корзины для поставщиков и применять логику для конкретных поставщиков, не вступая в конфликт с собственной логикой плагина для рынка. Пользовательские условия правил могут расширить интеграцию с бизнес-логикой для конкретного рынка, где стандартные правила требуют дополнительного контекста.

Работает ли платформа с WooCommerce HPOS (High-Performance Order Storage)?

Платформа поддерживает HPOS через стандартные абстракции WooCommerce. Пользовательский код, который взаимодействует с данными заказа, использует стандартный API заказа WooCommerce, а не прямые запросы к базе данных, что означает, что уровень клиентского интеллекта платформы продолжает корректно работать под HPOS. Сайты, которые еще не мигрировали в HPOS, платформа также работает с устаревшим хранилищем заказов.

Как платформа обрабатывает плагины, которые агрессивно перекрывают поток кассовых сборов?

Платформа работает на уровне расчета корзины, а не на уровне рендеринга кассы, что означает, что она правильно интегрируется с плагинами, которые настраивают поток кассы (плагины многоступенчатого оформления кассы, пользовательские макеты кассы, пользовательские интеграции платежей). Расчет корзины выполняется до рендеринга кассы, поэтому расчетная корзина с применимыми скидками доступна независимо от того, как отображается слой кассы. Пользовательские настройки кассы продолжают работать, потому что платформа не конкурирует за слой рендеринга.

Может ли платформа быть развернута в средах со строгим контролем обновления?

Платформа следует семантической версии с обратно совместимым поведением в незначительных и патч-релизах. Окружающие среды, которые откладывают обновления, могут безопасно запускать более старые версии, а архитектурная дисциплина платформы означает, что более старые версии продолжают работать вместе с более новыми версиями WordPress и WooCommerce в пределах разумных окон совместимости. Основные переходы версий документируются с явными путями миграции для сайтов, работающих с настройками.

Какова типичная попытка обосновать поведение без конфликтов в сложной производственной среде?

Большинство валидации завершается в течение нескольких дней целенаправленной работы. Фаза валидации обычно устанавливает бесплатный плагин ядра, проходит через стандартные пути клиента (просмотр, добавление в корзину, оформление заказа, завершение заказа, запуски электронной почты жизненного цикла) с действующим активным стеком плагинов и проверяет, что все поведение остается правильным. Пользовательские интеграции могут потребовать дополнительного времени валидации в зависимости от их сложности, но большинство производственных сред проверяются чисто, не требуя пользовательской работы исследования. Для более широкого контекста на архитектуре разработчика см. руководство для разработчиков GT BOGO Engine.

GT BOGO Engine построен GRAPHIC T-SHIRTS, настоящим магазином WooCommerce с более чем 1200 оригинальными проектами, работающими в масштабе. Посетите gtbogoengine.com, чтобы загрузить бесплатный плагин ядра, оценить архитектурную интеграцию с нулевым конфликтом в вашей производственной среде и решить, соответствует ли платформа архитектурным требованиям, которые требуются для вашего развертывания.

Готовы автоматизировать свои акции WooCommerce?

GT BOGO Engine PRO — 46 суперспособностей, 200 пакетов кампаний, ноль кодов купонов. $499 в год.

See GT BOGO Engine PRO →
GT
GT BOGO Engine Editorial Team
WooCommerce

GT BOGO Engine — первая платформа для промо-разведки корпоративного уровня для WooCommerce.