Перепроведение запись заказов со стороны БУС Битрикс при обмене, При обмене с 1С Бус зачастую помечает заказы как уже выгруженные и больше не отдает их 1С приходится заходить в каждый заказ и сохранять его.
Данный скрипт решает эту проблему, создаем массив с номерами заказов которые надо перепровести.
Данный массив можно получить не сложными манипуляциями с эксель выгрузить через запятую все необходимые номера заказов в БУС
Далее пишем скрипт
Который пробегает по всему массиву и пересохраняет все заказы с указанными номерами.
Идем в командную строку Php
/bitrix/admin/php_command_line.php?lang=ru
Вставляем туда скрипт с вашими номерами заказов, в теории не сложно сделать чтобы прошелся по всем, но лучше протестировать сначала на парочке
Внимание! данный скрипт заменяет комментарий менеджера (чтото надо в заказе поменять иначе не срабатывает)
Код
use Bitrix\Sale\Order;
$my_arr = array(236,235,229,227,227,224,220,219,217,214,215,212,208,204,200,197,195,194,193,188,187,186,185,182,177,169,168,158,167);
foreach ($my_arr as $value) {
$order = Bitrix\Sale\Order::load($value);
$order->setField('UPDATED_1C', 'N');
$order->setField('EXTERNAL_ORDER', 'N');
/*Обязательно надо обновить поле комментс или аналогичное иначе у заказа не будет изменена дата обновления и он не уедет по обмену в 1С*/
$order->setField('COMMENTS',"upload");
$order->doFinalAction(true);
$result = $order->save();
$order->save();
if ($result->isSuccess()) {
echo 'Изменения сохранены успешно!<br>';
} else {
echo $result->getError();
}
echo $value, " saved<br>";
}