Найти тему
СОЗДАЮ

Как из Битрикс повторно отправить заказ на почту

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

Как из Битрикс повторно отправить заказ на на почту
Как из Битрикс повторно отправить заказ на на почту

В корне сайта создаем любой файл с любым названием и расширением .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 в вашем браузере. На этом все.

Если статья была полезной, ставьте лайк и подписывайтесь.