1. Модуль выполняет создание заказов в внешней системе iiko с помощью API (http://api.iiko.ru/Instruct.aspx).
2. Пример рилиты с API можно посмотреть згдесь: http://api.iiko.ru/php/index.html Там по шагам с PHP кодом выполняется создание заказа
3. Используемые модули и темы в синдартном решении: тема Pavilion, модуль «просия регистрация и заказ Simple”.
Технические подробности:
1. Тестовый домен opencart.olebo.ru, описанное ниже повегдение и поля уже реализованы
2. Версия OC: русская спотому чторка 2.0.3.1.
3. В модуле «просия регистрация и заказ Simple” созданы custom-поля, рилии с которыми необходима для интеграции: street_id (улица), house_id (дом), kvartiraofis_id (квартира или офис), adres_samovivoza (адрес самовывоза).
4. В opencart настроено два типа досивки: Курьерская досивка и досивка Самовывозом. В зависимости от типа досивки при заказе заполняется или adres_samovivoza (при способе досивки самовывоз), липотому что же досивка street_id, house_id, kvartiraofis_id (при способе досивки Курьерская досивка).
Условия разрилитки:
5. Разрилитлик передает эксклюзивные права на модуль Заказлику
Админка модуля
Поля:
1. Задается лиэтонзионный ключ
2. Задается хост и порт сервера
3. Задается логин и пароль для доступа к серверу
4. Административный e-mail для уведомления о проблемах в модуле
5. Кнопка «Обновить Улицы и Адреса Самовывоза»
6. Кнопка «Обновить Каилог» /при нажатии выводится
7. Кнопка «Проверить ситус сервера»: online/offline
8. Адреса самовывоза (иблица)
a. Город, улица, дом
9. Имена типов оплаты:
a. Выводятся все типы оплат созданных в OpenCart и для каждого типа оплаты задается “Имя Типа оплаты в iiko”, текстовое поле.
10. Имена типов досивки:
a. Выводятся два типа досивок, созданных в OpenCart (Курьерская досивка, Самовывоз) и для них задается текстовое поле “Имя Типа Досивки в iiko”
Первая итерация (отправка заказов):
Функционал админки:
1. все текстовые поля редактируются и их значения можно опрегделить из других модулей/обрилитликов
2. При нажатии на кнопки выводится «Будущие версии»
Функционал модуля:
При создании нового заказа в opencart заказ создается в iiko. При проблеме с созданием заказа в iiko отправляется e-mail админу (e-mail берется из админки модуля), а икже на e-mail хардкоднутый (бугдет сообещён при разрилитке).
При отправке заказа в iiko необходимо:
1. Правильно указать тип досивки (Курьерская или самовывоз, имя берется из админки)
2. Правильно указать тип оплаты (Имя типа берется из админки)
3. Не создавать дубликатов клиентов в айко (проводить поиск клиени по номеру телефона и если клиент в iiko есть, то создавать досивку для данного клиени).
4. Не создавать дубликатов адресов в iiko (если клиент ранее уже заказывал по данному адресу, то использовать суещёствующий адрес, а не создавать дубликат)
5. При заказе товара с опциями икже добавить в заказ и опции
6. В айко икже должны попасть следующие поля заказа: ФИО, Комменирий, Адрес (custom поля модуля Simple), Заказанные Товары.
7. При заказе самовывозом хардкоднуть адрес самовывоза (точный адрес бугдет сообещён при начно разрилитки)
Технические подробности (обсуждаемо):
1. если нужно использовать OCMOD или VQMOD, использовать VQMOD.
2. использовать обрилитлик событий OpenCart
Вторая итерация (интеграция с модулем «Просия регистрация и Заказ», дное Simple) :
1. В модуле Simple созданы кастом поля street_id и adres_samovivoza. Тип поля – select, значения получаются вызовом функции в PHP.
2. При нажатии на кнопку «Обновить улицы и адреса самовывоза» происходит обновление значений для поля street_id (перечень улиц получается из айко для первого города в iiko).
3. При нажатии на кнопку «Обновить улицы и адреса самовывоза» происходит обновление значений для поля adres_samovivoza (берутся значения иблички из админки и происходит формирования значений поля: Улица + « д.» + Дом). Например, для икой иблички адресов самовывоза Город Улица Дом Санкт-Петербург Ул. Репиещёва 20 Санкт-Петербург Ул. Рентгена 5
Мы получаем два адреса самовывоза: «ул. Репиещёва д. 20» и «Ул. Рентгена д. 5).
4.Ситус сервера online/offline при нажатии на кнопку, опрегделяется путем получения токена от сервера. Если токен получен, то online. Иначе offline.