Экспорт заказа в iiko
Когда клиент оформляет и оплачивает заказ на сайте, Woo2iiko отправляет его в iiko. Это полный цикл: предзапрос → отправка → синхронизация статуса.
Когда отправляется заказ
Экспорт срабатывает на события WooCommerce:
| Событие | Когда | Что происходит |
|---|---|---|
woocommerce_checkout_create_order | Создание заказа (checkout) | Формируется предзапрос (pre-request) с данными. |
woocommerce_order_payment_status_changed | Смена статуса оплаты | Отправка заказа в iiko. |
woocommerce_payment_complete | Онлайн-оплата завершена | Отправка заказа в iiko. |
Экспорт включён по умолчанию
Экспорт можно отключить настройкой iiko_disable_export = yes (в режимах доставки). Если выключено — заказы не уходят в iiko.
Что передаётся в iiko
В заказе iiko передаются:
- Состав заказа — товары с модификаторами, количеством, ценой.
- Адрес доставки — с нормализацией (дом, корпус, строение, подъезд, этаж, квартира) и координатами.
- Клиент — телефон, имя, email, день рождения, категория.
- Тип доставки — курьер (
isSelfService = false) или самовывоз (isSelfService = true). - Время доставки — слот (
when). - Оплата — тип и сумма (нал/безнал), флаг внешней фискализации.
- Бонусы — сумма списания (если применены).
- Скидки/купоны — привязка к iiko-скидкам по
iiko_id. - Комментарий и количество персон.
- Терминал — точка продаж.
Meta заказа
В заказе WooCommerce сохраняются meta для аудита и отслеживания:
| Meta | Содержимое |
|---|---|
iiko_pre_request | Данные предзапроса. |
iiko_order_request | Отправленный запрос в iiko. |
iiko_order_respond | Ответ iiko (JSON). |
iiko_id | UUID заказа в iiko. |
order_num | Номер заказа в iiko. |
no_sent_iiko | Флаг «не отправлен в iiko». |
Статусы после экспорта
После получения ответа iiko статус WC-заказа синхронизируется:
| Ответ iiko | Статус WC |
|---|---|
closed / success | completed |
cancelled | cancelled |
error | failed |
В заказ добавляется note: «Заказ отправлен в iiko» (или сообщение об ошибке).
Управление сменой статуса
Настройка dont_change_wc_order_status (модуль OrderTracking) блокирует автоматическую смену статуса WC заказа — если вы хотите управлять статусами вручную.
Ручной экспорт
В карточке заказа WC (метабокс iiko_order_info) доступны действия:
- Send order to iiko — отправить заказ в iiko вручную.
- Send as new — отправить как новый заказ.
- Update order info from iiko — обновить данные из iiko.
Эти же действия доступны как bulk actions в списке заказов.

Обработка ошибок
Настройка salience_mod определяет поведение при ошибке экспорта:
| Значение | Поведение |
|---|---|
no (по умолчанию) | При ошибке — wp_die() с текстом для клиента (send_error_text). |
| другое значение | Тихий режим — заказ создаётся, ошибка логируется, note добавляется. |
Текст ошибки клиенту: send_error_text (настраивается).
Хук ошибки
При ошибке экспорта эмитится фильтр iiko_error_response (array, string, WC_Order) — можно кастомизировать ответ.
Интеграции с другими модулями
Экспорт запускает действия, на которые подписаны другие модули:
| Действие | Кто использует |
|---|---|
iiko_before_order_export | ReserveTables (подготовка заказа стола). |
iiko_success_order_export | LoonaBonuses (списание бонусов), Bonuses. |
iiko_after_order_export | TelegramNotifications (уведомление). |
Нормализация адреса
Перед отправкой адрес нормализуется модулем AddressNormalization:
- Разбор строки «19к3стр2» → house=19, housing=3, building=2.
- Сериализация в формат
legacyилиcity(зависит отiiko_address_format_type).
При наличии ключей DaData (dadata_key, dadata_skey) адрес дополнительно нормализуется через DaData.