Импорт из Excel

Курс содержит полную информацию по работе с модулем «Импорт из Excel» http://marketplace.1c-bitrix.ru/solutions/kda.importexcel/

Данный модуль предназначен для загрузки данных из Excel-файлов различных форматов в инфоблоки или highload-блоки.

Возможен как ручной запуск импорта, так и периодический импорт по крону. Модуль умеет автоматически загружать файлы из различных источников: из структуры сайта, по внешней ссылке с других сайтов, с ftp-сервера, с email-адреса, по ссылке с авторизацией. Возможна загрузка файла в виде архива и автоматическая распаковка на сайте.

Поддерживается импорт всех стандартных полей инфоблока, свойств, цены, остатков на складах, скидок, комплектов, наборов, торговых предложений и т.д.



 Начать курс обучения

 

Пользовательские комментарии

Дмитрий Кривочуров
Цитата
SeguraStore
Да, звучит вполне логично. Благодарю за помощь. Теоритически теперь все должно работать правильно. Завтра потестирую.
Какие-то еще данные помимо $val не вытаскивая через API битрикса я могу получить в php обработчике в табличке (2 шаг)? Достать-то все можно, но зачем лишние действия, если в итерации уже используется массив в элементом ID_SKU
Если Вы имеете ввиду этот обработчик https://skr.sh/sGyp1LTwUHi, то там на данный момент доступна только переменная $val. Мы не рекомендуем его использовать для сложных условий. Этот обработчик является устаревшим функционалом и мы его оставляем в модуле только для обратной совместимости.
Если нужна фильтрация по каким-то сложным значениям, то можно использовать фильтр совместно с преобразованиями https://skr.sh/sGyLHWeUyjA. Фильтрация работает по преобразованным значениям, а в php-преобразовании можно получить любые поля из файла.
ИмяЦитировать0
SeguraStore
Цитата
1) Значение в колонке 2 и значение из колонки 3 - это исходные значения из файла без учёта предыдущих преобразований. Т.е., первое php-преобразование у Вас в данном случае не учитывается.
2) Текущее значение https://skr.sh/sGxo0vtjn9a - это уже значение с учётом всех предыдущих преобразований.
Да, звучит вполне логично. Благодарю за помощь. Теоритически теперь все должно работать правильно. Завтра потестирую.
Какие-то еще данные помимо $val не вытаскивая через API битрикса я могу получить в php обработчике в табличке (2 шаг)? Достать-то все можно, но зачем лишние действия, если в итерации уже используется массив в элементом ID_SKU
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
SeguraStore
ой нет, не получилось. Сделал вот так и он просто 1 везде проставил.
Здесь есть ещё некоторые нюансы по использованию преобразований.

На скриншоте Вы сравниваете значение в колонке 2 со значением в колонке 3. И здесь важно понимать следующее.
1) Значение в колонке 2 и значение из колонки 3 - это исходные значения из файла без учёта предыдущих преобразований. Т.е., первое php-преобразование у Вас в данном случае не учитывается.
2) Текущее значение https://skr.sh/sGxo0vtjn9a - это уже значение с учётом всех предыдущих преобразований.

Т.е., в Вашем случае нужно проверять именно "текущее значение".

Правда здесь будут сложности с 3-м преобразованием, т.к. "текущее значение" в нём уже может быть изменено вторым преобразованием и сравнить значение из первого преобразования с исходным значением из колонки 2 уже не получится. Но можно проверить конечное значение и задать преобразование такого вида https://skr.sh/sGx82FxEgHX?a.

По php-обработчику, который задаётся на 1-м шаге. В нём доступна только переменная $ID и больше ничего. Этот обработчик выполняется уже после обновления товара. При необходимости все измененные поля из товара можно запросить через API Битрикса, но данные об этом товаре, которые были в файле импорта, внутри этого обработчика уже никак не получить.
ИмяЦитировать0
SeguraStore
ой нет, не получилось. Сделал вот так и он просто 1 везде проставил.
ИмяЦитировать0
SeguraStore
Отлично, получилось
ИмяЦитировать0
Guest
Цитата
1) Остаток рулона делим на длину текущей позиции. В этом преобразовании нет условия.
Вы почти правильно меня поняли, но видимо я как обычно криво пояснил.
Допустим в табличке
ID_SKU (ковер из рулона)
LENGHT
ID_ПАПОЧКИ (рулона)
Для последнего столбика я сделал преобразование php
   $ar_res = CCatalogProduct::GetByID($val);    $val = $ar_res[QUANTITY];
Вот теперь я знаю, сколько метров осталось в рулоне, и осталось сделать любую из проверок
LENHGT > ID_ПАПОЧКИ (после преобразование тут остаток длины) ? 1 : 0;
или как предложили вы
ID_ПАПОЧКИ / LENGHT >= 1 ? 1 : 0;
У меня остался последний вопрос
Как мне достать параметр длины из ТП на текущей итерации (наверное есть уже $arrSKU или хотя бы $ID элемента, который итерирует ваш супер-пупер модуль)
|| или
Как мне сравнить в визуальной табличке значение в двух столбиках (скрин прикладываю)
Интересны оба варианта для понимания.


P.s.: Благодарю за описание работы php в поле преобразования. Эта инфа будет полезна в общем мануале. А как быть с php на первой странице? Вся информация - Переменная $ID содержит идентификатор элемента. $arrSKU тоже можно использовать? #IP_PROP# текущего элемента тоже есть? Если на текущей итерации я хочу изменить данные торгового предложения уже надо использовать CIBlockElement::Update
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
SeguraStore
Привет. Бесконечные респекты за модуль, он прекрасен. Обнял!

Нигде не нашел почитать про php , было б интересно примерчики получить.

Округление было бы логично настроить до х знаков после запятой?
P.s.: round($val,2) - вместо округления выбираем php, раз нет настройки.

На картинке видно, как я проверил форму торгового предложения и если "рулон" умножил количество на длину рулона в метрах.

Теперь у меня есть отдельным файликом пачка товаров, готовые отрезы типа, у них есть свойство с ID папочки (рулон, из которого нарезка делается), и их остаток зависит от остатка папочки рулона. Это уже по любому php писать надо? Помогите плиз.

То есть смысл преобразования:
если остаток папочки рулона больше длины текущей позиции тогда остаток 1, иначе 0

Пример
Товар рулона остался 2.5 метра
Загружаем товары нарезки
1х2 - остаток 1
1х2.5 - остаток 1
1х3 - остаток 0
и тп
Здравствуйте.

По php-преобразованиям возможны 2 варианта написания.
1) Любой однострочный код, который сразу возвращает результат (без return).
Примеры:
Код
1.1) round($val,2) 
1.2) round(max($val*2, $val+10),2)+25 
1.3) $val.' дополнительный текст'

2) Любой код, содержащий присвоение переменной $val. Т.е., в переменной $val содержится как входящее значение, так в неё может быть передано и исходящее значение.
Здесь, думаю, хватит одного примера.
Код
$val = $val*2; 
$val = round($val,2);
И ещё важный момент по php-преобразованиям. Если в них использовать вставки вида #IP_PROP12#, то они сначала заменятся на значения этих полей, а потом уже выполнится php-код. Это может вызывать ошибки.

Например.
Код
$val = #IP_PROP12#*2;
Данный код будет выполнен правильно только если #IP_PROP12# имеет числовое значение. Иначе мы получим ошибку php.
Чтобы избежать таких ошибок, в php-преобразованиях лучше использовать переменные такого вида ${'#IP_PROP12#'}. С ними никаких проблем не должно быть.

Что касается округления, то в последних версиях модуля должен работать такой вариант https://skr.sh/sGw4uhmx4Os. Т.е. точность округления можно указать в последнем поле.

Если я правильно понял задачу по расчёту остатков, то можно её решить и без php-преобразования. Для этого потребуются простые преобразования со следующим набором действий.
1) Остаток рулона делим на длину текущей позиции. В этом преобразовании нет условия.

2) Если текущее значение больше или равно 1, то заменить на 1
3) Если текущее значение меньше 1, то заменить на 0.
ИмяЦитировать0
SeguraStore
Привет. Бесконечные респекты за модуль, он прекрасен. Обнял!

Нигде не нашел почитать про php , было б интересно примерчики получить.

Округление было бы логично настроить до х знаков после запятой?
P.s.: round($val,2) - вместо округления выбираем php, раз нет настройки.

На картинке видно, как я проверил форму торгового предложения и если "рулон" умножил количество на длину рулона в метрах.

Теперь у меня есть отдельным файликом пачка товаров, готовые отрезы типа, у них есть свойство с ID папочки (рулон, из которого нарезка делается), и их остаток зависит от остатка папочки рулона. Это уже по любому php писать надо? Помогите плиз.

То есть смысл преобразования:
если остаток папочки рулона больше длины текущей позиции тогда остаток 1, иначе 0

Пример
Товар рулона остался 2.5 метра
Загружаем товары нарезки
1х2 - остаток 1
1х2.5 - остаток 1
1х3 - остаток 0
и тп
ИмяЦитировать0
Guest
Цитата
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Guest
Здравствуйте!
Загружаем файл из Яндекс.Диска, путь файла вставляем как ссылку на папку Яндекс.Диска
В папке Яндекс.Диска несколько файлов, это прайс-листы с разной датой.
В данном случае, по какой логике выбирается файл для загрузки?
Я думал что по дате создания, но нет. по дате изменения – тоже нет[/TD][/TR][/TABLE]Здравствуйте.
Да, при указании ссылки на папку нет никакой закономерности, какой именно файл будет загружен, т.к. в данном случае модуль скачивает zip-архив со всем содержимым папки и потом уже из архива выбирает первый подходящий по формату файл. А zip-архиве уже не понятно, какой файл и когда был создан.
В данном случае Вам нужно использовать ссылку такого вида https://disk.yandex.ru/d/hsDiMdZ23ZLyHX#маска_названия_файла
Т.е., после ссылки на папку через решётку можно указать названия файла по маске. В маске можно использовать * - это любой набор символов в названии файла. Например, маска вида "Импорт*.xlsx" будет загружать файлы с названиями "Импорт остатков.xlsx", "Импорт 7.11.2022.xlsx" и т.д.
При поиске файлов по маске модуль не загружает zip-архив, а ищет подходящий файл через API Яндекса с сортировкой по дате создания в обратном порядке. Т.е., в этом случае всегда будет загружаться самый свежий файл, который был создан последним.
отлично, спасибо!
Может кому полезно будет)

https://disk.yandex.ru/d/hsDiMdZ23ZLyHX#{Остатки,остатки}*{xls,xlsx}
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Guest
Здравствуйте!
Загружаем файл из Яндекс.Диска, путь файла вставляем как ссылку на папку Яндекс.Диска
В папке Яндекс.Диска несколько файлов, это прайс-листы с разной датой.
В данном случае, по какой логике выбирается файл для загрузки?
Я думал что по дате создания, но нет. по дате изменения – тоже нет
Здравствуйте.
Да, при указании ссылки на папку нет никакой закономерности, какой именно файл будет загружен, т.к. в данном случае модуль скачивает zip-архив со всем содержимым папки и потом уже из архива выбирает первый подходящий по формату файл. А zip-архиве уже не понятно, какой файл и когда был создан.
В данном случае Вам нужно использовать ссылку такого вида https://disk.yandex.ru/d/hsDiMdZ23ZLyHX#маска_названия_файла
Т.е., после ссылки на папку через решётку можно указать названия файла по маске. В маске можно использовать * - это любой набор символов в названии файла. Например, маска вида "Импорт*.xlsx" будет загружать файлы с названиями "Импорт остатков.xlsx", "Импорт 7.11.2022.xlsx" и т.д.
При поиске файлов по маске модуль не загружает zip-архив, а ищет подходящий файл через API Яндекса с сортировкой по дате создания в обратном порядке. Т.е., в этом случае всегда будет загружаться самый свежий файл, который был создан последним.
ИмяЦитировать0
Guest
Здравствуйте!
Загружаем файл из Яндекс.Диска, путь файла вставляем как ссылку на папку Яндекс.Диска
В папке Яндекс.Диска несколько файлов, это прайс-листы с разной датой.
В данном случае, по какой логике выбирается файл для загрузки?
Я думал что по дате создания, но нет. по дате изменения – тоже нет
ИмяЦитировать0
Guest
Цитата
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Андрей
Добрый день!

Подскажите, как в фильтре отсутствующих в файле элементов указать несколько значений поставщика, бренда и тд
Воспринимает лишь одно значение.[/TD][/TR][/TABLE]Здравствуйте.

Несколько значений в фильтре на данный момент можно указать только для свойств типа Привязка к элементам. В этом случае можно задать несколько значений через запятую. Также можно это сделать для свойства типа Список.
Для остальных свойств пока выбор нескольких значений недоступен. Но можно на 2-м шаге в настройках нужного свойства использовать такие параметры https://disk.yandex.ru/i/jCMgXHHrAQvt_w. Такое поле тоже будет использовано для фильтрации отсутствующих элементов.
Банально неверно название бренда прописал после запятой, поэтому думал не работает)
Спасибо большое, Дмитрий!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Андрей
Добрый день!

Подскажите, как в фильтре отсутствующих в файле элементов указать несколько значений поставщика, бренда и тд
Воспринимает лишь одно значение.
Здравствуйте.

Несколько значений в фильтре на данный момент можно указать только для свойств типа Привязка к элементам. В этом случае можно задать несколько значений через запятую. Также можно это сделать для свойства типа Список.
Для остальных свойств пока выбор нескольких значений недоступен. Но можно на 2-м шаге в настройках нужного свойства использовать такие параметры https://disk.yandex.ru/i/jCMgXHHrAQvt_w. Такое поле тоже будет использовано для фильтрации отсутствующих элементов.
ИмяЦитировать0
Андрей
Добрый день!

Подскажите, как в фильтре отсутствующих в файле элементов указать несколько значений поставщика, бренда и тд
Воспринимает лишь одно значение.

ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Влад
Спасибо за модуль, очень выручает.
Подскажите пожалуйста, мне нужно реализовать следующую логику - на сайт выгружаю со своего SQL каталога номенклатуру в виде объемного файла CSV, очень важно запускать профиль импорта только если csv успешно загружен на сайте. Я не хочу подвязываться к крону, так как он может запуститься в момент когда файл еще не загрузился в директорию сайта. При отправке файла я делаю проверку соответствия и только если загруженный файл соответствует, хочу запустить определенный профиль импорта из множества других.
Какую функцию вызвать для запуска профиля импорта к примеру с ID 243?
Здравствуйте.
Если я правильно понял, Вы хотите запустить импорт из какого-то своего скрипта.
Это можно сделать с помощью вызова файла для крона таким образом:
Код
$argv[1] = 243;
include($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/include/kda.importexcel/cron_frame.php');
В переменную $argv[1] передается ID профиля.
Но при этом учитывайте, что если это скрипт выполняется в http-запросе, то там будут серверные ограничения по максимальному времени выполнения скрипта и он может просто не завершиться.
Чтобы избежать таких ограничений, можно использовать запуск системной команды такого вида:
Код
exec('/usr/bin/php -f '.$_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/include/kda.importexcel/cron_frame.php 243');
Это полный аналог запуска по крону.
ИмяЦитировать0
Влад
Спасибо за модуль, очень выручает.
Подскажите пожалуйста, мне нужно реализовать следующую логику - на сайт выгружаю со своего SQL каталога номенклатуру в виде объемного файла CSV, очень важно запускать профиль импорта только если csv успешно загружен на сайте. Я не хочу подвязываться к крону, так как он может запуститься в момент когда файл еще не загрузился в директорию сайта. При отправке файла я делаю проверку соответствия и только если загруженный файл соответствует, хочу запустить определенный профиль импорта из множества других.
Какую функцию вызвать для запуска профиля импорта к примеру с ID 243?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Анастасия
Добрый! Огромное спасибо за модуль, очень помогает в работе.

Подскажите где в Битриксе хранятся файлы статистики?
Здравствуйте.
Если речь идет о статистике импорта, но она хранится в таблице БД b_kdaimportexcel_profile_exec_stat.
ИмяЦитировать0
Анастасия
Добрый! Огромное спасибо за модуль, очень помогает в работе.

Подскажите где в Битриксе хранятся файлы статистики?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Андрей
Здравствуйте. Можете подсказать, есть ли какая то возможность, чтобы при настройке преобразований значений в ячейке отбиралось конкретное значение, а не часть фразы. Имеем два наименования от поставщика (к примеру Altenzo Sports Comforter 215/35 R19 85W XL и Altenzo Sports Comforter 2 215/35 R19 85W XL), мне нужно чтобы при преобразовании оставалось только значение "Sports Comforter" в первом случае и "Sports Comforter 2 во втором случае. Проблема состоит в том, что импорт думает, что в обоих случаях это одно и тоже значение. Во втором случае после преобразование получается "Sports ComforterSports Comforter 2". Может можно указать какой нибудь символ, поставить в кавычки искомое значение?
Здравствуйте.
Здесь все зависит от того, какие именно сейчас преобразования Вы используете. Просто составить какое-то универсальное преобразование для подобных случаев не получится, т.к. названия товаров могут иметь совершенно разные вариации.
Но если речь только о этих 2-х конкретных моделях, то можно использовать такие преобразования https://skr.sh/sE1hUhsJlC4.Во втором преобразовании задаётся проверка по регулярному выражению https://skr.sh/sE1BWBDCZd7, где символы \d{2} означают, что на этом месте должно быть минимум 2 цифры. Т.е., для названия "Altenzo Sports Comforter 2 215/35 R19 85W XL)" это регулярное выражение уже не сработает.
ИмяЦитировать0
Андрей
Здравствуйте. Можете подсказать, есть ли какая то возможность, чтобы при настройке преобразований значений в ячейке отбиралось конкретное значение, а не часть фразы. Имеем два наименования от поставщика (к примеру Altenzo Sports Comforter 215/35 R19 85W XL и Altenzo Sports Comforter 2 215/35 R19 85W XL), мне нужно чтобы при преобразовании оставалось только значение "Sports Comforter" в первом случае и "Sports Comforter 2 во втором случае. Проблема состоит в том, что импорт думает, что в обоих случаях это одно и тоже значение. Во втором случае после преобразование получается "Sports ComforterSports Comforter 2". Может можно указать какой нибудь символ, поставить в кавычки искомое значение?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Влад[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Guest
Добрый день, подскажите не пойму как реализовать. Я добавлю товары от каждого производителя и если товар исчез из каталога он должен удалятся но как сделать что бы он филтрировал только одного производителя а не все товары удалял.  В фильтрации нет по свойству как быть?  [/TD][/TR][/TABLE]Тут нет фильтрации по свойству, как быть?

https://prnt.sc/c1fJiIcomEWI

https://prnt.sc/6KAg5zONKA-z
Добрый день.
В модуле сейчас используется стандартный фильтр Битрикса. Для отображения свойств в этом фильтре нужно на странице настроек инфоблока в параметрах конкретного свойства включить эту галочку https://skr.sh/sDS21K9Dwh9
ИмяЦитировать0
Влад
Цитата
Guest
Добрый день, подскажите не пойму как реализовать. Я добавлю товары от каждого производителя и если товар исчез из каталога он должен удалятся но как сделать что бы он филтрировал только одного производителя а не все товары удалял.  В фильтрации нет по свойству как быть?  
Тут нет фильтрации по свойству, как быть?

https://prnt.sc/c1fJiIcomEWI

https://prnt.sc/6KAg5zONKA-z
ИмяЦитировать0
Guest
Добрый день, подскажите не пойму как реализовать. Я добавлю товары от каждого производителя и если товар исчез из каталога он должен удалятся но как сделать что бы он филтрировал только одного производителя а не все товары удалял.  В фильтрации нет по свойству как быть?  
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Guest
Почему после импорта свойств они не отображаются на морде, хотя в админке есть
Здравствуйте.
Отображение свойств на сайте никак не зависит от импорта данных. Обычно для отображения свойств на сайте необходимо на странице настроек инфоблока в параметрах нужных свойств включить такую галочку https://skr.sh/sCelm5wUroo. Если такой галочки в настройках свойств нет, значит подобные настройки задаются в параметрах компонента каталога. Это уже зависит от данной опции https://skr.sh/sCehbupa5Si в настройках модуля инфоблоков. Если она включена, то эти настройки задаются в параметрах свойств, если отключена, то они задаются в настройках компонента каталога. Также отображение свойств может зависеть от шаблона компонента каталога, который непосредственно отвечает за отображение данных о товарах в публичной части сайта.
ИмяЦитировать0
Guest
Почему после импорта свойств они не отображаются на морде, хотя в админке есть
ИмяЦитировать0
Guest
Цитата
Дмитрий Кривочуров
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Guest
не загружать товар целиком[/TD][/TR][/TABLE]Тогда подойдет то решение, которое я показал ранее https://skr.sh/sCXmlmHYtFk Просто используйте эти настройки не в самом поле с ценой, чтобы цена не изменилась, а задайте их в доп. поле в той же колонке https://skr.sh/sCYX5X1WrDR. Такое поле никуда не загрузится, то фильтрация загружаемых товаров по этому полю успешно сработает.
Спасибо, за помощь, все работает, Ваш модуль самый лучший)!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Guest
не загружать товар целиком
Тогда подойдет то решение, которое я показал ранее https://skr.sh/sCXmlmHYtFk Просто используйте эти настройки не в самом поле с ценой, чтобы цена не изменилась, а задайте их в доп. поле в той же колонке https://skr.sh/sCYX5X1WrDR. Такое поле никуда не загрузится, то фильтрация загружаемых товаров по этому полю успешно сработает.
ИмяЦитировать0
Guest
Цитата
Дмитрий Кривочуров[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Guest
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Дмитрий Кривочуров[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Сергей
а вставить в фильтрацию загружаемых строк можно это вставить, что бы отфильтровать нужные значения? в поле значения можно написать формулу?[/TD][/TR][/TABLE]Можно задать такие настройки https://skr.sh/sCXmlmHYtFk. При фильтрации проверяются уже преобразованные значения, этому такой вариант позволит пропустить подобные строки при импорте.[/TD][/TR][/TABLE]Это получается преобразование (изменение значений в колонке), а нужно сделать фильтрацию, что бы загружались значения по фильтру.
Задача такая, нужно загружать первую колонку ЦЕНА1, но только значения кот меньше на 50 от ЦЕНА2. ЦЕНА1 - это цена со скидкой, ЦЕНА2 - это розничная цена без скидки, т.е что бы загружались только значения со скидкой.  [/TD][/TR][/TABLE]А что Вы хотите делать с товарами, у которых нет такой скидки? Не загружать цену такого товара или не загружать товар целиком?
не загружать товар целиком
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Guest
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Дмитрий Кривочуров[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Сергей
а вставить в фильтрацию загружаемых строк можно это вставить, что бы отфильтровать нужные значения? в поле значения можно написать формулу?[/TD][/TR][/TABLE]Можно задать такие настройки https://skr.sh/sCXmlmHYtFk. При фильтрации проверяются уже преобразованные значения, этому такой вариант позволит пропустить подобные строки при импорте.[/TD][/TR][/TABLE]Это получается преобразование (изменение значений в колонке), а нужно сделать фильтрацию, что бы загружались значения по фильтру.
Задача такая, нужно загружать первую колонку ЦЕНА1, но только значения кот меньше на 50 от ЦЕНА2. ЦЕНА1 - это цена со скидкой, ЦЕНА2 - это розничная цена без скидки, т.е что бы загружались только значения со скидкой.  
А что Вы хотите делать с товарами, у которых нет такой скидки? Не загружать цену такого товара или не загружать товар целиком?
ИмяЦитировать0
Guest
Цитата
Дмитрий Кривочуров[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Сергей
а вставить в фильтрацию загружаемых строк можно это вставить, что бы отфильтровать нужные значения? в поле значения можно написать формулу?[/TD][/TR][/TABLE]Можно задать такие настройки https://skr.sh/sCXmlmHYtFk. При фильтрации проверяются уже преобразованные значения, этому такой вариант позволит пропустить подобные строки при импорте.
Это получается преобразование (изменение значений в колонке), а нужно сделать фильтрацию, что бы загружались значения по фильтру.
Задача такая, нужно загружать первую колонку ЦЕНА1, но только значения кот меньше на 50 от ЦЕНА2. ЦЕНА1 - это цена со скидкой, ЦЕНА2 - это розничная цена без скидки, т.е что бы загружались только значения со скидкой.  
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Сергей
а вставить в фильтрацию загружаемых строк можно это вставить, что бы отфильтровать нужные значения? в поле значения можно написать формулу?
Можно задать такие настройки https://skr.sh/sCXmlmHYtFk. При фильтрации проверяются уже преобразованные значения, этому такой вариант позволит пропустить подобные строки при импорте.
ИмяЦитировать0
Сергей
Цитата
Сергей[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Дмитрий Кривочуров
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Сергей
Добрый день! Можно ли отфильтровать загружаемые значения т.е что бы загружались значения ЦЕНА=(ЦЕНА1-ЦЕНА2)>50, куда можно вставить эту формулу?[/TD][/TR][/TABLE]Здравствуйте.
В данном случае можно поставить поле в колонку с ценой 1 и применить в нём такие преобразования https://skr.sh/sCX7AhMzU2J. Т.о. будут загружены значения только с ценой больше 50. Остальные цены не будут загружены.[/TD][/TR][/TABLE]
а вставить в фильтрацию загружаемых строк можно это вставить, что бы отфильтровать нужные значения? в поле значения можно написать формулу?
Screenshot_1.jpg (124.48 КБ)
ИмяЦитировать0
Сергей
Цитата
Дмитрий Кривочуров
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Сергей
Добрый день! Можно ли отфильтровать загружаемые значения т.е что бы загружались значения ЦЕНА=(ЦЕНА1-ЦЕНА2)>50, куда можно вставить эту формулу?[/TD][/TR][/TABLE]Здравствуйте.
В данном случае можно поставить поле в колонку с ценой 1 и применить в нём такие преобразования https://skr.sh/sCX7AhMzU2J. Т.о. будут загружены значения только с ценой больше 50. Остальные цены не будут загружены.
Screenshot_1.jpg (124.48 КБ)
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Сергей
Добрый день! Можно ли отфильтровать загружаемые значения т.е что бы загружались значения ЦЕНА=(ЦЕНА1-ЦЕНА2)>50, куда можно вставить эту формулу?
Здравствуйте.
В данном случае можно поставить поле в колонку с ценой 1 и применить в нём такие преобразования https://skr.sh/sCX7AhMzU2J. Т.о. будут загружены значения только с ценой больше 50. Остальные цены не будут загружены.
ИмяЦитировать0
Сергей
Добрый день! Можно ли отфильтровать загружаемые значения т.е что бы загружались значения ЦЕНА=(ЦЕНА1-ЦЕНА2)>50, куда можно вставить эту формулу?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Guest
А не подскажите. Можно ли импортировать разделы с помощью модуля?
Да, это возможно. Для этого на 2-м шаге должны быть выбраны только поля разделов.
Варианты загрузки разделов показаны в данной видео-инструкции https://www.youtube.com/watch?v=9WSIgK0dDus.
Возможны и другие варианты. Поэтому если данное видео Вам не подходит, то можете прислать нам пример файла импорта на адрес техподдержки app@esolutions.su и мы подскажем, как загрузить разделы из данного конкретного файла.
ИмяЦитировать0
Guest
А не подскажите. Можно ли импортировать разделы с помощью модуля?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Владислав
Большое спасибо Вам за модуль, очень выручает.
Подскажите пожалуйста, если выполнение импорта происходит по крон, то в истории запусков профилей нет информации о запуске, только файл лога.
Как можно включить так же детальную статистику при запуске из под крон. В настройках профиля "Записывать статистику импорта" = Да.
Статистика должна записываться независимо от способа запуска импорта (вручную или по крону). Возможно, крон настроен неправильно и импорт просто не запускается. Это можно проверить по содержимому лог-файла. Там в первой строке должна быть запись такого вида "2022-01-26 12:00:58: import complete". Если она есть, значит импорт по крону успешно выполняется. В этом случае напишите нам обращение на адрес техподдержки app@esolutions.su. Нам потребуется доступ к Вашему сайту, чтобы разобраться в данной ситуации.
ИмяЦитировать0
Владислав
Большое спасибо Вам за модуль, очень выручает.
Подскажите пожалуйста, если выполнение импорта происходит по крон, то в истории запусков профилей нет информации о запуске, только файл лога.
Как можно включить так же детальную статистику при запуске из под крон. В настройках профиля "Записывать статистику импорта" = Да.
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Олег
Здравствуйте!

Подскажите как посчитать маржинальность (разницу между закупочной и продажной ценой) при загрузке прайса.
Сложность в том, что грузится только закупочная цена, розничная формируется динамически, через добавление наценки и прочие инструменты.
Выгрузка цен происходит следующим образом.
Выгружается закупочная цена из прайса.
Потом рассчитывается розничная цена.
Никак не могу сообразить, как от розницы отнять закуп.

Заранее благодарен!  
Здравствуйте.
Здесь есть 2 варианта.
1. В поле с маржинальностью повторить все те же настройки, что есть в поле с ценой (наценку здесь придется добавлять с помощью преобразования) и потом вычесть из результата закупочную цену.
2. Можно воспользоваться преобразованиями для существующих элементов такого вида https://skr.sh/sAafHmLcfVv, https://skr.sh/sAaX5l5DH78. Но такие преобразования правильно отработают только когда розничная и закупочная цена уже будут в товаре. Т.е., нужно будет делать 2 импорта: первый загрузит новые цена, а второй рассчитает маржинальность.
ИмяЦитировать0
Олег
Здравствуйте!

Подскажите как посчитать маржинальность (разницу между закупочной и продажной ценой) при загрузке прайса.
Сложность в том, что грузится только закупочная цена, розничная формируется динамически, через добавление наценки и прочие инструменты.
Выгрузка цен происходит следующим образом.
Выгружается закупочная цена из прайса.
Потом рассчитывается розничная цена.
Никак не могу сообразить, как от розницы отнять закуп.

Заранее благодарен!  
ИмяЦитировать0
Иван
Цитата
Дмитрий Кривочуров
[TABLE][TR][TH]Цитата[/TH][/TR][TR][TD]Иван
Здравствуйте! У товаров есть загруженные файлы, которые отображаются в документах. Возможно как то при выгрузке удалить из товаров все ранее загруженные документы?[/TD][/TR][/TABLE]Здравствуйте.
Для удаления файлов загрузите в поле с этими файлами знак "-" (просто минус, без кавычек).
Спасибо большое!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Иван
Здравствуйте! У товаров есть загруженные файлы, которые отображаются в документах. Возможно как то при выгрузке удалить из товаров все ранее загруженные документы?
Здравствуйте.
Для удаления файлов загрузите в поле с этими файлами знак "-" (просто минус, без кавычек).
ИмяЦитировать0
Иван
Здравствуйте! У товаров есть загруженные файлы, которые отображаются в документах. Возможно как то при выгрузке удалить из товаров все ранее загруженные документы?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Антон пишет:
Здравствуйте! Подскажите пожалуйста, похоже на баг.

При экспорте есть поле "Уровень вложенности раздела"  [URL=http://joxi.ru/V2V5d5XI8YW1wm]http://joxi.ru/V2V5d5XI8YW1wm[/URL]
Мы его заполняем и при попытке импорта это поле исчезает при выборе  [URL=http://joxi.ru/D2Pe3eZtBR4jjA]http://joxi.ru/D2Pe3eZtBR4jjA[/URL]  
А при экспорте есть:  [URL=http://joxi.ru/krDqjqEtgZOMEm]http://joxi.ru/krDqjqEtgZOMEm[/URL]

Помогите пожалуйста с решением проблемы...уже все варианты перебрали.
Здравствуйте.
Да, некоторые поля доступны только для экспорта, но импортировать их нельзя.
Дело в том, что уровень вложенности раздела определяется автоматически, в зависимости от раздела-родителя. Т.е., при импорте Вы можете только указать родительский раздел. Если родительский раздел, к примеру, был 2-го уровня вложенности, то его дочерний раздел будет иметь 3-й уровень. И никак нельзя для него указать, например, уровень 4 или 5.
ИмяЦитировать0
Антон
Здравствуйте! Подскажите пожалуйста, похоже на баг.

При экспорте есть поле "Уровень вложенности раздела" http://joxi.ru/V2V5d5XI8YW1wm
Мы его заполняем и при попытке импорта это поле исчезает при выборе http://joxi.ru/D2Pe3eZtBR4jjA
А при экспорте есть: http://joxi.ru/krDqjqEtgZOMEm

Помогите пожалуйста с решением проблемы...уже все варианты перебрали.
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Иван Павлович пишет:
Большое спасибо за подробное пояснение ситуации, будем признательны, если в будущих апдейтах модуля Вы сможете реализовать подобную схему и для загрузки файлов с внешних сайтов. Это поможет многим пользователям.
Хорошо, добавляем эту задачу в план работ.
ИмяЦитировать0
Иван Павлович
Цитата
Дмитрий Кривочуров пишет:
[QUOTE]Иван Павлович пишет:
Здравствуйте,
Прежде всего, спасибо за великолепный модуль, он очень сильно нам помог! Не подскажите как решить подобную проблему:

- У каждого импортируемого товара есть несколько картинок pic1.jpg, pic2.jpg, pic3.jpg и т.д.
- При импорте в одной колонке в таблице мы привязываем сразу 3 параметра:  Картинки галереи [MORE_PHOTO] ,  Картинка для анонса (путь) ,  Детальная картинка (путь)
- Скрипт отрабатывает как надо - берет pic1.jpg, pic2.jpg, pic3.jpg для  Картинки галереи [MORE_PHOTO] , затем берет только pic1.jpg для  Картинка для анонса (путь)  и  Детальная картинка (путь)
Однако картинка pic1.jpg импортируется 3 раза как 3 отдельных файла (у Картинка для анонса (путь) свой файл, у Детальная картинка (путь) свой файл и т.д.), хотя это одно и то же изображение.

Вопрос : можно ли как-то сделать настройку чтобы скрипт проверял - если картинка уже была ранее импортирована в рамках другого свойства / элемента, брать уже загруженный файл с сайта, но не создавать его заново (т.е. не импортировать ее три раза как разные файлы)? Если да - то как выставить такие настройки?[/QUOTE] Здравствуйте.
К сожалению, это общая проблема ядра Битрикса. Модуль сохраняет картинки через API Битрикса, которое в свою очередь каждую картинку загружает как отдельную копию.
У нас в модуле есть решение этого вопроса для тех случаев, когда картинки загружаются из из папки сайта. В этом случае в полях с картинками можно включить такую галочку  [URL=https://skr.sh/s8FBVGCCimt?a]https://skr.sh/s8FBVGCCimt?a[/URL] . Но т.к. это нестандартная история для Битрикса, то обратите внимание на это предупреждение  [URL=https://skr.sh/s8FQtg72fTQ?a]https://skr.sh/s8FQtg72fTQ?a[/URL] . Если оно Вас не пугает, то мы можем реализовать подобную схему и доя загрузки файлов с внешних сайтов.
Большое спасибо за подробное пояснение ситуации, будем признательны, если в будущих апдейтах модуля Вы сможете реализовать подобную схему и для загрузки файлов с внешних сайтов. Это поможет многим пользователям.
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Иван Павлович пишет:
Здравствуйте,
Прежде всего, спасибо за великолепный модуль, он очень сильно нам помог! Не подскажите как решить подобную проблему:

- У каждого импортируемого товара есть несколько картинок pic1.jpg, pic2.jpg, pic3.jpg и т.д.
- При импорте в одной колонке в таблице мы привязываем сразу 3 параметра:  Картинки галереи [MORE_PHOTO] ,  Картинка для анонса (путь) ,  Детальная картинка (путь)
- Скрипт отрабатывает как надо - берет pic1.jpg, pic2.jpg, pic3.jpg для  Картинки галереи [MORE_PHOTO] , затем берет только pic1.jpg для  Картинка для анонса (путь)  и  Детальная картинка (путь)
Однако картинка pic1.jpg импортируется 3 раза как 3 отдельных файла (у Картинка для анонса (путь) свой файл, у Детальная картинка (путь) свой файл и т.д.), хотя это одно и то же изображение.

Вопрос : можно ли как-то сделать настройку чтобы скрипт проверял - если картинка уже была ранее импортирована в рамках другого свойства / элемента, брать уже загруженный файл с сайта, но не создавать его заново (т.е. не импортировать ее три раза как разные файлы)? Если да - то как выставить такие настройки?
Здравствуйте.
К сожалению, это общая проблема ядра Битрикса. Модуль сохраняет картинки через API Битрикса, которое в свою очередь каждую картинку загружает как отдельную копию.
У нас в модуле есть решение этого вопроса для тех случаев, когда картинки загружаются из из папки сайта. В этом случае в полях с картинками можно включить такую галочку https://skr.sh/s8FBVGCCimt?a. Но т.к. это нестандартная история для Битрикса, то обратите внимание на это предупреждение https://skr.sh/s8FQtg72fTQ?a. Если оно Вас не пугает, то мы можем реализовать подобную схему и доя загрузки файлов с внешних сайтов.
ИмяЦитировать0
Иван Павлович
Здравствуйте,
Прежде всего, спасибо за великолепный модуль, он очень сильно нам помог! Не подскажите как решить подобную проблему:

- У каждого импортируемого товара есть несколько картинок pic1.jpg, pic2.jpg, pic3.jpg и т.д.
- При импорте в одной колонке в таблице мы привязываем сразу 3 параметра: Картинки галереи [MORE_PHOTO], Картинка для анонса (путь), Детальная картинка (путь)
- Скрипт отрабатывает как надо - берет pic1.jpg, pic2.jpg, pic3.jpg для Картинки галереи [MORE_PHOTO], затем берет только pic1.jpg для Картинка для анонса (путь) и Детальная картинка (путь)
Однако картинка pic1.jpg импортируется 3 раза как 3 отдельных файла (у Картинка для анонса (путь) свой файл, у Детальная картинка (путь) свой файл и т.д.), хотя это одно и то же изображение.

Вопрос: можно ли как-то сделать настройку чтобы скрипт проверял - если картинка уже была ранее импортирована в рамках другого свойства / элемента, брать уже загруженный файл с сайта, но не создавать его заново (т.е. не импортировать ее три раза как разные файлы)? Если да - то как выставить такие настройки?
ИмяЦитировать0
Гость
Цитата
Дмитрий Кривочуров пишет:
[QUOTE]Олег пишет:
Добрый день!
Давно пользуюсь Вашими решениями, всё устраивает!. Но попалась задача, которую пока решить не удаётся: Есть файл эксель с двумя полями - Артикул, Цена (обновление по полю Артикул. Артикул в разных разделах у разных товаров может дублироваться). Нужно обновить товары в определённом разделе, чтобы в других разделах цены не обновлялись. Как это правильно сделать?[/QUOTE] Здравствуйте.
На 2-м шаге есть доп. настройки, которые позволяют ограничить поиск товаров определенными разделами  [URL=https://skr.sh/s7iJvsLD1Lu?a]https://skr.sh/s7iJvsLD1Lu?a[/URL] . Думаю, что эти настройки должны помочь в решении Вашей задачи.
Спасибо большое, Вы лучшие!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Олег пишет:
Добрый день!
Давно пользуюсь Вашими решениями, всё устраивает!. Но попалась задача, которую пока решить не удаётся: Есть файл эксель с двумя полями - Артикул, Цена (обновление по полю Артикул. Артикул в разных разделах у разных товаров может дублироваться). Нужно обновить товары в определённом разделе, чтобы в других разделах цены не обновлялись. Как это правильно сделать?
Здравствуйте.
На 2-м шаге есть доп. настройки, которые позволяют ограничить поиск товаров определенными разделами https://skr.sh/s7iJvsLD1Lu?a. Думаю, что эти настройки должны помочь в решении Вашей задачи.
ИмяЦитировать0
Олег
Добрый день!
Давно пользуюсь Вашими решениями, всё устраивает!. Но попалась задача, которую пока решить не удаётся: Есть файл эксель с двумя полями - Артикул, Цена (обновление по полю Артикул. Артикул в разных разделах у разных товаров может дублироваться). Нужно обновить товары в определённом разделе, чтобы в других разделах цены не обновлялись. Как это правильно сделать?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Оксана пишет:
Добрый день!
Не получается импортировать файл с ЯндексДиска. Все делаю по видео инструкции. В чем может быть проблема?
Здравствуйте.
Причины могут быть разные. Напишите нам обращение на адрес техподдержки app@esolutions.su и пришлите пример файла импорта. Мы посмотрим, нет ли проблем с самими ссылками на картинки и тогда уже сможем дать рекомендации, что именно нужно проверить.
ИмяЦитировать0
Оксана
Добрый день!
Не получается импортировать файл с ЯндексДиска. Все делаю по видео инструкции. В чем может быть проблема?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Михаил пишет:
Добрый день!

Начал пользоваться вашим модулем, пробовал заливать через него остатки, но товар загружается не весь, потом нажал на кнопку показать лист полностью и понял что из моего файла загружается только первая тысяча товара а у меня весь ассортимент порядка 20 тысяч наименований, как то можно снять ограничение на эту тысячу или я что то не так делаю?
Здравствуйте.
Ограничение в 1000 товаров есть только при отображении файла на 2-м шаге. Это сделано для того, чтобы сильно не нагружать сервер и браузер.
Но при импорте должны загружаться все строки файла. Количество загружаемых товаров Вы можете увидеть в результатах на 3-м шаге.
ИмяЦитировать0
Михаил
Добрый день!

Начал пользоваться вашим модулем, пробовал заливать через него остатки, но товар загружается не весь, потом нажал на кнопку показать лист полностью и понял что из моего файла загружается только первая тысяча товара а у меня весь ассортимент порядка 20 тысяч наименований, как то можно снять ограничение на эту тысячу или я что то не так делаю?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Виталий пишет:
Добрый день!

Используем ваше решение - Экспорт/Импорт товаров в Excel.

У нас в файле импорта товаров есть столбец « Описание », мы туда добавляем html код описания с нужными ссылками, но при импорте это описание загружается на сайт для товара, как «Детальное описание -  Текст », а нам нужно, чтобы описание с файла импорта загружалось в «Детальное описание -  HTML ».

Как это можно сделать?

Заранее спасибо за ответ!
Здравствуйте. В данном случае достаточно загружать описание в соответствующее поле https://skr.sh/s7CXtQNjHnr. При этом и загрузится само описание, и будет установлен тип описания - html.
ИмяЦитировать0
Виталий
Добрый день!

Используем ваше решение - Экспорт/Импорт товаров в Excel.

У нас в файле импорта товаров есть столбец «Описание», мы туда добавляем html код описания с нужными ссылками, но при импорте это описание загружается на сайт для товара, как «Детальное описание - Текст», а нам нужно, чтобы описание с файла импорта загружалось в «Детальное описание - HTML».

Как это можно сделать?

Заранее спасибо за ответ!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Дмитрий пишет:
Как настроить импорт товаров (обновление) с помощью крон, с использованием гугл таблиц
Спасибо!
Здравствуйте.
По настройке крона посмотрите данную видео-инструкцию https://www.youtube.com/watch?v=VMkFSu9kTJk. Она подходит сразу к нескольким нашим модулям.
Для загрузки файла из Гугл.Таблиц достаточно указать в настройках профиля на 1-м шаге ссылку на файл такого вида https://docs.google.com/spreadsheets/d/19r1tUzEyDq34adp9xM8LK-gLkGNG_hPAGjZUskUCDd8/edit?usp=sharing. Модуль будет скачивать новый файл по этой ссылке каждый раз при запуске импорта по крону.
Только на данный к файлу в Гугл.Таблицах должен быть открыт публичный доступ по ссылке на чтение. Хотя уже в ближайшем обновлении мы добавим возможность скачивания файлов, к которым нет публичного доступа.
ИмяЦитировать0
Дмитрий
Как настроить импорт товаров (обновление) с помощью крон, с использованием гугл таблиц
Спасибо!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Гость пишет:
Здравствуйте, импорт сильно нагружает VPS и в итоге кладет его на лопатки, не подскажите что можно поднастроить что бы не жрало оперативку (В данный момент оперативки 16гб)
Здравствуйте.
В первую очередь нужно проверить 2 момента:
1) Если загружается файл формата xlsx, то обязательно включите на сервере расширение XMLReader для php. Это расширение позволяет минимизировать расход памяти при чтении xslx-файлов.
2) Желательно включить в настройках профиля галочку "Не обновлять элемент при отсутствии изменений", чтобы лишний раз не вызывался API-метод Битрикса на изменение товара, который также может потреблять много памяти.
Если это не поможет, то можете написать нам обращение на адрес техподдержки app@esolutions.su. Нам потребуется доступ к сайту, чтобы все детально проверить.
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Гость пишет:
Здравствуйте, при импорте через CSV по ссылке, начали появлятся дубли карточек товаров.
Подскажите, как сделать так чтобы не появлялись дубли товаров.
Здравствуйте.
За поиск товаров на сайте отвечают поля для идентификации. Если значение для идентификации у товара в файле и на сайте на совпадает, то модуль не найдет такой товар и вместо него будет создан дубль.
Т.е., Вам нужно указать такие поля для идентификации, значения которых в файле и на сайте будут в точности совпадать.
ИмяЦитировать0
Гость
Здравствуйте, импорт сильно нагружает VPS и в итоге кладет его на лопатки, не подскажите что можно поднастроить что бы не жрало оперативку (В данный момент оперативки 16гб)
ИмяЦитировать0
Гость
Здравствуйте, при импорте через CSV по ссылке, начали появлятся дубли карточек товаров.
Подскажите, как сделать так чтобы не появлялись дубли товаров.
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Гость пишет:
Добрый день.
постоянно возникает проблема в импорте.
выгружаем файл товаров и затем остатков.
и все это последовательно импортируем.
Ошибки вылезают в момент импорта остатков.

Например
"Не указано поле Наименование элемента (5011999A401)"
Найти проблему не удается, где искать?
Здравствуйте.
Судя по ошибке, в каких-то строках файла просто не указано название товара. Вы можете прислать нам на адрес техподдержки app@esolutions.su пример файла импорта, скриншоты настроек и результатов импорта. Мы по этим данным точно скажем, при импорте каких строк файла и почему возникают такие ошибки.
ИмяЦитировать0
Гость
Добрый день.
постоянно возникает проблема в импорте.
выгружаем файл товаров и затем остатков.
и все это последовательно импортируем.
Ошибки вылезают в момент импорта остатков.

Например
"Не указано поле Наименование элемента (5011999A401)"
Найти проблему не удается, где искать?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Гость пишет:
Добрый день. Возможно ли вашим модулем загружать из прайс листа только те торговые предложения, товары которых созданы в магазине, но не имеют торговых предложений. Посмотрел видео записи, нашел галку "Не создавать новые элементы:", Товары созданы, но торговых предложений пока нет. Получается с этой галкой ТП не создадутся.
Если убрать галку, то загрузятся все товары из прайса, а нам надо только те которые есть в магазине или в определенной категории. Или может я не прав?
Здравствуйте.
Да, на текущий момент есть такая проблема. В будущем мы обязательно добавим ещё одну галочку для торговых предложений. А пока этот вопрос можно решить только при помощи php-преобразований. Но текст преобразования будет зависеть от настроек профиля. Вы можете написать нам обращение на адрес техподдержки app@esolutions.su. Мы поможем Вам сделать нужные настройки. Нам потребуется доступ к Вашему сайту для настройки преобразования.
ИмяЦитировать0
Гость
Добрый день. Возможно ли вашим модулем загружать из прайс листа только те торговые предложения, товары которых созданы в магазине, но не имеют торговых предложений. Посмотрел видео записи, нашел галку "Не создавать новые элементы:", Товары созданы, но торговых предложений пока нет. Получается с этой галкой ТП не создадутся.
Если убрать галку, то загрузятся все товары из прайса, а нам надо только те которые есть в магазине или в определенной категории. Или может я не прав?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Андрей пишет:
Если картинку привязать к ячейке то загрузится ли она?
Здравствуйте.
Да, Вам достаточно включить эту галочку и на 2-м шаге в колонке с картинками указать поле "Детальная картинка (путь)" или какое-то другое, в которое нужно загрузить картинку. На 2-м шаге такие картинки модуль не отображает в целях экономии серверных ресурсов, то при импорте эти картинки должны загрузиться.
У нас есть такая видео-инструкция по импорту картинок https://www.youtube.com/watch?v=vkQQTlrJKN4. Там в конце как раз показан данный способ загрузки.
ИмяЦитировать0
Андрей
Если картинку привязать к ячейке то загрузится ли она?
ИмяЦитировать0
Андрей
Начал пользоваться вашим модулем
http://marketplace.1c-bitrix.ru/solutions/kda.importexcel/

В настройке профиля загрузки есть такое:

Загрузка и чтение файла импорта показать / скрыть

? Данная опция позволяет загружать картинки, вставленные напрямую в файл (не по ссылке).
Внимание! При большом объеме файла опция создает большую нагрузку на сайт и может потребоваться много оперативной памяти для обработки файла.

Как можно это сделать?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Вопрос, как настроить преобразования, так чтобы в таблице импорта не приходилось указывать полную внутреннюю ссылку к каждому загружаемому изображению?
Здравствуйте.
Данный вопрос решается при помощи таких преобразований https://skr.sh/s52Gwjv2Sdn?a. Второе преобразование добавить нужный путь к файлу после каждой точки с запятой.
ИмяЦитировать0
Александр
Добрый день, Дмитрий.

Во-первых, большая благодарность за столь продвинутый модуль с гибкими настройками. Высший класс!
Во-вторых, нужен совет относительно настроек:

Что делаем:
  • импортируем доп. изображения, их несколько - до 10 картинок, разделитель в настройках в колонке доп. изображения и файле указан как точка с запятой, есть файлы и они загружены на сервер
  • в таблице импорта в соответствующем столбце указана цепочка изображений типа 1.jpg;2.jpg; ...;10.jpg
  • настроены преобразования для столбца доп. изображения - в начало добавлен путь к папке, где на сервере картинки, в виде /upload/images/brend/collection/
По факту импорта имеем загрузку только одного - первого, т.е.1.jpg - изображения. Остальные не хотят грузиться ни в какую. Разделитель в колонке указан верный, то есть точка с запятой.

А если в таблице импорта указывать полный путь типа

/upload/images/brend/collection/1.jpg;/upload/images/brend/collection/2.jpg;...;/upload/images/brend/collection/10.jpg;

сразу ко всей цепочке изображений, то тогда они все загружаются.

Вопрос, как настроить преобразования, так чтобы в таблице импорта не приходилось указывать полную внутреннюю ссылку к каждому загружаемому изображению?
ИмяЦитировать0
Константин
Цитата
Дмитрий Кривочуров пишет:
Возможно, по какой-то причине неправильно читается формат строки из файла. Пришлите нам пример файла на адрес техподдержки  [URL=mailto:app@esolutions.su]app@esolutions.su[/URL] . Постараемся помочь в решении данного вопроса.
После очередного обновления Битрикс - кажется проблема ушла, если останется - обращусь. Спасибо за быстрый ответ!
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Константин пишет:
Здравствуйте!
В таблице импорта присутствует поле "Диаметр" - свойство Строка, прописанное у товара.
Значения имеет по умолчанию текстовые, м.б. разные, но большинство числового вида "2,6", "3,2" и т п.
С какого-то неопределённого момента, при загрузке файла в модуль - в поле все запятые стали конвертироваться в точки. В чём м.б. проблема?
Здравствуйте.
Возможно, по какой-то причине неправильно читается формат строки из файла. Пришлите нам пример файла на адрес техподдержки app@esolutions.su. Постараемся помочь в решении данного вопроса.
ИмяЦитировать0
Константин
Здравствуйте!
В таблице импорта присутствует поле "Диаметр" - свойство Строка, прописанное у товара.
Значения имеет по умолчанию текстовые, м.б. разные, но большинство числового вида "2,6", "3,2" и т п.
С какого-то неопределённого момента, при загрузке файла в модуль - в поле все запятые стали конвертироваться в точки. В чём м.б. проблема?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Гость пишет:
[/QUOTE] Добрый день.
Наши разработчики предложили не лезть в ваш скрипт для избежания проблем при обновлениях.
А с вашей стороны не планируется появления соответствующей опции (скорость/обработка)?
Нет, к сожалению, мы не планируем делать какие-то доработки в этом направлении, т.к. работа по обновлению данных на сайте сейчас реализована через стандартные API-методы Битрикса. Т.е., каких-то технических проблем и ошибок здесь нет.
Похоже, что Ваши разработчики неправильно поняли задачу. Не нужно лезь в наш скрипт и вносить в него изменения. Если, как я предположил ранее, все это у Вас реализовано через обработчики событий, то просто нужно эти обработчики немного доработать и помимо обработчиков на создание/изменение товаров (например, OnAfterIBlockElementAdd и OnAfterIBlockElementUpdate) использовать обработчик на изменение свойств (например, OnAfterIBlockElementSetPropertyValuesEx). При правильной реализации обработчиков событий на Вашем сайте все нужные Вам поля должны успешно обновляться.Никакие изменения нашего модуля при этом не требуются.
ИмяЦитировать0
Гость
Цитата
Дмитрий Кривочуров пишет:
[QUOTE]Андрей пишет:
Добрый день.
У нас в карточке товара есть автоматически заполняемые поля (для фильтров) на основе данных из других полей. При ручном заполнении карточки или при загрузке через стандартный модуль контент/инфоблоки/импорт/csv "основных" полей эти поля заполняются сами в соответствие с правилами из "контент/сервисы/значения свойств для фильтров". При загрузке данных через модуль "импорт из excel" это не работает. Как можно решить этот вопрос?
Спасибо.[/QUOTE] Здравствуйте.
Скорее всего, у Вас это реализовано через обработчики событий на создание/изменение товаров. Здесь важно правильно написать такой обработчик, т.к. поля могут обновляться разными API-методами Битрикса. В частности наш модуль не передает свойства товара в методы CIBlockElement::Add и CIBlockElement::Update, а обновляет их через API-метод CIBlockElement::SetPropertyValuesEx. Это делается с целью оптимизации скорости импорта. Поэтому для расчета полей на основе свойств товара в данном случае нужно использовать обработчик события OnAfterIBlockElementSetPropertyValuesEx.
Это конечно же больше информация для разработчика, который настраивал автоматическое заполнение полей. Если Вам потребуется более детальная помощь по данному вопросу, то напишите нам обращение на адрес техподдержки  [URL=mailto:app@esolutions.su]app@esolutions.su[/URL] . Обязательно поможем разобраться в этом.
Добрый день.
Наши разработчики предложили не лезть в ваш скрипт для избежания проблем при обновлениях.
А с вашей стороны не планируется появления соответствующей опции (скорость/обработка)?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Андрей пишет:
Добрый день.
У нас в карточке товара есть автоматически заполняемые поля (для фильтров) на основе данных из других полей. При ручном заполнении карточки или при загрузке через стандартный модуль контент/инфоблоки/импорт/csv "основных" полей эти поля заполняются сами в соответствие с правилами из "контент/сервисы/значения свойств для фильтров". При загрузке данных через модуль "импорт из excel" это не работает. Как можно решить этот вопрос?
Спасибо.
Здравствуйте.
Скорее всего, у Вас это реализовано через обработчики событий на создание/изменение товаров. Здесь важно правильно написать такой обработчик, т.к. поля могут обновляться разными API-методами Битрикса. В частности наш модуль не передает свойства товара в методы CIBlockElement::Add и CIBlockElement::Update, а обновляет их через API-метод CIBlockElement::SetPropertyValuesEx. Это делается с целью оптимизации скорости импорта. Поэтому для расчета полей на основе свойств товара в данном случае нужно использовать обработчик события OnAfterIBlockElementSetPropertyValuesEx.
Это конечно же больше информация для разработчика, который настраивал автоматическое заполнение полей. Если Вам потребуется более детальная помощь по данному вопросу, то напишите нам обращение на адрес техподдержки app@esolutions.su. Обязательно поможем разобраться в этом.
ИмяЦитировать0
Андрей
Добрый день.
У нас в карточке товара есть автоматически заполняемые поля (для фильтров) на основе данных из других полей. При ручном заполнении карточки или при загрузке через стандартный модуль контент/инфоблоки/импорт/csv "основных" полей эти поля заполняются сами в соответствие с правилами из "контент/сервисы/значения свойств для фильтров". При загрузке данных через модуль "импорт из excel" это не работает. Как можно решить этот вопрос?
Спасибо.
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Mary пишет:
Не загружаются изображения ссылкой при импорте. Кроме этого не удаляются старые ненужные фото из товаров с помощью таблицы (колонка с изображениями пустая).
Здравствуйте.
Бывает, что при загрузке картинок возникают какие-то сетевые проблемы. Или может элементарно не хватать места на диске для загрузки новых картинок. Причины могут быть разные. Вы можете написать нам обращение на адрес техподдержки app@esolutions.su и прислать доступ к сайту для проверки. Постараемся помочь в решении данного вопроса.
При загрузке путсых значений в целях защиты от потери данных старые картинки не удаляются. Для удаления картинок нужно загрузить в поле с картинкой знак минус (или тире).
ИмяЦитировать0
Mary
Не загружаются изображения ссылкой при импорте. Кроме этого не удаляются старые ненужные фото из товаров с помощью таблицы (колонка с изображениями пустая).
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Гость пишет:
Здравствуйте! При загрузке выражения с & происходит превращение в & . Как этого избежать?
Здравствуйте. Мы сейчас проверили этот момент у себя на тестовом сайте и такой проблемы не увидели. Возможно, проблема в конкретном загружаемом файле. Пришлите нам пример загружаемого файла на адрес техподдержки app@esolutions.su. Мы посмотрим какие с ним могут быть проблемы.
ИмяЦитировать0
Гость
Здравствуйте! При загрузке выражения с & происходит превращение в & . Как этого избежать?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Кирилл пишет:
Добрый день. Подскажите как можно импортом очистить дополнительные картинки? У меня просто выгрузилось много не корректных картинок в дополнительные картинки, теперь хочу их полностью очистить./
Здравствуйте.
Для удаления картинок нужно загрузить в поле с картинкой знак минус (или тире "-").
ИмяЦитировать0
Кирилл
Добрый день. Подскажите как можно импортом очистить дополнительные картинки? У меня просто выгрузилось много не корректных картинок в дополнительные картинки, теперь хочу их полностью очистить./
ИмяЦитировать0
Кирилл
Добрый день. Подскажите как можно импортом очистить дополнительные картинки? У меня просто выгрузилось много не корректных картинок в дополнительные картинки, теперь хочу их полностью очистить..
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Сергей пишет:
Здравствуйте, а какие оптимальные настройки сделать в my.cnf чтобы за один шаг обрабатывалось 15-20 и более элементов
Добрый день!
Настройки my.cnf мало влияют на скорость импорта. Обычно скорость увеличивается за счет настроек самого профиля импорта следующим образом.
1) Правильный выбор полей для идентификации. Лучше всего настроить идентификацию по Внешнему коду, т.к. по другим поля поиск элементов в Битриксе работает намного медленнее.
2) Для быстрого обновления элементов желательно использовать такую галочку https://skr.sh/s2HKpytcJWX?a, чтобы модуль не вызывал лишние API-методы Битрикса на изменение элемента.
3) Импорт может выполняться медленно при загрузке картинок с внешних сайтов. Скорость загрузки картинок, к сожалению, не удастся увеличить, но можно в настройках полей с картинками задать такое преобразование https://skr.sh/s2HiKoWIjec?a, чтобы картинка не загружалась повторно для тех элементов, у которых уже есть картинка.
ИмяЦитировать0
Сергей
Здравствуйте, а какие оптимальные настройки сделать в my.cnf чтобы за один шаг обрабатывалось 15-20 и более элементов
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Артем пишет:
Добрый день. Как я могу поставить выполнение импортов на cron?
Здравствуйте. Посмотрите данную видео-инструкцию по настройке импорта по крону https://www.youtube.com/watch?v=VMkFSu9kTJk
Если это не поможет, то напишите нам обращение на адрес техподдержки app@esolutions.su. Обязательно поможем все правильно настроить.
ИмяЦитировать0
Артем
Добрый день. Как я могу поставить выполнение импортов на cron?
ИмяЦитировать0
Дмитрий Кривочуров
Цитата
Михаил пишет:
Добрый день! Не загружаются изображения по ссылкам на Яндекс диск, в чем может быть причина?
Здравствуйте. Для загрузки картинок с Яндекс.Дикс нужно указать API-токен Яндекса в настройках модуля. Посмотрите данную видео-инструкцию https://www.youtube.com/watch?v=M8LmvMd2RxA по этому вопросу.
ИмяЦитировать0
Михаил
Добрый день! Не загружаются изображения по ссылкам на Яндекс диск, в чем может быть причина?
ИмяЦитировать0
Дмитрий Кривочуров
Причины могут быть разные. Чаще всего встречается одна из следующих проблем.
1) Картинки по указанным ссылкам не существуют.
2)  Есть какие-то сетевые проблемы между сайтом-донором и сайтом, на  который производится импорт. Либо сайт-донор может блокировать отдачу  картинок по определенным параметрам.
3) На сайте закончилось свободное место и просто некуда загружать новые файлы.
ИмяЦитировать0
Гость
Добрый день. почему-то не загружаются картинки при импорте товаров со ссылкой на изображение
ИмяЦитировать0
Комментировать