Задача
Многие компании до сих пор получают заказы по почте — заказ из системы клиента, таблицу или несколько строк в письме. Кто-то перепечатывает каждый в Odoo. Это медленно, и ошибку в артикуле или количестве легко пропустить.
Что мы сделали
Клиенты присылают заказы на один адрес, например orders@ ваш домен. Каждое письмо становится записью в Продажах, и модуль читает заказ в одном из трёх видов:
- Заказ UBL (Peppol BIS 3) из системы клиента — вложением или внутри PDF, который отправляет модуль закупок Odoo.
- Наш бланк заказа Excel, свой для каждого клиента — с его товарами и ценами. Клиент вписывает количества и свой номер заказа и отвечает письмом с файлом.
- Строки в письме вида «A1023 x 5»; номер заказа берётся из «PO:» или «Ref:». Цитаты из прошлых писем не учитываются.
Создаётся черновик предложения по ценам клиента и отправляется ему со ссылкой для подтверждения на портале в один клик. Автоматически ничего не подтверждается. По вашему выбору счёт создаётся и отправляется на оплату сразу после подтверждения клиентом.




Защита
- Проверенные отправители. Предложение создаётся, только если ваш почтовый сервер подтвердил отправителя (DMARC pass либо одновременно SPF и DKIM pass). Иначе письмо проверяет человек.
- Подписанный бланк. Каждый бланк Excel несёт подпись, привязанную к клиенту, поэтому изменённый или чужой бланк отклоняется.
- Без двойных заказов. Один и тот же номер заказа от одного клиента не оформляется дважды — клиенту сообщают, что заказ уже у вас. Те же товары и количества в течение трёх дней помечаются как возможный дубль и не отправляются.
- Неизвестные артикулы и отправители. Неизвестные артикулы перечисляются в предложении, и оно не отправляется. Письмо с адреса, который не принадлежит клиенту, предложения не создаёт — человеку ставится задача.
- От имени вашего продавца. Предложения и письма уходят от продавца клиента или от выбранного вами сотрудника, никогда — от системного бота.

Технологии
Без ИИ и внешних сервисов: модуль читает структурированные форматы и простые строки, поэтому результат предсказуем, а данные заказов остаются в вашей базе Odoo. Он опирается только на собственные модули продаж и UBL Odoo, поэтому работает на Odoo 19 Community и Enterprise.
Произвольные PDF и фотографии заказов модуль не читает — их разбирает человек.
Для технических специалистов: Python (Odoo 19); UBL через sale_edi_ubl Odoo; заголовок Authentication-Results почтового сервера; бланки Excel с подписью HMAC; лицензия OPL-1.
Результат и статус
Готов для клиентов: версия 1.2.1 для Odoo 19. Проверен на нашем тестовом сервере с настоящей почтой между нашим почтовым сервером и Gmail: строки в письме, бланк Excel (в том числе заполненный в Apple Numbers), заказ UBL внутри PDF из закупок Odoo, дубли, неизвестный отправитель, изменённый бланк, проваленные и подделанные SPF, DKIM и DMARC, подпись на портале и счёт при подтверждении.
Код
Исходный код не публикуется: модуль лицензируется на базу (OPL-1).
Подключить для своего бизнеса
- Лицензия на одну базу: £295 разово.
- Установка и настройка: £195.
- На нашем хостинге Odoo Community, тарифы Business и Dedicated: лицензия включена, настройка £195.
- Обновления и доработки: Odoo Care £195 в месяц или £85 в час.
НДС не начисляется — компания не зарегистрирована плательщиком НДС. Если регистрация станет обязательной, с этой даты к ценам будет добавляться НДС по действующей ставке.