Технологии и масштабы.
Мы
разработали и запустили интернет-магазин
проект, масштабами которого хотим поделиться. Мы решили не делать лонгрид в стиле “Задача — Решение — Результат”, а составить список технологий и их применений. Естественно, любое из описанных решений мы можем повторить для Вашего проекта. Поехали!
Поиск sphinx для 1С-Битрикс
-
На сайте тестировали быстрый поиск Sphinx. Вернее, начали с него, затем вернулись к стандартному поиску 1С-Битрикс, но с существенными доработками. Вначале пробовали использовать поиск Sphinx, но он взлетел и через некоторое время упал на поиске неполных заказных номеров деталей. Как показали наши исследования, Sphinx в связке с Битриксом непригоден для поиска несловарных запросов. Например, в автоиндустрии для поиска номеров запчастей. Это связано с режимом связки Битрикс + Sphinx: real-time индексирование. В таком режиме нельзя включить поиск по подстроке. Поэтому пришлось отказаться от Sphinx и дорабатывать встроенный в Битрикс поисковый движок, “подсовывая” ему на индексирование раздробленные заказные номера (названия товаров). Непосредственно при поиске запроса пользователя делается до 5 различных подзапросов (исправление опечаток) с большим количеством "ИЛИ". В результате имеем умный поиск и поисковый индекс занимающий 50% от общего размера базы данных.
-
Быстрый поиск ищет по заголовкам товаров и по названиям категорий. Всего категорий больше 20 тысяч.
-
Поиск умеет выполнять замену символов и рассматривает все возможные варианты. Существует таблица из нескольких десятков замен вида 0 — O, 1 - L, итд. Даже если человек допустит ошибку при списывании номера с детали, сайт подскажет все возможные варианты.
-
Можно загрузить список номеров товаров и сайт выполнит
заказ по списку
. Делали под «copy-past из Excel». Все найденные товары можно одной кнопкой добавить в корзину. Если их не требуется конфигурировать, конечно же.
-
Поиск по категориям осуществляется на специальной выдвижной панели слева. Показывает количество найденных категорий “на лету”.
Пошаговый импорт товаров из CSV в 1С-Битрикс
-
Исходный каталог [одна из его версий
https://eb.automation.siemens.com/
] содержит 2 миллиона товаров
-
Каталог поставляется на DVD-носителях с 8 гигабайтами базы данных MS Access.
-
Для импорта товаров на сайт написана специальное приложение на C# + MS SQL Server, которое готовит CSV-файлы из базы на DVD. Это занимает около трех дней.
-
CSV грузятся на сайт в течение 3 суток. Существует механизм «паузы импорта». Для управления процессами импорта мы сделали специальную страницу административной панели:
-
Платежная информация и информация о текущем наличии выгружается из 1С.
Конфигуратор товара на сайте
-
Товар «знает», производят его или нет. Если уже не производят, предлагает ссылку на свой же аналог, который можно заказать. Например, так:
-
У товара может быть несколько десятков вариаций, SKU. Существуют в виде результатов конфигурирования опций товара. Опции делятся на обязательные параметры товара и необязательные. Для этого на сайте предусмотрен
конфигуратор товаров
. Выглядит так:
-
В результате конфигурирования всех товаров максимальное число товарных предложений более 5 миллионов. Товарные предложения хранятся в виде Highload-блока.
-
Конфигурирование товаров — самая сложная часть работы. Опции конфигурирования связаны с товарами очень нетривиально и разработку этого инструмента мы выделяли в отдельный этап с отдельным ТЗ.
Пример для устрашения на картинке:
Типы цен в интернет-магазине
-
У одного товара может быть 2 типа цен. По хитрой формуле они пересчитываются в третью.
-
Цена товара вычисляется по формулам с 10 переменными. Текущий курс валют, наличие товара, местоположение на складах в Германии — лишь некоторые из них.
-
Цены пересчитываются в RUR, EUR по текущему курсу. Валюты можно пересчитывать на лету в корзине, в заказе, и даже в генерируемых документах Счет и Договор.
-
Для категории товаров можно загрузить изображение, на котором показано, где находится заказной номер. Применяется для всех товаров категории и подкатегорий.
-
Пример характеристик товара. Их пришлось собирать из 15 никак не описанных таблиц БД.
Артикул
|
6AG1151-1AA05-7AB0
|
Общее описание
|
SIPLUS ET200S, ИНТЕРФЕЙСНЫЙ МОДУЛЬ IM151-1 STANDARD ДЛЯ ET 200S, РАБОЧАЯ ТЕМПЕРАТУРА -25.. . +70 ГРАДУСОВ ЦЕЛЬСИЯ, С КОНФОРМНЫМ ПОКРЫТИЕМ, НА ОСНОВЕ МОДУЛЯ 6ES7151-1AA05-0AB0
|
Стандартное время поставки
|
17 Дни
|
EAN
|
4042948479117
|
Экспортировать идентификатор
|
AL:N ECCN:EAR99H
|
Код товара
|
85389099
|
Минимальное количество для заказа
|
1
|
Количество в упаковке
|
1
|
PU / QU
|
1 Единицы
|
Цена за единицу (рекомендованная цена)
|
551,20 EUR
|
Вес нетто за QU:
|
0,172 KG
|
Страна происхождения
|
DE
|
Соответствие RoHS
|
0
|
Ценовая группа
|
473
|
Идентификатор списка
|
A&DSE/SIP ADD
|
eCl@ss 4
|
27-24-21-06
|
eCl@ss 5.1
|
27-24-26-08
|
eCl@ss 6
|
27-24-26-08
|
ETIM 4
|
EC001604
|
Заказ товара и личный кабинет пользователя
-
На странице Корзина сайт поможет
формировать документы в PDF
. Коммерческое предложение на бланке организации и договор поставки.
-
В личном кабинете есть раздел Избранное. Туда можно добавлять товары, чтобы не приходилось искать и конфигурировать заново.
-
На странице корзины есть доступ в Избранное. Можно добавлять товары в корзину из избранного.
-
После оформления заказа в личном кабинете клиента появляются все необходимые документы к заказу — Договор, Счет, Товарная накладная. Каждый содержит смету и пользовательские данные.
-
Так как однажды выставленный счет должен действовать не более трех дней, он генерируется каждый раз при скачивании, и дополнительно отправляется на почту администратору.
-
У пользователя есть накопительная скидка. Скидка зависит от общей суммы заказов, сделанных пользователем. В личном кабинете пользователю показывают его текущий статус.
-
В личном кабинете есть отдельная страница История просмотров. Показывает товары, которые смотрел пользователь за 24 часа. Помогает, если забыл, как товар называется)
-
Пользователь может загрузить сканы своих документов на сайт. Они доступны только администратору.
-
Матрица Статусов оплаты и Статусов заказов имеет 14 состояний. На основе состояния решается, может пользователь отменить заказ или нет.
-
Заказ помнит дату смены состояния.
-
Для работы с заказами применяются 2 роли менеджеров.
-
Счет можно выставить как в Рублях, так и в Евро
Прочее
-
Заявка на ремонт отправляет информацию о выбранном товаре на специальный сервисный шлюз. Сервисмены сразу знают, что нужно ремонтировать.
-
Так как бывает несколько десятков уровней каталога вглубь, хлебные крошки умеют скрывать середину пути. Показывают начало, конец, и дают возможность посмотреть, что скрыто.