shopengine 2 manual russian

47
1 Документация по использованию ShopEngine 2 Документация по использованию ShopEngine 2 1. Инсталляция на сервере................................................................................................................... 2 1.1. Требования программного обеспечения сервера ................................................................. 2 1.2. Загрузка файлов на сервер .................................................................................................... 2 1.3. Инсталляция движка SE2........................................................................................................ 2 2. Конфигурирование сайта .................................................................................................................. 5 2.1. Изменение настроек сайта...................................................................................................... 5 2.1.1. Конфигурационные параметры .................................................................................. 6 2.2. Конфигурирование для нескольких доменных имен ............................................................. 8 3. Создание "Темы" (Дизайна вашего сайта) ....................................................................................... 9 3.1 Что такое "Тема" и как это работает ....................................................................................... 9 3.2 Стандарты написания шаблонов........................................................................................... 10 3.2.1 Общие правила для всех страниц сайта................................................................... 10 3.2.2 Правила написания шаблона страницы item.php ................................................... 11 3.2.3 Правила написания шаблона страницы group.php................................................. 11 3.2.4 Правила написания шаблона страницы search.php ............................................... 11 3.2.5 Правила написания шаблона страницы contacts.php............................................... 12 3.2.6 Правила написания шаблона страницы cart.php ...................................................... 12 3.3. Использование модулей ....................................................................................................... 13 3.4. Модули ................................................................................................................................... 14 3.4.1 Модуль "cart"............................................................................................................... 14 метод sum_data ............................................................................................................. 15 метод delivery_data ........................................................................................................ 16 метод item_data ............................................................................................................. 17 метод clear_cart_data ..................................................................................................... 19 3.4.2 Модуль "item" .............................................................................................................. 20 метод item_id_by_priority................................................................................................. 20 метод item_data_by_ids .................................................................................................. 21 метод group_list .............................................................................................................. 23 метод group_data ........................................................................................................... 24 метод item_name ........................................................................................................... 26 метод item_data ............................................................................................................. 27 3.4.3 Модуль "settings" ........................................................................................................ 29 метод get_contact_data................................................................................................... 29 3.4.4 Модуль "contacts" ....................................................................................................... 30 метод send_data ............................................................................................................ 30 метод show_kcaptcha_image .......................................................................................... 32 3.4.5 Модуль "userseans" .................................................................................................... 33 метод get_sid_data ......................................................................................................... 33 3.4.6 Модуль "search" .......................................................................................................... 34 метод show_alhobit ......................................................................................................... 34 метод get_items_data ..................................................................................................... 35 3.4.7 Модуль "navigation"..................................................................................................... 37 метод menu ................................................................................................................... 37 3.4.8 Модуль "order" ............................................................................................................ 39 метод site_data .............................................................................................................. 40 метод user_data ............................................................................................................. 41 метод save_order ........................................................................................................... 43 метод clear_order_data ................................................................................................... 44 4. Исправление неисправностей. ....................................................................................................... 45 5. Frequently Asked Questions ............................................................................................................. 46 5.1. Как убрать товары с shopengine ........................................................................................... 46 5.2. Смена URL ............................................................................................................................. 47

Upload: zimbodemon

Post on 16-Nov-2014

208 views

Category:

Documents


4 download

DESCRIPTION

SE2 Manual

TRANSCRIPT

Page 1: ShopEngine 2 Manual Russian

1

Документация по использованию ShopEngine 2

Документация по использованию ShopEngine 21. Инсталляция на сервере................................................................................................................... 2

1.1. Требования программного обеспечения сервера ................................................................. 21.2. Загрузка файлов на сервер .................................................................................................... 21.3. Инсталляция движка SE2........................................................................................................ 2

2. Конфигурирование сайта.................................................................................................................. 52.1. Изменение настроек сайта...................................................................................................... 5

2.1.1. Конфигурационные параметры .................................................................................. 62.2. Конфигурирование для нескольких доменных имен ............................................................. 8

3. Создание "Темы" (Дизайна вашего сайта)....................................................................................... 93.1 Что такое "Тема" и как это работает ....................................................................................... 93.2 Стандарты написания шаблонов........................................................................................... 10

3.2.1 Общие правила для всех страниц сайта................................................................... 103.2.2 Правила написания шаблона страницы item.php................................................... 113.2.3 Правила написания шаблона страницы group.php................................................. 113.2.4 Правила написания шаблона страницы search.php ............................................... 113.2.5 Правила написания шаблона страницы contacts.php............................................... 123.2.6 Правила написания шаблона страницы cart.php...................................................... 12

3.3. Использование модулей ....................................................................................................... 133.4. Модули ................................................................................................................................... 14

3.4.1 Модуль "cart"............................................................................................................... 14метод sum_data ............................................................................................................. 15метод delivery_data ........................................................................................................ 16метод item_data ............................................................................................................. 17метод clear_cart_data ..................................................................................................... 19

3.4.2 Модуль "item".............................................................................................................. 20метод item_id_by_priority................................................................................................. 20метод item_data_by_ids .................................................................................................. 21метод group_list.............................................................................................................. 23метод group_data........................................................................................................... 24метод item_name ........................................................................................................... 26метод item_data ............................................................................................................. 27

3.4.3 Модуль "settings" ........................................................................................................ 29метод get_contact_data................................................................................................... 29

3.4.4 Модуль "contacts" ....................................................................................................... 30метод send_data ............................................................................................................ 30метод show_kcaptcha_image .......................................................................................... 32

3.4.5 Модуль "userseans" .................................................................................................... 33метод get_sid_data......................................................................................................... 33

3.4.6 Модуль "search" .......................................................................................................... 34метод show_alhobit......................................................................................................... 34метод get_items_data ..................................................................................................... 35

3.4.7 Модуль "navigation"..................................................................................................... 37метод menu ................................................................................................................... 37

3.4.8 Модуль "order" ............................................................................................................ 39метод site_data .............................................................................................................. 40метод user_data ............................................................................................................. 41метод save_order ........................................................................................................... 43метод clear_order_data ................................................................................................... 44

4. Исправление неисправностей. ....................................................................................................... 455. Frequently Asked Questions ............................................................................................................. 46

5.1. Как убрать товары с shopengine ........................................................................................... 465.2. Смена URL............................................................................................................................. 47

Page 2: ShopEngine 2 Manual Russian

2

Документация по использованию ShopEngine 2

1. Инсталляция на сервереПеред загрузкой файлов системы на сервер, убедитесь, что программное обеспечение сервера

удовлетворяет требованиям необходимым для работы ShopEngine 2 (далее по тексту SE2).

1.1. Требования программного обеспечения сервера

Операционнаясистема

*nix, freeBSD, Windows server v.*

Web-server Apache 1.3.7 или выше, рекомендуемая версия 2.x. Долныприсутствовать модули openssl, rewrite

PHP Версия не ниже 5.0.2

1.2. Загрузка файлов на серверДля загрузки файлов на сервер воспользуйтесь ftp доступом. Откройте ftp соединение с

сервером и загрузите файлы из папки se2 в корневую директорию вашего web-сервера(поинтересуйтесь у провайдера какая директория является DOCUMENT ROOT на вашем сервере).

После загрузки файлов ваша корневая папка web-сервера должна иметь следующий вид:

_cnf Каталог с конфигурационными файлами

core Корневой каталог в котором содержатся файлы системы

data Данная папка содержит файлы каталога товаров

temp Каталог для временных файлов

themes Каталог содержащий "Темы"

thumbs Изображения товаров

var Каталог в который сохраняются заказы. cacert.pem SSL сертификат index.php Загрузчик ядра системы

1.3. Инсталляция движка SE21. Далее, наберите в браузере следующее:

http://ваш_домен/index.php?get_statusВам будет выдана информация по состоянию вашего сервера

Page 3: ShopEngine 2 Manual Russian

3

Документация по использованию ShopEngine 2

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

2. После правильной загрузки файлов на сервер, наберите в браузере следующий адрес:http://ваш_домен/index.php?xmlupdate. Для создания вашего каталога. Если возникаюткакие либо ошибки, возможно вам необходимо поменять права на каталог data.

3. Наберите в строке браузера следующий адрес:http://ваш_домен/index.php?installВы должны увидеть следующую надпись:

Если скрипт сообщил, что на сервере не удалось обнаружить mod_rewrite, а вы уверенычто mod_rewrite установлен, попробуйте такую команду:http://domain.com/index.php?install_manual_mr

Installation complete.

Page 4: ShopEngine 2 Manual Russian

4

Документация по использованию ShopEngine 2

Вы должны увидеть

Если же на вашем сервере не установлен модуль mod_rewrite, то установка shopengineвыполняется такой командойhttp://domain.com/index.php?install_manual_nmrВ этом случае вы не сможете сделать красивые ссылки вида /item/имя_товара.html

4. Далее перейдите на главную страницу вашего сайта, если вы видите заглавную страницумагазина, то все в порядке, в противном случае обратитесь к разделу "Исправлениенеисправностей" данной документации.После завершения установки рекомендуется деактивировать команды index.php?install,

install_manual_mr, install_manual_nmr, чтобы предотвратить возможность изменения ссылочнойструктуры сайта извне. Для этого в файле /core/kernel.cls.php в массиве $this->system_pages = arrayнужно закомментировать (поставить // вначале строки) соответствующие строки:

Можно также закомментировать строки get_status и xmlupdate, но в этом случае вы несможете просматривать результат теста get_status и не сможете обновлять каталог командойxmlupdate. Если вы закомментируете другие строки кроме упомянутых - это может привести кошибкам в работе сайта.

Installation complete.

//'install' => array('module' => 'install', 'action' => 'install'),//'install_manual_mr' => array('module' => 'install', 'action' => 'install_with_mr'),//'install_manual_nmr' => array('module' => 'install', 'action' => 'install_without_mr'),

Page 5: ShopEngine 2 Manual Russian

5

Документация по использованию ShopEngine 2

2. Конфигурирование сайта

2.1. Изменение настроек сайтаКогда происходит запрос какой-либо страницы сайта, ядро системы загружает

конфигурационные файлы. Файлы загружаются по следующей логике.5. Загружается файл _cnf/default.cnf.php.6. Или грузится конфигурационный файл по пути (если такой существует) _cnf/

[Ваш_домен].cnf.php.Теперь давайте рассмотрим конфигурационные параметры, которые вы можете настроить.

Синтаксис описания параметра – Имя_параметра:значение;. Вот так выглядит файл конфигурации:

Пример: Имя параметра:значение;

log: off;freeviagra: on;price_default:0.55;

thememain: blue;order: blue;simple-url:off;

master-carduse: on;filter: 188,162,156,3073,3074,3075,3076,3077,267,251,1095,830,638,647,639;

money-typesuse: on;default: us;types: us,eu;prefix: $,"€";convert-config:curs.cnf;ip-table: ip-to-country.cnf;

supportemail: [email protected];host: canadianpharmsupport.com;

Page 6: ShopEngine 2 Manual Russian

6

Документация по использованию ShopEngine 2

2.1.1. Конфигурационные параметрыПараметры, не выделенные в блоки:

Имя параметра Возможныезначения Описание

price_default цифра Множитель цен по умолчанию. Через данныйпараметр можно настроить общий множитель цен.

price id_товара:множитель; Множитель для конкретного товараlog on или off Вести лог запросов или нет. Включает или выключает

логированние запросов. Используется для отладкиработы сайта.

freeviagra on или off Включает или выключает добавлении бесплатныхтаблеток Виагры к каждому заказу.

Параметры блока theme

Имя параметра Возможныезначения Описание

main Имя каталога из папкиthemes. Например, blue

Имя используемой "темы" для данного сайта.

order Имя каталога изпапки themes/sys/. безпрефикса order.

Имя темы формы оформления заказа.

simple-url on или off Включение ЧПУ url – красивых url адресов.Внимание: работает только при наличииmod_rewrite.

support_email [email protected] m Адрес электронной почты, куда будутотправляться сообщения от пользователя. Сформы контактов.

support_host mydomain.com Адрес сайта службы поддержки. Может бытьзапрошен из шаблона какой либо страницы дляконтекстного отображения.

Параметры блока support

Имя параметра Возможныезначения Описание

use on или off Использовать или нет преобразование типавалюты в ценах на сайте.

default mydomain.com Адрес сайта службы поддержки. Может бытьзапрошен из шаблона, какой либо страницы дляконтекстного отображения.

types перечисление валют.prefix перечисление префиксов

валютconvert-config таблица конвертации

валютip-table таблица определения

валюты по ip клиента

Page 7: ShopEngine 2 Manual Russian

7

Документация по использованию ShopEngine 2

Параметры блока master-card

Имя параметра Возможныезначения Описание

use on или off Разрешать оплату карточками mastercard или нет.filter off или перечисление id

препаратов на которыеразрешить mastercard,через запятую.

Фильтрация разрешения оплаты. Если значениене off то для перечисленых id будет разрешенаоплата mastercard ом.

Параметры блока money-types

Имя параметра Возможныезначения Описание

use on или off Разрешать оплату карточками mastercard или нет.filter off или перечисление id

препаратов на которыеразрешить mastercard,через запятую.

Фильтрация разрешения оплаты. Если значениене off то для перечисленых id будет разрешенаоплата mastercard ом.

Page 8: ShopEngine 2 Manual Russian

8

Документация по использованию ShopEngine 2

2.2. Конфигурирование для нескольких доменных именДвижок SE2 поддерживает работу нескольких сайтов на одном движке. Если у вас есть

несколько доменных имен или вы создали несколько доменов 3го уровня от вашего основногодомена. И хотели бы на каждом разместить ваш сайт, но с разным внешним видом и параметрами -это возможно.

В первую очередь вам надо настроить VirtualHostы вашего web сервера (Apache).Необходимо произвести следующие настройки:

1. Заведите необходимое количество виртуальных хостов (файл httpd.conf вашего Apacheсервера):

Как видно из параметров DocumentRoot для всех сайтов ведет на один и тот же каталог.Движок сам распознает запрошенный домен и загрузит необходимый конфигурационныйфайл, что позволит применять разнообразные параметры описанные в предыдущем разделе, дляразных доменов. Разные Темы позволяют сделать внешне разные сайта. И у посетителей сложитсявпечатление посещение разных сайтов.

Файл: httpd.conf<VirtualHost *:80>

ServerAdmin [email protected] mydomain.comDocumentRoot /var/www/se2ErrorLog /var/log/httpd/local-error_logCustomLog /var/log/httpd/local-access_log common

</VirtualHost><VirtualHost *:80>

ServerAdmin [email protected] site1.mydomain.comDocumentRoot /var/www/se2ErrorLog /var/log/httpd/local-error_logCustomLog /var/log/httpd/local-access_log common

</VirtualHost><VirtualHost *:80>

ServerAdmin [email protected] site2.mydomain.comDocumentRoot /var/www/se2ErrorLog /var/log/httpd/local-error_logCustomLog /var/log/httpd/local-access_log common

</VirtualHost>

<Directory "/var/www/se2/">AllowOverride All

</Directory>

# Пути могут не совпадать, необходимо указывать правильные локальные пути на вашем сервере.

Page 9: ShopEngine 2 Manual Russian

9

Документация по использованию ShopEngine 2

3. Создание "Темы" (Дизайна вашего сайта)

3.1 Что такое "Тема" и как это работаетИтак "Тема" это набор файлов - страниц, которые видит пользователь. Если в создадите

файл и именем filename.tpl в корневой директории текущей темы1, то при обращенииhttp://mydomain.com/filename.php посетитель увидит именно содержимое данного файла (шаблона2)обработанного шаблонизатором3.

Что это значит.Это значит что если вы хотите создать новую страницу на вашем сайте, вам достаточно

создать шаблон данной страницы в текущей теме. Вас при этом никто не ограничивает отиспользования include директив шаблонизатора, для вставки содержимого другого шаблона втекущий. Это позволяет вам создать привычную вам структуру (Шапка - содержимое - Низ (Head -body - foot)). Давайте теперь определимся как в шаблон добавлять какие либо данные из движкамагазина.

1 Текущая тема – это тема имя которой указано в конфигурационном файле, влияющим на данный домен.2 Шаблон –файл представляющий собой html файл с включенными в него инструкциями шаблонизатора.3 Шаблонизатор – движек, который обрабатывает файлы шаблона, находит в них скрытые инструкции ипроизводит упомянутые действия. Результат работы шаблонизатора отдается пользователю ввиде htmlстраницы. В SE2 в качестве шаблонизатора используется smarty - подробнее о нем вы можете узнать наhttp://www.smarty.net. На том же сайте вы найдете подробную инструкцию и руководство по написанию

Page 10: ShopEngine 2 Manual Russian

10

Документация по использованию ShopEngine 2

3.2 Стандарты написания шаблонов.Итак, мы уже разобрались, что каждая страница сайта имеет свой шаблон, файл и таким же

именем как запрашиваемая страница, но с другим расширением (.tpl). Для правильноговзаимодействия данных движка и шаблонами (запоминание вводимых пользователем данных,добавление товаров в корзину и т.д.) есть правила именование полей форм, которые отправляютсяна сервер при нажатии разных кнопок (add to cart и т.д.). Также есть стандарты написаниянекоторых страниц, и некий набор правил, облегчающий разработку новой темы. Давайте на нихостановимся подробнее.

3.2.1 Общие правила для всех страниц сайта.Для корректной работы вашего сайта, и дабы исключить нестандартные ситуации, давайте

договоримся что в корневом каталоге темы должны лежать только те файлы шаблонов которыеотвечают за конкретную страницу. А остальные дополнительные файлы шаблонов (например,шаблон шапки сайта), мы будем размещать в каталоге /data/ находящимся в корневом каталогетемы. Также необходимо выделить отдельный каталог для используемых картинок, стилей, флэшобъектов. То есть структура каталогов вашей темы должна выглядеть следующим образом:

css Каталог с файлами стилей

data Каталог со вспомогательными шаблонами

img Каталог с изображениями дизайна

modules Обязательный каталог, в котором хранятся шаблоны модулей.

pages Тут будем хранить сверстанные статичные страницы, такие какfaq , privacy police и т.д.

swf Флэш объекты используемые в теме

temp Обязательный каталог, в котором шаблонизатор хранитскомпилированные версии ваших шаблонов.

Как вы видите, из обязательных каталогов не должны меняться или отсутствовать только 2каталога modules и temp. Остальные вы можете переименовать, или не создавать, или создать идругие каталоги. Но мы все таки советуем вам привыкнуть к такому расположению каталогов, хотябы из-за того, что стандартные темы поставляемые с движком будут придерживаться данногостандарта. Вам проще будет потом ориентироваться в темах созданных не вами.

При написании шаблона не забывайте указывать полный путь к картинкам/themes/имя_шаблона/img/имя_картинки.

Если вы планируете использовать стандартный механизм добавления товаров в корзину, тов каждой странице должен быть вставлен следующий код:

В таком случае для добавления товара в корзину, вернее формирования ссылки добавления

<script type="text/javascript" src="/themes/card.js"x/script><script type="text/javascript">

:se_module module="userseans" action="get_sid_data" var_name="session":var SessionType = ":$session.type:";var SessionPrefix = ":$session.id:";var SessionName = ":$session.varname:";

</script><form id="add_item_to_cart_from" method="POST" action="/cart.php">

<input type="hidden" name="item_id" value="" /><input type="hidden" name="daction" value="add"/><input type="hidden" name="save_position" value=":if $current_page == 'cart':no:else:yes:/if:" /><input type="hidden" name=":$session.varname:" value=":$session.id:" />

</form>

Page 11: ShopEngine 2 Manual Russian

11

Документация по использованию ShopEngine 2

товара в корзину вам необходимо написать ее следующим образом:

а) <a href="/cart.php" onclick="return add_item_to_cart('код_товара');">имя_товара</a> - для добавлениядочернего элемента открытого товара.

б) Для добавления родительского товара, просто используйте ссылка на полнуюинформацию о товаре.

В каждый шаблон в smarty передается переменная current_page – содержащее имязапрошеной страницы (вместо страницы index – переменная содержит значение home). То есть призапросе страницы http://mydomain.com/contacts.php переменная будет содержать значение =contacts.

Таблица принятых имен страниц, которые лучше не менять

Имя страницы Файл шаблона Описание Критичностьсмены имени.

index.php index.tpl Главная страница сайта КРИТИЧНОcart.php cart.tpl Корзина заказов КРИТИЧНОitem.php item.tpl Страница с описанием товаров критичноgroup.php group.tpl Страница с товарами

выбранной группыкритично

search.php search.tpl Страница поиска товаров критичноalLproducts.php alLproducts.tpl Страница со всеми продуктами не критичноantispam_policy.php antispam_policy.tpl Страница политика анти - спама не критичноcontacts.php contacts.tpl Страница формы контактов не критичноfaq.php faq.tpl Страница часто

задаваемых вопросовне критично

item_price.php item_price.tpl Всплывающее окно сдочерними товарами при нажатиина ссылке заказать родительскийтовар

не критично

moneyback_policy.php moneyback_policy.tpl Страница политикивозвращения денег

не критично

privacy_policy.php privacy_policy.tpl Страница политики безопасности не критичноshipping_policy.php shipping_policy.tpl не критично

Также присутствуют зарезервированные системой, имена шаблонов. То есть файлы стакими именами нельзя создавать.

Список зарезервированных имен: kaptcha.tpl, process_order.tpl, checker1.tpl, checker2.tpl,checker3.tpl, checker4.tpl

3.2.2 Правила написания шаблона страницы item.phpИмя шаблона item.tpl – не переименовывать. Переименование повлечет некорректную

работу ссылок возвращаемых в данных модулей. Если вы все ссылки генерируете сами, то можетепереименовать данный файл.

3.2.3 Правила написания шаблона страницы group.phpИмя шаблона group.tpl – не переименовывать. Переименование повлечет некорректную

работу ссылок возвращаемых в данных модулей. Если вы все ссылки генерируете сами, то можетепереименовать данный файл.

3.2.4 Правила написания шаблона страницы search.phpИмя шаблона search.tpl – не переименовывать. Переименование повлечет некорректную

работу ссылок возвращаемых в данных модулей. Если вы все ссылки генерируете сами, то можете

Page 12: ShopEngine 2 Manual Russian

12

Документация по использованию ShopEngine 2

переименовать данный файл.

3.2.5 Правила написания шаблона страницы contacts.phpИмя шаблона contacts.tpl.На данной странице расположена форма отправки сообщения в службу поддержки.

Для корректной работы движка, имена полей формы четко стандартизованы и не могут бытьизменены.

Таблица имен полей формы отправки сообщения службе поддержки.

Поле Имя поляИмя отправителя nameEmail отправителя emailТип месенджера messengerНомер мессенджера messenger_contactТекст сообщения textКод kcaptcha keycode

Данные формы должны отправляться методом POST. Для получения изображения кодаkcapthca используйте следующий html код вывода картинки:

<img src="/kaptcha.php" alt="" style="border:1px solid #CCCCCC">

3.2.6 Правила написания шаблона страницы cart.phpИмя шаблона cart.tpl – не переименовывать.На данной странице расположена форма обновления данных в корзине. Для корректной

работы движка, имена полей формы четко стандартизованы и не могут быть изменены.Таблица имен полей формы товаров в корзине.

Поле Имя поляКоличество товара item_quantity[код_товара]Код скидки подисконту

discount_code

Переключательтипа доставки

delivery

Данные формы должны отправляться POST методом.Для обновления данных в корзине, кнопку необходимо реализовать подобным образом:

<INPUT TYPE="image" onclick="return cart_update();" name="update" src="/themes/blue/img/update_cart.gif" value="update">

Для удаления товара из корзины ссылку необходимо реализовать следующим образом:

<a href="cart.php?del=:$item.id:" onclick="return delete_item_from_cart(':$item.id:');">delete</a>

Page 13: ShopEngine 2 Manual Russian

13

Документация по использованию ShopEngine 2

3.3. Использование модулейВ движке SE2 есть четко определенная модульная структура. Каждый модуль определяет

некий набор действий над доверенной ему частью(Список модулей и их действий см. ниже). Вшаблоне вы можете обратиться к модулям SE2 для получения каких либо данных, илипроизведения каких либо действий. Для вызова действия модуля используется функцияшаблонизатора se_module, вот в таком синтаксисе::se_module module="Имя модуля" action="Имя действия" дополнительные параметры:

Рассмотрим пример:Вам необходимо вывести Суммарную Цены товаров в корзине и количество находящихся в

ней товаров.

Как видно из примера до того как мы начинаем выводить данные о сумме заказа иколичестве заказываемых товаров мы делаем запрос к модулю se2 под названием cart длявыполнения команды sum_data, и говорим что данные необходимо вернуть в переменную cart_data.

То есть вызов :se_module module="cart" action="sum_data" var_name="cart_data": ничто иноекак обращение к модулю cart (module="cart") вызов его метода sum_data (action="sum_data") ипередачу дополнительного параметра var_name="cart_data", который для этого метода означает,что возвращаемые данные нужно положить в переменную cart_data шаблонизатора.

Далее мы можем использовать эту информацию. Зная, что данный метод модуля cartвозвращает данные в виде ассоциативного массива с ключами sum (суммарная цена заказа) иitems (количество заказанных товаров).

файл: /themes/blue/data/header.tpl<!-- Обращаемся к движку для импорта суммарных данных о корзине -->:se_module module="cart" action="sum_data" var_name="cart_data":<div id="top_cart"> Your cart:

<span class="number">$:$cart_data.sum|string_format:"%.2f":</span> (:$cart_data.items: items)<a href="/cart.php" onclick="return add_item_to_cart(0);">Proceed to Checkout</a>

</div>

Page 14: ShopEngine 2 Manual Russian

14

Документация по использованию ShopEngine 2

3.4. Модули

3.4.1 Модуль "cart"При вызове любого метода, происходит вызов скрытого метода, по обновлению данных корзины.

Проверяются следующие данные в $_POST массиве (пришедшие POST методом при запросестраницы).

Если переданы переменные item_id и daction, то в зависимости от значения переменнойdaction происходит:

7. Если daction = add то добавление товара и идентификационным номером item_id в корзину (вслучае существование в корзины товара с данным идентификационным номером,происходит увеличение кол-ва товара).

8. Если daction = delete, то удаление из корзины товара с идентификационным номеромitem_id.Если передана переменная item_quantity, то происходит изменение кол-ва товаров описанных

в данной переменной. Переменная представляет собой ассоциативный массив, ключами которого являютсяидентификационные номера товаров, а значением их количество.

Если передана переменная discount_code, то производится сохранение дисконтного кода ивысчитывание размера скидки в процентах, по данному дисконту.

Если передана переменная save_position и ее значение равно yes, то происходит сохранениестраницы с которой пришел пользователь в переменную referrer_position (см. метод item_data).

Если передана переменная delivery, то происходит сохранение типа доставки, имя которогоравно значению переменной delivery.

Page 15: ShopEngine 2 Manual Russian

15

Документация по использованию ShopEngine 2

метод sum_data

Описание:Метод возвращает данные о товарах в корзине в сжатом виде. Для получения болееподробных данных используйте метод item_data.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данные возвращаются впеременной с именем module_data

Результат:Возвращается ассоциативный массив.

Ключ массива Описание значенияsum Суммарная цена товаров в корзине, без учета цены доставки.items Количество товаров в корзине

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

файл: /themes/blue/data/header.tpl…<!-- Обращаемся к движку для импорта суммарных данных о корзине -->:se_module module="cart" action="sum_data" var_name="cart_data":<div id="top_cart">

Your cart:<span class="number">$:$cart_data.sum|string_format:"%.2f":</span>(:$cart_data.items: items)<a href="/cart.php" onclick="return add_item_to_cart(0);">Proceed to Checkout</a>

</div>…

Page 16: ShopEngine 2 Manual Russian

16

Документация по использованию ShopEngine 2

метод delivery_data

Описание:Метод возвращает данные о видах доставки товаров.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данные возвращаются впеременной с именем module_data

Результат:Возвращается ассоциативный массив.

Ключ массива Описание значенияcount Количество методов доставкиtypes Массив методов доставки. Элементом массива является

ассоциативный массив со следующими ключами:name - Имя типа доставкиprice - Цена доставкиdescription - Описание типа доставкиdefault - если значение = 2, то данный тип выбранпользователем.

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

Page 17: ShopEngine 2 Manual Russian

17

Документация по использованию ShopEngine 2

метод item_data

Описание:Метод возвращает данные о товарах в корзине.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data

Результат:Возвращается ассоциативный массив.

Ключ массива Описание значенияtotal Общая сумма заказа, включая цену доставки и скидку по discount.items Массив заказанных товаров. Элементом массива является

ассоциативный массив со следующими ключами:id - Идентификационный номер товараparent_id – Идентификационный номер родительского товараquantity - Количество товараprice - Ценаname_item - имя товараname_package - Имя пакета товаров в который входит данныйтоварdescription - Описание товараtotal - Суммарная цена за товар. Цена помноженная наколичество

count_items Количество заказанных товаров.referrer_position Адрес страницы с которой пользователь попал в корзину.

Используется для ссылки continue shoping.discount_percent Количество процентов скидки по дисконтуdiscount_value Сумма скидки по дисконтуdiscount_code Номер дисконта введенный пользователем.

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

Page 18: ShopEngine 2 Manual Russian

18

Документация по использованию ShopEngine 2

файл: /themes/blue/cart.tpl…<!-- Обращаемся к движку для импорта данных корзины -->:se_module module="cart" action="item_data" var_name="cart_data":...:if $cart_data.count_items > 0:

:foreach name=items key=key item=item from=$cart_data.items:<tr>

<td class="cart_item"><b>:$item.name_package:</b><br>:$item.name_item: <br><i style="font-size:10;">(Generic)</i>

</td><td class="cart_item" align=center valign="middle"><b>$:$item.price:</b></td><td align=center valign="middle" class="cart_item">

<input ... name="item_quantity[:$item.id:]" value=":$item.quantity:"></td><td class="cart_item" align="center" valign="middle"><SPAN class="red">$:$item.total:</SPAN></td><td ....>

<a href=”/cart.php?del=:$item.id:" onclick="return delete_item_from_cart(':$item.id:');" ...><img src=”/themes/blue/img/delete.gif" border="0" alt="delete">

</a></td>

</tr>:/foreach:

<tr><td colspan="5" ><br><hr size="1" color="#e5e5e5"></td></tr><tr>

<td valign="middle"><b>Discount code:</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="form" name="discount_code" value=":$cart_data.discount_code:">

</td>:if $cart_data.discount_percent > 0:

<td align="center"><b>:$cart_data.discount_percent:%</b></td><td align="center">Discount:</td><td align="center"><b style="color: green;">- $:$cart_data.discount_value:</b></td>

:/if:</tr>

…:else:

<tr><td colspan="5" >Your cart is empty.</td>

</tr>:/if:

Page 19: ShopEngine 2 Manual Russian

19

Документация по использованию ShopEngine 2

метод clear_cart_data

Описание:Метод очищает все данные в корзине. Используется для завершения заказа, после завершенияпроцедуры заказа возникает необходимость очистить корзину.

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

Page 20: ShopEngine 2 Manual Russian

20

Документация по использованию ShopEngine 2

3.4.2 Модуль "item"Предоставляет данные о товарах и группах.

метод item_id_by_priority

Описание:Возвращает массив идентификаторов товаров упорядоченных по приоритету важности.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data

Результат:Возвращается массив элементов. Элемент представлен ассоциативным массивом.

Ключ массива Описание значенияitem_id Идентификационный номер товара.group_id Идентификационный номер группы товаров.priority Приоритет важности товара. Чем выше данное число, тем важнее

товар.

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

файл: /themes/white/data/we_recommend_items.tpl...<!-- Обращаемся к движку для импорта списка товаро по их приоритету -->:se_module module="item" action="item_id_by_priority" var_name="pids":...:section name=i loop=$pids step=1 max=6:

:if $smarty.section.i.index%2 == 0:<div class="hspacer_1"><img src="/themes/white/img/spacer.gif"></div>

:/if:<!-- Обращаемся к движку за данными по товару -->:se_module module="item" action="item_data_by_ids" item_ids=$pids[i].item_id type="small"

fields="id,name,price_per_item,small_description" var_name="idata":<div class="item_1">

<div class="item_image"><a href="item.php?id=:$idata.id:"><img src="/thumbs/:$idata.id:.jpg" alt=":$idata.name:" border=0></a>

</div><div class="item_name">

<a href="item.php?id=:$idata.id:">:$idata.name:</a><img src="/themes/white/img/ind01_web_34.gif" border=0><span class="red_3">$:$idata.price_per_item:</span>

</div></div>...

:/section:

Page 21: ShopEngine 2 Manual Russian

21

Документация по использованию ShopEngine 2

метод item_data_by_ids

Описание:Очень интересный метод. Возвращает данные по товару(ам). Может принимать фильтры, повозвращаемым полям.

Параметры:item_ids - обязательный параметр. Через данный параметр методу говорится информацию покаким товарам необходимо вернуть. Принимает как одиночный идентификатор товара, так инесколько идентификаторов разделенных «,».type - не обязательный параметр который сообщает что данные нужно вернуть вотфильтрованном виде. Принимает единственное значение small.fields – Если предыдущий параметр (type = small). То данный параметр являетсяобязательным. Если предыдущий параметр вообще не указан, то необходимости в данномпараметре нет. Принимает список тех полей товара, которые метод должен вернуть.var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data

Результат:Если item_ids содержит единственный идентификатор, то возвращает Ассоциативный массивописанный ниже, если идентификаторов много, то массив таких же ассоциативный массивов.Напомним, что некоторых полей массива может не быть если методу сказано вернуть толькоопределенные поля.

Ключ массива Описание значенияname Имя товараid Идентификационный номер товара.packages Содержит массив информации по дочернем товарам.

Элемент массива представлен ассоциативныммассивом с данными о дочернем товаре, ключи:id - идентификационный номер товараparent_id - идентификационный номерродительского товараname - имя товараpills_count - Количество таблеток (пилюль)pills_type - Таблетка, Пилюля и т.д.dosage - вес одной таблетки (пилюли)dosage_type - единица измерения весаprice - Цена товараprice_per_item - Цена одной таблетки товара.save_money - количество денежных единиц, котороепокупатель выгодает приобретая именно этот товариз родительского пакета.

description Описание (обычно пустое)Drug_name Наименование препаратаDrugJJses Для чего применяетсяHow_Taken Как использоватьDrug_class_and_mechanism Класс препаратаMissed_Dose ДозировкаStorage Метод храненияWarnings_and_Precautions Противопоказания

Page 22: ShopEngine 2 Manual Russian

22

Документация по использованию ShopEngine 2

Possible_Side_Effects Побочные эффектыMorejnformation Дополнительная информацияsmall_description Малое описаниеprice_per_item Минимальная цена одной таблетки, дочерних товаровsprice_per_item Средняя цена одной таблетки, дочерних товаровbundle Является ли товар составным.bundle_pack Для составного товара – элементы, из которых составлен

товар.price Цена для составного товара.

Пример использования:Смотри пример на метод item_id_by_priority.

Page 23: ShopEngine 2 Manual Russian

23

Документация по использованию ShopEngine 2

метод group_list

Описание:Возвращает список групп.

Параметры:var_name - не обязательный параметр который сообщает что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан то данныевозвращаются в переменной с именем module_data

Результат:Возвращается массив элементов. Элемент представлен ассоциативным массивом.

Ключ массива Описание значенияname Имя группыid Идентификационный номер группы товаров.

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

файл: /themes/blue/all_products.tpl…<!-- Обращаемся к движку для импорта списка групп -->:se_module module="item" action="group_list" var_name="glist":

:foreach item="group" from=$glist:<!-- Обращаемся к движку для импорта данных из группы товаров -->:se_module module="item" action="group_data" group_id=$group.id var_name="group_data":<div id="title_center_2"><img src="/themes/blue/img/group_:$group.id:_title.gif" alt=":$group.name:"></div><div id="single_product_top"></div>:foreach item=item from=$group_data.items:

<div id="single_product_separator"></div><div id="single_product">

<span class="image"><a href="/item.php?group_id=:$group_data.id:&id=:$item.id:">

<img src="/thumbs/:$item.id:_med.jpg" alt=":$item.name:" border=0></a>

</span><div class="info">

<div class="product_name">:$item.name:</div><div class="our_price">Our price: <span class="price">$:$item.price_per_item:</span></div><div class="description">:$item.description|truncate:253:"...":true:</div><div class="links">

<div><a href="/item.php?group_id=:$group_data.id:&id=:$item.id:">More info</a></div><div class="image_link"><img ... onClick="window.open('item_price.php?id=:$item.id:', '_blank', '...');"></div>

</div></div>

</div>:/foreach:

:/foreach:

Page 24: ShopEngine 2 Manual Russian

24

Документация по использованию ShopEngine 2

метод group_data

Описание:Возвращает данные о группе товаров.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_datagroup_id - содержит идентификационный номер группы, данные которой необходимо вернуть.Если указать вместо цифры слово auto то идентификационный номер возьмется из GETокружения, из GET4 переменной group_id.

Результат:Возвращается ассоциативный массив. В случае успеха, результат выглядит:

Ключ массива Описание значенияname Имя группыid Идентификационный номер группы товаров.items Содержит массив сжатой информации по товарам. Элемент

массива представлен ассоциативным массивом с данными отоваре, ключи:id - идентификационный номер товараname - имя товараlink - ссылка на страницу more details о товара (используйтетолько в том случае если придерживаетесь стандартнойструктуры имен страниц)price_per_item - минимальная цена одной таблетки в дочернихтоварах.description - описание товара.Bundle – является ли товар составным.

В случае ошибки, результат выглядит:

Ключ массива Описание значенияerror_message Сообщение об ошибке

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

4 GET - данные это переменные переданные через url например http://mydomqin.com/group.php?group_id=48

Page 25: ShopEngine 2 Manual Russian

25

Документация по использованию ShopEngine 2

файл: /themes/blue/group.tpl…<!-- Обращаемся к движку для импорта данных из группы товаров -->:se_module module="item" action="group_data" group_id="auto" var_name="group_data":<div id="title_center_2">

<img src="/themes/blue/img/group_:$group_data.id:_title.gif" alt=":$group_data.name:"></div><div id="single_product_top"></div>:foreach item=item from=$group_data.items:

<div id="single_product_separator"></div><div id="single_product">

<span class="image"><a href="/item.php?group_id=:$group_data.id:&id=:$item.id:">

<img src="/thumbs/:$item.id:_med.jpg" alt=":$item.name:" border=0></a>

</span><div class="info">

<div class="product_name">:$item.name:</div><div class="our_price">Our price: <span class="price">$:$item.price_per_item:</span></div><div class="description">:$item.description|truncate:253:"...":true:</div><div class="links">

<div class="text_link"><a href=”/item.php?group_id=:$group_data.id:&id=:$item.id:">More info</a>

</div><div class="image_link">

<img ... onClick="window.open('item_price.php?id=:$item.id:', '_blank', '...');"></div>

</div></div>

</div>:/foreach:…

Page 26: ShopEngine 2 Manual Russian

26

Документация по использованию ShopEngine 2

метод item_name

Описание:Возвращает Имя товара по его идентификационному номеру. В возвращаемом имени всенеобычные символы, в том числе пробельные, заменены на «_». Данный метод используетсядля генерации человеко-понятных ссылок.

Параметры:item_id - Идентификатор товара имя, которого необходимо вернуть. Если необходимо вернутьимя товара.group_id - Идентификатор группы, имя которой необходимо вернуть. Если необходимо вернутьимя группы.Оба параметра не могут быть использованы одновременно.

Результат:В месте вывода выводит имя товара или группы.

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

файл: /themes/blue/cart.tpl<div id="alternatives_container">

<div id="alternatives_block"><div class="image"><a href="/item.php?id=188"><img src="/thumbs/188.jpg" border=0></a></div><div class="title">

<!-- Обращаемся к движку для вывода имени товара -->:se_module module="item" action="item_name" item_id="188":<a href="/item.php?id=188" target="_blank">learn more</a>

</div></div><div id="alternatives_block">

<div class="image"><a href="/item.php?id=156"><img src="/thumbs/156.jpg" border=0></a></div><div class="title">

<!-- Обращаемся к движку для вывода имени товара -->:se_module module="item" action="item_name" item_id="156":<a href="/item.php?id=156" target="_blank">learn more</a>

</div></div><div id="alternatives_block">

<div class="image"><a href="/item.php?id=183"><img src="/thumbs/183.jpg" border=0></a></div><div class="title">

<!-- Обращаемся к движку для вывода имени товара -->:se_module module="item" action="item_name" item_id="183":<a href="/item.php?id=183" target="_blank">learn more</a>

</div></div>

</div>

Page 27: ShopEngine 2 Manual Russian

27

Документация по использованию ShopEngine 2

метод item_data

Описание:Возвращает полные данные о товаре. Содержит дочерние товары, и полные описания поприменению, используется при показе страницы more details. В остальных случаях нерекомендуется использовать.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_dataitem_id - содержит идентификационный номер товара, данные которого необходимо вернуть.Если указать вместо цифры слово auto то идентификационный номер возьмется из GETокружения, из GET переменной item_id.

Результат:Возвращается ассоциативный массив. В случае успеха, результат выглядит:

Ключ массива Описание значенияname Имя товараid Идентификационный номер товара.packages Содержит массив информации по дочернем товарам.

Элемент массива представлен ассоциативныммассивом с данными о дочернем товаре, ключи:id - идентификационный номер товараparent_id - идентификационный номерродительского товараname - имя товараpills_count - Количество таблеток (пилюль)pills_type - Таблетка, Пилюля и т.д.dosage - вес одной таблетки (пилюли)dosage_type - единица измерения весаprice - Цена товараprice_per_item - Цена одной таблетки товара.save_money - количество денежных единиц, котороепокупатель выгодает приобретая именно этот товариз родительского пакета.

description Описание (обычно пустое)Drug_name Наименование препаратаDrugJJses Для чего применяетсяHow_Taken Как использоватьDrug_class_and_mechanism Класс препаратаMissecLDose ДозировкаStorage Метод храненияWarnings_and_Precautions ПротивопоказанияPossible_Side_Effects Побочные эффектыMorejnformation Дополнительная информацияsmall_description Малое описаниеprice_per_item Минимальная цена одной таблетки, дочерних товаровsprice_per_item Средняя цена одной таблетки, дочерних товаровbundle Является ли товар составнымbundle_pack Массив элементов составного товараprice Цена для составного товара

Page 28: ShopEngine 2 Manual Russian

28

Документация по использованию ShopEngine 2

В случае ошибки, результат выглядит:

Ключ массива Описание значенияerror_message Сообщение об ошибке

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

файл: /themes/blue/item_price.tpl<!-- Обращаемся к движку для импорта данных о товаре -->:se_module module="item" action="item_data" group_id="auto" var_name="item_data":...<div id="title_center_2">

<img src="/themes/blue/img/group_:$item_data.group.id:_title.gif" alt=":$item_data.group.name:"></div><div id="single_product_top"></div><div id="single_product_description">

<div class="info"><img src="/thumbs/:$item_data.id:_big.jpg" alt=":$item_data.name:" align="left"><div class="product_name">:$item_data.name:</div><div class="description">:$item_data.small_description|truncate:500:"...":true:</div>

</div></div><div id="single_product_description_separator"></div><table width="100%" cellpadding="0" cellspacing="0" id="item_price_list">

:foreach name=children key=key item=child from=$item_data.packages:<tr>

<td class="number_of_pills">:$child.name:</td><td class="price">$:$child.price:</td><td class="price_per_pill">$:$child.price_per_item: per pill</td><td class="discount">:if $child.save_money != 0:Your save: $:$child.save_money::/if:</td><td class="button">

<a onClick="return add_item_to_cart(':$child.id:',true);" href="cart.php"><img src="/themes/blue/img/add_to_cart.gif"></a></td>

</tr>:/foreach:

</table>

Page 29: ShopEngine 2 Manual Russian

29

Документация по использованию ShopEngine 2

3.4.3 Модуль "settings"Предоставляет данные из конфигурационного файла данного домена.

метод get_contact_data

Описание:Возвращает email и адрес сайта поддержки.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data

Результат:Возвращается ассоциативный массив.

Ключ массива Описание значенияe_support Email адресh_support Адрес сайта службы поддержкиsite_host Имя текущего хоста

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

файл: /themes/blue/process_order.tpl<!-- Обращаемся к движку для импорта списка групп -->:se_module module="settings" action="get_contact_data" var_name="cdata":<span class="text">

For your safety we use highly secure order processing server with our own secure certificate.<br><br>All questions and concerns regarding billing, payment or customer service should be writen to<a href="mailto::$cdata.e_support:" class="link">:$cdata.e_support:</a>

</span>

Page 30: ShopEngine 2 Manual Russian

30

Документация по использованию ShopEngine 2

3.4.4 Модуль "contacts"Предоставляет данные из конфигурационного файла, данного домена.

метод send_data

Описание:Отправляет сообщение посетителя на email адрес сайта поддержки. Отправление сообщениепроисходит в том случае, когда в POST данных присутствует переменная email. Такжеиспользуются следующие переменные из POST данных:

Имя переменой Описание значенияemail E-mail адрес автора сообщенияkeycode Код Kcaptcha для защиты от ботов.messenger Тип используемого мессенджераmessenger_contact Номер месенджераtext Текст сообщенияname Имя отправителя

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data

Результат:Возвращается ассоциативный массив.

Ключ массива Описание значенияsubject В случае отправки, тема отправленного сообщения, иначе пустая

строка.title Сообщение об успешной отправке или произошедшей ошибке.message В случае отправки, тело отправленного сообщения, иначе пустая

строка.from В случае отправки, адрес отправителя, иначе пустая строка.to В случае отправки, адрес на который было послано сообщение, иначе

пустая строка.

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

Page 31: ShopEngine 2 Manual Russian

31

Документация по использованию ShopEngine 2

файл: /themes/blue/contacts.tpl<!-- Обращаемся к движку для отправления сообщения -->:se_module module="contacts" action="send_data" var_name="contact_data":...<form method="post" action="contacts.php">

<table cellpadding="0" cellspacing="0" width="100%"><tr>

<td colspan="2" align="center"><b>:$contact_data.title:<br>:$contact_data.message:</b></td></tr><tr>

<td><div ...>Your Name: </div></td><td ...><input name="name" type="text" value=":$smarty.post.name:" ...></td>

</tr><tr>

<td><div ...>Your E-mail Address: </div></td><td><input name="email" type="text" size="30" value=":$smarty.post.email:" ...></td>

</tr><tr>

<td><div ...>Messenger:</div></td><td ...>

<table cellpadding="0" cellspacing="0" border="0"><tr>

<td ><select name="messenger" ...>

<option>ICQ<option>MSN...<option>AOL

</select></td><td><input name="messenger_contact" ... value=":$smarty.post.messenger_contact:" ...></td>

</tr></table>

</td></tr><tr valign="top">

<td><div ...>Question: </div></td><td><textarea name="text" ...>:$smarty.post.text:</textarea></td>

</tr><tr valign="top">

<td><b>Confirm code:</b></td><td ...>

<table width="291" cellpadding="0" cellspacing="0"><td><img src="/kaptcha.php" alt="" style="border:1px solid #CCCCCC"></td><td><input type="text" name="keycode" class="form"></td>

</table></td>

</tr><tr>

<td colspan="2" ...><input border="0" src="/themes/blue/img/msg.gif" name="I1" type="image"></td></tr>

</table></form>

Page 32: ShopEngine 2 Manual Russian

32

Документация по использованию ShopEngine 2

метод show_kcaptcha_image

Описание:Показывает изображение с кодом kcaptcha

Параметры: Результат:Результатом является отправка двоичных данных картинки.

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

файл: /themes/blue/kaptcha.tpl:se_module module="contacts" action="show_kcaptcha_image":

Page 33: ShopEngine 2 Manual Russian

33

Документация по использованию ShopEngine 2

3.4.5 Модуль "userseans"Предоставляет данные о сеансе посетителя.

метод get_sid_data

Описание:Возвращает данные о типе сеанса, номер сеанса, имя переменой используемой для передачиSID и тип передачи сеанса между страницами.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data

Результат:Возвращается ассоциативный массив.

Ключ массива Описание значенияid Идентификационный номер сеанса посетителя.type Тип передачи сеанса. Пока поддерживается только один тип передачи

сеанса URL.varname Имя переменной используемой для передачи идентификационного

номера сеанса между страницами.

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

файл: /themes/blue/data/header.tpl<html>

<head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Canadian Pharmacy</title><LINK rel="stylesheet" href="/themes/blue/css/main.css" type="text/css"><script type="text/javascript" src="/themes/card.js"></script><script type="text/javascript">

<!-- Обращаемся к движку для импорта параметров сеанса -->:se_module module="userseans" action="get_sid_data" var_name="session":var SessionType = ":$session.type:";var SessionPrefix = ":$session.id:";var SessionName = ":$session.varname:";

</script>:include file="data/bookmark.tpl":

</head><body>

Page 34: ShopEngine 2 Manual Russian

34

Документация по использованию ShopEngine 2

3.4.6 Модуль "search"Предоставляет данные для поиска и функционирование поисковой системы сайта.

метод show_alhobit

Описание:Вставляет в месте вызова – линейку поиска по первой букве алфавита.

Параметры:template - не обязательный параметр, который сообщает, что нужно использовать именнойшаблон модуля5, с именем template. Если параметр не передан, то используется шаблон сименем 'clear.tpl'.

Данные поступающие в шаблон:В шаблон передается переменная alhobit – являющаяся ассоциативным массивом. Ключамимассива являются заглавные буквы алфавита, а значение это число товаров начинающиеся наданную букву.

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

5 Именной шаблон модуля – это файл шаблона хранящегося в каталоге /themes/имя_темы/modules/имя_шаблона.module.tpl

файл: /themes/blue/modules/search_by_name.module.tpl<div style="width:369px;overflow:hidden;margin-bottom:12px;">

:foreach name=alphabet item=chars key=char from=$alphabet::if $chars == 0:

<div class="search_link">:$char:</div>:else:

:if $smarty.get.letter != "" && $smarty.get.letter == $char:<div class="active_search"><a href="/search.php?letter=:$char:">:$char:</a></div>

:else:<div class="search_link"><a href="/search.php?letter=:$char:">:$char:</a></div>

:/if::/if:

:/foreach:</div>

файл: /themes/blue/data/search.tpl<table cellpadding="0" cellspacing="0" id="search_abc">

<tr><td class="image"><img src="/themes/blue/img/search_by_name.gif" alt="search by name"></td><td class="block_of_links">

:se_module module="search" action="show_alhobit" template="search_alhobit":</td><td>

<div id="search_form"><form action="/search.php" method="get" style="margin:0px;padding:0px;">

<div class="image"><img src="/themes/blue/img/search_top.gif" alt="search"></div><div class="input"><input type="text" name="search_text"></div><div class="button">

<input border="0" src="/themes/blue/img/search_button.gif" name="I1" ... type="image"></div>

</form></div>

</td><td width="100%">&nbsp;</td>

</tr></table>

Page 35: ShopEngine 2 Manual Russian

35

Документация по использованию ShopEngine 2

метод get_items_data

Описание:Проверяет существование переменных в GET окружении.Если существует переменная letter, то производит поиск товаров начинающихся на букву letter.Если существует переменная search_text, то производится поиск товаров, имя или описаниекоторых содержит слова указанные через пробел в search_text.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data.

Результат:В результате возвращается массив элементов, содержащих найденные товары. Элементмассива представлен ассоциативным массивом с информацией о найденном товаре.

Ключ массива Описание значенияname Имя товараid Идентификационный номер товара.packages Содержит массив информации по дочернем товарам.

Элемент массива представлен ассоциативныммассивом с данными о дочернем товаре, ключи:id - идентификационный номер товараparent_id - идентификационный номерродительского товараname - имя товараpills_count - Количество таблеток (пилюль)pills_type - Таблетка, Пилюля и т.д.dosage - вес одной таблетки (пилюли)dosage_type - единица измерения весаprice - Цена товараprice_per_item - Цена одной таблетки товара.save_money - количество денежных едениц, котороепокупатель выгодает приобретая именно этот товариз родительского пакета.

description Небольшое описаниеprice_per_item Минимальная цена одной таблетки, дочерних товаровsprice_per_item Средняя цена одной таблетки, дочерних товаров

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

Page 36: ShopEngine 2 Manual Russian

36

Документация по использованию ShopEngine 2

файл: /themes/blue/search.tpl<!-- Импорт данных о найденных товарах -->:se_module module="search" action="get_items_data" var_name="search_data":...<div id="title_center_2"><img src="/themes/blue/img/search.gif" alt="Search"></div><div id="single_product_top"></div>:foreach item=item from=$search_data:

<div id="single_product_separator"></div><div id="single_product">

<span class="image"><a href="/item.php?group_id=:$item.group.id:&id=:$item.id:">

<img src="/thumbs/:$item.id:_med.jpg" alt=":$item.name:" border=0></a>

</span><div class="info">

<div class="product_name">:$item.name:</div><div class="our_price">Our price: <span class="price">$:$item.price_per_item:</span></div><div class="description">:$item.description|truncate:253:"...":true:</div><div class="links">

<div class="text_link"><a href="/item.php?group_id=:$item.group.id:&id=:$item.id:">More info</a>

</div><div class="image_link">

<img ... onClick="window.open('item_price.php?id=:$item.id:', '_blank', 'width=600 ...');"></div>

</div></div>

</div>:/foreach:

Page 37: ShopEngine 2 Manual Russian

37

Документация по использованию ShopEngine 2

3.4.7 Модуль "navigation"Предоставляет данные для поиска и функционирование поисковой системы сайта.

метод menu

Описание:Вставляет в месте вызова – линейку навигационные меню.

Параметры:template - не обязательный параметр который сообщает что нужно использовать именнойшаблон модуля с именем template. Если параметр не передан, то используется шаблон сименем 'clear.tpl'.name – Имя меню которое необходимо вывести. Параметры меню берутся изконфигурационного файла. Существует также меню, с именем MAIN – которое если неопределено в конфигурационном файле генерируется автоматически. Меню MAIN имеетвложенную структуру, состоящую из имен групп (Родительский элемент), и имен товаров вданных группах (дочерние элементы).

Данные поступающие в шаблон:В шаблон передается переменная menu – являющаяся ассоциативным массивом. Массивсодержит следующие ключи:

Ключ массива Описание значенияtype Тип меню. Может принимать одно из двух значений

line и dual.line – одно-уровневое меню,dual – меню со вложенными элементами.

items Массив элементов меню.Элементы массива представлены в видеассоциативного массива с ключами:для type=linename – имя пункта менюlink – ссылка на страницудля type=dual:ключе массива представлены в виде имен групп.Значения представлены ассоциативными массивамис ключами:name – Имя группыlink – ссылка на страницуitems – Массив вложенных пунктов меню, элементыпредставлены массивами аналогичными по структуре сэлементами при type=line.

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

файл: /themes/blue/data/header.tpl...<div id="top_menu">

:se_module module="navigation" action="menu" template="navigation_top" name="TOP":</div>...:se_module module="navigation" action="menu" template="navigation_main" name="MAIN":<div id="support"><a href="/contacts.php"><img src="/themes/blue/img/support.gif"></a></div>…

Page 38: ShopEngine 2 Manual Russian

38

Документация по использованию ShopEngine 2

файл: /themes/blue/modules/navigation_top.module.tpl:if $menu.type == "line":

:foreach item=item from=$menu.items::if $current_page == $item.name:

<div class="menu_item"><img src="/themes/blue/img/:$item.name:_active.gif" alt=":$item.name:"></div>:else:

<div class="menu_item"><a href=":$item.link:">

<img src="/themes/blue/img/:$item.name:.gif"alt=":$item.name:"onMouseOver="this.src='/themes/blue/img/:$item.name:_over.gif'"onMouseOut="this.src='/themes/blue/img/:$item.name:.gif'">

</a></div>

:/if:<div class="separator"></div>

:/foreach::/if:

файл: /themes/blue/modules/navigation_main.module.tpl...:if $menu.type == "line":

<div class="left_menu_group_bestsellers_active" id="c_best" style="display:none" ><a href="javascript:onClick=left_menu('best')">:$menu.items.Bestsellers.name:</a>

</div><div class="left_menu_group_bestsellers" id="b_best" style="display:">

<a href="javascript:onClick=left_menu('best')">:$menu.items.Bestsellers.name:</a></div><div class="left_menu_group_links" id="a_best" style="display:none">

:foreach name=items item=item from=$menu.items.Bestsellers.items::if $current_group == 131:

<a href=":$item.link:"><span style="font-weight:bold">:$item.name:</span></a><script language="JavaScript">

document.getElementById('a_' + "best").style.display = "";document.getElementById('b_' + "best").style.display = "none";document.getElementById('c_' + "best").style.display = "";

</script>:else:

<a href=":$item.link:">:$item.name:</a>:/if:

:/foreach:<div class="link_other"><a href=":$menu.items.Bestsellers.link:">all products</a></div>

</div>:foreach name=groups key=key item=group from=$menu.items:

:if $key != "Erection_packs" && $key != 'Bestsellers':<div class="left_menu_group_active" id="c_:$key:" style="display:none" >

<a href="javascript:onClick=left_menu(':$key:')">:$group.name:</a></div><div class="left_menu_group" id="b_:$key:" style="display:">

<a href="javascript:onClick=left menu(':$kev:')">:$aroup.name:</a></div><div class="left_menu_group_links" id="a_:$key:" style="display:none">

:foreach name=items item=item from=$group.items::if $current_group == $group.id:

<a href=":$item.link:"><span style="font-weight:bold">:$item.name:</span></a><script language="JavaScript">

document.getElementByld('a_' + ":$key:").style.display = "";document.getElementByld('b_' + ":$key:").style.display = "none";document.getElementByld('c_' + ":$key:").style.display = "";

</script>:else:

<a href=":$item.link:">:$item.name:</a>:/if:

:/foreach:<div class="link_other"><a href=":$group.link:">all products</a></div>

</div>:/if:

:/foreach::/if:

Page 39: ShopEngine 2 Manual Russian

39

Документация по использованию ShopEngine 2

3.4.8 Модуль "order"Предоставляет данные и методы для оформления заказа, и сохранения его для

последующей обработки.При вызове любого метода кроме clear_order_data, происходит вызов скрытого метода, по

сохранению данных введенных пользователем в форму оформления заказа, и полученных методом POST.Проверяются следующие данные в $_POST массиве (пришедшие POST методом при запросестраницы).

Если переданы переменные:street, city, zip, state, country, phone1, phone2, phone3, phone4, email, email2, messenger,

method_by происходит их сохранение6.Если передана переменная client_time – она сохраняется под именем time.Если переданы переменные:gender, DOB_Day, DOB_Month, DOB_Year, Weight_Measure, Weight, Height, received,

medicalConditions, currentMedications, plannedMedications, allergies, surgeries, medicalHistory,haveConditions, nitroglycerine, sexualDysfunction происходит их сохранение в переменной survey -являющейся ассоциативным массивом где в качестве ключей используются имена полученных переменных.

Если переданы переменные:cc_cardholder, cc_card_no, cc_exp_m, cc_exp_y, cc_cvc, cc_comments происходит их

сохранение в переменной СС - являющейся ассоциативным массивом где в качестве ключей используютсяимена полученных переменных без префикса cc_.

Если переданы переменные:check_your_name, check_bank_name, check_account_owner, check_account_number,

check_routing_number, check_comments происходит их сохранение в переменной ECHECK - являющейсяассоциативным массивом где в качестве ключей используются имена полученных переменных без префиксаcheck_.

6 Описание данных переменных можно посмотреть в описании результата выполнения метода user_data. Имена переменныхсовпадают с именами ключей. Отличаются только имена переменных связанных с данными оплаты, у них появляется префиксcc_ - для данных о кредитной карте и check_ - Для данных по чеку. Также переменная client_time сохраняется под именемtime.

Page 40: ShopEngine 2 Manual Russian

40

Документация по использованию ShopEngine 2

метод site_data

Описание:Возвращает данные о сайте и странице оформления заказа.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data.

Результат:В результате возвращается ассоциативный массив со следующими ключами:

Ключ массива Описание значенияsiteid Идентификационный номер сайта.page Номер страницы оформления заказа (1-3).return_path Путь с которого пользователь ушел в корзину, используется

для ссылки continue shop и возврата на сайт.

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

файл: /themes/blue/process_order.tpl…:se_module module="order" action="site_data" var_name="order_main":…<td ...>…

:if $order_main.page=="2":<a href="javascript:document.main form.onsubmit=null; document.main_form.topage.value=1; document.main_form.submit()">

<img src=7themes/images/b_prev.gif" border="0" /></a>

:else:<a href=":$order_main.return_path:"><img src=7themes/images/b_cont.gif" width="131" height="24" border="0" /></a>

:/if:</td><td valign="top">

<div align="right" style="margin-top:22px; margin-bottom:22px;"><img src=7themes/images/t_order.gif" width="100" height="15" />

</div>:if $order_main.page == 1::include file="data/order_step1.tpl"::/if::if $order_main.page == 2::include file="data/order_step2.tpl"::/if::if $order_main.page == 3::include file="data/order_step3.tpl"::/if:

</td>

Page 41: ShopEngine 2 Manual Russian

41

Документация по использованию ShopEngine 2

метод user_data

Описание:Возвращает данные которые ввел пользователь, заполняя форму заказа, на разных страницахпри оформлении заказа.

Параметры:var_name - не обязательный параметр, который сообщает, что данные нужно вернуть впеременной с именем указанным в var_name. Если параметр не передан, то данныевозвращаются в переменной с именем module_data.

Результат:В результате возвращается ассоциативный массив со следующими ключами:

Ключ массива Описание значенияfull_name Имя заказчикаstreet Улицаcity Городzip Индексstate Штатcountry Странаphone1 Первая часть телефонного номера (x-xxx-xxx-xxxx)phone2 Вторая часть телефонного номера (x-xxx-xxx-xxxx)phone3 Третья часть телефонного номера (x-xxx-xxx-xxxx)phone4 Четвертая часть телефонного номера (x-xxx-xxx-xxxx)email Адрес электронной почтыemail2 Альтернативный адрес электронной почтыmessenger Номер месенджераmethod_by Тип покупки (кредитная карта CC, чек ECHECK)time Время пользователяCC Данные о кредитной карте. Представляют из себя

ассоциативный массив, со следующими ключами:cardholder – Имя владельца картыcard_no – Номер картыexp_m – Месяц окончания срока действия картыexp_y – Год окончания срока действия картыcvc – контрольный номер cvccomments – комментарий пользователя

ECHECK Данные по чеку. Представляют из себя ассоциативныймассив, со следующими ключами: your_name – Имявладельца bank_name – Имя банка account_owner – Имявладельца аккаунта account_number – Номер аккаунтаrouting_number – Номер comments – комментарий заказчика

survey Данный медицинского опроса пользователя.Представляют из себя ассоциативный массив, соследующими ключами:gender – пол заказчикаDOB_Day – день рожденияDOB_Month – месяц рожденияDOB_Year – Год рожденияWeight – РостWeight_Measure – Единицы измерения ростаHeight –

Page 42: ShopEngine 2 Manual Russian

42

Документация по использованию ShopEngine 2

received -medicalConditions -currentMedications -plannedMedications -allergies – Комментарий поля алергеннов.surgies -medicalHistory – Медицинская историяhaveConditions -nitroglycerine -sexualDysfunction – Признаки сексуальнойдистрофии

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

файл: /themes/blue/data/order_step1.tpl…:se_module module="order" action="user_data" var_name="user_data":...<form method="POST" name="main_form" action="/process_order.php" onSubmit="return check_page(this);" >

<input type="hidden" name="topage" value="2"><table ...>

<tr><td><img src="/themes/images/bulet.gif" width="17" height="18" /></td><td width="150">Full name:</td><td><input type="text" name="full_name" value=":$user_data.full_name:"x/td>

</tr><tr>

<td><img src="/themes/images/bulet.gif" width="17" height="18" /></td><td>Street address :</td><td><input type="text" name="street" value=":$user_data.street:" ></td>

</tr>………

</table></form>…

Page 43: ShopEngine 2 Manual Russian

43

Документация по использованию ShopEngine 2

метод save_order

Описание:Производит сохранение данных заказа. Используется на финальном шаге оформления заказа.

Параметры:Результат:

Ничего не возвращает.

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

файл: /themes/blue/data/order_step3.tpl<!-- Сохраняем заказ для последующей обработки -->:se_module module="order" action="save_order":<!-- Очищаем данные заказа -->:se_module module="order" action="clear_order_data":<!-- Очищаем данные из корзины -->:se_module module="cart" action="clear_cart_data":<!-- Выводим данные о удачном сохранении заказа<div style="margin-top:28px;margin-bottom:20px;">

Transaction Status: <span style="color:#FE0003;font-weight:bold;">STORED</span></div>

Page 44: ShopEngine 2 Manual Russian

44

Документация по использованию ShopEngine 2

метод clear_order_data

Описание:Метод очищает все данные заполненные пользователем при оформлении заказа.Используется для завершения заказа, после завершения процедуры заказа возникаетнеобходимость очистить данные пользователя.

Параметры:Результат:

Ничего не возвращает.

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

файл: /themes/blue/data/order_step3.tpl<!-- Сохраняем заказ для последующей обработки -->:se_module module="order" action="save_order":<!-- Очищаем данные заказа -->:se_module module="order" action="clear_order_data":<!-- Очищаем данные из корзины -->:se_module module="cart" action="clear_cart_data":<!-- Выводим данные о удачном сохранении заказа<div style="margin-top:28px;margin-bottom:20px;">

Transaction Status: <span style="color:#FE0003;font-weight:bold;">STORED</span></div>…

Page 45: ShopEngine 2 Manual Russian

45

Документация по использованию ShopEngine 2

4. Исправление неисправностей.

Page 46: ShopEngine 2 Manual Russian

46

Документация по использованию ShopEngine 2

5. Frequently Asked Questions

5.1. Как убрать товары с shopengineНужно просто удалить вывод товара на страницах бестселлеров, категорий, из выдачи

поиска, со страницы all_products.php. Для примера возьмем тему 'green' и товар cialis (id=156).Файл group.tplУберем cialis со страницы категории. Находим цикл, в котором выводятся товары группы:

Чтобы удалить cialis, будем проверять id препарата на равенство cialis.id=156. если id=156 тоничего не выводим:

Файл search.tplУберем cialis из выдачи поиска. Здесь вывод в таком цикле:

делаем все аналогично

all_products.tpl, data/bestsellers_items.tpl (то что выводится на первой странице), bestsellers.tplстраницы редактируются аналогичным образом.

Если нужно сделать недоступной саму страницу /item/cialis.html по прямому запросу, можносделать, например, в файле item.tpl после инструкции

:se_module module="item" action="item_data" item_id="auto" var_name="item_data":(лучше перенести ее в начало файла, если она еще не там)можно сделать например переадресацию на индексную страницу (или на любой адрес по

желанию). для этого вставим такой код:

:foreach name=items item=item from=$group_data.items::if $item.id != 156:

…:/if:

:/foreach:

:foreach name=items item=item from=$group_data.items:…

:/foreach:

:foreach name=items key=key item=item from=$search_data:…

:/foreach:

:foreach name=items key=key item=item from=$search_data::if $item.id != 156:

…:/if:

:/foreach:

:se_module module="item" action="item_data" item_id="auto" var_name="item_data":

:if $item_data.id == "156"::php:

header("HTTP/1.1 301 Moved Permanently");header("Location: http://ваш_домен.com/");

:/php::else:

здесь продолжается код, который был после инструкции:se_module module="item" action="item_data" item_id="auto" var_name="item_data":.в самом конце файла не забудьте поставить

:/if:

Page 47: ShopEngine 2 Manual Russian

47

Документация по использованию ShopEngine 2

5.2. Смена URLСмена URL возможна для страницы категории и страницы товара.

· Пример для страницы категории:group/antibiotics.html меняем на primer/antibiotics.html

В файле _cnf/default/config.inc найдите массив $SDATA['REWRITE_URLS'], в нем строку'group' => array('template'=>'group','module'=>'item','rewrite_action'=>'re_group_id'), отредактируйте так'primer' => array('template'=>'group','module'=>'item','rewrite_action'=>'re_group_id'),

В файле core/modules/item.module.cls.php в 46 строке$link = '/group';Отредактируйте так$link = '/primer';

· Пример для страницы товараitem/viagra.html меняем на order/viagra.html

В файле _cnf/default/config.inc найдите массив $SDATA['REWRITE_URLS'], в нем строку'item' => array('template'=>'item','module'=>'item','rewrite_action'=>'re_item_id'), отредактируйте так'order' => array('template'=>'item','module'=>'item','rewrite_action'=>'re_item_id'),

В файле core/modules/item.module.cls.php в 19 строке$link = '/item';Отредактируйте так$link = '/order';