Описание товара и варианты его заполнения по данным выгрузки
Одной из важных составляющих товара на сайте, является описание. WooCoommerce предлагает у товара 2 стандартных поля, которые имеют свое применение.
Описание (post_content
), данные из которого стандартно отображаются на одноименной вкладке на странице товара, а также краткое описание (post_excerpt
), данные из которого стандартно отображаются сверху на странице товара.
В стандартных минимальных данных выгрузки, присутствует узел «Товар->Описание» (конечно же, если описание заполнено у позиции номенклатуры), данные из которого попадают в описание товара на сайте. Стандартно заложенных узлов и данных для краткого описания, к сожалению, нет.
Безусловно, только таким вариантом решение этой задачи не обходится и есть еще ряд вариантов и поведений, которые помогают получить желаемый результат заполнения. Давайте рассмотрим ряд самых частых вариантов, ну и начнем с самого первого. В примерах xml, для удобства оставлены только интересующие узлы.
Поведение 1. Описание товара на сайте из данных узла `Товар->Описание`
Самых простой и стандартный вариант. Описание номенклатуры поступает в узле «Товар->Описание», данные из которого попадают в описание товара на сайте, то есть в post_content
.
Пример xml.
<Товар>
...
<Описание>Содержимое описания товара</Описание>
...
</Товар>
Поведение 2. Краткое описание товара на сайте из данных узла `Товар->Описание`
Вполне возможна ситуация, когда заполнение описания товара не требуется, а данные из «Товар->Описание» вместо этого необходимо записать в краткое описание, то есть в post_excerpt
.
Чтобы изменить стандартное поведение и получить желаемый результат, достаточно включить настройку
Пример xml аналогичен предыдущему.
Поведение 3. Описание из данных реквизита `ОписаниеВФорматеHTML`, а краткое из `Товар->Описание`
Безусловно, вам может потребоваться заполнить сразу и описание и краткое описание товара на сайте по данным из выгрузки. Ряд конфигураций имеют функционал «Файл описания для сайта», который позволяет загрузить html к позиции номенклатуры. Эти данные поступают в xml в виде реквизита с наименованием «ОписаниеВФорматеHTML».
Чтобы наличие реквизита проверялось при обработке и данные из него могли быть использованы, как описание товара, необходимо включить настройку
Если настройка включена и у товара есть реквизит с данными, то информация из него будет записана в описание товара, то есть в post_content
, а данные из «Товар->Описание» (если есть) попадут в краткое описание, то есть в post_excerpt
.
Пример xml.
<Товар>
...
<Описание>Это попадет в краткое описание</Описание>
...
<ЗначенияРеквизитов>
...
<ЗначениеРеквизита>
<Наименование>ОписаниеВФорматеHTML</Наименование>
<Значение><p>Это попадет в описание, html теги тут кодированы,
но перед записью в данные товара, они будут декодированы</p></Значение>
</ЗначениеРеквизита>
...
</ЗначенияРеквизитов>
...
</Товар>
Поведение 4. Описание из отдельного html файла, а краткое из `Товар->Описание`
Еще один вариант, в рамках которого можно заполнить и описание и краткое описание, это передача данных для описание в виде html файла.
Для того, чтобы заполнить описание на сайте, можно добавить html файл к позиции номенклатуры (к сожалению, не все конфигурации включают эти данные в выгрузку), таким образом, в данных выгрузки поступит сам файл, а также реквизит «Файл» со значением, в котором содержится относительный путь.
Чтобы обработка этих данных произошла, необходимо включить настройку
Если настройка включена и у товара есть реквизит с информацией о файле, ну и конечно же сам файл, который указан, поступил в выгрузке, то содержимое из файла будет записано в описание товара, то есть в post_content
, а данные из «Товар->Описание» (если есть) попадут в краткое описание, то есть в post_excerpt
.
<Товар>...
<Описание>Это попадет в краткое описание</Описание>
...
<ЗначенияРеквизитов>
...
<ЗначениеРеквизита>
<Наименование>Файл</Наименование>
<Значение>import_files/f5/f54a38a3-e251-11ea-9e44-00155d466409_00155d468203.html</Значение>
</ЗначениеРеквизита>
...
</ЗначенияРеквизитов>
... </Товар>
Поведение 5. Описание по поведению 1, краткое описание по данным описания.
Предположим, настройки по описанию не применены, то есть описание для товара на сайте заполняется из «Товар->Описание». Помимо этого, требуется и в краткое описание заполнить тоже самое.
В этом случае, воспользуемся парой фильтров, чтобы записать в краткое описание значение, которое при обработке уже попало, как содержимое для описания товара.
Поведение 6. Краткое описание по поведению 2, описание по данным из реквизита.
Предположим, для заполнения краткого описания товара используется «Товар->Описание», то есть включена настройка, а для описания в данных товара есть какой-то нестандартный реквизит «РеквизитДляПолногоОписания».
<Товар>
...
<Описание>Это попадет в краткое описание</Описание>
...
<ЗначенияРеквизитов>
...
<ЗначениеРеквизита>
<Наименование>РеквизитДляПолногоОписания</Наименование>
<Значение><p>Это попадет в описание, html теги тут кодированы,
но перед записью в данные товара, они будут декодированы</p></Значение></ЗначениеРеквизита>
...
</ЗначенияРеквизитов>
...
</Товар>
Воспользуемся все теми же фильтрами, чтобы направить значение из реквизита в основное описание товара, то есть в post_content
Поведение 7. Краткое описание по поведению 2, описание по данным из свойства.
Предположим, для заполнения краткого описания товара используется «Товар->Описание», то есть включена настройка, а для описания в данных товара есть какое-то строковое (то есть не Справочник) свойство «Описание для сайта», которое имеет GUID — ffe29f44-a7f1-11ea-a08c-b42e99cfeeed. Подробнее по данным свойств — открыть
<Товар>
...
<Описание>Это попадет в краткое описание</Описание>
...
<ЗначенияСвойств>
...
<ЗначенияСвойства>
<Ид>ffe29f44-a7f1-11ea-a08c-b42e99cfeeed</Ид>
<Значение><p>Это попадет в описание, html теги тут кодированы,
но перед записью в данные товара, они будут декодированы</p></Значение>
</ЗначенияСвойства>
...
</ЗначенияСвойств>
...
</Товар>
Во-первых, проигнорируем основные данные свойства при обработке, чтобы не создавать атрибут — пример есть внизу статьи по ссылке выше.
Во-вторых, воспользуемся все теми же фильтрами, чтобы направить значение из свойства в основное описание товара, то есть в post_content
Поведение 8. Описания по значению из кастомных узлов
Предположим, ваша конфигурация в 1С доработана и описания, которые должны попасть в товар на сайте, содержатся в каких-то кастомных узлах, например, «Товар->ОсновноеОписание» и «Товар->КраткоеОписание«.
Пример xml в данных товара.
<Товар> ... <ОсновноеОписание>Это попадет в описание</ОсновноеОписание> <КраткоеОписание>Это попадет в краткое описание</КраткоеОписание> ... </Товар>
Воспользуемся все теми же фильтрами и заполним описания по значению из этих узлов.