Задать вопрос
@vardoLP
Ват ю сэй эбаут май мама?!

Как реализовать изменение статуса заказа через письмо?

Всем привет.

Стоит задача: Менеджер магазина получает письмо с описанием заказа и статусом. Как реализовать возможность изменения статуса заказа через письмо без авторизации в админку?

Кто-то делал что-то подобное? Или хотя бы на мысли наведите пжлст ))
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
rpsv
@rpsv
делай либо хорошо, либо никак
В письмо зашиваете ссылку на сервис/страницу/раздел на сайте, который будет менять статус нужного заказа. В параметрах передаете ид заказа и токен (чтоб без авторизации). Токен можете генерить на основании заказа (например "соль + ид заказа + email покупателя"), чтобы быстро его можно было сравнить и не париться с хранением.
Ответ написан
AlexeyCaTHaR
@AlexeyCaTHaR
Нормально реализовать не получится. Почему? Авторизация.

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

Кмк, единственным более-менее вариантом будет проверка почты на сервере.
Т.е. делается почтовый ящик orderstatus@domain и смотрим все входящие письма. В теме, например, передавать ID заказа. В теле письма или json или xml, в котором уже передавать дополнительные параметры или вовсе без параметром, заранее определив последовательность статуса заказов.

Плюсами будет то, что менеджер не будет привязан ни к чему и может с любого утюга менять статусы
Ответ написан
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
Чтобы прям из письма изменить статус
В файл /api/status.php
<?
require_once($_SERVER['DOCUMENT_ROOT'] . "/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Sale;
$order = Sale\Order::load($_GET["ID"]);
$order->setField('STATUS_ID', $_GET["ST"]);
if ($_GET["KEY"] == 'AS456!00') {$order->save();};
?>

В шаблон письма-уведомления, где для id использовать #ORDER_ID# (?ID=#ORDER_ID#)
<a href="https://www.mysite/api/status.php?ID=12456&ST=C&KEY=AS456!00">Отменить заказ>
<a href="https://www.mysite/api/status.php?ID=12456&ST=O&KEY=AS456!00">В обработку>

И не нужна никакая авторизация
Ответ написан
Комментировать
@zhukov___sergey
Тут в статье написано подробно про смену статуса из
почты https://dzen.ru/media/nuxtvue/kak-meniat-status-za...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы