Документация Sync1C - содержание


Заказы / Услуги из totals заказа

Что такое totals

Totals - это, скажем так, итоги заказа. В админке OpenCart они выглядят примерно так:

Детали заказа с итогами в админке OpenCart

Предварительная стоимость (первая строчка) - это общая стоимость всех товаров, входящих в заказ. Итого (последняя строчка) - это окончательная сумма, которую должен заплатить покупатель. Между ними располагаются дополнительные платежи - стоимость доставки, какой-то экологический налог в предпоследней строчке, также там может быть, например, наложенный платёж (сумма, которую берёт себе почта или ТК за то, что получает платёж от покупателя, и передаёт продавцу), и т.д. и т.п.

В терминах OpenCart это всё называется totals. На русский язык обычно переводят как "итоги", но настоящими итогами, по сути, здесь будут только первая и последняя строчка. Стоимость доставки - это ведь не итог, правильно? Поэтому я пользуюсь оригинальным термином "totals" - на мой личный вкус он вызывает не такой сильный диссонанс.

Добавление totals в заказ 1С

Стоимость доставки из totals добавляется в заказ 1С автоматически, самой программой. Если надо добавить стоимость других totals - их надо описать в файле НастройкиДляЗаказов.xml, примерно так:

<НовыйДокументЗаказ_УслугаИзTotals УсловиеДля="code" Шаблон="cod_cdek_total" >
    <Прототип>
        <Номенклатура Тип="СправочникСсылка.Номенклатура, Строка"> Наложенный платеж для доставки СДЭК </Номенклатура>
        <СтавкаНДС Обязательный="Да" Тип="СправочникСсылка.СтавкиНДС">Без НДС</СтавкаНДС>
    </Прототип>
</НовыйДокументЗаказ_УслугаИзTotals>

Это делается таким образом: секция <НовыйДокументЗаказ_УслугаДоставка> копируется, открывающий и закрывающий теги меняются с "НовыйДокументЗаказ_УслугаДоставка" на "НовыйДокументЗаказ_УслугаИзTotals", добавляются атрибуты условия (т.е. УсловиеДля и Шаблон), и настраивается содержимое - номенклатура, и остальное, если надо. На каждый вид total, который надо добавить в заказ, будет отдельная секция <НовыйДокументЗаказ_УслугаИзTotals> - например, одна для наложенного платежа, и ещё одна - для экологического налога. Эти секции располагаются внутри тега <БазовыеНастройки>, после секции <НовыйДокументЗаказ_УслугаДоставка>.

Атрибут УсловиеДля содержит имя поля в total:

  • "code" - код total (примеры кодов: "sub_total", "cod_cdek_total", "shipping" и т.д.)
  • "title" - наименование total (примеры наименований: "Предварительная стоимость", "Наложенный платеж", "СДЭК. Самовывоз: Лыжный пер., 8 корп. 1, пом. 5-н" и т.д.)

Пример добавления секции <НовыйДокументЗаказ_УслугаИзTotals> в настройки

Например, пусть в базовых настройках секция <НовыйДокументЗаказ_УслугаДоставка> выглядит так:

<НовыйДокументЗаказ_УслугаДоставка>
    <Прототип>
        <Номенклатура Тип="СправочникСсылка.Номенклатура, Строка"> </Номенклатура>
        <СтавкаНДС Обязательный="Да" Тип="СправочникСсылка.СтавкиНДС">Без НДС</СтавкаНДС>
    </Прототип>
</НовыйДокументЗаказ_УслугаДоставка>

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

Следуя алгоритму выше ("Это делается таким образом...") создаём и настраиваем секцию <НовыйДокументЗаказ_УслугаИзTotals> для наложенного платежа. Результат получается такой:

<НовыйДокументЗаказ_УслугаДоставка>
    <Прототип>
        <Номенклатура Тип="СправочникСсылка.Номенклатура, Строка"> </Номенклатура>
        <СтавкаНДС Обязательный="Да" Тип="СправочникСсылка.СтавкиНДС">Без НДС</СтавкаНДС>
    </Прототип>
</НовыйДокументЗаказ_УслугаДоставка>
<НовыйДокументЗаказ_УслугаИзTotals УсловиеДля="code" Шаблон="cod_cdek_total" >
    <Прототип>
        <Номенклатура Тип="СправочникСсылка.Номенклатура, Строка"> Наложенный платеж для доставки СДЭК </Номенклатура>
        <СтавкаНДС Обязательный="Да" Тип="СправочникСсылка.СтавкиНДС">Без НДС</СтавкаНДС>
    </Прототип>
</НовыйДокументЗаказ_УслугаИзTotals>

Как узнать нужный код или наименование total для шаблона?

Наименование total можно увидеть в админке сайта, а вот с кодом сложнее. Однако, и то и другое можно взять из "сырой" информации заказа с сайта. Если в Sync1C в списке заказов сайта кликнуть ID заказа, то появится окно "Служебные данные". Там будет вся информация, полученная с сайта для этого заказа:

Служебные данные заказа с сайта

Найдите в тексте раздел totals - он должен быть в самом конце - и скопируйте оттуда значение code. Или значение title, если вам это удобнее.

 


Далее: Дополнительные возможности / Переключение между сайтами
Обратно: Заказы / Уточнение настроек заказов для разных способов оплаты и доставки
Документация Sync1C - содержание