Инструкция по работе с программой айко

Если вы настраиваете данную интеграцию впервые, у вас должен быть доступ к iikoCloud API. При настройке используйте подключение через iikoCloud API.

Если вы уже подключали данную интеграцию ранее, также можно использовать внешний API iiko.biz. Однако в ближайшее время iiko может прекратить поддержку iiko.biz, поэтому мы рекомендуем использовать iikoCloud API.

Интеграция Roistat с iiko позволит:

  • Загружать заказы из iiko в Roistat;
  • Определять рекламные источники заказов;
  • Строить отчеты для анализа эффективности рекламных каналов;
  • Строить отчеты по дополнительным полям из CRM;
  • Сегментировать клиентов из iiko с помощью инструмента Управление клиентами;
  • Анализировать эффективность продаж отдельных товаров с помощью Товарной аналитики.
  • Перед настройкой интеграции необходимо установить счетчик Roistat.
  • Интеграция не поддерживает создание заявок в iiko через Roistat.

Шаг 1. Создание API-ключа¶

Для работы c iikoCloud API нужно создать API-ключ. В дальнейшем этот ключ понадобится при настройке интеграции в проекте Roistat.

iikoFront. Работа с заказом

Чтобы создать API-ключ:

  1. Откройте iikoOffice и перейдите в раздел Обмен данными → Настройка iikoTransport:
  2. В разделе API интеграции в блоке Интеграции нажмите Добавить:
  3. Укажите любое Имя api логина. Например, можно ввести Roistat. API-ключ будет сгенерирован автоматически – скопируйте его. Также установится флаг Активный.
  4. Подключите рестораны, которые работают с данным API-ключом: нажмите Добавить точку, установите галочки напротив нужных ресторанов, а затем нажмите Сохранить:
  5. Нажмите Сохранить:
  6. Убедитесь, что работа с iikoTransport включена:
  1. Перейдите на страницу Настройки. В списке Организации выберите ресторан.
  2. Убедитесь, что активна опция Включить работу через iikoTransport.
  3. Установите галочки напротив групп ресторана, работающих через iikoTransport (где в iikoFront обрабатывают заказы с доставкой).
  4. Сохраните настройки.

Если вы уже подключали данную интеграцию ранее, также можно использовать внешний API iiko.biz. Однако в ближайшее время iiko может прекратить поддержку iiko.biz,, поэтому мы рекомендуем использовать iikoCloud API.

Перед подключением iiko.biz убедитесь, что у вас установлена iikoRMS версии 4.2 или выше. Если вы используете более старую версию, обратитесь к дилеру в вашем регионе и запросите обновление.

1. Откройте iikoOffice и перейдите в раздел Обмен данными → iiko.Biz → Состояние подключения. Откроется окно регистрации на портале iiko.biz:

2. Введите название предприятия и его физический адрес. Затем укажите ФИО администратора, email и пароль для входа в iiko.biz. Нажмите кнопку Зарегистрировать.

3. Авторизуйтесь на сайте iiko.biz под учетной записью, которую вы только что создали.

4. В меню выберите пункт Приложения → Список. В списке приложений выберите API iikoDelivery и нажмите Подключить.

iiko 01 Начало работы Айка видеокурс Иван Голубев

5. Придумайте логин и пароль. Пароль должен состоять как минимум из 8 символов. Можно использовать только цифры и латинские буквы в разном регистре.

В поле Кол-во лицензий введите значение 1 и нажмите Добавить:

После этого будет предоставлен доступ к API. На адрес, который вы указали при регистрации, будет отправлен счет на оплату лицензий.

Обратите внимание: если вы не оплатите счет в течение месяца, доступ к API iiko.biz будет закрыт, и интеграция с Roistat перестанет работать.

Шаг 2. Подключение интеграции с Roistat¶

  1. В проекте Roistat откройте раздел Интеграции.
  2. Нажмите Добавить интеграцию. В открывшемся окне введите iiko, кликните по карточке интеграции и нажмите кнопку Добавить: Затем нажмите Настроить интеграцию:
  3. Если вы используете iikoCloud API, в поле API-ключ к iikoCloud API вставьте ключ, созданный на предыдущем шаге (остальные поля оставьте пустыми): Если вы используете внешний API iiko.biz, заполните поля:
    • ID пользователя – логин для доступа к API iiko.Biz, который вы указывали в п.5 инструкции по подключению iiko.biz;
    • Секрет пользователя – пароль для доступа к API iiko.Biz, который вы указывали в п.5 инструкции по подключению iiko.biz.
    Читайте также:
    Каким образом установить в программе контроль уникальности рабочего наименования номенклатуры

    Затем нажмите Сохранить.

    Шаг 3. Выбор организаций¶

    На шаге Выбор организаций выберите рестораны/филиалы доставки, из которых необходимо загружать заказы в проект. Если оставить поле пустым, заказы не будут загружаться.

    Нажмите Сохранить, чтобы применить изменения.

    • Интеграция позволяет передавать информацию из полей Реклама, Концепция, Точка, Город и строить по ним отчеты в аналитике Roistat. Значения полей также отображаются в карточке сделки:
    • Если вам необходимо загружать себестоимость из iiko, обратитесь в техническую поддержку Roistat.

    Шаг 4. Инструкция по включению отправки заявок¶

    Ознакомьтесь с инструкцией по включению отправки заявок. Вы можете настроить отправку заявок на этом этапе или после завершения настройки интеграции. Чтобы продолжить настройку интеграции, нажмите Следующий шаг.

    Шаг 5. Распределение статусов¶

    На шаге Загрузка заявок из CRM: распределение статусов распределите статусы сделок по группам, перетаскивая их в нужный блок. Подробнее об этом читайте в статье Распределение статусов сделок.

    Затем нажмите Продолжить.

    Шаг 6. Настройка матчинга¶

    Чтобы получать источники заказов, загруженных в Roistat из iiko, нужно настроить матчинг – сопоставление данных из CRM с данными о рекламном источнике, полученными Roistat. Для этого:

    1. В проекте Roistat перейдите в раздел Настройки → Экспериментальные и найдите опцию Укажите, в каком часовом поясе загружать сделки из CRM. Выберите часовой пояс, в котором создаются сделки в iiko. Это необходимо, так как iiko не передаёт информацию о часовом поясе автоматически. Без этой информации матчинг может работать некорректно.
    2. Настройте матчинг по инструкции.

    Если вы принимаете заказы из агрегаторов доставки (Яндекс.Еда, Delivery Club и других) или собственных мобильных приложений, необходимо самостоятельно или с помощью разработчика настроить сохранение статического источника. Источник должен сохраняться на этапе создания заказа в поле marketingSource. В Roistat будет отображаться статический источник таких заказов.

    Шаг 7. Расширенные настройки интеграции¶

    На шаге Расширенные настройки вы можете указать способы оплаты, которые нужно учитывать в качестве скидки. Сумма, полученная этими способами, будет вычитаться из общей суммы при расчете показателей Выручка и Сумма со скидкой. Это позволит видеть реальную выручку с учетом скидок.

    Чтобы применить изменения, нажмите Сохранить.

    Шаг 8. Настройка Товарной аналитики¶

    Интеграция Roistat с iiko позволяет использовать Товарную аналитику – инструмент, с помощью которого можно анализировать эффективность продаж отдельных товаров.

    Чтобы настроить Товарную аналитику:

    1. В проекте Roistat откройте раздел Аналитика, перейдите на вкладку Товарная аналитика и нажмите Включить товарную аналитику:
    2. Теперь информация о товарах будет отображаться в разделе Аналитика → Отчеты:
    3. Также подробная информация о товаре отображается в карточке сделки:

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

    После настройки интеграции рекомендуем воспользоваться следующими вспомогательными инструментами:

    • Управление клиентами
    • Дашборд
    • Экспериментальные возможности
    • Управление ставками
    • Email-трекинг
    • Когортный анализ
    • Ловец лидов
    • События
    • Радар

    Источник: help-ru.roistat.com

    Подключаемся к внутреннему протоколу iiko

    Относительно давно мне пришлось подразобраться во внутреннем протоколе работы сервера айко, т.к данных, даваемых публичным API мне не хватало. Плюс к этому, во времена когда я это делал, «биз» работал не стабильно и периодически падал.

    Как я парсил данные?

    С помощью burp, если коротко. Я сделал образ в virtualbox с чистой windows, установил туда Админку (iikoOffice), настроил прокси на компьютер, где установлен burp.

    И так предположим, вы решили посмотреть, ну например, как получить товары: запустили анализатор; открыли Админку, в левом меню, в разделе «Товары и склады» щелкнули на пункт товары, открыв анализатор, вы увидите примерно следующую картину:

    Читайте также:
    Структура программы с ветвлением

    Админка iikoOffice

    Непонятно! Я, например, ожидал увидеть путь похожий на «/goods/product/list». Более того, пройдясь по всем запросам, скорей всего в их ответах вы не найдёте вообще ничего похожего на список товаров. Но как так? В программе мы их же видим!

    Откуда они там берутся?

    Давайте разбираться!

    На самом деле, ответ прост: «админка» берёт данные из собственной БД! Да,да, каждый клиент имеет собственную БД, в которой хранит практически все данные.

    Насколько я понял, только заказы (они же доставки в программе) не хранятся. По крайней мере, их и список терминалов можно получить отдельным запросом.

    Но как данные попадают в локальную БД?

    Синхронизация

    Если посмотреть на список запросов, то можно увидеть:

    1. Все данные передаются и принимаются в xml.
    2. Все запросы методом POST.

    Также, если присмотреться,то увидите часто встречающийся post-запрос на url: «/services/update?methodName=waitEntitiesUpdate». Если посмотреть, что он возвращает, то опять же, вы вряд ли найдёте что-то интересное для себя.

    Админка iikoOffice

    Но вот если попробовать создать, например, товар, только не на отслеживаемом клиенте, а на каком-нибудь другом (чуть позже поймёте, почему на другом), и снова посмотреть, что он вернёт, то увидите, примерно следующий ответ:

    true SUCCESS 6308f3a9-298d-6b7d-0186-38a0563f0001 237070 97b00c04-beb1-4ddc-85cc-a2e43ae95e9a Product false 237070 false 2023-02-26T10:38:32.410+04:00 2023-02-26T10:38:32.398+04:00 1900-01-01T00:00:00.000+04:00 4386 TestGoods false 21000090000213124 6095 008c6c5a-e7bf-4475-8a20-57b363dd94f1 008c6c5a-e7bf-4475-8a20-57b363dd94f1 . false -724401794 3442 2023-05-29T10:38:32.413+04:00 ERROR messge LicenseChecker 480096

    Заметили? Да, в entitiesUpdate->items лежат данные, которые необходимо обновить.

    BackEnd разработчик PHP (Symfony) HR TECH (Проект Рекорд Мобайл) АО «Гринатом» , , можно удалённо , По итогам собеседования

    Так, а давайте создадим товар на текущей машине и посмотрим, как, в этом случае, нам ответит сервер. При создании товара «админка» отправляет post запрос на адрес:»/services/products?methodName=createProduct». В ответ мы получим примерно тот же самый ответ,что и получили выше при запросе на «/services/update?methodName=waitEntitiesUpdate». То есть, мы также получили в ответе (entitiesUpdate->items) данные, которые необходимо обновить. Вообще, какой бы вы запрос ни отправляли на сервер, вы будете получать одну и ту же структуру, в которой всегда будет entitiesUpdate.

    Сервер при любом запросе всегда возвращает следующею структуру:

    Но как сервер понимает, что надо возвращать? Посмотрим, что мы отправляли на «/services/update?methodName=waitEntitiesUpdate»:

    237069 BACK false dc193feb-8bd6-4357-b945-2795769583d0 123133 3072 4d7daff1-a070-45bf-928a-24d0a1c47f73 true true 237069 30000

    Обратите внимание, на число «entities-version», а теперь посмотрите в ответ entitiesUpdate->revision. В моем случае, в ответе revision,больше на 1. Более того, у продукта, который мы создали, также есть свой revision, в данном случае, он равен entitiesUpdate->revision.

    Насколько я понял:

    1. На сервере в БД у каждой таблицы есть колонка revision.
    2. Есть глобальная перемененная revision на сервере.
    3. В момент обновления или вставки мы сначала увеличиваем общий «revision», потом вставляем его в текущею таблицу.

    Когда клиент запрашивает данные, то в «entities-version» указывает свой текущий revision.

    Сервер в свою очередь проходится по всем таблицам и берет данные, где «revision» больше «entities-version», и возвращает их в ответе (items), где также возвращает свой revision.

    Фух, почти всё! Остался последний пункт.

    Аутентификация

    Так пришло время разобраться, как сервер понимает, что мы это мы. Давайте взглянем на заголовок, который передаётся в каждом запросе:

    POST /resto/services/update?methodName=waitEntitiesUpdate HTTP/1.1 Content-Type: text/xml X-Resto-CorrelationId: d0d3901c-d314-42cd-b363-81139698a229 X-Resto-LoginName: Login X-Resto-PasswordHash: > X-Resto-BackVersion: 8.2.7014.0 X-Resto-AuthType: BACK X-Resto-ServerEdition: IIKO_RMS Accept-Language: ru Host: > Content-Length: 654 Expect: 100-continue Accept-Encoding: gzip, deflate Connection: close

    Кроме стандартных, мы видим заголовки, начинающиеся с «X-Resto-».

    Давайте по порядку:

    1. X-Resto-CorrelationId: генерируете любой uuidv4 при каждом запросе и вставляете сюда, а также в тело запроса в поле
    2. X-Resto-LoginName: тут думаю понятно. Логин, который вы прописываете в форме авторизации в iikoOffice.
    3. X-Resto-PasswordHash: sha1 хеш от вашего пароля.
    4. X-Resto-BackVersion: текущая версия, актуальную можно найти по адресу: /get_server_info.jsp.
    5. X-Resto-AuthType: всегда «BACK»
    6. X-Resto-ServerEdition: IIKO_RMS
    Читайте также:
    Как отменить автоматическое включение программ

    Дальше обязательные поля в теле запроса:

    1. entities-version: C этим мы разобрались ранее.
    2. client-type: BACK
    3. client-call-id: тоже самое, что и в X-Resto-CorrelationId
    4. license-hash: для /services/authorization?methodName=getCurrentFingerPrints можно ставить «0»,в остальных случаях берем актуальное значение (смотри ниже).
    5. restrictions-state-hash: для /services/authorization?methodName=getCurrentFingerPrints можно ставить «0», в остальных случаях берем актуальное значение (смотри ниже).
    6. obtained-license-connections-ids: Не понял зачем это нужно, но запросы работают без него, поэтому оставляем пустым.
    7. use-raw-entities: ставим «true». Не заметил, чтобы на что-то влияло.

    По поводу «license-hash» и «restrictions-state-hash» можно получить, отправив запрос по адресу: «/services/authorization?methodName=getCurrentFingerPrints». Все! Как видите, все не так сложно:).

    Итог

    Возможно вам не хватает стандартных инструментов или вы хотите большей стабильности. Предугадать причины, по которым вы решите пойти по моему пути, я не могу. Я могу лишь пожелать вам удачи:). И да, также я подготовил демопроект на php.

    Источник: tproger.ru

    Автоматизация мини-отелей и небольших гостиниц на базе программы iiko

    Сегодня, мы рассмотрим iiko под новым углом. Безусловно, все, кто хотя бы немного знакомился с этой программой, отлично закрывающей вопросы ресторанного бизнеса, привыкли относиться к ней, как к узкоспециализированной. Однако, немногие знают, что при правильном подходе, iiko можно успешно применять и в малом сегменте гостиничной отрасли.

    Безусловно, для крупных отелей и гостиничных комплексов существует свое программное обеспечение, ориентированное на закрытие их потребностей, однако, из-за ряда специализированных моментов, связанных с аналитикой и организацией работающих в рамках гостиничных комплексов ресторанов, отельеры часто предпочитают устанавливать для этого специализированный программный комплекс iiko. Но сегодня не об этом.

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

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

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

    С помощью инструментов iiko, мы сможем решить целый ряд вопросов.

    Блок 1. Питание гостей

    Думаем, здесь вопросов у наших читателей не возникнет, потому что профильная программа Iiko отлично справляется со следующими задачами:

    • питание по карточкам;
    • шведский стол;
    • питание за наличный расчет;
    • учет блюд, продуктов;
    • аналитика спроса и планирование поставок.

    Это стандартный функционал iiko.

    Блок 2. Проживание и услуги

    Для формирования решения по этому блоку задач в iiko используется функционал бронирования, применение клиентских карт, начисление услуг на счет. Все это мы команда компании АкваБайт, уже много лет являющаяся официальным партнером iiko умеем внедрять и настраивать.

    Безусловно, мы не возьмемся утверждать, что при применении в гостиничном бизнесе, программа iiko может предоставить полный аналитический функционал свойственный профильному ПО. Но закрыть целый ряд потребностей позволяющий анализировать динамику развития своего бизнеса и иметь под рукой всю необходимую информацию о текущем положении дел более чем возможно. При этом, финансовые вложения в систему автоматизации кратно меньше.

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

    • #автоматизация
    • #программное обеспечение (ПО)
    • #гостиничный бизнес

    Поделиться статьёй:

    Следите за новостями!

    Получайте раз в неделю подборку лучших статей

    Источник: aqba.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru