Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Уменьшать количество при заказе

00 голосов
6
Как выставить галочку "Уменьшать количество при заказе" для всех товаров сразу?
спросил 17 Сен, 13 от Ashesar (140 баллов)

6 Ответы

00 голосов
В административной части такой функции нет! Написал небольшой скрипт, используя API:

Код
<?
 
/*
 * ----------------------------------------------------
 * 1C-Bitrix
 * ----------------------------------------------------
 * by Limarc /Alexander Lobashev/
 * (c) 2007-2009 by Limarc
 * _link: http://www.free-lance.ru/users/Limarc
 * ----------------------------------------------------
 * Index: work.qtrace.php
 * Version Number: 1.0
 * ----------------------------------------------------
 */
     require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
     
     //
     // Загрузка модулей Битрикса
     //
     if (!CModule::IncludeModule('iblock') or !CModule::IncludeModule('catalog'))
     {
             die ('Ошибка в загрузки модулей...');
     }
     
     //
     // work.qtrace -> Конфигурация запроса
     //  
     $e = false;
     $arFilter = array (
                         "IBLOCK_ID"   => 4,
          "IBLOCK_TYPE" => "1c_catalog",
             );
     
     $arSelect = array("ID");
     
     //
     // work.qtrace -> Запрос
     //             
     $getQuery = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
     
     //
     // work.qtrace -> Обновляем параметры
     //        
     if ($getQuery->SelectedRowsCount() > 0)
     {
             while ($arFields = $getQuery->GetNext())
             {
                     $arProperty = array
                     (
                                 'QUANTITY_TRACE' => 'Y',
                     );
                     
                     if (!CCatalogProduct::Update($arFields['ID'], $arProperty))
                     {
                             $e = true;
                             echo "<p style='font: 1.3em Trebuchet MS, Tahoma, Sans-serif; color: #ff0000;'>Error &mdash; ".$arFields['ID']."</p>";
                     }
             }
     }
     else
     {
             echo "<p style='font: 1.3em Trebuchet MS, Tahoma, Sans-serif; color: #ff0000;'>Not found elements...</p>";
     }
     
     if ($e === false)
     {
             echo "<p style='font: 1.3em Trebuchet MS, Tahoma, Sans-serif; color: #666666;'>Complete...</p>";
     }

?> 
ответил 21 Сен, 13 от Zzion (140 баллов)
00 голосов
Спасибо, будем тестить
ответил 20 Дек, 13 от Ashesar (140 баллов)
00 голосов
для чайников - куда этот скрипт вставить ? :oops:
ответил 04 Апр, 14 от Aelleorn (100 баллов)
00 голосов
Цитата
Владимир Деркач пишет:
для чайников - куда этот скрипт вставить ?


Создайте любую страницу, скопируйте туда этот код и запустите.
Правда это файл нужно будет запускать после каждого импорта каталога товаров из 1с.
ответил 27 Июль, 14 от ioannes (540 баллов)
00 голосов
А еще проще зайти в БД через phpMyAdmin и там выполнить SQL-запрос:

UPDATE `b_catalog_product` SET 'QUANTITY_TRACE' = 'Y'

И чтобы больше не заморачиваться с этим заходим в структуру таблицы b_catalog_product и для поля QUANTITY_TRACE ставим значение по умолчанию 'Y' и все.
ответил 29 Ноя, 14 от Aypuka (340 баллов)
00 голосов
или можно также повесить обработчик события при создании нового элемента.
ответил 24 Март, 15 от LMage (100 баллов)

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

0 голосов
2 ответов
0 голосов
0 ответов
0 голосов
6 ответов
0 голосов
1 ответ
0 голосов
4 ответов