Меню
RSS
Скрипт который создаст и сразу удалит 10 000 заказов., Нужно было на одном из проектов, начать отсчет ID заказов (не номеров а именно ID) с 10 000 (ох уж эти 1С ники).
 
Скрипт который создаст и сразу удалит 10 000 заказов.
Нужно было на одном из проектов, начать отсчет ID заказов (не номеров а именно ID)
с 10 000  (ох уж эти 1С ники).

После удаления заказов, даже всех, отсчет ID продолжается с последнего созданого.
Потому, просто создаем и сразу удаляем 10 000 заказов.
PS: Скрипт удалит все заказы. Если нужны те- которые созданы до запуска скрипта, доработайте цикл - на удаление именно созданного им заказа.
Вариант "в лоб" - поменять ID прямо в базе, меня не устраивал.
Код
Bitrix\Main\Loader::includeModule('sale');
Bitrix\Main\Loader::includeModule('catalog');

for ($i=0; $i<10000; $i++) {   // ПОМЕНЯТЬ НА СВОЮ ЦИФРУ - если нужно больше/меньше заказов
   $products = array(
       array('PRODUCT_ID' => 1811, 'NAME' => 'Товар 1', 'PRICE' => 500, 'CURRENCY' => 'RUB', 'QUANTITY' => 5)
   );

   $basket = Bitrix\Sale\Basket::create(SITE_ID);

   foreach ($products as $product) {
       $item = $basket->createItem("catalog", $product["PRODUCT_ID"]);
       unset($product["PRODUCT_ID"]);
       $item->setFields($product);
   }

   $order = Bitrix\Sale\Order::create(SITE_ID, 1);
   $order->setPersonTypeId(2);
   $order->setBasket($basket);

   $shipmentCollection = $order->getShipmentCollection();
   $shipment = $shipmentCollection->createItem(
       Bitrix\Sale\Delivery\Services\Manager::getObjectById(1)
   );

   $shipmentItemCollection = $shipment->getShipmentItemCollection();

   /** @var Sale\BasketItem $basketItem */

   foreach ($basket as $basketItem) {
       $item = $shipmentItemCollection->createItem($basketItem);
       $item->setQuantity($basketItem->getQuantity());
   }

   $paymentCollection = $order->getPaymentCollection();
   $payment = $paymentCollection->createItem(
       Bitrix\Sale\PaySystem\Manager::getObjectById(1)
   );
   $payment->setField("SUM", $order->getPrice());
   $payment->setField("CURRENCY", $order->getCurrency());

   $result = $order->save();
   if (!$result->isSuccess()) {
       //$result->getErrors();
   }
}

// УДАЛЕНИЕ ВСЕХ ЗАКАЗОВ - можно перенести в цикл на создание и сразу удаление именно этого заказа
$orders = CSaleOrder::GetList(array("ID" => "DESC"), array(), false, false, array('ID'));
   while ($order = $orders->Fetch()) {
        $result = CSaleOrder::Delete($order['ID']);
   }
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Блог-note: заметки разработчика

Кастомизация компонента восстановления пароля bitrix:system.auth.forgotpasswd

Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользователя. Типовая задача, это измени...

Открытие мобильного приложения Apache Cordova по ссылке

Достаточно часто нужно реализовывать открытие мобильного приложения по ссылке. Например: при отправке ссылки на электоро...

Автоматически помечаем новинки лейблом в каталоге битрикс

Если вы хотите помечать новинки каталога, вашего магазина на Битрикс, лейблом "Новинка". И так, что бы это происходило а...

Вывести свойство привязка к Яндекс Картам в Битрикс

Часто бывает нужно вывести свойство привязка к Яндекс карте в детальном описании элемента. Например в детальной новости ...

Подключение jquery из ядра битрикс и объединение своих скриптов в один файл

Если используете большое количество js скриптов на сайте. Например: фансибокс, всяческие галереи и прочее- то таких внеш...

Автогенерация символьных кодов разделов и элементов Битрикс

Иногда нужно создать символьные коды для разделов и элементов. Например: если сайт создан давно и ранее работал на ID се...

GIT-репозиторий на собственном сервере с веб-интерфейсом: Gitea - аналог GitHub

Задача: Развернуть git-репозиторий на собственном сервере с помощью Gitea — для ведения проектов, с веб-интерфейсом и по...

Заполнить картинки разделов каталога из картинок товаров

Задача: в каталоге, разделы и подразделы выводятся в виде плитки над товарами, с картинками разделов. Так как разделов и...

Вывести информацию, только на первом уровне раздела каталога, в 1С-Битрикс

Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента подключены в файле section.php к...