Версия: 6.x
burger close
Класс AbstractType

Подробное описание

Абстрактный класс типа доставки. Тип доставки содержит в себе функции для расчета стоимости в зависимости от различных параметров заказа.

Открытые члены

 loadOptions (array $opt=null)
 
 getTitle ()
 
 getDescription ()
 
 getShortName ()
 
 getNonCityRequiredAddressFieldsObjects ()
 
 canCalculateCostByDeliveryAddress (Address $address)
 
 getDeliveryExtraText (Order $order,?Address $address=null,?Delivery $delivery=null)
 
 hasSelectError (Order $order)
 
 getSelectError (Order $order)
 
 hasCheckoutError (Order $order)
 
 getCheckoutError (Order $order)
 
 onOrderCreate (Order $order, Address $address=null)
 
 getFormObject ()
 
 getAdminHTML (Order $order)
 
 isMyselfDelivery ()
 
 actionOrderQuery (Order $order)
 
 validate (Delivery $delivery)
 
 getOption ($key=null, $default=null)
 
 setOption ($key_or_array=null, $value=null)
 
 getFormHtml ()
 
 getDeliveryParamsHtml (Order $order)
 
 getAdminDeliveryParamsHtml (Order $order)
 
 beforeOrderWrite (Order $order)
 
 addToOrderAdminComment ($order, $text)
 
 removeFromOrderDeliveryErrorInfoLine ($order)
 
 getDeliveryFinalCost (Order $order,?Address $address=null, $use_currency=true)
 
 cleanDeliveryCostCache ()
 
 getDeliveryCost (Order $order, Address $address, Delivery $delivery, $use_currency=true)
 
 getDeliveryCostText (Order $order, Address $address, Delivery $delivery)
 
 getDeliveryPeriod (Order $order,?Address $address=null,?Delivery $delivery=null)
 
 getDeliveryDelayForCart ($order)
 
 applyExtraChangeDiscount ($delivery, $cost,?Order $order=null)
 
 toFormatedXML ($xml_string)
 
 writeToLog ($key, $value= '')
 
 getTrackNumber (Order $order)
 
 getTrackNumberUrl (Order $order)
 
 getErrorsStr ($glue=", ")
 
 getErrors ()
 
 hasErrors ()
 
 clearErrors ()
 
 addError ($error_text)
 
 getSelectedPvz (Order $order)
 
 executeWebHook (HttpRequest $http_request)
 
 getPvzByAddress (Address $address)
 
 hasPvz ()
 
 getDelivery ()
 
 setDelivery (Delivery $delivery)
 
 getPvzListFilters (?Order $order=null)
 
 getAdditionalHtmlForPickPoints (Delivery $delivery,?Order $order=null, $pickpoints=[])
 
 wrapByWidjet (Delivery $delivery, Order $order, $content)
 
 getAddittionalHtml (Delivery $delivery,?Order $order=null)
 
 somethingWrong (Order $order,?Address $address=null)
 
 getPvzList (Order $order,?Address $address=null)
 
 getClientSiteAppAdditionalHTML (Order $order, Delivery $delivery)
 

Поля данных

const EXTRA_KEY_PVZ_DATA = 'pvz_data'
 

Защищенные члены

 getAdditionalHtml (Order $order)
 
 calcDeliveryPeriod (Order $order,?Address $address=null,?Delivery $delivery=null)
 
 isDeliveryFree ($delivery, $cost, $order)
 

Защищенные данные

 $common_log
 
 $delivery
 
 $opt = []
 

Методы

actionOrderQuery ( Order  $order)

Действие с запросами к заказу для получения дополнительной информации от доставки

Аргументы
Order$order- объект заказа
addError (   $error_text)

Добавляет ошибку в массив ошибок

Аргументы
string$error_text- текст ошибки
addToOrderAdminComment (   $order,
  $text 
)

Добавление админского комментария об ошибке работы с доставкой

Аргументы
Order$order- объект заказа
string$text- текст для добавления
applyExtraChangeDiscount (   $delivery,
  $cost,
?Order  $order = null 
)

Применяет наценку или скидку к итоговой цене за доставку

Аргументы
Delivery$delivery- объект доставки
float$cost- цена за доставку
Order$order- объект заказа
Возвращает
int|float
Исключения
RSException
beforeOrderWrite ( Order  $order)

Корректировка заказа перед его сохранением

Аргументы
Order$order- объект заказа
calcDeliveryPeriod ( Order  $order,
?Address  $address = null,
?Delivery  $delivery = null 
)
protected

Рассчитывает структурированную информацию по сроку, который требуется для доставки товара по заданному адресу

Аргументы
Order$orderобъект заказа
Address$addressобъект адреса
Delivery$deliveryобъект доставки
Возвращает
Helper | null
canCalculateCostByDeliveryAddress ( Address  $address)

Возвращает true если при оформлении заказа стоимость доставки можно рассчитать на основе адреса доставки, без указания дополнительных параметров

Аргументы
Address$address- адрес
Возвращает
bool
cleanDeliveryCostCache ( )

Очищает кэш предыдущих расчетов стоимости

Возвращает
$this
clearErrors ( )

Очищает ошибки доставки

executeWebHook ( HttpRequest  $http_request)

Обрабатывает запрос веб-хука

Аргументы
HttpRequest$http_request
Возвращает
string
getAdditionalHtml ( Order  $order)
protected

Возвращает дополнительный HTML для публичной части

Аргументы
Order$order- объект заказа
Возвращает
string
getAdditionalHtmlForPickPoints ( Delivery  $delivery,
?Order  $order = null,
  $pickpoints = [] 
)
Аргументы
Delivery$delivery- объект доставки
Order | null$order- объект заказа
array$pickpoints- массив пунктов самовывоза
Возвращает
string
Исключения
\Exception
\SmartyException
getAddittionalHtml ( Delivery  $delivery,
?Order  $order = null 
)
Аргументы
Delivery$delivery- объект доставки
Order | null$order- объект заказа
Возвращает
string
Исключения
\SmartyException
getAdminDeliveryParamsHtml ( Order  $order)

Возвращает HTML для указания параметров доставки в админке

Аргументы
Order$order- заказ
Возвращает
string
Исключения
\SmartyException
getAdminHTML ( Order  $order)

Возвращает дополнительный HTML для админ части в заказе

Аргументы
Order$order- объект заказа
Возвращает
string
getCheckoutError ( Order  $order)

Возвращает ошибки, мешающие оформить заказ с данным способом доставки

Аргументы
Order$order- заказ
Возвращает
string
getClientSiteAppAdditionalHTML ( Order  $order,
Delivery  $delivery 
)

Возвращает шаблон с дополнительной информацией для мобильного приложения v2

Аргументы
Order$order- объект заказа
Delivery$delivery- объект доставки
Возвращает
string
getDelivery ( )

Возвращает объект доставки

Возвращает
Delivery|null
getDeliveryCost ( Order  $order,
Address  $address,
Delivery  $delivery,
  $use_currency = true 
)
abstract

Возвращает стоимость доставки для заданного заказа. Данный метод запрещено вызывать напрямую, для получения стоимости доставки используется прослойка getDeliveryFinalCost

Аргументы
Order$order- объект заказа
Address$address- Адрес доставки
Delivery$delivery- объект доставки
bool$use_currency- конвертировать стоимость в валюту заказа
Возвращает
float
getDeliveryCostText ( Order  $order,
Address  $address,
Delivery  $delivery 
)

Возвращает цену в текстовом формате, т.е. здесь может быть и цена и надпись, например "Бесплатно"

Аргументы
Order$order- объект заказа
Address$address- объект адреса
Delivery$delivery- объект доставки
Возвращает
string
Исключения
RSException
getDeliveryDelayForCart (   $order)

Возвращает количество дней, на которое нужно отодвинуть срок доставки. Обычно это срок поставки товаров на склад.

Аргументы
$order
Возвращает
int
getDeliveryExtraText ( Order  $order,
?Address  $address = null,
?Delivery  $delivery = null 
)

Возвращает дополнительную информацию о доставке (например сроки доставки, но можно возвращать еще что-то)

Аргументы
Order$order- объект заказа
Address$address- Адрес доставки
Delivery$delivery- Объект доставки
Возвращает
string
getDeliveryFinalCost ( Order  $order,
?Address  $address = null,
  $use_currency = true 
)

Возвращает итоговую стоимость доставки для заданного заказа. Результат возвращается из кэша при повторном вызове. Для очистки кэша можно использовать ->cleanDeliveryCostCache()->getDeliveryFinalCost()

Аргументы
Order$order- объект заказа
Address$address- Адрес доставки
bool$use_currency- конвертировать стоимость в валюту заказа
Возвращает
float
Исключения
RSException
getDeliveryParamsHtml ( Order  $order)

Возвращает HTML для указания параметров доставки

Аргументы
Order$order- заказ
Возвращает
string
Исключения
\SmartyException
getDeliveryPeriod ( Order  $order,
?Address  $address = null,
?Delivery  $delivery = null 
)

Возвращает структурированную информацию по сроку, который требуется для доставки товара по заданному адресу. Сторонние модули могут откорректировать информацию о сроках доставки

Аргументы
Order$orderобъект заказа
Address$addressобъект адреса
Delivery$deliveryобъект доставки
Возвращает
Helper | null
getDescription ( )
abstract

Возвращает описание типа доставки

Возвращает
string
getErrors ( )

Получает массив ошибок

Возвращает
array
getErrorsStr (   $glue = ", ")

Возвращает ошибки в виде строки склеевая символами

Аргументы
string$glue- символы для склеивания
Возвращает
string
getFormHtml ( )

Возвращает HTML форму данного типа доставки

Возвращает
string
Исключения
\SmartyException
getFormObject ( )

Возвращает ORM объект для генерации формы или null

Возвращает
FormObject | null
getNonCityRequiredAddressFieldsObjects ( )

Возвращает необходимые поля адреса, исключая определяющие выбор города

Возвращает
Type[]
getOption (   $key = null,
  $default = null 
)

Возвращает значение доп. поля доставки

Аргументы
string$key- ключ
mixed$default- значение по умолчанию
Возвращает
array|mixed|null
getPvzByAddress ( Address  $address)

Возвращает список доступных для указанного адреса ПВЗ

Аргументы
Address$address- адрес получателя
Возвращает
Pvz[]
getPvzList ( Order  $order,
?Address  $address = null 
)
Аргументы
Order$order- объект заказа
Address$address- объект адреса
Возвращает
array | bool - если ПВЗ поддерживаются, false - есть ПВЗ не поддерживаются
getPvzListFilters ( ?Order  $order = null)
Аргументы
Order$order- объект заказа
Возвращает
[]
getSelectedPvz ( Order  $order)

Возвращает указанный в заказе ПВЗ

Аргументы
Order$order- заказ
Возвращает
Pvz|null
getSelectError ( Order  $order)

Возвращает ошибки, мешающие выбрать способ доставки в списке доставок

Аргументы
Order$order- заказ
Возвращает
string
getShortName ( )
abstract

Возвращает идентификатор данного типа доставки. (только англ. буквы)

Возвращает
string
getTitle ( )
abstract

Возвращает название расчетного модуля (типа доставки)

Возвращает
string
getTrackNumber ( Order  $order)

Возвращает трек номер для отслеживания

Аргументы
Order$order- объект заказа
Возвращает
boolean
getTrackNumberUrl ( Order  $order)

Возвращает ссылку на отслеживание заказа

Аргументы
Order$order- объект заказа
Возвращает
string
hasCheckoutError ( Order  $order)

Возвращает наличие ошибки, мешающей оформить заказ

Аргументы
Order$order- заказ
Возвращает
bool
hasErrors ( )

Возвращает есть ошибки при работе метода или нет

Возвращает
boolean
hasPvz ( )

Возвращает, поддерживает ли данный способ доставки ПВЗ

Возвращает
bool
hasSelectError ( Order  $order)

Возвращает наличие ошибки, мешающей выбрать доставку

Аргументы
Order$order- заказ
Возвращает
bool
isDeliveryFree (   $delivery,
  $cost,
  $order 
)
protected

Возвращает true, если доставка должна быть бесплатной

Возвращает
bool
isMyselfDelivery ( )

Возвращает true, если тип доставки предполагает самовывоз

Возвращает
bool
loadOptions ( array  $opt = null)

Устанавливает настройки типа доставки Также, в данном методе могут быть инициализированы параметры связанных вспомогательных объектов

Аргументы
array | null$opt
Возвращает
void
onOrderCreate ( Order  $order,
Address  $address = null 
)

Функция срабатывает после создания заказа в БД

Аргументы
Order$order- объект заказа
Address$address- Объект адреса
Возвращает
void
removeFromOrderDeliveryErrorInfoLine (   $order)

Удаление админского комментария об ошибках в доставке

Аргументы
Order$order- объект заказа
setDelivery ( Delivery  $delivery)

Устанавливает объект доставки

Аргументы
Delivery$delivery
Возвращает
self
setOption (   $key_or_array = null,
  $value = null 
)

Устанавливает значение доп. поля доставки

Аргументы
string$key_or_array
mixed$value
somethingWrong ( Order  $order,
?Address  $address = null 
)
Аргументы
Order$order- объект заказа
Address$address- Адрес доставки
Возвращает
mixed
toFormatedXML (   $xml_string)

Переводит строку XML в форматированный XML

Аргументы
string$xml_string- строка XML
Возвращает
string
validate ( Delivery  $delivery)

Производит валидацию текущих данных в свойствах

Аргументы
Delivery$delivery- объект способа доставки
wrapByWidjet ( Delivery  $delivery,
Order  $order,
  $content 
)
Аргументы
Delivery$delivery- объект текущей доставки
Order$order- объект текущего заказа
string$content- содержимое для обёрки
Возвращает
string
Исключения
\Exception
\SmartyException
writeToLog (   $key,
  $value = '' 
)

Записывает в лог файл информацию

Аргументы
string$key- ключевое слово или фраза для записи, будет записана перед информацией в логе
mixed$value- информация для записи

Поля

$common_log
protected
$delivery
protected
$opt = []
protected
const EXTRA_KEY_PVZ_DATA = 'pvz_data'