Не понимаю почему стоимость доставки в итоге в 0 переходит.
Помогите найти ошибку.
<?
CModule::IncludeModule("sale");
CModule::IncludeModule('webservice');
Class CDeliveryPlain {
/**
* Описание обработчика
*/
function Init()
{
//настройки
return array(
"SID" => "Plain", // Идентификатор службы доставки
"NAME" => "Пример обработчика службы доставки",
"DESCRIPTION" => "Описание его для клиентов сайта",
"DESCRIPTION_INNER" => "Описание для администраторов сайта",
"BASE_CURRENCY" => "RUB",
"HANDLER" => __FILE__,
/* Определение методов */
"DBGETSETTINGS" => array("CDeliveryPlain", "GetSettings"),
"DBSETSETTINGS" => array("CDeliveryPlain", "SetSettings"),
"GETCONFIG" => array("CDeliveryPlain", "GetConfig"),
"COMPABILITY" => array("CDeliveryPlain", "Compability"),
"CALCULATOR" => array("CDeliveryPlain", "Calculate"),
/* Список профилей */
"PROFILES" => array(
"all" => array(
"TITLE" => "Без ограничений",
"DESCRIPTION" => "Профиль доставки без каких-либо ограничений",
"RESTRICTIONS_WEIGHT" => array(0),
"RESTRICTIONS_SUM" => array(0),
),
)
);
}
/* Установка параметров */
function SetSettings($arSettings)
{
foreach ($arSettings as $key => $value){
if (strlen($value) > 0)
$arSettings[$key] = doubleval($value);
else
unset($arSettings[$key]);
}
return serialize($arSettings);
}
/* Запрос параметров */
function GetSettings($strSettings) {
return unserialize($strSettings);
}
/* Запрос конфигурации службы доставки */
function GetConfig()
{
$arConfig = array(
"CONFIG_GROUPS" => array(
"all" => "Стоимость доставки",
),
"CONFIG" => array(),
);
// параметрами обработчика в данном случае являются значения стоимости доставки в различные группы местоположений.
// для этого сформируем список параметров на основе списка групп
$dbLocationGroups = CSaleLocationGroup::GetList();
while ($arLocationGroup = $dbLocationGroups->Fetch())
{
$arConfig["CONFIG"]["price_".$arLocationGroup["ID"]] = array(
"TYPE" => "STRING",
"DEFAULT" => "",
"TITLE" =>
"Стоимость доставки в группу "
.$arLocationGroup["NAME"]."
.(".COption::GetOptionString("sale", "default_currency", "RUB").')',
"GROUP" => "all",
);
}
return $arConfig;
}
/* Проверка соответствия профиля доставки заказу */
function Compability($arOrder, $arConfig)
{
return array("all");
}
/* Калькуляция стоимости доставки*/
function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false) {
return array(
"RESULT" => "OK",
"VALUE" => CDeliverySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig)
);
}
}
AddEventHandler("sale", "onSaleDeliveryHandlersBuildList", array("CDeliveryPlain", "Init"));?>
Помогите найти ошибку.
<?
CModule::IncludeModule("sale");
CModule::IncludeModule('webservice');
Class CDeliveryPlain {
/**
* Описание обработчика
*/
function Init()
{
//настройки
return array(
"SID" => "Plain", // Идентификатор службы доставки
"NAME" => "Пример обработчика службы доставки",
"DESCRIPTION" => "Описание его для клиентов сайта",
"DESCRIPTION_INNER" => "Описание для администраторов сайта",
"BASE_CURRENCY" => "RUB",
"HANDLER" => __FILE__,
/* Определение методов */
"DBGETSETTINGS" => array("CDeliveryPlain", "GetSettings"),
"DBSETSETTINGS" => array("CDeliveryPlain", "SetSettings"),
"GETCONFIG" => array("CDeliveryPlain", "GetConfig"),
"COMPABILITY" => array("CDeliveryPlain", "Compability"),
"CALCULATOR" => array("CDeliveryPlain", "Calculate"),
/* Список профилей */
"PROFILES" => array(
"all" => array(
"TITLE" => "Без ограничений",
"DESCRIPTION" => "Профиль доставки без каких-либо ограничений",
"RESTRICTIONS_WEIGHT" => array(0),
"RESTRICTIONS_SUM" => array(0),
),
)
);
}
/* Установка параметров */
function SetSettings($arSettings)
{
foreach ($arSettings as $key => $value){
if (strlen($value) > 0)
$arSettings[$key] = doubleval($value);
else
unset($arSettings[$key]);
}
return serialize($arSettings);
}
/* Запрос параметров */
function GetSettings($strSettings) {
return unserialize($strSettings);
}
/* Запрос конфигурации службы доставки */
function GetConfig()
{
$arConfig = array(
"CONFIG_GROUPS" => array(
"all" => "Стоимость доставки",
),
"CONFIG" => array(),
);
// параметрами обработчика в данном случае являются значения стоимости доставки в различные группы местоположений.
// для этого сформируем список параметров на основе списка групп
$dbLocationGroups = CSaleLocationGroup::GetList();
while ($arLocationGroup = $dbLocationGroups->Fetch())
{
$arConfig["CONFIG"]["price_".$arLocationGroup["ID"]] = array(
"TYPE" => "STRING",
"DEFAULT" => "",
"TITLE" =>
"Стоимость доставки в группу "
.$arLocationGroup["NAME"]."
.(".COption::GetOptionString("sale", "default_currency", "RUB").')',
"GROUP" => "all",
);
}
return $arConfig;
}
/* Проверка соответствия профиля доставки заказу */
function Compability($arOrder, $arConfig)
{
return array("all");
}
/* Калькуляция стоимости доставки*/
function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false) {
return array(
"RESULT" => "OK",
"VALUE" => CDeliverySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig)
);
}
}
AddEventHandler("sale", "onSaleDeliveryHandlersBuildList", array("CDeliveryPlain", "Init"));?>