Добавляем артикул в заказы — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Актуально для версии 2.9'''
+
'''Актуально для версии 2.9.6'''
  
Иногда возникает необходимость в заказах для менеджера выводить ещё и артикул товара
+
== Задача ==
Для этого мы выполним 2 действия:<br>
+
 
1. Идём в Шаблоны данных и открываем там тип Объект каталога и в группу "Описание товара" и добавляем туда поле с названием "Артикул", в качестве идентификатора выбираем "item", тип выбираем строка.<br>
+
В карточке заказа вывести артикул товара рядом с его именем. Для решения задачи необходимо будет кастомизировать шаблон административной панели.
2. Открываем шаблон /styles/skins/mac/data/modules/emarket/order-edit.xsl, ищем там следующий код
+
 
<source lang="php">
+
== Решение ==
<xsl:template match="object[//property/@name = 'item_link']" mode="order-item-name">
+
 
<a href="{$lang-prefix}/admin/catalog/edit/{//property/value/page/@id}/">
+
Для решения задачи мы выполним следующее:
<xsl:value-of select="@name" />
+
 
</a>
+
Создадим в директории /styles/skins/mac/data/modules/emarket файл form.modify.custom.xsl следующего содеражания:
</xsl:template>
+
 
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="utf-8"?>
 +
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common/">
 +
<xsl:stylesheet version="1.0"
 +
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 +
xmlns:xlink="http://www.w3.org/TR/xlink">
 +
 
 +
<xsl:template match="object[//property/@name = 'item_link']" mode="order-item-name">
 +
<a href="{$lang-prefix}/admin/catalog/edit/{//property/value/page/@id}/">
 +
<xsl:value-of select="concat(./@name, ' (', document(concat('upage://', //property/value/page/@id, '.artikul'))/udata/property/value, ')')" />
 +
</a>
 +
</xsl:template>
 +
 
 +
</xsl:stylesheet>
 
</source>
 
</source>
и между </a> и </xsl:template>
 
вставляем следующий код
 
<source lang="php">
 
(<xsl:value-of select="document(concat('uobject://',//page/@object-id))
 
/udata/object/properties/group[@name='opisanie_tovara']/property[@name='item']/value" />)
 
</source>
 
Теперь у нас в заказах будут отображаться артикулы в скобочках у названиятовара, в том случае если они заполнены в поле артикул самого товара. которое мы создавали в начале статьи.
 
  
Если мы хотим вывести этот артикул в форму для печати заказа, то в шаблон /xsltTpls/sys-tpls/emarket-order-printable.xsl в нужном месте нужно добавить следующую строчку:
+
где 'artikul' - строкой идентификатор поля, которое у Вас хранит актикул. Посмотреть id можно в типе данных объекта каталога, или его дочерних типов, в модуле "Шаблоны данных".
<source lang="php">
+
 
<xsl:value-of select="document(concat('uobject://',document(concat('uobject://',@id))/udata//property//page/@object-id))/udata//property[@name='artikul']/value" />
+
После применения решения у нас в заказах будут отображаться артикулы в скобочках у названия товара, в том случае если они заполнены в поле артикул самого товара:
</source>
+
 
 +
[[Файл:Artikul.png]]
  
 
[[Категория:Модуль Интернет магазин]][[Категория: Верстка в XSLT]]
 
[[Категория:Модуль Интернет магазин]][[Категория: Верстка в XSLT]]

Текущая версия на 11:06, 16 мая 2014

Актуально для версии 2.9.6

Задача

В карточке заказа вывести артикул товара рядом с его именем. Для решения задачи необходимо будет кастомизировать шаблон административной панели.

Решение

Для решения задачи мы выполним следующее:

Создадим в директории /styles/skins/mac/data/modules/emarket файл form.modify.custom.xsl следующего содеражания:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://common/">
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:xlink="http://www.w3.org/TR/xlink">

	<xsl:template match="object[//property/@name = 'item_link']" mode="order-item-name">
		<a href="{$lang-prefix}/admin/catalog/edit/{//property/value/page/@id}/">
			<xsl:value-of select="concat(./@name, ' (', document(concat('upage://', //property/value/page/@id, '.artikul'))/udata/property/value, ')')" />
		</a>
	</xsl:template>

</xsl:stylesheet>

где 'artikul' - строкой идентификатор поля, которое у Вас хранит актикул. Посмотреть id можно в типе данных объекта каталога, или его дочерних типов, в модуле "Шаблоны данных".

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

Artikul.png