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

30 сентября 2016 г. 5: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 оценка)

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

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

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

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

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

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

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

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

Комментариев: 0

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

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

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

Попробуйте