Upload
1-
View
226
Download
1
Embed Size (px)
Citation preview
Юрий Волошин, Алексей Кирсанов1C-Битрикс
Новая eCommerce платформа D7: архитектура, управление товарами и ценами
в приложении BitrixconfЖдем ваши вопросы:
онлайн на странице трансляции
Пишемвопросы здесь
#bitrixconf
• Торговый каталог• Новый интернет-магазин• Миграция• Оформление заказов• Кастомизация
• службы доставок• платежные системы• административная часть
• Холдинговая структура• Персональный раздел• Скидки• Автоматизация
О чем
Торговый каталогуправление товарами и ценами
• Простой товар• Товар с торговыми предложениями• Набор• Комплект• Товары с коэфициентами
Типы товаров, принципы использования
Что отличает такие товары• Общий остаток• Делители расфасовки• Не желательная предварительная
развеска и расфасовка• Приход в единицах хранения• Показ клиентам в единицах
продажи
Товары с коэфициентами
• Штатная система округленияo В пользу клиентаo В пользу предприятияo По арифметическим правилам
• Округление до целочисленных цен: 10, 50, 100, …
• Привлекательная цена• Быстрое изменение цен на процент или
сумму • Изменение цен на основание другой
цены
Управление ценами, округление
Торговый каталогновые компоненты D7
• ООП, классы• Наследование• Универсальность• Функциональность• Скорость внедрения
Компоненты каталога D7
class SaleRecommendedProductsComponent extends \Bitrix\Iblock\Component\ElementList
{}
Простейший компонент
Шаблон, скопированный из любого подходящего наследника \Bitrix\Iblock\Component\ElementList
( bitrix:catalog.item )
1.
2.
class SaleRecommendedProductsComponentextends \Bitrix\Iblock\Component\ElementList
{protected function getProductIds(){
return array(4, 18, 10, 6, 12);}
}
Расширяем компонент - 1
class SaleRecommendedProductsComponent extends ElementList{
protected function getFilter(){
$filterFields = parent::getFilter();$filterFields['ACTIVE'] = 'Y';return $filterFields;
}protected function getSort(){
return array("NAME" => "ASC");}
}
Расширяем компонент - 2
1С-Битрикс E-commerce D7
• Решить головоломку по совместимости в API
• Создать сложнейший конвертор
• Быстрый переход на новое современное ecommerce решение
• База клиентов продолжается
• Сохранение инвестиций
• С этой версии у нас все работает по новому
• У нас новое крутое API
• Вам нужно переучиваться
• Вы будете адаптировать весь свой код, который уже написан
• Данные (заказы, клиенты) начинают набираться с нуля
• Огромный период перехода
VS СовместимыйНесовместимый
Трудный выбор!
• Требования клиентов• Требования времени• Новая архитектура D7• Новые возможности• Полностью
перепроектированный интернет-магазин с запасом для технологического развития и масштабирования
Новая E-commerce платформа D7
Новая e-commerce платформа D7
Единственное промышленное решение из коробки, функционал которого соответствует требованиям магазина любого масштаба.
Новая e-commerce платформа D7
• Заказ состоит из трех документов• Заказ (документ намерений)• Документы отгрузок• Документы оплат
Устройство OMSОПЛАТА
ЗАКАЗ
ОПЛАТА
ОТГРУЗКА ОТГРУЗКА
ОТГРУЗКА
Кейсы работы с OMS• Обычный онлайн заказ в интернет-
магазине• Заказ по телефону• Изменение состава заказа • Частичная/Разделенная отгрузка• Частичная/Разделенная оплата• Отслеживание взаимосвязей в
документах• …
Архитектура
$products = array(array('PRODUCT_ID' => 18, 'NAME' => 'Товар 1', 'PRICE' => 500,
'CURRENCY' => 'RUB', 'QUANTITY' => 3.25),);
$basket = Sale\Basket::create(SITE_ID);foreach ($products as $product){
$item = $basket->createItem("catalog", $product["PRODUCT_ID"]);unset($product["PRODUCT_ID"]);$item->setFields($product);
}
$order = Sale\Order::create(SITE_ID, 1);$order->setPersonTypeId(1);$order->setBasket($basket);
Создание заказа - 1
$shipmentCollection = $order->getShipmentCollection();$shipment = $shipmentCollection->createItem(
Sale\Delivery\Services\Manager::getObjectById(1));
$shipmentItemCollection = $shipment->getShipmentItemCollection();
/** @var Sale\BasketItem $basketItem */foreach ($basket as $basketItem){ $item = $shipmentItemCollection->createItem($basketItem); $item->setQuantity($basketItem->getQuantity());}
Создание заказа - 2
$paymentCollection = $order->getPaymentCollection();$payment = $paymentCollection->createItem(
Sale\PaySystem\Manager::getObjectById(1));$payment->setField("SUM", $order->getPrice());$payment->setField("CURRENCY", $order->getCurrency());
$result = $order->save();if (!$result->isSuccess()){
//$result->getErrors();}
Создание заказа - 3
$order = Sale\Order::load(42);$order->setField("USER_DESCRIPTION", "Доставить к подъезду");
$shipmentCollection = $order->getShipmentCollection();/** @var Sale\Shipment $shipment */foreach ($shipmentCollection as $shipment){
if (!$shipment->isSystem())$shipment->allowDelivery();
}
$result = $order->save();if (!$result->isSuccess()){
//$result->getErrors();}
Изменение заказа
Переход на1С-Битрикс E-commerce D7
Старый магазин завершил свое развитие, следующий путь – только конвертация. Для перехода недостаточно установки обновлений.
Необходимо сконвертировать старую платформу в новую:• Изменяются структуры таблиц
• Создаются новые таблицы
• Копируются файлы модуля
• Мигрируют данные
• Конвертируются службы доставок и платежные обработчики
95%
• Модуль Интернет-магазин (sale) 15.5.0• Резервная копия• Пошаговый мастер конвертации
o до конвертации все работает по старому
o закрытие публичной частиo Возможность перезапуска
• Высокая скорость конвертацииo до 1 500 000 заказов за 10 минут
Мастер конвертации
Старый магазин
КонвертацияНовый магазин
• Изменилась структура таблиц• Появились новые таблицы• Изменился код модуля: D7, ORM, ООП• Изменились службы доставки• Изменились платежные системы• Мигрировали данные
• Совместимость API• Совместимость событий
1С-Битрикс E-commerce D7
• Изменилисьo сущности (заказ, оплаты, отгрузки, …)o жизненный циклo система событийo структура хранения в базе данныхo платежные системыo службы доставкиo ограничения
• Есть вопросы – мы ответим
Обратите внимание – «совместимость»!
ложка
дёгтя
• Новая гибкая архитектура
• Новые возможности• Новый функционал• Объектно-ориентированный
АПИ• Новые компоненты• Запас прочности для
расширения
• Устаревшая модель
• Старые технологии
• Устаревший АПИ
• Сложность в поддержке и расширении
VSНовыймагазин
Старыймагазин
Новый компонент оформления заказа
В следующей части
Различные способыкастомизации
Холдинговая структура
1 2 3
Спасибо за внимание! Вопросы?