Как я открыл магазин детской одежды. Часть 3. Система электронного учёта товаров и продаж

В этой части будут встречаться некоторые технические моменты, поэтому если вы не айтишник, можете пропустить эти места. Я разместил эти подробности в конце, а сейчас давайте разделим систему на задачи, которая она решает и посмотрим, как она это делает.

Управление доступом

Или другими словами доступ по логину и паролю к закрытым частям сайта.

Если зайти на сайт первый раз, то можно увидеть лишь несколько типичных разделов с главной страницей, новостями и перечнем товаров. Чтобы получить полный доступ ко всем функциям, нужно войти в систему через страницу авторизации, на которую нет никаких ссылок, а адрес знаю только я и продавцы–консультанты. Найти эту страницу несложно, но нужно ещё знать логин и пароль.

После входа появляются новые разделы сайта, которые зависят от вашей роли (собственник или продавец–консультант). Одни и те же страницы выглядят по-разному для разных ролей. Например, в разделе "Товары в продаже" продавец–консультант не видит закупочных и оптовых цен, поставщиков и другую информацию.

В этом и заключается функция управления доступом. Вот так выглядит меню управления с ролью собственника (слева) и продавца–консультанта:

Такая система правильно называется управление доступом на основе ролей или role-based access control (RBAC). В Yii2 встроена поддержка этой системы, но чтобы удобно управлять ролями пришлось написать свой модуль.

Учёт товаров и фиксация продажи

Учёт товаров ведётся в разделе "Товары в продаже". Через этот раздел можно осуществить продажу и возврат товаров, добавить новый товар на склад. Поиск по товарам осуществляется по коду и названию (для старых ценников, где коды не проставлены). К каждой позиции привязываются фотографии и другая важная информация (перечень уже проведённых операций, остаток, размеры, возраст, товарная группа, состав и другое). Так выглядит список товаров в продаже:

По каждому товару можно посмотреть ещё более подробную информацию, сделать копию, зафиксировать кражу и другие действия. Покажу, как выглядит окно добавления нового товара:

Как видно в учёте товаров предусмотрен перевод номенклатуры и характеристики на русский язык. Это нужно для интренет–магазина. По статистике prom.ua (если верить менеджеру) сайты на русском языке имеют на 30% больше продаж. В данный момент все товары вбиты на украинском языке, что создаёт путаницу, так как и основной сайт и интернет–магазин настроены на русский язык, а информация о товарах представлена на украинском языке.

Изначально все названия товаров вписывались в базу данных на украинском языке, так как переписывались из ценников. А это стандартная практика во всех розничных магазинах. Это создало много проблем несоответсвия языка сайта и названий товаров, но постепенно этот недостаток будет устранён.

При добавлении товара продавцом в корзину появляется специальное окно. Количество можно указать только в пределах доступного остатка. Скидку можно задать вручную или рассчитать автоматически. Важной настройкой является вид продажи — доступна розничная и онлайн продажа для учёта сделок через prom.ua

После добавления всех товаров, которые хочет приобрести покупатель, продавец переходит в раздел "Корзина", где может подкорректировать скидку, внести заметки, привязать постоянного покупателя. Для примера, я добавил одну онлайн–продажу, чтобы показать, как она отмечается. На практике, онлайн и розничная продажа одновременно невозможна, так как это разные каналы продаж. После нажатия кнопки "Продать" товар перемещается в раздел "Архив продаж", добавляются операции продажи, информация об остатке обновляется и, если нужно, товар убирается из раздела "Товары в продаже".

После продажи мне приходит уведомление в виде электронного письма на смартфон. Такие же письма приходят, если продавец добавил новое пожелание. К письму прилагается список проданных товаров, их фотографии, сумма операции. Со временем прийдётся отключить эти уведомления и переделать их под ежедневные отчёты, но сейчас продажи не такие частые, чтобы это доставляло неудобства.

Ценообразование

Цены формируются простым образом. Обычно розничная наценка составляет 100–110%. Бывали курьёзные случаи, когда покупатели спрашивали, почему цена на товар такая низкая, не брак ли мы продаём. В таких случаях наценка иногда может доходить до 200% у недорогих товаров. Чем товар дороже, тем наценка меньше.

Есть особые категории товаров, на которых устанавливаются относительно маленькие наценки. Сейчас это носки и бодики Картерс. На последние наценка около 10–20%. Также бывают случаи, когда товары очень похожи, но имеют различную закупочную цену, тогда розничная цена ставится значительно выше по аналогии с более дорогим товаром.

Как выставлять оптовые цены, я пока не решил. Эти цены сейчас используются в интернет–магазине и они значительно ниже розничных. Буду пробовать разные варианты, но похоже, что прийдётся выставлять разные наценки для каждой группы товаров. Сейчас установка оптовых цен происходит автоматически.

Учёт продаж

В разделе "Архив продаж" происходит фиксация всех продаж. Здесь же можно произвести возврат. По сути "Архив продаж" — это упрощенный и адаптированный для продавца раздел "Операции продажи товаров", к которому есть доступ только у меня.

Важной частью учёта продаж являются постоянные покупатели, которые записываются в отдельном разделе. Их продажи фиксируются и при необходимости можно посмотрел, кто что любит покупать. Такого функционала сейчас нет, но теоретически это несложно реализовать.

Постоянный покупатель — это клиент, совершивший покупки на общую сумму от 300 гривен за один раз. Его добавляют в базу и предоставляют 5% скидки на все дальнейшие покупки. Изначально я хотел реализовать реферальную систему с приглашениями для накопления баллов и их последующей трате на покупки в магазине. Тоесть можно было бы заработать баллов, приглашая людей в магазин. Но пока я немного отошёл от этой идеи.

Но самое интересное я оставил к завершению статьи. Все данные из разделов "Товары в продаже", "Архив продаж" и других используются для формирования отчётов в разделе "Статистика".

Статистика

Статистика служит для выполнения конкретных задач. Например, общий раздел позволяет отслеживать распределение товаров по количеству, сумме и самое главное отслеживает общую стоимость всех товаров по закупочной цене. Последний пункт является крайне полезным. Я могу понять увеличивается ли количество товара со временем или сокращается. Если сокращается, то магазин несёт убытки и не успевает за месяц накопить денег на своё содержание (при условии, что я ничего не оплачиваю). Последние месяцы этот показатель растёт. Привожу этот раздел полностью, так как он достаточно интересен.

Статистика по поступившим товарам позволяет посмотреть сколько и на какую сумму поступило одежды за выбранный месяц.

Статистика прибыли по месяцам. Скажу лишь, что расчёты по расходам тут немного устаревшие, нужно будет обновить этот раздел. На последнем графике красным цветом отмечаются дни, которые принесли чистой прибыли меньше, чем 260 гривен.

Статистика продаж по дням — полный список всех продаж, включая онлайн. Не обращайте внимания на скидку, тут пока ничего не устаканилось. Это пожалуй самый посещаемый раздел. В скобках указано имя продавца.

Статистика продаж по группам товаров — определяем самый востребованный товар. У нас это шапки, куртки и спортивные костюмы. Статистика за последние 90 дней. Можно указывать различные интервалы.

Статистика продаж по часам — а вот это пожалуй самая забавная информация. В котором часу больше всего людей заходит в магазин. Есть ли смысл работать с 10:00 до 11:00 утра или с 20:00 до 21:00? Ответы на эти вопросы дают приведённые ниже графики. Мы работаем с 11 утра.

Размерные сетки. Также достаточно полезный инструмент, описание читайте на картинке. К каждой ячейке можно подвести курсор и увидеть перечень товаров с соответствующим размером и кодами. Цветовое кодирование позволяет легко выявить слабые места в ассортименте.

Надеюсь не сильно утомил графиками, на этом обзор системы закончен. Есть ещё много разделов, но они не представляют большого интереса для вас и служат скорее для обслуживания самой системы учёта нежели каких-то бизнес–процессов. Например, фотографии, настройки и так далее.

Мобильная версия сайта

Просматривать сайт с планшета очень удобно. С смартфона так себе, но терпимо. Адаптируются меню, но таблицы часто не влазят, приходится пользоваться масштабированием. Этот момент для меня не критичен, основная информация приходит на электронную почту.

В дальнейшем я планирую значительно улучшить адаптивность сайта для мобильных устройств, благо используемый Bootstrap предоставляет все необходимые средства для вывода различных блоков HTML–кода под различные размеры экранов.

Технологии

Минутка задротства. Привожу список самых популярных технологий, используемых в системе учёта.

  • Yii2 — современный постоянно развивающийся PHP–фреймворк с большим сообществом. Я также рассматривал возможность использовать другой не менее популярный Symfony, но начав его изучение понял, что потрачу больше времени.
  • Bootstrap — самый популярный HTML, CSS и JavaScript фреймворк идёт вместе с Yii2. С помощью системы сеток я забыл про проблемы верстальщика, всё решается быстро и просто;
  • Composer — ещё одна неотъемлимая часть Yii2, менеджер зависимостей PHP. Позволяет устанавливать и обновлять библиотеки до нужной вам версии одной коммандой в терминале;
  • Git — система контроля версий. Использую также для развёртывания новых версий сайта на хостинге;
  • Krajee (Kartik) Yii Extensions — набор расширений для создания пользовательского интерфейса. Эти компоненты обладают большими возможностями по сравнению со встроенным набором;
  • Highcharts — JavaScript–библиотека для построения любых графиков. Использую в разделе статистики;
  • yii2-ajaxcrud — CRUD–шаблон, который я переделал под свои нужды для быстрого создания админ–части сайта. Использую для создания "костяка", который потом допиливается и превращается в полноценную систему управления какой–то сущностью.

Заключение

Надеюсь вам было интересно. В следующей части сделаю подводку к интернет–магазину через рассказ о том, как делаются фотографии товаров. Оставляйте комментарии, подписывайтесь через RSS, чтобы не пропустить новую статью.

Полный список статей серии


20 ноября 2016 17 июня 2019 4422


Похожие материалы

Комментарии