Экспорт в YML (vendor.model) — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Задача:''' Произвести экспорт в формат ЯндексМаркет (YML) с присутствием таких полей как: vend…»)
 
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Задача:'''
+
== Задача ==
 
Произвести экспорт в формат ЯндексМаркет (YML) с присутствием таких полей как:
 
Произвести экспорт в формат ЯндексМаркет (YML) с присутствием таких полей как:
 
vendor (производитель), vendorCode (код товара по классификации производителя), model (модель товара), price (цена).
 
vendor (производитель), vendorCode (код товара по классификации производителя), model (модель товара), price (цена).
  
'''Необходимые действия:'''
+
== Необходимые действия ==
Чтобы на страницах объекта каталога присутствовали данные поля, в «Шаблоне данных» необходимо добавить нужные поля и произвести корректировку файла ~xsl/dump2yml.xsl.
+
Чтобы на страницах объекта каталога присутствовали данные поля, в «Шаблоне данных» необходимо добавить нужные поля и реализовать кастомный шаблон экспорта xsl/export/custom/YML.xsl . Системный шаблон лежит по пути /xsl/import/commerceML2.xsl. Системные файлы редактировать нельзя, поэтому для их кастомизации Вам нужно определить template, который требуется изменить. Потом полностью перенести его в файл /import/custom/commerceML2.xsl.  
 +
 
 
В xsl присутствует такой блок:
 
В xsl присутствует такой блок:
<pre>
+
<source lang="xml">
 
<!-- vendor.model -->
 
<!-- vendor.model -->
 
<xsl:variable name="typePrefix">typePrefiks</xsl:variable>
 
<xsl:variable name="typePrefix">typePrefiks</xsl:variable>
 
<xsl:variable name="vendor">proizvoditel</xsl:variable>
 
<xsl:variable name="vendor">proizvoditel</xsl:variable>
 
<xsl:variable name="model">model</xsl:variable>
 
<xsl:variable name="model">model</xsl:variable>
</pre>
+
</source>
  
 
К примеру, необходимо чтобы значение proizvoditel совпадало с идентификатором поля Производитель, если у вас он прописан как vendor (в Шаблоне данных), то необходимо proizvoditel изменить на vendor. В блок vendor.model добавляем новую строку для vendorCode:
 
К примеру, необходимо чтобы значение proizvoditel совпадало с идентификатором поля Производитель, если у вас он прописан как vendor (в Шаблоне данных), то необходимо proizvoditel изменить на vendor. В блок vendor.model добавляем новую строку для vendorCode:
<pre>
+
<source lang="xml">
 
<xsl:variable name="vendorCode">vendorcode</xsl:variable>
 
<xsl:variable name="vendorCode">vendorcode</xsl:variable>
</pre>
+
</source>
  
 
И далее после строк:
 
И далее после строк:
<pre>
+
<source lang="xml">
 
<vendor><xsl:value-of select=".//property[name = $vendor]//value"/></vendor>
 
<vendor><xsl:value-of select=".//property[name = $vendor]//value"/></vendor>
 
<model><xsl:value-of select=".//property[name = $model]//value"/></model>
 
<model><xsl:value-of select=".//property[name = $model]//value"/></model>
</pre>
+
</source>
  
 
Добавляем:
 
Добавляем:
<pre>
+
<source lang="xml">
 
<xsl:if test=".//property[name = $vendorCode]//value != ''">
 
<xsl:if test=".//property[name = $vendorCode]//value != ''">
 
<vendorCode><xsl:value-of select=".//property[name = $vendorCode]//value"/></vendorCode>
 
<vendorCode><xsl:value-of select=".//property[name = $vendorCode]//value"/></vendorCode>
 
</xsl:if>
 
</xsl:if>
</pre>
+
</source>
  
 
Чтобы экспортировались все поля, они должны быть заполнены.
 
Чтобы экспортировались все поля, они должны быть заполнены.
 +
[[category:Модуль Обмен данными]]

Текущая версия на 13:08, 16 июля 2018

Задача

Произвести экспорт в формат ЯндексМаркет (YML) с присутствием таких полей как: vendor (производитель), vendorCode (код товара по классификации производителя), model (модель товара), price (цена).

Необходимые действия

Чтобы на страницах объекта каталога присутствовали данные поля, в «Шаблоне данных» необходимо добавить нужные поля и реализовать кастомный шаблон экспорта xsl/export/custom/YML.xsl . Системный шаблон лежит по пути /xsl/import/commerceML2.xsl. Системные файлы редактировать нельзя, поэтому для их кастомизации Вам нужно определить template, который требуется изменить. Потом полностью перенести его в файл /import/custom/commerceML2.xsl.

В xsl присутствует такой блок:

<!-- vendor.model -->
<xsl:variable name="typePrefix">typePrefiks</xsl:variable>
<xsl:variable name="vendor">proizvoditel</xsl:variable>
<xsl:variable name="model">model</xsl:variable>

К примеру, необходимо чтобы значение proizvoditel совпадало с идентификатором поля Производитель, если у вас он прописан как vendor (в Шаблоне данных), то необходимо proizvoditel изменить на vendor. В блок vendor.model добавляем новую строку для vendorCode:

<xsl:variable name="vendorCode">vendorcode</xsl:variable>

И далее после строк:

<vendor><xsl:value-of select=".//property[name = $vendor]//value"/></vendor>
<model><xsl:value-of select=".//property[name = $model]//value"/></model>

Добавляем:

<xsl:if test=".//property[name = $vendorCode]//value != ''">
<vendorCode><xsl:value-of select=".//property[name = $vendorCode]//value"/></vendorCode>
</xsl:if>

Чтобы экспортировались все поля, они должны быть заполнены.