Вспомните HTML. Параметры выводятся в виде элементов формы (select, input-radio, input-checkbox). Эти элементы должны быть внутри формы (<form>).
Сниппет можно вызывать на странице несколько раз, но корзина выводится только в месте первого вызова. Второй и последующие вызовы игнорируются. Если у Вас корзина на страницах каталога товаров находится в правой колонке шаблона, а на странице оформления заказа вызов сниппета вставлен в контент страницы, то на этой странице корзина будет выведена только в ценральной колонке (в правой вызов сниппета можно не убирать). Если есть вызов сниппета Shopkeeper в шапке сайта и в центральной части, то корзина будет выводиться только в шапке.
Чтобы убрать сокращенную корзину на странице оформления заказа, используйте параметр hideOn (указать ID страницы оформления заказа, можно несколько через запятую). Тогда вызов сниппета сокращенной корзины будт проигнорирован и будет выводиться подробный вид корзины (второй вызов сниппета).
Если при нажатии на кнопку «В корзину» товары не попадают в корзину или попадают через раз, надо открыть «Настройки системы» и очистить (сделать пустым) значение параметра «session_handler_class» (Имя класса-обработчика сессий) в разделе «Сессии и куки». Это включит стандартное поведение для сессий PHP.
Ещё возможная причина - установленный на хостинге apc. Нужно в .htaccess добавить строку:
php_flag apc.cache_by_default Off
Нужно убрать «!» в вызове сниппета, если он вызывается в чанке getProducts.
Вместо
[[!mySnippet?...
Будет:
[[mySnippet?...
Попробуйте отключить объединение и сжатие JS файлов админки. Для этого откройте «Системные настройки» → «Панель управления» (фильтр по разделу) Отключить: compress_js, compress_js_groups
Читаем документацию:
prodCont - CSS-селектор элемента, внутри которого находится информация о товаре (по умолчанию div.shk-item);
Это значит, что если значение этого параметра «div.shk-item», то форма с кнопкой «В корзину» должна быть внутри блока с классом «shk-item». Пример шаблона товара:
<div class="product shk-item"> <h3>[[*pagetitle]]</h3> <div class="content"> [[*content]] </div> <form action="[[~[[*id]]? &scheme=`abs`]]" method="post"> <fieldset> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> <div> Цена: <span class="shk-price">[[*price:num_format]]</span> руб. </div> <button type="submit" class="shk-but">В корзину</button> </div> </fieldset> </form> </div>
Надо почистить кэш сайта. Открыть в phpMyAdmin таблицу «modx_shopkeeper3_config» и удалить там дубликаты (по столбцу «setting»). Дубликаты появляются скорее всего из-за не правильных настроек прав на запись в папке кэша в какой-то момент или при обновлении. Пока точно не известно (будет решено).
Нужно переделать вызов модификатора в вызов сниппета и указать недостающую часть пути в чанке. Это позволит не делать лишних запросов и ускорит загрузку. Пример для сниппета «phpthumbon»:
[[phpthumbon?input=`assets/[[+tv.image]]`&options=`w=200&h=150&bg=ffffff&far=1`]]
Возможно причина в конфликте с другим плагином. В админке откройте страницу редактирования плагина «shk_multicurrency», перейдите на вкладку «Системные события» и отсортируйте события по включенным, чтобы активные были вверху списка. В колонке «Приоритет» измените значение «0» на другие значения, например от 5 и выше.