Quad.Wiki

Импорт фото из файла

Через импорт в программу можно загрузить ссылки на фото, после этого через действие Quad.Magic “Обработка фото и описаний” программа скачает фото на диск и они будут доступны для редактирования в карточке товара.

Для загрузки фото нужно создать пользовательское поле, тип поля Текст, назвать его можно, например “Фото BIG” (проверьте, что такого поля у вас еще нет, перед тем как добавлять новое, обычно оно уже создано в базе).

 

Файл Excel/CSV

В файле все ссылки на фото должны быть в одной колонке, разделитель в колонке - точка с запятой. Если у вас какой-то другой разделитель - заменить его можно макросом замены.

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

'индекс листа SHEET_IDX = 1 'строка с которой начинается прайс START_ROW = 2 CLMS_LIST = Array(4) 'список колонок, в которых указано фото, индексы колонок вводятся через запятую 'CLMS_LIST = Array(3, 4, 5) 'пример если несколько колонок c фото CHR_DELIMITER_IN = "|" 'разделитель между фото, тот который в исходном прайсе CHR_DELIMITER_OUT = ";" 'разделитель между фото в результате CLM_RESULT_IDX = 4 'номер колонки, в которую поместить результат URL_PREFIX = "https://site.ru/" Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.EnableEvents = False Set SHT = Sheets(SHEET_IDX) SHT.Select Cells.Select Selection.ClearOutline Selection.UnMerge SHT.Cells(1, 1).Select row_count = SHT.UsedRange.Rows.Count 'обрабатываем фото For i = START_ROW To row_count all_text = "" For j = LBound(CLMS_LIST) To UBound(CLMS_LIST) clm_photo = CLMS_LIST(j) If SHT.Cells(i, clm_photo).Value <> "" Then arr_photo = Split(SHT.Cells(i, clm_photo).Value, CHR_DELIMITER_IN) for k = LBound(arr_photo) To UBound(arr_photo) If (all_text = "") Then all_text = URL_PREFIX & Trim(arr_photo(k)) Else all_text = all_text & CHR_DELIMITER_OUT & URL_PREFIX & Trim(arr_photo(k)) End If next k Else Exit For End If Next j If all_text <> "" Then SHT.Cells(i, CLM_RESULT_IDX).Value = all_text End If Next i Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True

CLMS_LIST = Array(3, 4, 5) - здесь указываются колонки, в которых находятся ссылки на фото. Колонка может быть одна CLMS_LIST = Array(4)

CHR_DELIMITER_IN = "|" - указывается исходный разделитель, если в файле в одной ячейке несколько ссылок на фото. По этому тексту будет разделен исходный текст с ссылками, затем, если нужно, добавлен к каждой ссылке префиск и сохранен результат с разделителем CHR_DELIMITER_OUT

CHR_DELIMITER_OUT = ";" - указывается разделитель в результирующем тексте списка ссылок. Должен быть “точка с запятой”.

CLM_RESULT_IDX = 4 - колонка, в которую будет сохранен результат и которую потом нужно будет указать в настройке прайса для поля “Фото BIG”

URL_PREFIX = "https://site.ru/" - префикс, который добавляется впереди каждой ссылки. Можно указать пустую строку, если добавлять ничего не нужно URL_PREFIX = ""

 

Пример работы макроса:

 

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

 

Файл YML

В настройке импорта YML указать поле, в которое будут загружены ссылки на фото.