====== Настройка 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}}