use \Bitrix\Catalog;//подключать обязательно в самом верху файла, даже выше собственного кода
$orderInfo = \Bitrix\Sale\Order::load($arOrder['ID']);// по ID заказа получаем обьект
//получаем отгрузки, что бы узнать ID склада
$store_id = false;
foreach ($order->getShipmentCollection() as $s){
$store_id = $s->getStoreId();//ID склада
if ($store_id) {
break;
}
}
if($store_id){// по ID склада достаем его название
$arStore = Catalog\StoreTable::getRow([
'select' => ['TITLE'],
'filter' => [
'ID' => $store_id,
]
]);
}
echo $arStore['TITLE'];// Здесь хранится название склада
Нужен проект или доработка? Пиши в личку, я всегда на связи! Скайп - sangro0307
Александр Гарагуля написал: use \Bitrix\Catalog;//подключать обязательно в самом верху файла, даже выше собственного кода
$orderInfo = \Bitrix\Sale\Order::load($arOrder['ID']);// по ID заказа получаем обьект
//получаем отгрузки, что бы узнать ID склада $store_id = false; foreach ($order->getShipmentCollection() as $s){ $store_id = $s->getStoreId();//ID склада if ($store_id) { break; } }
if($store_id){// по ID склада достаем его название $arStore = Catalog\StoreTable::getRow([ 'select' => ['TITLE'], 'filter' => [ 'ID' => $store_id, ] ]); }
echo $arStore['TITLE'];// Здесь хранится название склада
Подскажите пожалуйста, как в обработчике получить адрес склада самовывоза? Данный код не срабатывает, даже заказ почему то не оформляется. Нужно передавать склад самовывоза в почтовый шаблон в новом заказе. странно что из коробки этого до сих пор нет.
Антон Иванов написал: Подскажите пожалуйста, как в обработчике получить адрес склада самовывоза? Данный код не срабатывает, даже заказ почему то не оформляется.Нужно передавать склад самовывоза в почтовый шаблон в новом заказе. странно что из коробки этого до сих пор нет.
- В метод Catalog\StoreTable::getRow нужно передать вместо TITLE поле Адреса склада. - А причем здесь данный код к оформлению заказа ?) Данный код предназначен для того что бы достать у заказа название склада. В моем случаи для клиента выводил название склада в бланке печати заказа. - В штатном письме мало информации о заказе, битрикс давно не переделывал его. К тому же его можно дописать доставать все что угодно.
Нужен проект или доработка? Пиши в личку, я всегда на связи! Скайп - sangro0307
use \ Bitrix \ Catalog ; //подключать обязательно в самом верху файла, даже выше собственного кода
$orderInfo = \Bitrix\Sale\Order::load( $arOrder [ 'ID' ]); // по ID заказа получаем обьект
//получаем отгрузки, что бы узнать ID склада
$store_id = false ;
foreach ( $order ->getShipmentCollection() as $s ){
$store_id = $s ->getStoreId(); //ID склада
if ( $store_id ) {
break ;
}
}
if ( $store_id ){ // по ID склада достаем его название
$arStore = Catalog\StoreTable::getRow([
'select' => [ 'TITLE' ],
'filter' => [
'ID' => $store_id ,
]
]);
}
echo $arStore [ 'TITLE' ]; // Здесь хранится название склада
Вопрос актуальный. Почему то этим способом не получается. Кто сталкивался с этим и решил, подскажите, пожалуйста
1. Перебирать доставки без системной $collection = $order->getShipmentCollection()->getNotSystemItems();
2. Настроить выбор склада при заказе. Даже один он должен быть. Т.е. отметить склад как пункт самовывоза и убедиться что при оформлении заказа он показывается.
use \ Bitrix \ Catalog ; //подключать обязательно в самом верху файла, даже выше собственного кода
$orderInfo = \Bitrix\Sale\Order::load( $arOrder [ 'ID' ]); // по ID заказа получаем обьект
//получаем отгрузки, что бы узнать ID склада
$store_id = false ;
foreach ( $order ->getShipmentCollection() as $s ){
$store_id = $s ->getStoreId(); //ID склада
if ( $store_id ) {
break ;
}
}
if ( $store_id ){ // по ID склада достаем его название
$arStore = Catalog\StoreTable::getRow([
'select' => [ 'TITLE' ],
'filter' => [
'ID' => $store_id ,
]
]);
}
echo $arStore [ 'TITLE' ]; // Здесь хранится название склада
Вопрос актуальный. Почему то этим способом не получается. Кто сталкивался с этим и решил, подскажите, пожалуйста
Код, полностью рабочий. в моем случае необходимом было вытащить: Название, адрес и телефон.
Код
use\Bitrix\Catalog ; //подключать обязательно в самом верху файла, даже выше собственного кода
$orderInfo = \Bitrix\Sale\Order::load($arOrder[ 'ID' ]); // по ID заказа получаем обьект
$store_id = false;
foreach ($orderInfo->getShipmentCollection() as $s){
$store_id = $s->getStoreId();
if ($store_id) {
break;
}
}
if($store_id){
$arStore = Catalog\StoreTable::getRow([
'select' => ['TITLE', 'ADDRESS', 'PHONE'],
'filter' => [
'ID' => $store_id,
]
]);
}
echo $address = $arStore['ADDRESS'] . ', ' . $arStore['TITLE'] . ', ' . $arStore['PHONE'];