User Manual/Administration Interface/Service decorators/ru

Декоратор может добавить дополнительные возможности к существующему провайдеру оплаты или доставки только через настройки. Например, оплата счёта должна быть доступна только для авторизованного покупателя, уже разместившего хотя бы один заказ. Это можно сделать при помощи дополнительного декоратора, добавленного к методу оплаты. Большое преимущество декораторов в том, что они могут использоваться повторно в любой комбинации со всеми службами. Это вроде набора правил, которые можно комбинировать разными способами для создания сложного условия при помощи небольшого набора базовых правил.

Использование
Декораторы доступны для всех типов служб, таким образом, каждый из декораторов может быть использован вместе со службами доставки и оплаты. Они задействуются путём добавления их названия к названию нужной службы через запятую в поле "Поставщик/Provider" в сведениях об элементе службы. Если платёж по счёту (обеспечиваемый поставщиком службы PostPay) настроен следующим образом:

PostPay

декоратор проверяет успешное добавление заказов покупателя посредством

PostPay,OrderCheck

Если необходимо ограничить доступность этого платёжного параметра одной или несколькими странами, можно добавить декоратор "Country":

PostPay,OrderCheck,Country

Декораторы вызываются справа налево, таким образом, первым отработает декоратор "Country", затем декоратор "OrderCheck" и в конце — поставщик службы "PostPay". Поэтому, в конце лучше добавлять декораторы, требующие меньше ресурсов, а декораторы, использующие внешние источники — прямо перед поставщиками служб.

Costs
Добавляет процент от стоимости товаров в корзине к издержкам настраиваемого способа доставки или оплаты. По умолчанию параметры служб могут иметь фиксированную стоимость издержек, но этот декоратор способен высчитать дополнительную наценку, например, для оплаты кредитными картами или PayPal, которые берут от 1.25% до 3.5% от величины перевода.


 * costs.percent (обязательно) : десятичное значение для дополнительных издержек в процентах. Значение не должно содержать знака процента (%) а в качестве десятичного разделителя должна использоваться точка, например, "1.25" добавит 0.125 к каждому евро, доллару, рублю или любой другой валюте, как издержки службы.

Для добавления 2.5% к каждому заказу, в виде служебных издержек для выбранной службы, используйте следующую настройку:

costs.percent 2.5

Для уменьшения возможно использование негативных значений:

costs.percent -3.0

Замечание: в отличие от декоратора "Reduction", любые вычеты в декораторе "Costs" не выводятся как скидки!

Country
Ограничивает доступность службы одной или несколькими странами. Скажем, использование адреса оплаты, адреса доставки или обоих вместе. Помните, что сначала необходимо настроить список стран на странице адреса процесса оформления заказа (настройка стран для TYPO3).


 * country.billing-include (возможно) : если выбранная покупателем в адресе оплаты страна соответствует одной из стран, параметр службы выводится. Настройка состоит из списка двухбуквенных ISO кодов стран в верхнем регистре через запятую, например, "DE,AT,CH". Взгляните на полный официальный список кодов стран, если не уверены. Избегайте пробелов между запятой и кодом в списке. Если список пуст, параметр службы не будет выведен совсем.


 * country.billing-exclude (возможно) : если выбранная покупателем в адресе оплаты страна соответствует одной из стран, параметр службы не выводится. Настройка состоит из списка двухбуквенных ISO кодов стран в верхнем регистре через запятую, например, "DE,AT,CH". Взгляните на полный официальный список кодов стран, если не уверены. Избегайте пробелов между запятой и кодом в списке.


 * country.delivery-include (возможно) : если выбранная покупателем в адресе доставки страна соответствует одной из стран, параметр службы выводится. Настройка состоит из списка двухбуквенных ISO кодов стран в верхнем регистре через запятую, например, "DE,AT,CH". Взгляните на полный официальный список кодов стран, если не уверены. Избегайте пробелов между запятой и кодом в списке. Если список пуст, параметр службы не будет выведен совсем.


 * country.delivery-exclude (возможно) : если выбранная покупателем в адресе доставки страна соответствует одной из стран, параметр службы не выводится. Настройка состоит из списка двухбуквенных ISO кодов стран в верхнем регистре через запятую, например, "DE,AT,CH". Взгляните на полный официальный список кодов стран, если не уверены. Избегайте пробелов между запятой и кодом в списке.

Для вывода параметра службы только для покупателей из Германии, Австрии и Швейцарии, используйте:

country.billing-include DE,AT,CH

Чтобы скрыть параметр службы для покупателей, проживающих в Англии, используйте настройку:

country.billing-exclude GB

Если нужно разграничить стоимость доставки в зависимости от стран, используйте настройку

country.delivery-include DE,AT,CH  (first delivery option) country.delivery-exclude DE,AT,CH  (second delivery option)

Первый вариант доставки будет выведен для покупателей из Германии, Австрии и Швейцарии, а второй — для остальных покупателей.

OrderCheck
Выводит параметр оплаты или доставки только если покупатель уже размещал до этого заказы. Ожидание оплаты заказа в течение указанного промежутка времени также может быть причиной сокрытия параметра службы. Покупатели должны авторизоваться, чтобы увидеть параметр, иначе они по умолчанию скрываются. Этот декоратор требует больших ресурсов, так как ему требуется опросить базу данных, поэтому его следует помещать в начале, по возможности ближе к поставщику сервиса.


 * ordercheck.total-number-min (возможно) : параметр службы будет виден только по достижении указанного количества удачно размещённых заказов. Значение должно быть положительным целым.


 * ordercheck.limit-days-pending (возможно) : параметр доставки/оплаты будет скрыт, если заказ, размещённый указанное количество дней назад имеет статус "ожидает/pending". Значение может быть целым или десятичным (с разделителем точкой) положительным числом.

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

ordercheck.total-number-min 3

Для скрытия параметра, если оплата заказа не получена в течение семи с половиной дней:

ordercheck.limit-days-pending 7.5

Reduction
Предоставление скидки на указанный процент, на основе суммы заказов в корзине для параметра доставки или оплаты. Если хотите продвинуть определённый параметр доставки или оплаты, можно уменьшить цену заказа на определённый процент. Уменьшение произойдет только если общая сумма товаров в корзине выше минимального и/или ниже максимального значения.


 * reduction.percent (обязательно) : десятичное значение уменьшения в процентах. Значение не должно содержать знака процента (%) а в качестве десятичного разделителя должна использоваться точка, например, "2,5" уменьшит на 0.025 от каждого евро, доллара, рубля или любой другой валюте стоимость заказа.


 * reduction.basket-value-min (возможно) : разметка валют и минимальной общей суммы, требуемой для уменьшения стоимости заказа. Валюты указываются в трехсимвольном ISO коде в верхнем регистре, минимальное значение может быть десятичной натуральной цифрой с разделителем точкой. Полный список список официальных кодов валют для справки.


 * reduction.basket-value-max (optional) : (возможно) : разметка валют и максимальной общей суммы, которая не должна быть превышена, требуемой для уменьшения стоимости заказа. Валюты указываются в трехсимвольном ISO коде в верхнем регистре, минимальное значение может быть десятичной натуральной цифрой с разделителем точкой. Полный список список официальных кодов валют для справки.

Для уменьшения суммы заказа на 3% на все товары в Евро, при выборе опциональной службы:

reduction.percent {"EUR":3}

Разный процент скидок для разных валют можно определить следующим образом:

reduction.percent {"EUR":3.0,"USD":1.5}

Для ограничения скидки на диапазон стоимости товаров в корзине от 100 до 500 евро:

reduction.percent {"EUR":3.0} reduction.basket-value-min {"EUR":100} reduction.basket-value-max {"EUR":500}

Замечание: в отличие от декоратора "Costs", любые вычеты, осуществляемые декоратором "Reduction" отображаются в корзине как скидки!