Разработка и настройка корзины покупок на основе ASP.NET с помощью nopCommerce

Разработка и настройка корзины покупок на основе ASP.NET с помощью nopCommerce

22 марта 2023 г.

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

В случае с nopCommerce встроена корзина покупок, а также список желаний. Если включено в области администратора, каждый продукт может быть помещен в корзину или список желаний. Корзину покупок и список желаний nopCommerce можно отключить, для их настройки можно использовать страницу списка контроля доступа. Просто найдите разрешения «Включить корзину» и «Включить список пожеланий» для необходимых профилей клиентов и снимите их.

Shopping cart configuration

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

Структура корзины покупок на платформе электронной коммерции .NET

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

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

nopCommerce shopping cart

Кстати, все методы действий, связанные с корзиной покупок, помещены в ShoppingCartController из Nop.Web. Эти методы позволяют клиенту взаимодействовать со всеми компонентами страницы.

ShoppingCartController

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

Атрибуты оформления заказа

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

Атрибуты Checkout имеют свои собственные классы обслуживания в папке Nop.Services.Orders и хранятся в виде XML в столбце CheckoutAttributesXml таблицы Order. Все они имеют практически те же функции, что и атрибуты товара.

Класс CheckoutAttributeService

CheckoutAttributeService class

Столбец CheckoutAttributesXml

CheckoutAttributesXml column

Коробка со скидкой

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

Что касается базы данных, то сами скидки хранятся в таблице Discount. Есть также несколько таблиц сопоставления, в которых хранится сопоставление скидок с продуктами, производителями и категориями. В таблице DiscountRequirement хранятся требования к скидкам, определяющие, в каком случае следует применять скидку. Последняя таблица — это таблица DiscountUsageHistory, в которой хранится информация о скидках, примененных к заказам.

Discount table

Подарочная коробка

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

Если вам нужно настроить функциональность подарочной карты, вы можете использовать класс GiftCardService, который находится в папке Nop.Service.Orders.

GiftCardService class

Что касается базы данных, подарочные карты, созданные вручную или купленные как продукты, хранятся в таблице GiftCard. Как только подарочная карта используется в заказе, соответствующая запись вставляется в таблицу GiftCardUsageHistory базы данных.

GiftCard table

Покупатель может применить как скидку, так и подарочную карту на странице корзины.

Итого

Последний интересный блок на странице корзины — итоговая сумма. Они рассчитываются на основе товаров в корзине, примененных скидок и налогов, выбранной доставки и способов оплаты. Сумма состоит из нескольких строк:

  1. Промежуточный итог. Промежуточный итог — это сумма всех товаров и их количества в корзине, включая примененные рекламные акции;
  2. Доставка – это стоимость доставки, рассчитанная на основе адреса доставки клиента.
  3. Затем отображаются применяемые налоги. nopCommerce предоставляет налоговые плагины, которые позволяют вручную или автоматически применять налоги к продуктам;
  4. Строка дополнительных комиссий за способ оплаты говорит сама за себя. Его можно настроить на странице конфигурации способа оплаты;
  5. Затем отображаются примененные скидки и подарочные карты.
  6. Наградные баллы, если они применяются;
  7. И, наконец, общая сумма заказа.

totals

Итоги заказов рассчитываются в OrderTotalCalculationService из Nop.Services.Orders. Как видите, он содержит такие методы, как GetShoppingCartShippingTotal, GetTaxTotal, методы, связанные с бонусными баллами, скидками и другие. В свою очередь, в платежном сервисе Nop.Services.Payments рассчитывается дополнительная комиссия за способ оплаты.

OrderTotalCalculationService class

Процесс оформления заказа

Чтобы получить более четкое представление о процессе покупки, важно рассмотреть процесс оформления заказа. Оформление заказа начинается, когда покупатель покидает корзину, чтобы перейти к оплате и доставке.

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

В процессе оформления заказа покупатель проходит следующие этапы:

  1. Покупателю необходимо ввести платежный адрес;
  2. Затем адрес доставки;
  3. Затем им нужно выбрать способ доставки.
  4. И способ оплаты;
  5. Затем мы показываем необходимую платежную информацию клиенту;
  6. И, наконец, это этап подтверждения, на котором покупатель подтверждает заказ.

Есть и другие условия, влияющие на количество шагов оформления заказа. Их можно изменить в настройках заказа.

Все методы действий, связанные с процессом оформления заказа, размещаются в CheckoutController. Как видите, у этого контроллера есть отдельные области: для многошаговой проверки и одностраничной проверки. Методы многоэтапной проверки возвращают просмотры, а методы одностраничной проверки возвращают результат в формате JSON. Нет отдельной службы, которая управляет процессом оформления заказа. Вся работа выполняется в контроллере.

CheckoutController

Операция с базой данных корзины покупок ASP.NET

В nopCommerce и корзина покупок, и список желаний имеют одинаковую структуру. Для большего понимания лучше посмотреть базу данных. В таблице ShoppingCartItem элементы корзины покупок и списка желаний хранятся вместе. Однако они различаются по ShoppingCartTypeId.

ShoppingCartItem table

Более того, заглянув в папку «Домен — Заказы», ​​можно было увидеть перечисление ShoppingCartType, которое предоставляет два типа: ShoppingCart и Wishlist с соответствующими числовыми значениями. Это значения, которые хранятся в столбце ShoppingCartTypeId в базе данных. Это единственная разница между корзиной и списком желаний в терминах базы данных.

Другие поля представляют идентификатор клиента в виде внешнего ключа. Это идентификатор покупателя, который добавил этот товар в корзину. Кроме того, существует ProductId, который определяет, какой продукт был добавлен в корзину, за которым следует StoreId, представляющий магазин этого продукта. Кроме того, ShoppingCartTypeId, о котором мы уже говорили, определяет, добавил ли покупатель этот товар в корзину или список желаний.

Затем идет столбец AttributesXml. В этом столбце хранится конфигурация товара, добавленного в корзину, со всеми атрибутами, выбранными покупателем. Вот как работает этот XML:

  1. откройте любую страницу товара и выберите два атрибута этого товара;
  2. добавить товар в корзину;
  3. выберите первые 1000 строк элемента ShoppingCartItem;
  4. щелкните ячейку в разделе AttributesXML;
  5. вы увидите первый атрибут с идентификатором 9 и значением 21, а также второй с идентификатором 10 и значением 25.

Именно так сохраняются выбранные атрибуты продукта. Для анализа таких XML-файлов существует специальный класс ProductAttributeParser, расположенный в папке Nop.Services Catalog. Этот класс управляет XML-файлами атрибутов продукта. Например, с помощью метода ParseProductAttributes он создает XML на основе выбранных атрибутов, когда покупатель добавляет товар в корзину.

ProductAttributeParser class

Как видите, этот метод принимает форму со страницы сведений о продукте. Он также используется для пересчета цены товара при изменении значений атрибута на странице сведений о товаре (метод GetUnitPriceAsync). Итак, в этом классе вы можете найти методы, работающие с XML-записями атрибутов продукта. Он также управляет комбинациями атрибутов продуктов, датами аренды и атрибутами подарочных карт.

Еще один важный столбец — CustomerEnteredPrice. Используется, когда для определенного товара доступна опция «Клиент вводит цену». Столбец «Количество» достаточно информативен, так как показывает выбранное количество продукта. Столбцы RentalStartDate и RentalEndDate используются, когда тип продукта — аренда. Наконец, даты CreatedOn и UpdatedOn говорят сами за себя.

Заключение

Корзина покупок nopCommerce — это структурированный и гибкий компонент. Основываясь на информации из этой статьи, вы можете эффективно создать и настроить веб-сайт с расширенной корзиной покупок и списком пожеланий, используя платформу nopCommerce.

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

Наконец, структура базы данных позволяет вам обновлять, какие данные корзины покупок необходимо хранить и управлять ими. Вы также можете найти эти сведения в нашей документации в разделе Схема базы данных по умолчанию< /a> раздел.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE