2. Уникальные преимущества Django Shop

30 сентября 2016 г. 9:05

2.1. DjangoSHOP требует описания ваших товаров вместо предустановленных полей в модели

Товары могут различаться друг от друга, а само моделирование не всегда простое. Одни товары могут быть проданы частями, другие - набором. Попытка определить набор полей в модели товара, а также его логику, которая была бы подходящей для всех интернет-магазинов - невозможно. Вместо этого DjangoShop предлагает самому описать товар с необходимыми полями.

2.1.1. Платформа интернет-магазина, требующая быть автоматической настройкой подключаемых устройств (plug-and-play), обычно использует один из (анти)паттернов

Либо они предлагают поле для каждого возможного изменения, либо они используют шаблон Сущность-Атрибут-Значение (Entity-Attribute-Value), чтобы добавить мета-данные для каждой вашей модели. Это на первый взгляд, кажется легким. Но оба подхода громоздкими и имеют серьезные недостатки. Они применяют различную "физическую схему" - способ хранения данных, а не "логическую схему" - способ, при котором пользователи и приложения требуют эти данные. Как только вы должны объединить решение для электронной коммерции с некоторым программным обеспечением корпоративного планирования ресурсов (ERP системы), дополнительные процедуры преобразования "назад-и-вперед" должны быть добавлены.

2.1.2. В DjangoSHOP физическое представление продукта соответствует его логическому представлению

Подход в djangoSHOP к этой проблеме - иметь минимальный набор полей в модели. Эти абстрактные модели являются обёртками, который представляют подкласс для физических моделей. Таким образом, логическое представление продукта соответствует их физической. Более того, можно даже представить различные виды продукции путем создания полиморфных подклассов из абстрактной базовой модели. Благодаря фреймворку Django, моделирование логического представления набора продуктов вместе с бэкэндом администрации осуществляется практически без усилий.

2.2. DjangoSHOP мультиязычный

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

2.3. DjangoSHOP поддерживает различные валюты

djangoSHOP поставляется с набором типов валют, используя свою собственную денежную арифметику. Это добавляет дополнительный уровень безопасности, потому что никто не может случайно суммировать различные валюты. Эти типы денег всегда знают, как представить себя в различных местных условиях, выводя их количество с правильным символом валюты. Они также предоставляют специальное количество "нет цены" (в лице -), которое ведет себя как "равен нулю", это удобно для безвозмездных предметов.

2.4. DjangoSHOP напрямую подключается к djangoCMS

Страница "Карточка товара" может использовать все шаблонные теги из djangoCMS, такие как {% placeholder... %}, {% static_placeholder ... %} или другие CMS теги.

djangoSHOP не предполагает категорий для организации представления списка продуктов. Для этого используются страницы djangoCMS, которые могут быть специализированы для обработки списков продуктов с помощью приложения CMS. Это позволяет продавцу организовать продукты по категориям, используя существующую иерархию страниц из CMS. Также имеется возможность разместить одиночные продукты в страницы CMS, не требуя каких-либо категории.

2.5. DjangoSHOP основан на REST фреймворке

  • DjangoSHOP использует Django REST фреймворк, тем самым не требуя каких-либо Django Представлений (Django Views).
  • Каждое представление основано на REST интерфейсе.
  • Бесконечный скрол и пагинация используется в том же шаблоне.
  • Представления для корзины, оформления заказа и т. д. могут быть вставлены в существующие страницы. Это означает, что можно перемещаться по продукции, добавлять их в корзину, модифицировать корзину, регистрировать себя как нового покупателя (или продолжать покупки как гость), добавлять информацию о доставке, оплаты через Stripe и отображать все заказы. Другие провайдеры платежных услуг также могут быть добавлены.

Каждая станица в магазине: product-list (список товаров), product-detail (карточка товара), cart (корзина), checkout-page (оформление заказа), orders-list (список заказов), order-detail (карточка заказа) и т. д. - это часть CMS и может быть отредактирована через редактор плагинов. Связь между клиентом и его страницами осуществляется исключительно через REST. Это приятный "побочный эффект", потому что реализация интернет-магазина не требует Django представлений.

djangoSHOP поставляется отдельными компонентами для каждой задачи. Эти плагины могут быть помещены в любой CMS заполнитель с помощью редактора плагинов. Каждый из этих модулей поставляется со своим собственным переопределяемым шаблоном, который также может быть использован в качестве автономного шаблона внешнего CMS заполнителя. Шаблоны для больших задач, таких как Корзина (Cart-View) являются разделёнными на блоки, которые могут быть частично преопределены.

Аутенитификация осуществляется через auth-rest, которая позволяет аутентифицировать пользователя через соц. сети, такие как Google+, Facebook, GitHub и другие через отдельное окно.

Более того, процесс оформления заказа основано на конфигурировании системе состояний (finite state machine). Это означает, что продавец может адаптировать свой интернет-магазин под свои бизнес-процессы, которые он осуществляет в режиме офлайн.

Клиентский код использует Bootstrap-3.3 и AngularJS-1.3. jQuery требуется только для административной части сайта. Все рассматриваемые компоненты реализованы через AngularJS директивы, поэтому могут быть использованы в других проектах. Например, моя текущая реализация интернет-магазина не имеет ни одной строчки кастомного кода JavaScript.

Это позовляет осуществлять реализацию своего интернет-магазина достаточно легко даже для не-программистов. Продавцу нужно только описать модель товара, если требуется и корзину и другие модели, а также переопределить шаблоны.

Оцените статью

5 из 5 (всего 1 оценка)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор перевода

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/django-shop/unique-features-of-djangoshop/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор перевода: Артём Мальцев
Ссылка на перевод статьи: <a href="https://vivazzi.pro/ru/django-shop/unique-features-of-djangoshop/">https://vivazzi.pro/ru/django-shop/unique-features-of-djangoshop/</a>

Больше: Правила использования сайта

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

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

Комментарии: 4

Александр
Александр

20.04.2019 10:42 #

Добрый день, Артем !

Вы не изучали проект Saleor ? Было бы интересно почитать Ваше мнение по их коду/структуре и используемых технологиях !

Спасибо.

Ответить

Артём Мальцев
Артём Мальцев автор

21.04.2019 7:02 #

Александр, добрый день! Никогда не смотрел этот проект, поэтому ничего сказать не могу

Ответить

Данила
Данила

09.10.2019 23:20 #

Здравстуйте. Артем, спасибо Вам за труды, этот ресурс получился очень достойным, полезным и приятным. Saleor интересный open-source проект, по сути является инкубатором в одну из ведущих на мировом рынке комманд разработчиков использующих django в качестве backend, ну а в коде у этого инкубатора разумеется самый настоящий хардкор.

Ответить

Артём Мальцев
Артём Мальцев автор

12.10.2019 4:34 #

Данила, здравствуйте!
Благодарю за сообщение и высокую оценку моей деятельности! Я с начала 2019 года стал больше разрабатывать в сторону Форекса: это и доверительное управление ( https://vivazzi.pro/viva-tm/ ), которое я открыл, и разработка торговых роботов, и сервисов для работы с рынком Форекс. Поэтому пока другие пакеты, приложения по разработке интернет-магазина я не рассматривал и Django-shop пока не использую.
Но в будущем вернусь к Django-shop и посмотрю Saleor, а вернусь, потому что планирую свой интернет-магазин открыть, когда запущу проект Levels https://vivazzi.pro/levels/

Ответить

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц