CentroBit. Cms с личным кабинетом пользователя
Личный кабинет для оптовой компании. Неужели так сложно? / Блог компании CentroBit / Хабр
Регистрацией на сайтах интернет-магазинов давно никого не удивишь, ведь она позволяет сократить время, которое тратится на заполнение стандартных полей, требуемых, к примеру, для оформления заказа. Как правило, место на сайте, куда Вы попадаете после регистрации, называется личным кабинетом. Иногда в нем присутствуют различные функции или инструменты, недоступные на сайте по умолчанию. Интернет-магазины используют личный кабинет как средство удержания клиента, поскольку повторная покупка совершается быстрее и удобнее.
Оптовик: “Хочу на сайте личный кабинет”
По аналогии с интернет-магазинами оптовые компании, желающие упростить процесс оформления заказов для своих клиентов, решают обзавестись личным кабинетом. Начинается планирование функций, которые будут доступны дилерам. Как правило, основные из них:
- дилер должен в ЛК видеть остатки товаров дистрибьютора в виде каталога товаров с количеством или иметь возможность скачать его в файле;
- дилер должен иметь возможность заказать товар, то есть выбрать из каталога, положить в корзину и отправить заказ;
- желательно дать возможность дилерам видеть финансовую информацию (долги, остатки на счету)
Примерно в таком виде задание уходит разработчикам. Через неделю-две функционал появляется на сайте дистрибьютора, но почему-то личным кабинетом никто не пользуется. “Ну и хрен с ним! — Не нужен значит он никому” — думает инициатор всей этой затеи.
Оптовику не нужен на сайте личный кабинет интернет-магазина.
Мы привыкли мыслить шаблонно и в этом нет ничего плохого, это наша природа. Мозг стремится экономить энергию. Сталкиваясь с задачей, мы пытаемся найти решение похожей задачи и применить его к данной. К сожалению, это часто приводит нас к нежелательным результатам из-за неправильных аналогий. Я хочу сказать, что личный кабинет, который хочет организовать оптовая компания для своих клиентов, будет похож на личный кабинет обычного интернет-магазина так же, как эта статья похожа на произведение Гете.
Принципиальные отличия личного кабинета оптовой компании от личного кабинета интернет-магазина.
Первое и самое главное отличие, из которого вытекают многие другие — это необходимость наличия в личном кабинете дистрибьютора такой сущности, как “заказ” и возможности работы с ним по определенным правилам.
Второе — отсутствие в ЛК корзины, потому как вместо нее и используется “заказ”. В отличие от «корзины», при работе с заказом необходимо наличие таких функций, как:
- резервирование товара
- снятие товара с резерва
- формирование нескольких заказов одновременно
- отслеживание статусов заказов
- создание заказа из файла EXCEL
- оформление товара под заказ
- оформление доставки заказа
- печать счетов на основании заказа
Третье — безопасность. Поскольку дистрибьютор делится в личном кабинете информацией со своим клиентом, юр. лицом, конфиденциальной информацией, например, остатками товаров на складе, вопрос безопасности данных является одним из самых значительных. При создании ЛК для интернет-магазина этот вопрос гораздо менее важен.
Четвертое — нет смысла затевать проект без интеграции ЛК с ERP-системой оптовой компании. Интеграция с ERP(зачастую это 1С управление торговлей) и позволяет автоматизировать большинство действий менеджеров оптовых компаний, связанных с обработкой поступающих заказов и внесением данных в ERP.
Пятое (the last but not the least) — цель создания эффективного личного кабинета оптовой компании отличается от цели создания личного кабинета для интернет-магазина. Для интернет-магазина, как я говорил раньше, это прежде всего маркетинговый инструмент. Для дистрибьютора это автоматизация бизнес-процессов, а уже потом решение маркетинговых задач. Автоматизация позволяет серьезно сократить ресурсы, затрачиваемые на обработку заказов, получить возможность принимать заказы круглосуточно и увеличить пропускную способность по приему заказов.
А как же без корзины?
Привычная нам корзина в личном кабинете оптовой компании не понадобится. Конечно, место, где будет происходить оформление заказа в ЛК можно назвать корзиной, но это будет не совсем верно, ведь этот раздел будет обладать совсем другим функционалом. Работа с заказом подразумевает несколько иную логику работы пользователя нежели работа в корзине.
Ниже приведен пример составления заказа. Клиент оптовой компании забивает в поисковой строке название или артикул товара, который он хочет купить, и получает выпадающий список товаров с информацией о наличии товара и его цене. Выбрав нужный товар, менеджер по закупкам добавит его в заказ. Когда заказ создан, его можно сохранить, и в случае синхронизации личного кабинета с ERP-системой оптовой компании заказ будет автоматически оформлен. Далее менеджер оптовой компании сможет менять статусы заказа в EPR-системе, а дилер отслеживать их в своем личном кабинете. Также есть возможность загрузки дилером списка артикулов товаров с количеством в личный кабинет, который определится системой как новый заказ с данными позициями.
Можно ли “допилить” корзину в CMS до требуемых функций?
Конечно можно пробовать создавать личный кабинет в CMS сайта, но с таким же успехом можно использовать велосипедный насос для автомобиля. CMS Content management system (Системы управления контентом) созданы для других задач. В них не заложены возможности работы с бизнес-объектами и бизнес-логикой, поэтому для создания полноценного личного кабинета оптовой компании нужно использовать предназначенные для этого платформы:
Oracle Fusion Middleware, SAP NetWeaver, SiTex, SharePoint, Agora
habr.com
Как реализовать личный счет или баланс пользователя на сайте
При создании сайта, а в особенности интернет-магазина, у многих возникает вопрос: как создать личный счет или баланс пользователя? Чтобы при регистрации на сайте, пользователь автоматически имел в своем аккаунте личный счет, который он может пополнять для оплаты каких-либо товаров или услуг.
Давайте рассмотрим, как сделать такую возможность на своем сайте.
Итак, дана задача, добавить на сайт:
- функцию баланса в личный кабинет пользователя
- изменение баланса пользователя администратором сайта
- возможность пополнения пользователем баланса
- оплату товаров или услуг через баланс
- запись списка оплаченных счетов в личный кабинет пользователя.
Для начала определим, на какой платформе у вас сайт или интернет-магазин.
Сайт на конструкторе сайтов
Создать баланс пользователя на сайте построенном в конструкторе сайтов возможно, но все зависит от используемой платформы. Если в конструкторе сайтов, который вы используете, уже есть какое-нибудь готовое приложение или модуль баланса и счетов, которые можно установить, то это очень хорошо. Если готовых решений нет, то вам придется их создавать самостоятельно - писать специальный компонент или простой скрипт, если конечно же, конструктор сайтов позволяет их установить и использовать.
Система управления контентом (CMS)
Как и в случае с конструктором сайтов, в системе управления контентом вы можете использовать уже готовые модули или плагины. Если готовых нет, то их можно написать. В отличие от конструкторов сайтов, создать свой плагин или компонент можно практически в любой CMS.
Фреймворк или самописный сайт
Для сайтов построенных на базе фреймворков можно поискать готовые модули на Github и установить через Composer или подключить самому вручную. Фреймворк ничем не ограничивает вас для создания модуля баланса пользователя. Самописный сайт - созданный вами без всяких вспомогательных инструментов, библиотек, фреймворков также не налагает ограничений по созданию баланса в личном кабинете.
Вот мы и рассмотрели, на какой платформе может быть построен сайт. Теперь перейдем непосредственно к рассмотрению создания баланса в личном кабинете.
Создание баланса в личном кабинете
Пользователи сайта или клиенты интернет-магазина обычно хранятся в какой-нибудь таблице базы данных с названием users, user, clients и т.п.
Баланс - представляет собой ячейку, в которой хранится числовое значение количества денежных средств пользователя.
Для хранения баланса в таблице users можно добавить поле balance с типом integer или float.
Наименование | Описание |
user_id | id пользователя |
login | логин пользователя |
email пользователя | |
password | захэшированный пароль |
balance | баланс пользователя |
Это достаточно просто. Теперь у каждого пользователя есть свой баланс. В форму редактирования аккаунта пользователя можно добавить input и позволить его редактировать только администратору сайта, чтобы в случае необходимости можно было изменить баланс любого пользователя.
Использование нескольких валют
А что, если нужно, чтобы баланс был в нескольких валютах? Для этого следует сохранять стоимость в какой-нибудь одной, универсальной валюте, которой естественно является доллар. Затем просто на лету конвертировать баланс в нужную валюту. Например, баланс хранится в долларах ($), а с помощью какого-нибудь API вы можете конвертировать баланс и вывести его на в личном кабинете пользователя в рублях, евро, тенге и т.п. В том числе использовать конвертацию при оплате или пополнении. Например, пользователь хочет произвести оплату товара с баланса через рубли и вы конвертируете долларовый баланс в нужную валюту.
Пополнение баланса пользователя
Значение баланса можно выводить на странице просмотра личного кабинета пользователя. Из этого же кабинете организовать систему пополнения баланса по следующему принципу:
- выбрать подходящую для вас систему приема платежей, с API
- добавить на страницу личного кабинета кнопку или форму для перечисления пользователем денежных средств
- после этого проверять с помощью API, успешно ли совершена оплата или нет. Если успешно, то прибавлять к балансу пользователя сумму пополнения - записывать в поле balance в таблице users.
- создать в базе данных таблицу, в которую записывать данные о пополнении баланса, например, billing или transaction со следующими полями:
Наименование | Описание |
billing_id | порядковый id записи |
date_create | дата оплаты/добавления счета |
amount | сумма пополнения |
user_id | id пользователя выполнившего пополнение баланса |
Оплата товаров или услуг через баланс
Прием оплат за товары или услуги через баланс строить по следующему принципу:
- пользователь переходит на страницу товара, где нужно проверять, авторизован он или гость.
- если пользователь авторизован, то можно выводить количество средств баланса, и проверять, хватает ли этого баланса, чтобы оплатить товар. Если баланса не хватает, то нужно отображать пользователю сообщение об этом и можно даже показывать ссылку для перехода на страницу пополнения баланса.
- нужно создать какую-то кнопку оплаты, ведущую на страницу или отправляющую ajax запрос на эту страницу, где будет происходить процесс покупки товара и списания потраченной суммы с баланса пользователя.
Запись списка оплаченных счетов
Если товар успешно оплачен через баланс, то нужно записывать об этом информацию в базу данных, например, создать таблицу invoice, если аналогичной таблицы еще нет.
Наименование | Описание |
invoice_id | порядковый id записи |
date_pay | дата оплаты товара |
amount | сумма оплаты |
user_id | id пользователя выполнившего покупку товара |
product_id | id купленного товара |
unetway.com
«Рабочий веб-стол» в качестве личного кабинета пользователя на сайте / Разработка / Платформа Абрикос
А именно, разделить ресурс всего на две составляющие:
- общедоступная часть сайта;
- личный кабинет пользователя (web-os ориентированная панель управления).
Общедоступная часть сайта.
По внешнему виду — это обычный сайт, но полностью ориентированный на гостей и поисковики. А это — минимальный набор элементов управления, легкость страниц. Например, отсутствие на страницах такого блока как «прямой эфир» и т.п.
Личный кабинет пользователя.
Полностью web-os ориентированная панель управления пользователя. Полное и основное взаимодействие с ресурсом происходит именно отсюда.
По своему внешнему виду она напоминает «рабочий стол» windows. Расположенные на нем ярлыки – элементы управления ресурсом. Например: ярлык «Прямой эфир» — открывает окно «прямой эфир» блога, который автоматический обновляется каждый n-минут, ярлык «Мои записи» — открывает окно управления личными записями в блоге и т.п.
В зависимости от уровня доступа к ресурсу, наличие ярлыков может меняться. Например, для администратора появятся дополнительные ярлыки элементов управления, такие как: управление пользователями, комментариями, регистрацией.
Сессия «Рабочего стола» автоматически сохраняема. Т.е. при следующем входе в панель управления все открытые окна сохраняются. За счет этого, можно настроить эту панель управления единожды (расположение окон, ярлыки, цветовая схема и т.п.) и уже существовать на сайте в своем рабочем пространстве.
Очевидные плюсы и минусы данной технологии
Минусы:
- монетизация ресурса за счет рекламы становится проблематичной, так как большая часть пользователей находятся в своей панели управления (читают новые записи, комментируют и т.п.)
Плюсы:
- отсутствие лишней информации на страницах сайта позволит гостям фокусировать свое внимание на основную информационную составляющую ресурса;
- значительное снижение нагрузки на сервер за счет перекладки большей части процессов на сторону клиентов;
- снижение объемов трафика между клиентом и сервером.
В данный момент плотно работаю над реализацией вышеизложенного механизма и уже есть вполне достойные результаты. Но, прежде чем начинать строить эту web-os ориентированную панель управления, хотелось бы определиться с главным вопросом, а нужна ли эта «webos» панель сегодня? Не отпугнет ли новая технология пользователей? Какие возможные подводные камни ожидать?
То, что уже сделано, можно посмотреть на демо сайте открытого движка Brick CMS. Предупреждаю сразу, там нет этой самой webos панели управления, но есть механизм реализации, который реализован в панели администрирования. В ней можно увидеть то, что модуль управления подгружается только по запросу пользователя. Так же при внимательном рассмотрение этих самых модулей, видно, что в каждый модуль включен шаблон, фразы языка и css.
abricos.org