27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288
1

Как изменить название всех товаров в каталоге?

24.07.2017, 13:39. Показов 4830. Ответов 5
Метки нет (Все метки)

Добрый день.
Задача такова, имеются 50% товаров с названием вида " ручка дверная", то есть в начале присутствуют пробелы, подскажите пожалуйста как организовать скрипт перебора всех товаров, чтоб убрать все начальные пробелы? Буду весьма благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2017, 13:39
Ответы с готовыми решениями:

Сортировка товаров в каталоге
Доброго времени суток! Не могу разобраться с сортировкой товара. На странице есть...

Помогите советом! Удалился раздел в каталоге товаров 1С-Битрикс
Добрый день форумчане! Прошу помочь. Хотел добавить новую категорию в разделе ламинат на сайте...

Вывод по умолчанию списком элементов (товаров) в каталоге магазина
Здравствуйте! подскажите, а можно сделать так, чтобы этот вывод осуществлялся по умолчанию в виде...

Как изменить название стандартного свойства?
Собственно вот в чем проблема, есть интернет-магазин, в нем нужно сделать сортировку "по...

5
17 / 17 / 8
Регистрация: 16.01.2016
Сообщений: 55
25.07.2017, 18:18 2
PHP
1
2
3
4
5
CModule::IncludeModule('iblock');
$res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => some id), false, false, array('ID', 'NAME'));
$el = new CIBlockElement();
while($row = $res->Fetch())
    $el->Update($row['ID'], array('NAME' => trim($row['NAME'])));
1
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288
26.07.2017, 13:13  [ТС] 3
mix9, спасибо! А если нужно пробежаться по разделам у которых в начале тоже есть пробелы? Я полагаю как-то так?
PHP
1
2
3
4
5
6
7
8
9
10
//Если товаров 100к или больше то пару строк ниже необходимы, верно?
set_time_limit(0);
ini_set("memory_limit", "2024M");
 
CModule::IncludeModule('iblock');
$res = CIBlockSection::GetList(array(), array('IBLOCK_ID' => 1), false, false, array('ID', 'NAME')); // или IBLOCK_SECTION_ID ?
$sec = new CIBlockSection();
while($row = $res->Fetch()) {
    $sec->Update($row['ID'], array('NAME' => trim($row['NAME'])));
}
И еще вопрос, а разве цикл не в фигурных скобках должен быть?

Добавлено через 25 минут
И подскажите ещё пожалуйста один момент, есть скрипт который парсит excel на основе PHPExcel, товары\разделы из прайса добавляются\обновляются всё бы вроде как хорошо, но как деактивировать товары\разделы которых нет в прайсе?
0
2193 / 1126 / 227
Регистрация: 16.03.2008
Сообщений: 5,312
Записей в блоге: 2
29.07.2017, 11:50 4
Цитата Сообщение от pacanchik2013 Посмотреть сообщение
И еще вопрос, а разве цикл не в фигурных скобках должен быть?
Не обязательно. Это основы PHP
Но, рекомендую всегда окружать скобками. Либо есть еще вариант синтакиса:
PHP
1
2
3
while($row = $res->Fetch()):
    $sec->Update($row['ID'], array('NAME' => trim($row['NAME'])));
ewndwhle;
Добавлено через 2 минуты
Цитата Сообщение от pacanchik2013 Посмотреть сообщение
И подскажите ещё пожалуйста один момент, есть скрипт который парсит excel на основе PHPExcel, товары\разделы из прайса добавляются\обновляются всё бы вроде как хорошо, но как деактивировать товары\разделы которых нет в прайсе?
У GetList можно отбирать по DATE_MODIFY_FROM, DATE_MODIFY_TO
0
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288
29.07.2017, 11:55  [ТС] 5
Цитата Сообщение от voral Посмотреть сообщение
У GetList можно отбирать по DATE_MODIFY_FROM, DATE_MODIFY_TO
А как это связано с деактивацией товаров которых нет в прайсе? Не улавливаю связь...
0
2193 / 1126 / 227
Регистрация: 16.03.2008
Сообщений: 5,312
Записей в блоге: 2
29.07.2017, 12:05 6
Загружая прайс вы можете обновить товар?
В таблице содержащей товары есть поле TIMESTAMP_X. Вы его можете обновить. Т.е. При начале загрузке прайслиста вы запоминаете текущую дату/время. Во время загрузки обеспечиваете, что бы у тех что есть в прайслисте это поле обновилось. По окончании загрузки отбираете все товары у которых дата (TIMESTAMP_X) меньше чем сохраненная в начале (или можно использовать то поле что я сказал в начале). Если загрузка в несколько этапов - дату сохраняете именно на самом первом шаге (можно в COption),

Отобранные товары деактивируете

Кстати именно так и работает галка "деактивировать отсутствующие в выгрузке" при штатном обмене с 1С

Добавлено через 3 минуты
Кстати опечатался вверху

PHP
1
2
3
while($row = $res->Fetch()):
    $sec->Update($row['ID'], array('NAME' => trim($row['NAME'])));
endwhile;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2017, 12:05
Помогаю со студенческими работами здесь

Как при создании заказа получить текущие цены товаров из корзины и изменить их?
Добрый день. У меня никак не получается в событии OnGetOptimalPrice получить цену, количество...

Как изменить название в логотипе сайта на платформе bitrix
Вообщем имеется сайт больницы,с нового года название изменилось, надо на сайте переделать заголовок...

Изменить подгрузку товаров в каталоге
Имеется сайт с разделом games http://xn--80akivdjfp5ac.xn--p1ai/games/ В нем реализована выгрузка...

WooCommerce изменить название вкладки для категории товаров
Добрый день! Есть кастомная вкладка, как сделать так, чтобы её название изменилось только для одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru