====== Настройка PickPoint для Битрикс ====== Довольно кривое решение, много плохих отзывов. Требуется приложение рук чтобы все это заработало. * Устанавливаем из Маркетплейса решение epages.pickpoint http://marketplace.1c-bitrix.ru/solutions/epages.pickpoint/ * В файлике bitrix/modules/epages.pickpoint/cities.csv включаем нужный город отправки - находим нужный город и в конце строки false заменяем на true, например 550;Красноярск;Krasnoyarsk;Красноярский край;true * Переходим Рабочий стол -> Настройки -> Настройки продукта -> Настройки модулей -> PickPoint и заполняем поля (все данные есть в Договоре) * Настройки: * ИКН магазина * Логин для входа в личный кабинет * Пароль для входа в личный кабинет * Стандартное описание вложения * включаем галочку "Тестовый режим" * Допустимые типы услуг (обычно только STD, STDCOD) * Допустимые виды приема (обычно CUR, WIN) * Ставим галочку "Дописывать информацию о выбранном постамате в поле "Комментарий к заказу" * При необходимости заполняем "От какой цены бесплатная доставка, руб." * Там же при необходимости добавляем/изменяем параметры в разделе "Физическое лицо" * Тарифные зоны: * Город отправки - выбираем город отправки (который правили в файлике cities.csv) * Адрес клиентского возврата * Телефон клиентского возврата * Устанавливаем цены для Тарифных зон (данные берем так же из Договора), если есть - устанавливаем "Использовать региональный коэффициент" * Подключаем службу доставки: переходим в Рабочий стол -> Магазин -> Настройки -> Службы доставки и добавляем новую Автоматизированную службу доставки: * Общие настройки: * Название * Активность - ставим галочку * Описание * Логотип * Настройки обработчика: * Служба доставки: выбираем PickPoint [pickpoint] * Наценка и ее тип - по желанию * Подключаем платежную систему: переходим в Рабочий стол -> Магазин -> Настройки -> Платежные системы и добавляем новую: * Обработчик: PickPoint (epages.pickpoint) * Заголовок и название: что-нибудь вроде "Оплата в постамате Pick Point" * Активность - включена галочка * Описание - по желанию * Добавляем логотип * Тип оплаты: безналичный * Разрешить автопересчет оплаты - включена галочка В принципе все готово, осталось доточить по вкусу оформление: * Класс bx_result_price, вывод в файле bitrix/modules/epages.pickpoint/block.php * Файл стилей CSS bitrix/templates/YOU_TEMPLATE/custom.css Я сделал так: В файле bitrix/modules/epages.pickpoint/block.php заменил
на
В файл стилей 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; } {{tag>битрикс bitrix пикпоинт pickpoint epages_pickpoint}}