Кастомизация соответствия статусов заказов — различия между версиями
Alelekov (обсуждение | вклад) (Новая страница: «'''Актуально для версии 20''' == Задача == Добавить кастомные соответствия между статусами з…») |
Aposio (обсуждение | вклад) |
||
Строка 6: | Строка 6: | ||
== Доступные по умолчанию соответствия == | == Доступные по умолчанию соответствия == | ||
− | На данный момент в системе по умолчанию доступны следующие соответствия статусов заказа на сайте:Доставляется, Закрыт, Готов. | + | На данный момент в системе по умолчанию доступны следующие соответствия статусов заказа на сайте: Доставляется, Закрыт, Готов.<br> |
Эти статусы проставляются на сайте в зависимости от информации, которая приходит из 1С в файлах выгрузки. Эти соответствия описаны в файле | Эти статусы проставляются на сайте в зависимости от информации, которая приходит из 1С в файлах выгрузки. Эти соответствия описаны в файле | ||
'''~/xsl/import/commerceML2.xsl''' и выглядят следующим образом: | '''~/xsl/import/commerceML2.xsl''' и выглядят следующим образом: |
Текущая версия на 08:44, 24 мая 2019
Актуально для версии 20
Содержание
Задача
Добавить кастомные соответствия между статусами заказов в 1С и статусами заказов на сайте.
Доступные по умолчанию соответствия
На данный момент в системе по умолчанию доступны следующие соответствия статусов заказа на сайте: Доставляется, Закрыт, Готов.
Эти статусы проставляются на сайте в зависимости от информации, которая приходит из 1С в файлах выгрузки. Эти соответствия описаны в файле
~/xsl/import/commerceML2.xsl и выглядят следующим образом:
- 1. Если заполнено поле "Дата отгрузки по 1С" - Доставляется
- 2. Если стоит "Пометка удаления" - Закрыт
- 3. Если заказ в статусе "Проведён" - Готов
Решение
Создание нового соответствия
Рассмотрим вариант создания нового статуса заказа на сайте и установление соответствия между ним и данными из 1С.
- Создаём новый статус заказа, назовём его "Отгружен", в поле "Код статуса" пропишем "shipped".
- Из файла ~/xsl/import/commerceML2.xsl копируем весь блок
<xsl:template match="Документ">
- Заводим свой параметр, назовём его is_shipped. Добавляем в начало блока запись
<xsl:param name="is_shipped" select="$properties[Наименование = 'Отгружен']/Значение = 'true'" />
- Затем, в блоке
<group name="order_props">
В скопированном блоке первые несколько строк - описание параметров, которые будут использоваться в шаблоне далее.
мы находим следующий блок кода, где перечисляется обработка соответствия статусов заказов:
<xsl:choose>
<xsl:when test="$is_canceled">
<property name="status_id">
<title>Статус заказа</title>
<value>canceled</value>
</property>
</xsl:when>
<xsl:when test="$is_ready">
<property name="status_id">
<title>Статус заказа</title>
<value>ready</value>
</property>
</xsl:when>
</xsl:choose>
</xsl:choose>
<xsl:when test="$is_shipped">
<property name="status_id">
<title>Статус заказа</title>
<value>shipped</value>
</property>
</xsl:when>
На этом все необходимые действия выполнены и при следующем обмене данными с 1С у заказов, в файле выгрузки которых будет иметься запись:
<ЗначениеРеквизита>
<Наименование>Отгружен</Наименование>
<Значение>true</Значение>
</ЗначениеРеквизита>
статус будет установлен в "Отгружен".
Переопределение существующих соответствий
Переопределение существующих соответствий делается абсолютно тем же путём, как и создание нового соответствия.
- Сначала мы смотрим доступные статусы заказов в справочнике "Статус заказа" в модуле "Шаблоны данных"
- Затем смотрим поле "Код статуса" - именно его мы будем использовать для определения статуса
- Выполняем все те же пункты, которые мы делали при создании нового заказа, но пропускаем пункты 3 и 4
- Нам остаётся лишь изменить значение между тегами value в необходимого нам статуса на тот код статуса, который мы выбрали