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

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


simple_integration

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
simple_integration [2015/05/23 19:45]
46.73.173.38 [Установка и первоначальная настройка Shopkeeper]
simple_integration [2016/04/23 15:44] (текущий)
Строка 23: Строка 23:
   - внутри каждой категории создайте ресурсы,​ которые будут являться собственно товарами;​   - внутри каждой категории создайте ресурсы,​ которые будут являться собственно товарами;​
   - создайте новую переменную шаблона (TV) типа "​число",​ в которой будет храниться цена товара,​ и назначьте ее шаблону товара. По умолчанию Shopkeeper считает,​ что TV с ценой называется "​price",​ поэтому лучше так ее и назвать. Название может быть и другим,​ но для простоты предположим,​ что TV имеет стандартное имя.   - создайте новую переменную шаблона (TV) типа "​число",​ в которой будет храниться цена товара,​ и назначьте ее шаблону товара. По умолчанию Shopkeeper считает,​ что TV с ценой называется "​price",​ поэтому лучше так ее и назвать. Название может быть и другим,​ но для простоты предположим,​ что TV имеет стандартное имя.
-  - Как правило,​ у товаров в интернет-магазине есть хотя бы одно изображение,​ поэтому есть смысл добавить также TV с типом «изображение» и назначить ее шаблону товара (имя на этот раз может быть любым. Давайте назовем эту TV "​image"​). ​ Хотя каждому товару можно назначать неграниченное число изображений (например,​ с помощью дополнения MIGX), для этого урока ограничимся одной картинкой.+  - Как правило,​ у товаров в интернет-магазине есть хотя бы одно изображение,​ поэтому есть смысл добавить также TV с типом «изображение» и назначить ее шаблону товара (имя на этот раз может быть любым. Давайте назовем эту TV "​image"​). ​ Хотя каждому товару можно назначать неограниченное число изображений (например,​ с помощью дополнения MIGX), для этого урока ограничимся одной картинкой.
  
 \\ \\ \\ \\ \\ Пример простейшего шаблона для товара\\  ​ \\ \\ \\ \\ \\ Пример простейшего шаблона для товара\\  ​
Строка 100: Строка 100:
 Конечно,​ можно пользоваться и обычным getResources,​ но на больших каталогах разница в скорости будет заметна. Конечно,​ можно пользоваться и обычным getResources,​ но на больших каталогах разница в скорости будет заметна.
  
-Сниппет getProducts не идет в комплекте с основным пакетом Shopkeeper, но написан тем же автором и бесплатно устанавливается из репозтория modx.com. Также его можно скачать и установить вручную из каталога дополнений MODX - [[http://​modx.com/​extras/​package/​getproducts]]+Сниппет getProducts не идет в комплекте с основным пакетом Shopkeeper, но написан тем же автором и бесплатно устанавливается из репозитория modx.com. Также его можно скачать и установить вручную из каталога дополнений MODX - [[http://​modx.com/​extras/​package/​getproducts]]
  
 ===== Установка и первоначальная настройка Shopkeeper ===== ===== Установка и первоначальная настройка Shopkeeper =====
Строка 114: Строка 114:
 Кроме того, в верхнем меню менеджера,​ в разделе "​Компоненты",​ добавится пункт "​Управление заказами"​. ​ Кроме того, в верхнем меню менеджера,​ в разделе "​Компоненты",​ добавится пункт "​Управление заказами"​. ​
  
-==== Первоначальна настройка ====+==== Первоначальная настройка ====
  
 Чтобы выполнить настройку компонента,​ нужно в дереве элементов открыть вкладку "​Сниппеты",​ в ней - Shopkeeper, открыть одноименный сниппет и перейти на вкладку "​Параметры"​. Чтобы выполнить настройку компонента,​ нужно в дереве элементов открыть вкладку "​Сниппеты",​ в ней - Shopkeeper, открыть одноименный сниппет и перейти на вкладку "​Параметры"​.
Строка 193: Строка 193:
  
  
-Множеcтвенный вызов сниппета является частой ошибкой. Типичным сценарием является двойной вызов на странице подробной корзины,​ когда Shopkeeper вызывается и в шапке сайта, и в теле документа.  +Множественный вызов сниппета является частой ошибкой. Типичным сценарием является двойной вызов на странице подробной корзины,​ когда Shopkeeper вызывается и в шапке сайта, и в теле документа.  
-Чтобы показать подробную корзину,​ нам нужно запретить вызов сниппета в шапке. Для этого нужно в наборе праметров маленькой корзины заполнить свойство hideOn, указав один или несколько ID страниц,​ где маленькую корзину вызывать не нужно. Как правило,​ достаточно вписать сюда только ID страницы,​ где размещена подробная корзина.+Чтобы показать подробную корзину,​ нам нужно запретить вызов сниппета в шапке. Для этого нужно в наборе параметров маленькой корзины заполнить свойство hideOn, указав один или несколько ID страниц,​ где маленькую корзину вызывать не нужно. Как правило,​ достаточно вписать сюда только ID страницы,​ где размещена подробная корзина.
  
 ==== Добавление кнопки "​Купить"​ ==== ==== Добавление кнопки "​Купить"​ ====
Строка 257: Строка 257:
 === Добавление кнопки корзины на страницу категории товара === === Добавление кнопки корзины на страницу категории товара ===
  
-Чтобы добавить кнопку "​Купить"​ в шаблон категории товара,​ приведенный выше код надо немного модифицировать. Поскольку мы выводим список товаров с помощью сниппета getProducts (или getResources),​ вывод полей документа нужно заменить на вывод соответсвующих плейсходлеров. Вот как выглядит чанк categoryItem после модицикации:​+Чтобы добавить кнопку "​Купить"​ в шаблон категории товара,​ приведенный выше код надо немного модифицировать. Поскольку мы выводим список товаров с помощью сниппета getProducts (или getResources),​ вывод полей документа нужно заменить на вывод соответствующих плейсходлеров. Вот как выглядит чанк categoryItem после модификации:​
  
 <​code>​ <​code>​
Строка 277: Строка 277:
 </​code>​ </​code>​
  
-Обратите внимание,​ что вызовы полей ресурса типа %%[[*pagetitle]]%% мы заменили на вызов плейсхолдеров %%[[+pagetitle]]%%,​ а к вызову TV (цена и изображение товара) добавили соответсвующий префикс.+Обратите внимание,​ что вызовы полей ресурса типа %%[[*pagetitle]]%% мы заменили на вызов плейсхолдеров %%[[+pagetitle]]%%,​ а к вызову TV (цена и изображение товара) добавили соответствующий префикс.
  
 Рабочий пример вывода товара в каталоге лежит в файлах /​core/​components/​shopkeeper/​elements/​chunks/<​язык>​.product1.tpl и product2.tpl Рабочий пример вывода товара в каталоге лежит в файлах /​core/​components/​shopkeeper/​elements/​chunks/<​язык>​.product1.tpl и product2.tpl
Строка 339: Строка 339:
 </​code>​ </​code>​
  
-В этой статье мы не будем подробно останавливаться на описании работы FormIt, если вы не знаете,​ как он работает - пожалуйста,​ ознакомьтесь с [[http://​rtfm.modx.com/​extras/​revo/​formit|документацией]] по этому сниппету. Вкатце,​ он просто собирает данные нашей формы и по очереди выполняет сниппеты,​ указанные в параметре &hooks. В данном примере FormIt:+В этой статье мы не будем подробно останавливаться на описании работы FormIt, если вы не знаете,​ как он работает - пожалуйста,​ ознакомьтесь с [[http://​rtfm.modx.com/​extras/​revo/​formit|документацией]] по этому сниппету. Вкратце, он просто собирает данные нашей формы и по очереди выполняет сниппеты,​ указанные в параметре &hooks. В данном примере FormIt:
   * проверяет форму на предмет спама   * проверяет форму на предмет спама
   * сохраняет заказ покупателя в компонент "​Управление заказами"​   * сохраняет заказ покупателя в компонент "​Управление заказами"​
Строка 360: Строка 360:
 Подключение каждой платежной системы индивидуально,​ но все они работают примерно по одному принципу:​ Подключение каждой платежной системы индивидуально,​ но все они работают примерно по одному принципу:​
  
-  - мы должны отправить платежной системе инфромацию о заказе (как минимум сумму заказа),​ и свою идентификационную информацию,​ чтобы ПС знала, какой интернет-магазин будет получателем платежа,​+  - мы должны отправить платежной системе информацию о заказе (как минимум сумму заказа),​ и свою идентификационную информацию,​ чтобы ПС знала, какой интернет-магазин будет получателем платежа,​
   - платежная система проводит платеж (на сайте нашего магазина или на своем сайте),​ после чего возвращает нам ответ,   - платежная система проводит платеж (на сайте нашего магазина или на своем сайте),​ после чего возвращает нам ответ,
   - мы смотрим на ответ и если ПС сообщила,​ что платеж прошел успешно,​ мы должны изменить статус заказа на "​оплачен"​ и отправить клиенту товар, предоставить ссылку для скачивания и тд,   - мы смотрим на ответ и если ПС сообщила,​ что платеж прошел успешно,​ мы должны изменить статус заказа на "​оплачен"​ и отправить клиенту товар, предоставить ссылку для скачивания и тд,
Строка 381: Строка 381:
 === Отправка с помощью html-формы === === Отправка с помощью html-формы ===
  
-Пример простейшей формы, которая передает на сайт http://​payment-operator.com три значения - ID магазина,​ сумму платежа и адрес, по которому мы хотм получить ответ платежной системы:​+Пример простейшей формы, которая передает на сайт http://​payment-operator.com три значения - ID магазина,​ сумму платежа и адрес, по которому мы хотим получить ответ платежной системы:​
  
 <​code>​ <​code>​
Строка 400: Строка 400:
 === Отправка данных с помощью сниппета или плагина === === Отправка данных с помощью сниппета или плагина ===
  
-Использование форм не всега удобно и не оптимально с точки зрания безопасности.+Использование форм не всегда удобно и не оптимально с точки зрения безопасности.
  
 В предыдущем пункте для того, чтобы отправить заказ платежной системе,​ нам пришлось ввести дополнительный шаг "​подтверждение заказа"​. Этого можно избежать,​ если отправлять данные с помощью php. Кроме того, посмотрев исходный код страницы,​ любой человек может узнать наш ID в платежной системе,​ что обычно крайне нежелательно. В предыдущем пункте для того, чтобы отправить заказ платежной системе,​ нам пришлось ввести дополнительный шаг "​подтверждение заказа"​. Этого можно избежать,​ если отправлять данные с помощью php. Кроме того, посмотрев исходный код страницы,​ любой человек может узнать наш ID в платежной системе,​ что обычно крайне нежелательно.
Строка 441: Строка 441:
 Подробнее о плагинах MODX - в [[http://​rtfm.modx.com/​revolution/​2.x/​developing-in-modx/​basic-development/​plugins|официальной документации]]. Подробнее о плагинах MODX - в [[http://​rtfm.modx.com/​revolution/​2.x/​developing-in-modx/​basic-development/​plugins|официальной документации]].
  
-Список событий Shopkeeper-а - на соответсвующей [[shopkeeper_snippet|странице вики.]]+Список событий Shopkeeper-а - на соответствующей [[shopkeeper_snippet|странице вики.]]
  
 В этой статье мы будем считать,​ что используется не плагин,​ а именно сниппет. В этой статье мы будем считать,​ что используется не плагин,​ а именно сниппет.
  
simple_integration.txt · Последние изменения: 2016/04/23 15:44 (внешнее изменение)