Синхронизация xml выгрузки с каталогом сайта (Битрикс)

Jusper1

Постоялец
Регистрация
27 Фев 2015
Сообщения
108
Реакции
47
Собственно, есть xml выгрузка с товарами, у каждого товара есть уникальный айди, есть каталог сайта, в котором есть эти уникальные айди, нужно синхронизировать. Вопрос как сложно и сколько примерно стоит?
 
Загружаете файл на ftp, пишите разбор файла и загрузку его в битрикс.
Вешаете этот импорт на cron.

Загружаете данные из файла в массив и потом для каждого товара в битриксе заполняете поля NAME, DETAIL_TEXT, DETAIL_PICTURE и так далее + созданные пользовательские поля.
Например у вас в $nabor данные из файла, тогда пишем:
PHP:
$item['NAME'] = $nabor[1]; // название
$item["XML_ID"] = $nabor[2]; // артикул
$item["ACTIVE"] = "Y"; // устанавливаем активным

// устанавливаем описание и краткое описание
$item['DETAIL_TEXT_TYPE'] = "html";
$item['DETAIL_TEXT'] = $nabor[11];
$item['PREVIEW_TEXT_TYPE'] = "html";
$item['PREVIEW_TEXT'] = $nabor[12];

//устанавливаем пользовательские поля, если есть
$prop[21] = $nabor[15]; // например, бренд
$prop[22] = $nabor[16]; // еще какое-то поле

//устанавливаем картинки товаров, которые вы залили в папку images
if (strlen($nabor[31])>0)
        {
            $arPicture = CFile::MakeFileArray($destDir."images/{$nabor[25]}");
            $item["DETAIL_PICTURE"] = $arPicture;
        }
ну и так далее по аналогии
 
Последнее редактирование:
Вы подробней распишите условия.
Синхронизация только остатков по айди. Или удаление добавление элементов? Что с разделами?
1с-ный импорт тоже xml обрабатывает в формате cml2 и много умеет еще для примера - добавлять цены, свойства и тд и тп.
 
Вы подробней распишите условия.
Синхронизация только остатков по айди. Или удаление добавление элементов? Что с разделами?
Я привел лишь 1 из множества алгоритмов выгрузки из 1С на сайт. Если в гоняете из 1С на сайт каждый раз всю базу, то это одно дело, если только изменившиеся позиции, то и выгрузка другая.
Если конфигурация в 1С типовая и не переписанная, то воспользуйтесь стандартным импортом.

Если не хотите заморачиваться - в маркетплейс есть типовые решения по выгрузке из 1С.
 
Я привел лишь 1 из множества алгоритмов выгрузки из 1С на сайт.

Да все правильно - самый простой вариант, но мой пост был адресован топик стартеру, так как наверняка все сложнее. Многие магазины сейчас работают по остаткам поставщиков, и задача стала очень востребована и по опыту советую ему написать подробнее.
 
Вы подробней распишите условия.
Синхронизация только остатков по айди. Или удаление добавление элементов? Что с разделами?
1с-ный импорт тоже xml обрабатывает в формате cml2 и много умеет еще для примера - добавлять цены, свойства и тд и тп.
Есть фтп поставщика, с логином и паролем, там лежит xml выгрузка с товарами.
Конкретная выгрузка занимает один из разделов каталога, который формировался на сайте изначально в ручную и статичен (вся выгрузка всех товаров конкретного поставщика со всеми айди товаров). Синхронизация происходит только по трем полям - айди товара, цена и кол-во. Разделы, названия, изображения и вообще структура не затрагивается, так как есть свои ньюансы с этим. При этом, синхронизация выполняется частично скриптом, а загрузка на сайт, в ручную, средствами самого битрикса - импорт csv. Я пока не зарбирлся с тем, как сделать загрузку сразу в битрикс автоматически
 
Есть фтп поставщика, с логином и паролем, там лежит xml выгрузка с товарами.
Конкретная выгрузка занимает один из разделов каталога, который формировался на сайте изначально в ручную и статичен (вся выгрузка всех товаров конкретного поставщика со всеми айди товаров). Синхронизация происходит только по трем полям - айди товара, цена и кол-во. Разделы, названия, изображения и вообще структура не затрагивается, так как есть свои ньюансы с этим. При этом, синхронизация выполняется частично скриптом, а загрузка на сайт, в ручную, средствами самого битрикса - импорт csv. Я пока не зарбирлся с тем, как сделать загрузку сразу в битрикс автоматически

Сколько товаров тоже надо упоминать, от это зависит как его обрабатывать агентом через битриксовые события или кроном за один шаг или пошагово. А то 1000-2000 товаров не проблема на хостинге пропустить за раз, а вот уже 30000 проблематично, надо пошагово.
 
Сколько товаров тоже надо упоминать, от это зависит как его обрабатывать агентом через битриксовые события или кроном за один шаг или пошагово. А то 1000-2000 товаров не проблема на хостинге пропустить за раз, а вот уже 30000 проблематично, надо пошагово.
30000 товаров.
У вас есть какое-то готовое решение или вы можете развернуто объяснить, наиболее оптимальный, с вашей точки зрения, метод решения в конкретном случаи, на основе исходных данных? К примеру, пункт первый, делаем то-то, пункт второй делаем так, пункт третий возможны несколько вариантов и тд
А то на днях собираюсь плотно заняться вопросом полноценной синхронизации, начну с предложения tankisto. Если сделаю, выложу тут решение
 
Последнее редактирование:
Ну я же не просто так задаю наводящие вопросы от этого и зависит решение. Попробую на последнем своем примере пояснить, вот есть штатный экспорт из 1с, он берет файл xml который получил от 1ски и загоняет его в базу и потому уже обрабатывает. Файлик xml около 200мб. Это в базу в таблицу Для просмотра ссылки Войди или Зарегистрируйся миллионы записей. Сделано так битриксойдами чтобы работало даже на зачуханом хостинге, долго но работало. Но у меня то под задачу сервер с рейдом на ссд и 32 гб памяти. Мне не надо что он несколько десятков!!!! часов загонял его в базу. Мне проще его залить в целиком в память и обработать.

К чему я это, что универсальное решение не всегда хорошо. И лучше знать все входящие параметры задачи, чтобы ее оптимально решить, ну или посоветовать как делать.
 
1) как часто происходит выгрузка? Это плановое событие, или когда угодно? 30000 проверок только на цену и остаток-не так и много, просто на слабом хостинге ,быть может, придется разбить на куски по нескольку тысяч записей
2) возможно ли назначить синхронизацию ночью, на непродажное время? минут 5 потормозит - и все дела(если хост не совсем мертвый)
3) встает ли вопрос партионного учета на вашей стороне? в смысле : остаток одной номенклатуры: 5 шт по 1000 р , 10 шт по 1200, или просто все по одной цене на вашем портале, с ориентацией только на следующую синхронизацию?
 
Назад
Сверху