1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
delivery_simple.php
См. документацию.
1<?
2/********************************************************************************
3Simple delivery services.
4It uses fixed delivery price for any location groups. Needs at least one group of locations to be configured.
5********************************************************************************/
7
8IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/sale/delivery/delivery_simple.php');
9
11{
12 public static function Init()
13 {
14 return array(
15 /* Basic description */
16 "SID" => "simple",
17 "NAME" => GetMessage('SALE_DH_SIMPLE_NAME'),
18 "DESCRIPTION" => GetMessage('SALE_DH_SIMPLE_DESCRIPTION'),
19 "DESCRIPTION_INNER" => GetMessage('SALE_DH_SIMPLE_DESCRIPTION_INNER'),
20 "BASE_CURRENCY" => COption::GetOptionString("sale", "default_currency", "RUB"),
21
22 "HANDLER" => __FILE__,
23
24 /* Handler methods */
25 "DBGETSETTINGS" => array("CDeliverySimple", "GetSettings"),
26 "DBSETSETTINGS" => array("CDeliverySimple", "SetSettings"),
27 "GETCONFIG" => array("CDeliverySimple", "GetConfig"),
28
29 "COMPABILITY" => array("CDeliverySimple", "Compability"),
30 "CALCULATOR" => array("CDeliverySimple", "Calculate"),
31
32 /* List of delivery profiles */
33 "PROFILES" => array(
34 "simple" => array(
35 "TITLE" => GetMessage("SALE_DH_SIMPLE_SIMPLE_TITLE"),
36 "DESCRIPTION" => GetMessage("SALE_DH_SIMPLE_SIMPLE_DESCRIPTION"),
37
38 "RESTRICTIONS_WEIGHT" => array(0),
39 "RESTRICTIONS_SUM" => array(0),
40 ),
41 )
42 );
43 }
44
45 public static function GetConfig()
46 {
47 $arConfig = array(
48 "CONFIG_GROUPS" => array(
49 "all" => GetMessage('SALE_DH_SIMPLE_CONFIG_TITLE'),
50 ),
51
52 "CONFIG" => array(),
53 );
54
55 $dbLocationGroups = CSaleLocationGroup::GetList();
56 while ($arLocationGroup = $dbLocationGroups->Fetch())
57 {
58 $arConfig["CONFIG"]["price_".$arLocationGroup["ID"]] = array(
59 "TYPE" => "STRING",
60 "DEFAULT" => "",
61 "TITLE" => GetMessage("SALE_DH_SIMPLE_GROUP_PRICE")." \"".$arLocationGroup["NAME"]."\" (".COption::GetOptionString("sale", "default_currency", "RUB").')',
62 "GROUP" => "all",
63 );
64 }
65
66 return $arConfig;
67 }
68
69 public static function GetSettings($strSettings)
70 {
71 return unserialize($strSettings, ['allowed_classes' => false]);
72 }
73
74 public static function SetSettings($arSettings)
75 {
76 foreach ($arSettings as $key => $value)
77 {
78 if ($value <> '')
79 $arSettings[$key] = doubleval($value);
80 else
81 unset($arSettings[$key]);
82 }
83
84 return serialize($arSettings);
85 }
86
87 public static function __GetLocationPrice($LOCATION_ID, $arConfig)
88 {
89 $dbLocationGroups = CSaleLocationGroup::GetLocationList(array("LOCATION_".(CSaleLocation::checkIsCode($LOCATION_ID) ? 'CODE' : 'ID') => $LOCATION_ID));
90
91 while ($arLocationGroup = $dbLocationGroups->Fetch())
92 {
93 if (
94 array_key_exists('price_'.$arLocationGroup["LOCATION_GROUP_ID"], $arConfig)
95 &&
96 $arConfig['price_'.$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"] !== ''
97 )
98 {
99 return $arConfig['price_'.$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"];
100 }
101 }
102
103 return false;
104 }
105
106 public static function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
107 {
108 return CDeliverySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig);
109 }
110
111 public static function Compability($arOrder, $arConfig)
112 {
113 $price = CDeliverySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig);
114
115 if ($price === false)
116 return array();
117 else
118 return array('simple');
119 }
120}
121
122AddEventHandler("sale", "onSaleDeliveryHandlersBuildList", array('CDeliverySimple', 'Init'));
123?>
static GetLocationList($arFilter=Array())
Определения location_group.php:21
static checkIsCode($id)
Определения location.php:276
static Compability($arOrder, $arConfig)
Определения delivery_simple.php:111
static Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP=false)
Определения delivery_simple.php:106
static SetSettings($arSettings)
Определения delivery_simple.php:74
static GetConfig()
Определения delivery_simple.php:45
static GetSettings($strSettings)
Определения delivery_simple.php:69
static Init()
Определения delivery_simple.php:12
static __GetLocationPrice($LOCATION_ID, $arConfig)
Определения delivery_simple.php:87
static IncludeModule($module_name)
Определения module.php:151
static GetList($arOrder=Array("NAME"=>"ASC"), $arFilter=Array(), $strLang=LANGUAGE_ID)
Определения location_group.php:9
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
$STEP
Определения csv_new_setup.php:23
AddEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $CALLBACK, $SORT=100, $FULL_PATH=false)
Определения tools.php:5165
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
Определения tools.php:3778
GetMessage($name, $aReplace=null)
Определения tools.php:3397
if(empty($signedUserToken)) $key
Определения quickway.php:257