Я вот тут поступил так.
1. Разместил в шаблоне блок в котором должен быть баннер с классом jsInnerBanner, скрытно.
2. Пометил все превьюхи классом к примеру jsBannerMark.
3. Повесил обработчик на событие mse2_load
Сама функция insertBanner ищет скрытый блок, вытаскивает из него шаблон баннера и вставляет в нужное место, я сделал в процентах, но вы можете сделать как вам нравится.
function insertBanner(mark,banner, percent){
var count = $(mark).length,
banner = $(banner).clone(),
position = Math.round(count * percent);
banner.find('.promo').addClass('jsBanner');
if((position % 2) != 0){
position = position + 1;
}
if(count > 1){
if(mark == '.jsBannerMark'){
$(mark)[position - 1].after(banner[0]);
}
if(mark == '.jsMaterialMark'){
$(mark)[position - 1].before(banner[0]);
}
}else{
$(mark).after(banner[0]);
}
}
Сами баннеры я сделал в виде ресурсов и забираю их через pdoResources. Конечно в чистом виде вам моё решение не подойдет, но думаю общая идея пригодится.
Я вам за невнимательность. Во-первых, когда я писал свой комментарий, было только ваше пояснение, без комментария @Иван Бочкарев, во-вторых, в своем комментарии я написал, что после ваших пояснений мне стала ясна суть проблемы и ни на какое из ваших начал я не наезжал, я дал понять, что для меня это не является существенной проблемой и пояснил, что помочь вам, к сожалению, не могу. Если вас оскорбило моё замечание, прошу прошу прощения, я не хотел вас обидеть, а имел намерение разобраться в проблеме и по возможности помочь. И наконец, цели просто высказаться я себе не ставлю.
А потом f12 и смотреть консоль браузера.
1. Разместил в шаблоне блок в котором должен быть баннер с классом jsInnerBanner, скрытно.
2. Пометил все превьюхи классом к примеру jsBannerMark.
3. Повесил обработчик на событие mse2_load
Сама функция insertBanner ищет скрытый блок, вытаскивает из него шаблон баннера и вставляет в нужное место, я сделал в процентах, но вы можете сделать как вам нравится.
Сами баннеры я сделал в виде ресурсов и забираю их через pdoResources. Конечно в чистом виде вам моё решение не подойдет, но думаю общая идея пригодится.
Если нужно предварительно очищать корзину, то обернуть всё в ещё один запрос 'cart/clean', ну и в :'order/create' там больше данных передавать надо, можно всю форму целиком, главное чтобы поля были правильно названы.
И вот ещё вариант modstore.pro/packages/integration/msoneclick )))