
Большинство headless-проектов разводят контент и коммерцию по двум системам и двум командам, и шов между ними становится для кого-то постоянной работой. Паттерн AEM-as-proxy этот шов закрывает. AEM стоит впереди, держит роутинг, SEO и кеширование, а транзакционные вызовы передаёт в Adobe Commerce через GraphQL. Маркетологи работают в AEM. Чекаут остаётся там, где ему место.
Это не альтернативы друг другу
Сравнение всплывает достаточно часто, чтобы ответить прямо. Adobe Experience Manager и Adobe Commerce - это не два варианта на выбор. AEM - это то, где живут страницы, контент и ассеты. Adobe Commerce - это каталог, корзина и заказы. У компаний на стеке Adobe обычно есть и то, и другое.
Настоящий вопрос в том, как они разговаривают между собой. Ответ самой Adobe - Commerce Integration Framework: он подключает GraphQL-схему Adobe Commerce внутрь AEM, и товар ставится на страницу так же, как любой другой компонент.
Во что обходится эксплуатация этой интеграции
Само соединение - лёгкая половина. Тяжёлая половина, которая съедает график, - это всё вокруг него.
Каждый run-mode в AEM должен смотреть на нужное окружение Adobe Commerce, и GraphQL-клиенту нужна своя конфигурация под каждое. Author и publish разделены, и оба существуют для local, dev, test, UAT, stage и production. На корпоративном внедрении, над которым я работал, это вылилось в три с лишним десятка конфигурационных профилей, которые нужно держать в согласии между всеми окружениями.
Ничего интересного в этом нет. Именно сюда уходит время, и именно это пропускают в оценках.
Откуда это у меня и что именно я делаю
Это две разные вещи, и их стоит разделить.
Headless-шаблон витрины на этом сайте - полностью мой, вместе с его адаптерами под Adobe Commerce и AEM. Платформенная работа по AEM и Adobe Commerce делалась в составе команды, на корпоративном внедрении с Adobe Commerce Integration Framework 2.15.
Я не AEM-агентство и не выдаю себя за него. Бэкенд AEM корпоративного масштаба - это командный вид спорта. Я делаю фронт: витрину, слой компонентов и тот шов интеграции, где два продукта Adobe встречаются.
Что входит в интеграцию
AEM как точка входа
AEM стоит перед Adobe Commerce. Он принимает входящий запрос, отдаёт закешированные Experience Fragments и передаёт динамические вызовы в коммерческий бэкенд: корзина, покупатель, остатки.
CIF и что он даёт маркетингу
Commerce Integration Framework подтягивает живые данные о товарах на страницы AEM. Настроенный как надо, он даёт Commerce Teasers: маркетолог перетаскивает товар на страницу, и никому не нужно заводить задачу.
Dispatcher и CDN
HTML отдаёт AEM, поэтому страницу можно кешировать на Dispatcher и на CDN. Те части, которые обязаны оставаться персональными, вырезаются и подставляются отдельно: содержимое корзины, цены для залогиненного покупателя. Какая доля страницы под это попадёт, зависит от страницы, и тот, кто называет вам процент, не увидев вашу, просто угадывает.
Региональные настройки в одном месте
Context-aware конфигурация AEM держит валюту, язык и store view по регионам, поэтому новый рынок не требует фронтенд-деплоя Adobe Commerce.
Та же модель, собранная в шаблон
Паттерн поставляется как открытый шаблон витрины. Один доступный UI на токенах, адаптеры под Adobe Commerce и под AEM как источник контента, Lighthouse в CI как условие сборки и self-hosting на вашей инфраструктуре. В живом демо развёрнут адаптер Shopify; адаптеры Adobe Commerce и AEM лежат в репозитории с тестами.
Дорожная карта интеграции
- 1
Discovery. Разбор потоков данных между GraphQL-схемой Adobe Commerce и компонентами AEM
- 2
Архитектура. Прокси-слой, правила CORS и обмен токенами
- 3
Разработка. Компоненты, собранные под контракт Adobe CIF
- 4
Оптимизация. Правила Dispatcher и Varnish для hole-punching, чтобы кеш переживал персонализацию
Корпоративный стек
Что у вас есть, когда работа закончена
Это результаты работы, а не прогнозы. Каждый из них можно проверить в день сдачи.
- AEM отдаёт страницу, Adobe Commerce отдаёт транзакцию, и соединяет их CIF, а не самописная склейка.
- Записанная карта того, какой run-mode AEM смотрит на какое окружение Adobe Commerce, по всем стадиям.
- Commerce Teasers, которые маркетинг ставит на страницу, не заводя задачу.
Связанные материалы
Этот маршрут поможет оценить глубину имплементации до старта проекта.