Данные по изображениям из выгрузки — изображения товара на сайте
Хотя иногда, изображения товара продолжают вести на сайте, но в большинстве случаев эту задачу все же решают в рамках обмена.
Если в 1C (СБИС, МойСклад, то есть в системе учета, далее СУ) для позиции номенклатуры заполнены изображения и включена их выгрузка, то данные по изображениям товара в xml, а также сами файлы изображений поступают на сайт вместе с выгрузкой информации по номенклатуре.
Обратите внимание! Если речь об 1С и вы используете для обмена модуль ведущийся командой «1С-Битрикс», то хотя бы при одном полном обмене необходимо включить принудительную выгрузку изображений в настройках модуля в 1С. Также это справедливо для типовых модулей с возможностью «выгружать только измененные изображения», то есть хотя бы при одном полном обмене эта возможность должна быть отключена. Это необходимо, чтобы 1С отправила сами файлы изображений, а не только информацию в XML.
В xml, информация о картинках товара представлена в виде тегов «Картинка», расположенных внутри тега «Товар», которые содержат относительные пути к файлам внутри файловой структуры выгрузки. Как правило, файлы поступают в каталоге «import_files», но иногда каталог может быть переименован, так как не является чем-то обязательным и при этом самое главное, чтобы информация в xml о путях, совпадала с тем, что в действительности было передано.
Пример данных по изображениям товара из выгрузки
Тег «Картинка», конечно же может быть не один, если для позиции номенклатуры загружено несколько изображений. При обработке, первое изображение станет основным изображение товара, а все остальные попадут в галерею.
Иногда может потребоваться отключить обновление изображений, даже если они поступают в выгрузке. Сделать это просто, достаточно включить чекбокс «Не обновлять изображения товара» в настройках плагина на вкладке «Пропуск / исключение данных».
Так как плагин не производит постоянное обновление товаров, а сверяет изменился ли он на основании хеша от предыдущего содержимого в xml, то при работе с некоторыми конфигурациями это может приводить к тому, что изображение не обновится на сайте, после его изменения в СУ, так как в ряде конфигураций, изменение изображения не приводит к изменению имени файла.
Если вы заметили, что такое происходит, следует включить чекбокс «Дополнительный контроль изменения изображений» в настройках на вкладке «Для изображений», чтобы плагин производил дополнительную сверку.
Alt и название медиафайла по названию товара
Если вам необходимо, чтобы в alt медиафайла, попало название товара, то достаточно воспользоваться настройками.
Известная проблема с 1C
В части случаев, встречается редкая, но очень неприятная проблема, которая приводит к удалению изображений товара на сайте, хотя изображения в 1С по факту не были удалены. Это связано с ошибкой в логике модуля обмена в 1С, когда он не добавляет в xml данные по изображениям, в итоге это рассматривается как то, что изображения у товара удалены и их нужно удалить на сайте. Рассмотрим подробнее вопрос о содержимом информации об изображениях в xml.
Есть 2 подхода, которые применяются в передаче дополнительных файлов в составе выгрузки, но именно реальной передаче файлов изображений, при этом данные в xml есть в обоих вариантах.
1. Применяется во встроенных в конфигурацию модулях. Изображения поступают вместе с товаром при любом его изменении. Также всегда есть информация в xml. Если у товара 10 изображений, то они всегда выгружаются, как реальные файлы, так и как информация в xml.
Разница между выгрузкой изменений и полной выгрузкой лишь в том, что во втором случае выгружается информация о всей номенклатуре, которая удовлетворяет условиям отбора, настроенным в узле обмена, а в первом случае, выгружается лишь информация о позициях номенклатуры, в которых были зарегистрированы изменения с момента последней успешной полной выгрузки.
Простой пример — у товара было 2 картинки, они попали на сайт, далее к товару была добавлена еще картинка (а может быть изменена), в ошибочном варианте в xml должна поступить информация лишь об одной картинке и вот вопрос: нет никакой возможности понять, что произошло — это новая картинка и нужно ее добавить или произошло изменение в какой-то из картинок поступивших раньше, а что если было 10 картинок и добавили 3 новых (а может 1 добавили и изменили). Именно по этой причине все работает таким образом, что в xml всегда полноценная информация о состоянии данных.
2. Применяется в дополнительных модулях обмена, которые ведет и разрабатывает `1С-Битрикс`. Реальные файлы выгружаются только по новым или измененным изображениям. Но информация в xml всегда полная, если у товара было 10 картинок и добавилась еще 1, то в выгрузке будет 1 файл нового изображения, а в xml информация, что у товара 11 картинок.
В обоих подходах, информация о картинках в xml поступает полностью, на этой аксиоме построен любой обмен.
Также, известные сложности на хостингах.
1. Могут возникнуть сложности в работе на одном из популярных хостингов — Sweb. К сожалению, на этом хостинге очень серьезно относятся даже кратковременным превышениям нагрузки и «убивают» процессы пользователя за превышения, что безусловно приводит к проблемам при обработке. Кратковременные превышения, как правило возникают при обработке изображений. Обработка изображений ресурсоемкая операция и не зависит от плагина.
2. С похожей ситуацией при обработке изображений, возможно столкнуться на хостинге — ukraine.com.ua. Из-за медленной обработки картинок вы можете получить ошибку с превышением лимита на время исполнение, а также ошибку с кодом 405, судя по всему связанную с контролем нагрузки, хотя конечно не совсем ясно, по какой причине использован такой код статуса ответа. Обработка изображений ресурсоемкая операция и не зависит от плагина.
Изменение размера (ширины/высоты) изображения перед добавлением на сайт
Как правило, заполнение картинок в СУ происходит относительно бесконтрольно и заполняющий не всегда понимает, что следует провести минимальную подготовку изображения прежде, чем добавить его к номенклатуре. То есть, например, оптимизировать его и/или скорректировать размер, если изображение избыточно большое.
В рамках таких условий, в выгрузке на сайт могут поступать избыточно большие изображения, как по разрешению, так и по размеру файлов. Это приводит к нескольким сложностям.
Во-первых: бесполезный расход места на хостинге.
Во-вторых: может вызывать сложности при обработке, так как в рамках окружения может попросту не хватить времени/памяти на обработку такой картинки сайтом, что приведет к ошибке.
Если такие сложности имеют место быть, то можно воспользоваться фильтром и уменьшить разрешение изображения до необходимого максимального размера, который в действительности используется на сайте.
Предположим, нам подходит максимальное разрешение 1500×1500 px.
Таким образом, мы ограничим максимальную ширину и высоту изображения и, если какая-то из сторон или обе будут больше ограничений, то изображение будет пропорционально уменьшено (то есть не обрезано) и только после этого передано сайту для добавления в медиафайлы.
В рамках этих действий используется редактор WordPress
— wp_get_image_editor
и его метод resize
, таким образом, используется встроенный функционал WordPress
без применения какого-либо функционала плагина.