Управление ценами продукта через Products API

Вы можете управлять ценами на продукт при его создании и изменении.

Каждый продукт может иметь одну или несколько цен. Несколько цен используется, чтобы назначить индивидуальные цены на продукт в зависимости от условий покупки:

  • Количество продукта (variants.fromvariants.to) - на цену за единицу продукта влияет количество продукта в корзине.
    Вы можете:
    • Настроить интервалы количества и индивидуальную цену для каждого из них. Интервал определяет, сколько единиц продукта можно купить по определенной цене за единицу. Например, от 1 до 5 шт. продукта продается по одной цене, а от 6 и более по другой. В этом примере есть два интервала: 1-5 и 6-∞
    • Или задать одну цену за единицу для любого количества продукта
  • Валюта продажи (variants.price) - на цену за единицу продукта влияет валюта, в которой происходит оформление заказа. Вы можете:
    • Заполнить цену индивидуально для каждой валюты продажи. Список доступных валют продажи определяется в соответствии с вашим договором
    • Или задать одну цену в базовой валюте (USD/EUR/RUB). В этом случае, если при оформлении заказа покупателем валюта продажи отличается от валюты, в которой вы задали цену, то происходит конвертация по курсу на текущую дату

С помощью API вы можете настроить цены аналогично ценовым моделям, доступным через портал:

При этой ценовой модели:

  • Цена единицы продукта одинаковая для любого количества покупаемого продукта
  • Продукт с такой ценой автоматически доступен для продажи во всех валютах в соответствии с вашим договором
  • Вы задаете цену в одной из базовых валют: USD/EUR/RUB
  • При оформлении заказа покупателем: если валюта продажи отличается от валюты, в которой вы задали цену, то будет выполнена конвертация цены по курсу на текущую дату. Доступные покупателю валюты определяются в соответствии с вашим договором

Узнайте подробнее об этой ценовой модели.

Для настройки цен передайте в запросе массив variants, в котором будет один объект со следующими параметрами:

  • from, to – передайте эти параметры со значением равным нулю (количество к покупке не ограничено). Вы также можете не передавать эти параметры совсем
  • price – передайте в этом параметре только один объект с названием common. Внутри объекта заполните параметры следующим образом:
    • currency – код валюты, в которой будет задана цена продукта. Вы можете использовать только одну из валют: USD/EUR/RUB
    • price – цена единицы продукта. В зависимости от условий вашего договора вы должны включить в цену сумму VAT или передать цену без учета VAT. При продажах в российских рублях обратите внимание на параметр software_registry - если ваш продукт включен в реестр российского ПО, то передайте данные об этом для правильного налогообложения
    • Прочие параметры, в которых можно передать дополнительные идентификаторы продукта на вашей стороне, заполните на свое усмотрение
...
"variants": [{
  "from": 0,
  "to": 0,
  "price": {
   "common": {
    "currency": "RUB",
    "price": "100.00"
   }
  }
 }
],
"software_registry": {
  "status": true,
  "date": "2020-10-15",
  "url": "https://reestr.digital.gov.ru/reestr/111",
  "registration_number": 111
}
...

В этом примере при покупке любого количества продукта цена за единицу будет равна:

  • При покупке в рублях: 100 RUB (продукт включен в реестр российского ПО, поэтому не облагается НДС)
  • При покупке в другой валюте: цена будет переконвертирована (включение продукта в реестр не влияет на начисление VAT)

Например:

  • За 1 единицу продукта в рублях: 100 х 1= 100 RUB
  • За 5 единиц продукта в рублях: 100 х 5= 500 RUB
  • Если валюта корзины будет изменена на евро, то цена будет переконвертирована в EUR

При этой ценовой модели:

  • Цена единицы продукта будет выбрана в зависимости от количества покупаемого продукта. Вы настраиваете интервалы количества продукта и индивидуальную цену каждой из них.
  • Продукт с такими ценами автоматически доступен для продажи во всех валютах в соответствии с вашим договором.
  • Вы задаете цены в одной из базовых валют: USD/EUR/RUB. 
  • При оформлении заказа покупателем: если валюта продажи отличается от валюты, в которой вы задали цену, то будет выполнена конвертация по курсу на текущую дату. Доступные покупателю валюты определяются в соответствии с вашим договором.

Узнайте подробнее об этой ценовой модели.

Для настройки цен передайте в запросе массив variants, в котором будет один или несколько объектов.

В каждом из объектов передайте цены для определенного количества продуктов:

  • fromto – передайте в этих параметрах минимальное и максимальное количество продукта, при котором будет действовать цена. Узнайте подробнее о правилах заполнения этих полей
  • price – передайте в этом параметре только один объект с названием common. Внутри объекта заполните параметры следующим образом:
    • currency – код валюты, в которой будет задана цена продукта. Вы можете использовать только одну из валют: USD/EUR/RUB
    • price – цена единицы продукта. В зависимости от условий вашего договора вы должны включить в цену сумму VAT или передать цену без учета VAT. При продажах в российких рублях обратите внимание на параметр software_registry - если ваш продукт включен в реестр российского ПО, то передайте данные об этом для правильного налогообложения
    • Прочие параметры, в которых можно передать дополнительные идентификаторы продукта на вашей стороне, заполните на свое усмотрение
...
"variants": [{
  "from": 1,
  "to": 5,
  "price": {
   "common": {
    "currency": "RUB",
    "price": "100.00"
   }
  }
 }, {
  "from": 6,
  "to": 0,
  "price": {
   "common": {
    "currency": "RUB",
    "price": "90.00"
   }
  }
 }
],
"software_registry": {
  "status": true,
  "date": "2020-10-15",
  "url": "https://reestr.digital.gov.ru/reestr/111",
  "registration_number": 111
}
...

В этом примере:

  • При покупке от 1 до 5 единиц продукта цена за единицу будет равна:
    • При покупке в рублях: 100 RUB (продукт включен в реестр российского ПО, поэтому не облагается НДС)
    • При покупке в другой валюте, цена будет переконвертирована (включение продукта в реестр не влияет на начисление VAT)
  • При покупке 6 и более единиц продукта цена за единицу будет равна:
    • При покупке в рублях: 90 RUB (продукт включен в реестр российского ПО, поэтому не облагается НДС)
    • При покупке в другой валюте, цена будет переконвертирована (включение продукта в реестр не влияет на начисление VAT)

Например:

  • За 1 единицу продукта в рублях: 100 х 1= 100 RUB
  • За 10 единиц продукта в рублях: 90 х 10= 900 RUB
  • Если валюта корзины будет изменена на евро, то цена будет переконвертирована в EUR

При этой ценовой модели:

  • Цена единицы продукта одинаковая для любого количества покупаемого продукта.
  • Продукт будет доступен для продажи только в тех валютах, для которых вы заполнили цену.
  • Вы задаете индивидуальную цену за единицу продукта для каждой валюты продажи.

Узнайте подробнее об этой ценовой модели.

Для настройки цен передайте в запросе массив variants, в котором будет один объект со следующими параметрами:

  • from, to – передайте эти параметры со значением равным нулю (количество к покупке не ограничено). Вы также можете не передавать эти параметры совсем
  • price – передайте в этом параметре один или несколько объектов. Каждый из объектов должен содержать цену для валюты, в которой должна быть доступна продажа продукта. Заполните параметры объекта:
    • В названии объекта передайте код валюты продажи продукта
    • currency – код валюты, в которой будет задана цена продукта для переданной валюты продажи.
      Мы рекомендуем передавать цену в валюте продажи для полного соответствия модели One price for each currency. Вы также можете задать цены в USD/EUR/RUB, но с некоторыми ограничениями. Узнайте подробнее об этой возможности
    • price – цена единицы продукта. В зависимости от условий вашего договора вы должны включить в цену сумму VAT или передать цену без учета VAT. Дополнительно обратите внимание на параметр software_registry - если ваш продукт включен в реестр российского ПО, то передайте данные об этом для правильного налогообложения.
  • Обратите внимание на параметр software_registry - если ваш продукт включен в реестр российского ПО, то передайте данные об этом для правильного налогообложения
  • Прочие параметры, в которых можно передать дополнительные идентификаторы продукта на вашей стороне, заполните на свое усмотрение
...
"variants": [{
  "from": 0,
  "to": 0,
  "price": {
   "RUB": {
    "currency": "RUB",
    "price": "100.00"
   },
   "PLN": {
    "currency": "PLN",
    "price": "400.00"
   }
  }
 }
],
"software_registry": {
  "status": true,
  "date": "2020-10-15",
  "url": "https://reestr.digital.gov.ru/reestr/111",
  "registration_number": 111
}
...

В этом примере при покупке любого количества продукта цена за единицу будет равна:

  • При покупке в рублях: 100 RUB (продукт включен в реестр российского ПО, поэтому не облагается НДС)
  • При покупке в злотых: 400 PLN (включение продукта в реестр не влияет на начисление VAT)
  • Если в корзине доступны другие валюты, то в них продукт нельзя будет приобрести 

Например:

  • За 1 единицу продукта в рублях: 100 х 1= 100 RUB
  • За 5 единиц продукта в рублях: 100 х 5= 500 RUB
  • За 1 единицу продукта в злотых: 400 х 1= 400 PLN
  • За 5 единиц продукта в злотых: 400 х 5= 2000 PLN
  • Продукт нельзя приобрести в евро

При этой ценовой модели:

  • Цена единицы продукта будет выбрана в зависимости от количества покупаемого продукта. Вы задаете интервалы количества продукта и индивидуальные цены за единицу продукта в каждом интервале.
  • Продукт будет доступен для продажи только в тех валютах, для которых вы заполнили цену.
  • Вы задаете индивидуальные цены за единицу продукта для каждой валюты продажи.

Узнайте подробнее об этой ценовой модели.

Для настройки цен передайте в запросе массив variants, в котором будет один или несколько объектов. В каждом из объектов передайте цены для определенного количества продуктов:

  • fromto – передайте в этих параметрах минимальное и максимальное количество продукта, при котором будет действовать цена. Узнайте подробнее о правилах заполнения этих полей
  • price – передайте в этом параметре один или несколько объектов. Каждый из объектов должен содержать цену для валюты, в которой должна быть доступна продажа продукта. Заполните параметры объекта:
    • В названии объекта передайте код валюты продажи продукта
    • currency – код валюты, в которой будет задана цена продукта для переданной валюты продажи.
      Мы рекомендуем передавать цену в валюте продажи для полного соответствия модели One price for each currency. Вы также можете задать цены в USD/EUR/RUB, но с некоторыми ограничениями. Узнайте подробнее об этой возможности
    • price – цена единицы продукта. В зависимости от условий вашего договора вы должны включить в цену сумму VAT или передать цену без учета VAT. Дополнительно обратите внимание на параметр software_registry - если ваш продукт включен в реестр российского ПО, то передайте данные об этом для правильного налогообложения
  • Прочие параметры, в которых можно передать различные идентификаторы продукта на вашей стороне, заполните на свое усмотрение
...
"variants": [{
  "from": 1,
  "to": 5,
  "price": {
   "RUB": {
    "currency": "RUB",
    "price": "100.00"
   },
   "PLN": {
    "currency": "PLN",
    "price": "400.00"
   }
  }
 },
 {
  "from": 6,
  "to": 0,
  "price": {
   "RUB": {
    "currency": "RUB",
    "price": "90.00"
   },
   "PLN": {
    "currency": "PLN",
    "price": "350.00"
   }
  }
 }
],
"software_registry": {
  "status": true,
  "date": "2020-10-15",
  "url": "https://reestr.digital.gov.ru/reestr/111",
  "registration_number": 111
}
...

В этом примере:

  • При покупке от 1 до 5 единиц продукта цена за единицу будет равна:
    • В рублях: 100 RUB (продукт включен в реестр российского ПО, поэтому не облагается НДС)
    • В злотых: 400 PLN (включение продукта в реестр не влияет на начисление VAT)
  • При покупке 6 и более единиц продукта цена за единицу будет равна:
    • В рублях: 90 RUB (продукт включен в реестр российского ПО, поэтому не облагается НДС)
    • В злотых: 350 PLN (включение продукта в реестр не влияет на начисление VAT)
  • Если в корзине доступны другие валюты, то в них продукт нельзя будет приобрести

Например:

  • За 1 единицу продукта в рублях: 100 х 1= 100 RUB
  • За 10 единиц продукта в рублях: 90 х 10= 900 RUB
  • За 1 единицу продукта в злотых: 400 х 1= 400 PLN
  • За 10 единиц продукта в злотых: 350 х 10= 3500 PLN
  • Продукт будет нельзя приобрести в евро

Вы можете задавать цены продукта в валюте продажи или в базовой валюте (USD/EUR/RUB).  При этом, если валюта, в которой задана цена, отличается от валюты, в которой осуществляется продажа, то при продаже будет выполнена конвертация по курсу на текущую дату.

Особенности назначения цены:

  • Если у продукта нет индивидуальных цен для каждой валюты продажи (ценовые модели One price, Volume pricing), то цена может быть задана только в базовой валюте
    "common": {
     "currency": "[валюта, в которой задана цена: одна из базовых валют]",
     "price": "[цена]"
    }
    
  • Если у продукта цены заданы индивидуально для каждой валюты продажи (ценовые модели One price for each currency, Volume pricing and options), то:
    • Цена может быть задана в валюте продажи (то есть валюта, в которой задана цена, совпадает с валютой продажи).
      "[валюта продажи]": {
       "currency": "[валюта, в которой задана цена: совпадает с валютой продажи]",
       "price": "[цена]"
      }
      
    • Цена может быть задана в базовой валюте. У этой возможности есть ограничения: вы можете работать с такими ценами только через API, редактирование продуктов с такими ценами через портал будет недоступно / может работать некорректно.
      Используйте эту возможность, если вы ведете прайс-лист только в одной валюте, но хотите, чтобы цены в других валютах были заданы индивидуально (например, для одной из валют продукт должен стоить дороже).
      "[валюта продажи]": {
       "currency": "[валюта, в которой задана цена: одна из базовых валют]",
       "price": "[цена]"
      }
      
...
"variants": [{
  "from": 0,
  "to": 0,
  "price": {
   "CZK": {
    "currency": "USD",
    "price": "100.00"
   },
   "PLN": {
    "currency": "USD",
    "price": "90.00"
   }
  }
 }
],
...

Если вы осуществляете продажи в нескольких валютах, и у вас заключены отдельные договоры для этих валют, то необходимо учитывать специфику при создании и изменении продуктов:

  • При задании индивидуальных цен для каждой валюты продажи (One price for each currency, Volume pricing and options) необходимо создавать отдельные продукты для продаж по каждому договору. У одного продукта не должно быть цен для валют продажи из разных договоров
  • Использование единых цен в базовых валютах (One price, Volume pricing) может быть доступно только для одного из договоров (согласовывается при подключении)

Например, если у вас два договора:

  • Договор 1 для продажи в валюте USD и CAD
  • Договор 2 для продажи в валюте EUR 

То вы должны создать два продукта:

  • Продукт 1 для продажи в валюте USD и CAD
  • Продукт 2 для продажи в валюте EUR 

Нельзя создать продукт, который будет продаваться сразу во всех трех валютах.

При заполнении цен вы можете задать количество продукта (от-до), при покупке которого будет действовать цена за единицу. Для одного продукта может быть задано несколько интервалов количества с индивидуальными ценами. 

Чтобы задать интервалы количества передайте в параметре variants один или несколько объектов, каждый из которых соответствует определенному интервалу. В каждом объекте передайте в параметре variants.from минимальное количество продукта и в параметре variants.to - максимальное количество в интервале. 

Например, если вы хотите, чтобы при покупке от 1 до 5 единиц продукта цена была 100 USD, а при покупке от 6 до 10 единиц - 90 USD, то вам нужно:

Каждый интервал from-to должен отвечать условиям:

  • Значением параметров from, to может быть только целое число или ноль
  • Если значение параметра равно нулю, то это соответствует отсутствию ограничения количества
  • Параметр может быть не передан, в этом случае в его значение будет сохранен ноль
  • Если from > 0, то to ≥ from или to = 0 или не передано
  • Если to > 0, то 0 < from ≤ to
  • Интервалы from - to разных цен не должны пересекаться

Если вы задаете для продукта несколько интервалов количества, то между ними не должно быть значения, для которого не определена цена (см. примеры далее).

С помощью интервалов вы можете ограничить количество продукта, которое можно купить. Для этого начните/закончите интервалы этим значением.
Например:

  • Чтобы покупатель не мог купить менее 2 единиц продукта, начните интервалы с значения variants.from = 2 (то есть у вас не будет интервала, который начинается с 1).
  • Чтобы покупатель не мог купить более 10 единиц продукта, закончите интервалы значением variants.to = 10 (то есть у вас не будет интервала, который заканчивается число больше 10 или заканчивается 0).
From To Описание
0 0 Ограничение на количество отсутствует. Данная цена будет применена при любом количестве продукта в корзине. Обратите внимание, у продукта в таком случае может быть только один интервал количества, т.е. только один объект в массиве variants
1 0 Пример аналогичен предыдущей строке
1 10 Цена будет применена, если в корзине количество единиц от 1 до 10, включая 1 или 10. Если у продукта нет других интервалов количества, то покупатель не сможет купить более 10 единиц продукта
0 10 Ошибка. Минимальное количество продукта должно быть заполнено, если передано variants.to
Цена 1 Цена 2 Описание

from=1,
to=2,
price=100

from=3,
to=0
price=90

  • Единица продукта стоит 100 при покупке от 1 до 2 единиц продукта
  • Единица продукта стоит 90 при покупке от 3 и более единиц продукта

from=2,
to=2,
price=100

from=3,
to=10
price=90

Пример аналогичен предыдущему, но:

  • Минимально доступное к покупке количество продукта начинается от 2 единиц.
  • Максимальное доступное к покупке количества продукта заканчивается 10 единицами.

Это значит, что покупатель не сможет купить 1 единицу продукта и более 10 единиц

from=2,
to=2,
price=100

from=2,
to=4,
price=90

Ошибка. Интервалы для цены 1 и цены 2 пересекаются. Если в корзину добавить 2 единицы продукта, то не получится однозначно определить цену на продукт

from=2,
to=2,
price=100

from=2,
to=4,
price=90

Ошибка. Есть количество продуктов, для которого не определена цена. Если в корзину добавить 3 единицы продукта, то нет цены за единицу, которую можно использовать