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

Кастомизированный импорт из csv

00 голосов
7
Здравствуйте. У меня есть файл csv и есть забитые товары в каталоге.

Можно ли сделать так, чтобы при импорте сравнивался номенклатурный код из csv с соответствующим полем у товара, и при совпадении значений перезаписывалась цена?

Пробую сделать через init.php:

Код
 AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","CustomizeCatalogElements");
    function CustomizeCatalogElements(&$arFields)
        {
        if (@$_REQUEST['submit_btn']=='Загрузить данные >>') // импорт из csv
            {
            // код обработчика
            }
        }

Но мне кажется, что это не совсем то. Импорт по умолчанию записывает в инфоблок товары, а мне нужно сравнение перед записью. Плюс не совсем понятно, как получить доступ к полям элемента до и после выгрузки, чтобы ими оперировать.

Подскажите пожалуйста как поступить? Спасибо.
спросил 28 Июль, 13 от Asteria (1,840 баллов)

7 Ответы

00 голосов
Цитата
Юрий Шубин пишет:
номенклатурный код из csv с соответствующим полем у товара
Храните свой код в поле XML_ID и штатный функционал к Вашим услугам.
ответил 28 Июль, 13 от Pomnep (13,960 баллов)
00 голосов
Цитата
Евгений Жуков пишет:
Цитата
Юрий Шубин пишет:
номенклатурный код из csv с соответствующим полем у товара
Храните свой код в поле XML_ID и штатный функционал к Вашим услугам.
Не могу найти такое поле. Есть только поле внешний код. Редакция - Первый сайт.
ответил 24 Сен, 13 от Asteria (1,840 баллов)
00 голосов
Это оно и есть. А откуда у Вас цены на Первом сайте?
ответил 24 Дек, 13 от Pomnep (13,960 баллов)
00 голосов
Свойство инфоблока с ценой.
ответил 10 Апр, 14 от Asteria (1,840 баллов)
00 голосов
Евгений Жуковя не совсем понял как использовать штатный функционал в данном случае. Напишите, если не сложно, пару слов разъяснений.
ответил 02 Авг, 14 от Asteria (1,840 баллов)
00 голосов
Номенклатурный код загружайте в при csv-импорте информационных блоков в поле XML_ID (внешний код). При повторной загрузке коды должны быть те же - тогда данные обновятся.
ответил 06 Дек, 14 от Pomnep (13,960 баллов)
00 голосов
XML_ID или (внешний код) - поле по которому производится соответствие записи в csv и с записью инфоблока. Пишите ваше поле в XML_ID, если оно уникально
ответил 29 Март, 15 от NitroGeN (2,840 баллов)

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

0 голосов
2 ответов
спросил 09 Фев, 15 от аноним
0 голосов
10 ответов
спросил 12 Фев, 13 от Yoghurt (200 баллов)
0 голосов
1 ответ
0 голосов
4 ответов