Инструменты пользователя

Инструменты сайта


shk_setup

Установка и настройка SHK 2.x

Установка

Можно скачать дополнение в административной части сайта. Для этого перейти в «Система» → «Управление пакетами». Нажать кнопку «Скачать дополнение». Далее перейти «Extras» → «E-commerce» и в строке «Shopkeeper» нажать кнопку «Загрузить», потом кнопку «Готово».

Если вы скачали файл с сайта modx.com, загрузите архив «shopkeeper-2.0-*.transport.zip» в папку core/packages/ вашего сайта. В панеле управления перейти «Система» → «Управление пакетами» → «Добавить новый пакет» → «Искать пакеты локально» → «Дальше». В таблице пакетов появится пакет «shopkeeper». Нажать кнопку «Установить». Закончить установку. Для добавления виджета статистики заказов на панель перейти «Панель» → «Панели» → «Default» → «Редактировать» → «Добавить виджет» → «Статистика заказов». Перетащить в списке виджетов вверх.

Настройка

Открыть «Элементы» → «Сниппеты» → «Shopkeeper» → «Параметры». Нажать кнопку «Добавить набор параметров», отметить флажок «Создать новый набор параметров» и заполнить поля. Имя набора желательно на латинице, например «cart_catalog». В списке слева выбрать созданный набор и при необходимости изменить параметры. В шаблоне в месте, где нужно вывести корзину покупок, вызвать сниппет Shopkeeper с указанием набора параметров. Пример:

[[!Shopkeeper@cart_catalog?propertySetName=`cart_catalog`]]

propertySetName - имя набора параметров сниппета. Также это имя нужно указать после символа «@». По этому набору параметров происходит синхронизация при ajax-запросах. Параметры сниппета по умолчанию редактировать не рекомендуется, т.к. при обновлении на новую версию они могут измениться.

Настройка контекста "catalog"

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

Создать контекст «catalog». Настройки контекста (правый клик → Редактировать → Создать новый): error_page: 10 unauthorized_page: 11 где 10 - ID документа каталога (у вас свой), error_page - страница 404, unauthorized_page - страница 403 (доступ запрещен)

Создать структуру категорий каталога товаров в контекcте.

Права доступа контекста «catalog» («Система» → «Контексты» → «catalog → Обновить контекст» → «Права доступа») должны быть такие же как у контекста «web», т.е.: аноним, 9999, Load only Administrator, 0, Administrator

В контексте «web» создать документ-ссылку «Каталог», в поле «Ссылка» ввести «catalog/».

Проверить чтобы был установлен плагин «shk_contextSwitch» (core/components/shopkeeper/elements/plugins/context_switch.php).

Если используется регистрация, нужно создать группу пользователей. Для этого перейти «Безопасность» → «Контроль доступа». Нажать кнопку «Новая группа пользователей» и ввести название, например «Покупатели». Далее кликнуть правой кнопкой мыши на группе и выбрать «Редактировать группу пользователей». Перейти на вкладку «Доступ к контекстам». Нажать кнопку «Добавить контекст», выбрать контекст «web», минимальная роль - 9999, Политика доступа - Load only. Также добавить контекст «catalog» (доступа к контексту «mgr» быть не должно). Перезагрузить права доступа: «Безопасность» → «Перезагрузить права доступа». Выбор и добавление к заказу метода доставки

Список методов доставки и цен можно создать в конфигурации компонента. Первое поле в строке - наименование доставки, второе поле - цена.

Для вывода и добавления метода доставки к заказу можно использовать плагин «shk_delivery». Проверить чтобы в админке был создан плагин с событием «OnSHKbeforeCartLoad» и который использует код из файла core/components/shopkeeper/elements/plugins/delivery.php.

На вкладке «Параметры» плагина можно настроить шаблон для вывода списка методов доставки. Плагин создаёт плейсхолдер «shk_delivery».

Пример:

<select name="shk_delivery">
    [[+shk_delivery]]
</select>

После отправки формы заказа доставка будет добавлена к заказу.

param-edit

Для удобства ввода параметров и цен используйте тип ввода «param-edit».

В параметрах типа ввода можно настроить: ширину полей, число полей в строке, значение по умолчанию, включить возможность динамически добавлять у удалять поля в столбцах.

Этот тип ввода также можно использовать для создания таблиц характеристик товара. Для вывода таблицы на сайте можно использовать сниппет «param_edit_table» (shopkeeper/elements/snippets/param_edit_table.php).

Пример использования:

[[shk_include?
&file=`core/components/shopkeeper/elements/snippets/param_edit_table.php`
&tvName=`options`
&tpl=`properties_table`
]]

Пример чанка «tpl» (разделён на 3 части):

<table>[[+inner]]</table>
<!--tpl_separator-->
<tr class="[[+row_even]]">
    [[+inner]]
</tr>
<!--tpl_separator-->
<td class="">[[+col_num]]. [[+field]]</td>

Параметры сниппета

docId - ID ресурса значения которого нужно выводить. tvName - Имя TV параметра. tvValue - Строка со значениями. Если указывается этот параметр, docId и tvName не нужны. tpl - имя чанка шаблона для вывода значений. Чанк состоит из трёх частей, разделённых разделителем <!–tpl_separator–>. См. пример выше. noEmpty - не выводить пустые значения. По умолчанию включено. toPlaceholder - Отправить вывод в плейсхолдер. Указать название плейсхолдера. minCount - Минимальное количество строк со значениями при котором нужно выводить эти значения. rowIndex - Номер строки от нуля, которую нужно вывести. separateCols - Разделять колонки таблицы на отдельные плейсхолдеры. Например +param1_1 +param1_2

Настройка сервера

Рекомендуется настроить сервер (виртуальный) чтобы сайт работал только по одному домену (с других перенаправленные на основной).

Проблема: Например сайт доступен по двум адресам - example.com (домен второго уровня) и www.example.com (домен третьего уровня). Когда посетитель заходит по какому-то из этих адресов, некоторые страницы могут быть не закэшированы. Происходит кэширование меню сайта и в нем ссылки с www и без перемешиваются. Т.е. получается как будто человек переходит с одного сайта на другой. Или этот переход происходит при отправке заказа. При этом товары, выбранные на одном сайте, не доступны на «другом».

Решение для сервера Apache:

В .htaccess нужно убрать решетки (#) со строк

#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
#RewriteRule (.*) http://www.example.com/$1 [R=301,L]

и указать ваш домен вместо example.com. Тогда, если человек зашел по адресу example.com, его перекинет на адрес www.example.com.

Если вам не нравится домен 3-го уровня (с www), можно сделать редирект на второй уровень:

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
shk_setup.txt · Последние изменения: 2016/04/23 15:44 (внешнее изменение)