Добрый день. Столкнулся один раз с проблемой, что не пришел заказ на почту администратора интернет-магазина, и в Битрикс, к сожалению, нет функционала продублировать заказ на почту. Сделал небольшую обработку, которая помогает отправить заказ с нужным номером еще раз на почту. Итак приступим..
В корне сайта создаем любой файл с любым названием и расширением .php. У нас это будет test.php.
Наполняем файл такими строками:
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetPageProperty("title", "Подтверждение заказа");
Тут ничего особенного, подключение шапки сайта и установка заголовка страницы. Далее пишем:
Класс с возможностью ручной установки isNew
CModule::IncludeModule('sale');
class OrderExtended extends \Bitrix\Sale\Order
{
public function setIsNew($value)
{
$this->isNew = ($value === true);
}
}
$orderId = 35744;
Где $orderid - номер нашего заказа. Далее:
Подмена класса для заказа
$registry = \Bitrix\Sale\Registry::getInstance(\Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER);
$registry->set(\Bitrix\Sale\Registry::ENTITY_ORDER, OrderExtended::class);
// Грузим заказ + ставим отметку isNew
$order = \Bitrix\Sale\Order::load($orderId);
$order->setIsNew(true);
// Сама отправка уведомления
$result = \Bitrix\Sale\Notify::sendOrderNew($order);
?>
В этом коде Вам необходимо изменить только $orderid на номер Вашего заказа и вызвать этот файл php в вашем браузере. На этом все.
Если статья была полезной, ставьте лайк и подписывайтесь.