- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/delivery/services/automatic.php
- Класс: BitrixSaleDeliveryServicesAutomatic
- Вызов: Automatic::getCompatibleProfiles
static function getCompatibleProfiles($sid, $compatibilityFunc, array $config, Shipment $shipment)
{
if($sid == '')
throw new ArgumentNullException("sid");
static $result = array();
$oldOrder = self::convertNewOrderToOld($shipment);
if(!empty($oldOrder["ITEMS"]) && is_array($oldOrder["ITEMS"]))
{
$maxDimensions = array();
foreach($oldOrder["ITEMS"] as $item)
{
if(is_string($item["DIMENSIONS"]))
$item["DIMENSIONS"] = unserialize($item["DIMENSIONS"], ['allowed_classes' => false]);
if(!is_array($item["DIMENSIONS"]) || empty($item["DIMENSIONS"]))
continue;
$maxDimensions = CSaleDeliveryHelper::getMaxDimensions(
array(
$item["DIMENSIONS"]["WIDTH"],
$item["DIMENSIONS"]["HEIGHT"],
$item["DIMENSIONS"]["LENGTH"]
),
$maxDimensions
);
}
if(!empty($maxDimensions))
$oldOrder["MAX_DIMENSIONS"] = $maxDimensions;
}
$hitCacheId = $sid.'_'.md5(serialize($oldOrder)).'_'.md5(serialize($config["CONFIG"]));
if(!isset($result[$hitCacheId]))
{
$result[$hitCacheId] = call_user_func($compatibilityFunc, $oldOrder, $config["CONFIG"]);
}
return $result[$hitCacheId];
}