Итак. Может кому пригодиться. Смена подставляем необходимое местоположение. В результате все что зависит от местоположения рассчитывается уже с учетом заданного. (иначе берется либо местоположение по умолчанию, либо если пользователь уже совершал покупки - из его профиля). Привожу минимально необходимый код с безусловной установкой
| Код |
|---|
use Bitrix\Main\EventManager;
$eventManager = EventManager::getInstance();
$eventManager->addEventHandler("sale", "OnSaleComponentOrderProperties", Array("Example", "OnSaleComponentOrderProperties"));
class Example
{
/**
* У меня по условию задачи известны ID и NAME местоположения
*/
static $curCityId = 24;
static $curCityName = 'Тюмень';
/**
* ID свойств заказа
*/
const PROP_LOCATION = 6;
const PROP_ZIP = 4;
const PROP_LOCATION_NAME = 5;
static function OnSaleComponentOrderProperties(&$arFields)
{
$rsLocaction = CSaleLocation::GetLocationZIP(self::$curCityId);
$arLocation = $rsLocaction->Fetch();
$arFields['ORDER_PROP'][self::PROP_ZIP] = $arLocation['ZIP'];
$arFields['ORDER_PROP'][self::PROP_LOCATION_NAME] = self::$curCityName;
$arFields['ORDER_PROP'][self::PROP_LOCATION] = CSaleLocation::getLocationCODEbyID(self::$curCityId);
}
} |
Есть проблема с ЧПУ умного фильтра. Голосуйте за
) не знает о включаемых областях