11define(
'DELIVERY_DHL_USA_WRITE_LOG', 0);
12define(
'DELIVERY_DHL_USA_CACHE_LIFETIME', 2592000);
14define(
'DELIVERY_DHL_USA_PACKAGE_TYPE_DEFAULT',
'CP');
16define(
'DELIVERY_DHL_USA_SERVER',
'www.dhl-usa.com');
17define(
'DELIVERY_DHL_USA_SERVER_PORT', 80);
18define(
'DELIVERY_DHL_USA_SERVER_PAGE',
'/ratecalculator/HandlerServlet');
19define(
'DELIVERY_DHL_USA_SERVER_METHOD',
'POST');
21define(
'DELIVERY_DHL_USA_VALUE_CHECK_STRING',
'Quote results');
23 'DELIVERY_DHL_USA_VALUE_CHECK_REGEXP',
24 '/\$([0-9\.\s]+)<\/a>/i'
28 'DELIVERY_DHL_USA_TIME_CHECK_REGEXP',
29 '/<td><div class="pL5">([0-9]+)\sdays<\/div><\/td>/i'
34 public static function Init()
41 "DESCRIPTION" =>
GetMessage(
'SALE_DH_DHL_USA_DESCRIPTION'),
42 "DESCRIPTION_INNER" =>
GetMessage(
'SALE_DH_DHL_USA_DESCRIPTION_INNER'),
43 "BASE_CURRENCY" =>
'USD',
45 "HANDLER" => __FILE__,
48 "DBGETSETTINGS" =>
array(
"CDeliveryDHLUSA",
"GetSettings"),
49 "DBSETSETTINGS" =>
array(
"CDeliveryDHLUSA",
"SetSettings"),
50 "GETCONFIG" =>
array(
"CDeliveryDHLUSA",
"GetConfig"),
52 "COMPABILITY" =>
array(
"CDeliveryDHLUSA",
"Compability"),
53 "CALCULATOR" =>
array(
"CDeliveryDHLUSA",
"Calculate"),
58 "TITLE" =>
GetMessage(
"SALE_DH_DHL_USA_PROFILE_TITLE"),
59 "DESCRIPTION" =>
GetMessage(
"SALE_DH_DHL_USA_PROFILE_DESCRIPTION"),
62 "RESTRICTIONS_SUM" =>
array(0),
74 "CONFIG_GROUPS" =>
array(
75 "delivery" =>
GetMessage(
'SALE_DH_DHL_USA_CONFIG_DELIVERY_TITLE'),
79 "package_type" =>
array(
82 "TITLE" =>
GetMessage(
'SALE_DH_DHL_USA_CONFIG_PACKAGE_TYPE'),
83 "GROUP" =>
"delivery",
85 'EE' =>
GetMessage(
'SALE_DH_DHL_USA_CONFIG_PACKAGE_TYPE_EE'),
86 'OD' =>
GetMessage(
'SALE_DH_DHL_USA_CONFIG_PACKAGE_TYPE_OD'),
87 'CP' =>
GetMessage(
'SALE_DH_DHL_USA_CONFIG_PACKAGE_TYPE_CP'),
98 return unserialize($strSettings, [
'allowed_classes' =>
false]);
103 return serialize($arSettings);
114 while ($arZip = $dbZipList->Fetch())
119 require(
'dhl_usa/country.php');
127 public static function Calculate($profile, $arConfig, $arOrder,
$STEP, $TEMP =
false)
132 $location_from_zip = COption::GetOptionString(
'sale',
'location_zip');
133 if ($location_from_zip) $arLocationFrom[
'ZIP_LIST'] =
array($location_from_zip);
136 if ($arOrder[
"WEIGHT"] <= 0) $arOrder[
"WEIGHT"] = 0.1;
138 $cache_id =
"dhl_usa".
"|".$arConfig[
"category"][
'VALUE'].
"|".$arOrder[
"LOCATION_FROM"].
"|".$location_from_zip.
"|".$arOrder[
"LOCATION_TO"].
"|".intval($arOrder[
'WEIGHT']);
140 $obCache =
new CPHPCache();
145 $vars = $obCache->GetVars();
147 $transit_time = $vars[
"TRANSIT"];
152 "TRANSIT" => $transit_time,
158 'userStatus' =>
'NON_AUTHENTICATED_USER',
159 'customerType' =>
'P',
160 'ratesType' =>
'book',
161 'rateSuppressed' =>
'N',
162 'CLIENT' =>
'CLASS_NAME_P',
163 'CALLING_JSP' =>
'/jsp/ratesQuery.jsp',
164 'INTGRTDSURVEY' =>
'false',
165 'totalPieces' =>
'1',
166 'packagesPerMonth' =>
'',
169 $arQuery[
'originCountryCode'] =
'US';
170 $arQuery[
'originZip'] = $arLocationFrom[
'ZIP_LIST'][0];
172 $arQuery[
'destinationCountry'] = $arLocationTo[
'COUNTRY_DHLUSA'];
173 $arQuery[
'destinationCountryName'] = $arLocationTo[
'COUNTRY_NAME'];
174 $arQuery[
'destinationCity'] = $arLocationTo[
'CITY_NAME'];
175 $arQuery[
'destinationZip'] = $arLocationTo[
'ZIP_LIST'][0];
177 $timestamp = strtotime(date(
'Y-m-d'));
178 $timestamp = strtotime(
'+1 day', $timestamp);
182 $arHolidaysList =
array(
183 strtotime($y.
'-01-01'),
184 strtotime($y.
'-05-28'),
185 strtotime($y.
'-06-04'),
186 strtotime($y.
'-09-03'),
187 strtotime($y.
'-11-22'),
188 strtotime($y.
'-12-25')
191 while (date(
'N', $timestamp) > 5 || in_array($timestamp, $arHolidaysList))
194 $arQuery[
'shipDate'] = date(
'd F, Y', $timestamp);
196 $arQuery[
'pkgType'] = $arConfig[
'package_type'][
'VALUE'];
197 $arQuery[
'packagingType'] = $arConfig[
'package_type'][
'VALUE'];
199 $arQuery[
'packageWeight'] = $arOrder[
'WEIGHT'];
201 $arQuery[
'dmnLength'] =
'';
202 $arQuery[
'dmnWidth'] =
'';
203 $arQuery[
'dmnHeight'] =
'';
205 $arQuery[
'dutiableFlag'] =
'N';
207 foreach ($arQuery as
$key => $value) $arQuery[
$key] = urlencode(
$key).
'='.urlencode($value);
216 implode(
"&", $arQuery),
228 "TEXT" =>
GetMessage(
'SALE_DH_DHL_USA_ERROR_CONNECT'),
242 $obCache->StartDataCache();
257 $transit_time = intval(
$matches[1]);
260 $obCache->EndDataCache(
263 "TRANSIT" => $transit_time,
270 "TRANSIT" => $transit_time,
277 "TEXT" =>
GetMessage(
'SALE_DH_DHL_USA_ERROR_RESPONSE'),
292 if ($arLocationFrom[
'COUNTRY_DHLUSA'] !=
'US')
return array();
294 return array(
'simple');
301 $fp = fopen(__DIR__.
"/dhl_usa.log",
"a");
302 fwrite($fp,
"\r\n==========================================\r\n");
static GetLocationZIP($location)
static __Write2Log($data)
static Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP=false)
static SetSettings($arSettings)
static __GetLocation($location_id)
static GetSettings($strSettings)
static Compability($arOrder)
static IncludeModule($module_name)
static GetByID($primary, $strLang=LANGUAGE_ID)
static Convert($value, $measureFrom, $measureTo="G")
const DELIVERY_DHL_USA_SERVER
const DELIVERY_DHL_USA_CACHE_LIFETIME
const DELIVERY_DHL_USA_SERVER_PAGE
const DELIVERY_DHL_USA_SERVER_METHOD
const DELIVERY_DHL_USA_WRITE_LOG
const DELIVERY_DHL_USA_VALUE_CHECK_STRING
const DELIVERY_DHL_USA_TIME_CHECK_REGEXP
const DELIVERY_DHL_USA_VALUE_CHECK_REGEXP
const DELIVERY_DHL_USA_PACKAGE_TYPE_DEFAULT
const DELIVERY_DHL_USA_SERVER_PORT
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
QueryGetData($SITE, $PORT, $PATH, $QUERY_STR, &$errno, &$errstr, $sMethod="GET", $sProto="", $sContentType='N')
AddEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $CALLBACK, $SORT=100, $FULL_PATH=false)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if(empty($signedUserToken)) $key
$arLocation['REGION_NAME']