Понимание того, как расширение подключено в SAP Commerce - PullRequest
0 голосов
/ 02 мая 2020

Я работаю над системой электронной коммерции SAP Commerce (формально известной как Hybris).

Расширение Warehousing добавляется на сайт B2B. После его добавления в пункте «Уровень запасов» коллекция «Событие счета» отображается на вкладке «Администратор». Формула ATP была установлена ​​в базовом магазине. Акция теперь отображается на PDP. На сайте OTB я видел, как экземпляр OTB корректировал уровни запасов соответствующим образом после выполнения заказа, но этого не происходит в экземпляре локального разработчика. Вопрос в том, почему?

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

ОБНОВЛЕНИЕ 1:

Вот пример вопроса: после добавления нового пользовательского популятора продукта в пользовательский Фасад, в файл * -spring. xml добавлено несколько записей, одна из которых - добавление популятора в configurablePopulatorModification. Наконец, опция должна быть добавлена ​​в список ProductOptions в контроллере. Затем вызывается популятор, когда вызывается этот контроллер.

В этом примере связь между контроллером и популярным становится ясной, как только становится понятно, как все устроено. Существует связь с ProductOptions в пользовательском расширении ядра, пользовательском расширении фасада и пользовательском ускорителе. Как только кто-то знает, как это «подключено», его можно легко продублировать.

Я пытаюсь понять следующее: расширение хранилища было добавлено в расширения locale. xml, но ссылки на него НЕТ. на любой аспект этого где-либо еще в системе, ВСЕ. Каким-то образом некоторое расширение между ускорителем витрины магазина и кодом платформы должно знать о новой функциональности, найденной в расширении хранилища, чтобы оно вызывалось. Как ?????

ОБНОВЛЕНИЕ 2:

После добавления расширения хранилища, к существующим элементам типа добавляются новые атрибуты, которые отображаются в Backoffice. Насколько я понимаю, именно эту концепцию объясняет Изменение списков и карт в контексте Spring .

Проблема, с которой я сталкиваюсь, заключается в том, как бизнес-логика c в расширении хранилища вызывается для изменения уровня запасов. Мое лучшее предположение заключается в том, что функция, выполняющая изменение, - это WarehousingStockLevelFacade.createStockLevelAdjustements (...). Я искал высоко и низко, где вызывается createStockLevelAdjustements (...), и он вызывается ТОЛЬКО в хранилищах веб-сервисов.

Я в полной растерянности от того, как именно работает какой-либо из фасадов со складированием фасадов или складских веб-сервисов называется

1 Ответ

1 голос
/ 02 мая 2020

Хммм, ваш текст содержит более одного вопроса, я думаю. Поэтому я стараюсь отвечать на каждую их часть отдельно.

На сайте OTB я видел, как экземпляр OTB соответствующим образом корректирует уровни запасов после выполнения заказа, но этого не происходит в экземпляре локального разработчика

В системах не должно быть различий. Вы всегда должны смотреть, что у вас одинаковая конфигурация в каждой системе. Обычно папка config здесь является той частью, где вы определяете конфигурацию. От системы к системе может быть небольшая разница. Но, например, «localextensions. xml» всегда должны быть одинаковыми.

Правильно ли впечатление, что в процессе обработки заказа вызывается какой-то фасад внутри расширения хранилища?

Нет. Вы определяете свои расширения в «localextensions. xml», а затем новые части в любой системе. Делали ли вы «ОБНОВЛЕНИЕ» в каждой системе, чтобы новые типы также импортировались в систему типов и базу данных?

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

ОБНОВЛЕНИЕ 1

Думаю, теперь я понял вашу точку зрения. Я стараюсь оставаться в общих чертах и ​​не указывать на расширение «склад». У Hybris есть некоторые функции, как модифицировать код «после». Вот несколько полезных ссылок:

Также есть Посмотрите налево в навигации о «Концепции Extnsion». Возможно, некоторые моменты будут ясны.

Так что в вашем примере подумайте, что произойдет: сначала новые атрибуты в * -элементах. xml, чем где-то будет bean-компонент 'modifiyPopulatorList'.

ОБНОВЛЕНИЕ 2

Я не знаю расширение «складирование». Но я думаю, что должна быть часть, которая перезаписывает «нормальные» бины бобами «складирования». Что-то вроде:

<bean id="stockLevelBean" ...>
    <property name="normalProvider" ref="normalProvider"/>
</bean>

<bean id="stockLevelBean" ...>
    <property name="warehousingProvider" ref="warehousingProvider"/>
</bean>
...