Довольно кривое решение, много плохих отзывов. Требуется приложение рук чтобы все это заработало.
550;Красноярск;Krasnoyarsk;Красноярский край;true
В принципе все готово, осталось доточить по вкусу оформление:
Я сделал так:
В файле bitrix/modules/epages.pickpoint/block.php заменил
<div class="bx_result_price"><a onclick
на
<div class="bx_result_price"><a class="pickpoint" onclick
В файл стилей bitrix/templates/YOU_TEMPLATE/custom.css добавил
.bx_result_price { font-weight: bold; font-size: 16px; color: #9e3d5d; } a.pickpoint { border-bottom: 1px dotted #ca7693; } a.pickpoint:hover { color: #ca7693; }
В версии решения 2.1.3 есть неприятный момент: при включенной галочке «Дописывать информацию о выбранном постамате в поле «Комментарий к заказу» этот самый комментарий пользователя затирается. А если галочку отключить - так не удобно и непонятно куда же этот заказ отправлять. Допиливаем в файле bitrix/modules/epages.pickpoint/general/pickpoint.php в районе 180 строки
Было:
private static function processOrderAdd($orderId, $deliveryId) { if (in_array($orderId, static::$processedOrders)) { return; } $MODULE_ID = static::$moduleId; $deliveryCode = self::getProfileCodeById($deliveryId); if ('pickpoint:postamat' == $deliveryCode) { $arToAdd = array( 'ORDER_ID' => $orderId, 'POSTAMAT_ID' => $_SESSION['PICKPOINT']['PP_ID'], 'ADDRESS' => $_SESSION['PICKPOINT']['PP_ADDRESS'], 'SMS_PHONE' => $_SESSION['PICKPOINT']['PP_SMS_PHONE'], ); self::AddOrderPostamat($arToAdd); if (COption::GetOptionString($MODULE_ID, 'pp_add_info', '')) { $sDescription = "{$_SESSION['PICKPOINT']['PP_ID']}\n" ."{$_SESSION['PICKPOINT']['PP_ADDRESS']}\n" ."{$_SESSION['PICKPOINT']['PP_SMS_PHONE']}"; $saleOrder = new CSaleOrder(); $saleOrder->Update($orderId, array('USER_DESCRIPTION' => $sDescription)); } } unset($_SESSION['PICKPOINT']); static::$processedOrders[] = $orderId; }
стало:
private static function processOrderAdd($orderId, $deliveryId) { if (in_array($orderId, static::$processedOrders)) { return; } $MODULE_ID = static::$moduleId; $deliveryCode = self::getProfileCodeById($deliveryId); if ('pickpoint:postamat' == $deliveryCode) { $arToAdd = array( 'ORDER_ID' => $orderId, 'POSTAMAT_ID' => $_SESSION['PICKPOINT']['PP_ID'], 'ADDRESS' => $_SESSION['PICKPOINT']['PP_ADDRESS'], 'SMS_PHONE' => $_SESSION['PICKPOINT']['PP_SMS_PHONE'], ); self::AddOrderPostamat($arToAdd); if (COption::GetOptionString($MODULE_ID, 'pp_add_info', '')) { $order_pickpoint = Bitrix\Sale\Order::load($orderId); $sDescription = $order_pickpoint->getField('USER_DESCRIPTION') ." Постамат PickPoint: " . "{$_SESSION['PICKPOINT']['PP_ID']}\n" ."{$_SESSION['PICKPOINT']['PP_ADDRESS']}\n" ."{$_SESSION['PICKPOINT']['PP_SMS_PHONE']}"; $saleOrder = new CSaleOrder(); $saleOrder->Update($orderId, array('USER_DESCRIPTION' => $sDescription)); } } unset($_SESSION['PICKPOINT']); static::$processedOrders[] = $orderId; }