Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

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

Создание сайтов

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

Указание налоговой ставки в заказе

Если известен размер налоговой ставки, нужно начислить ее в каждой части заказа через свойство объекта Order.

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

Построение свойства TaxRate

1. Добавьте в объект Order следующий код:

 Указание налоговой ставки в заказе

Указание налоговой ставки в заказе

 

Описание работы

Свойство TaxRate выполняет единственную функцию: извлекает все части заказа и, просматривая их в цикле, обновляет столбец TaxRate таблицы Orderparts. При каждой установке свойства TaxRate вызывается CalculatePartTotals для пересчета значений и сохранения результата в таблице.

Выше были построены объекты Orders и Order, помогающие наполнить таблицы Orders, OrderParts и OrderLines. Заполнение таблиц выполняется методом SplitBasket. Однако пока нет кода, вызывающего этот метод. Поместим вызов в объект visit.

Добавим в объект Visit свойство OrderlD, которое возвращает идентификатор текущего обрабатываемого заказа. При первом вызове свойства запускается метод SplitBasket и создаются соответствующие строки на основе идентификатора корзины, хранящегося в объекте Visit. Такой подход укладывается в рамки концепции "исполнение при необходимости", что повышает масштабируемость приложения. Идея состоит в том, что не следует занимать ресурсы исполнением сложных операций записи в базу данных, пока в этом не будет реальной необходимости.

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

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

Вызов SplitBasket из объекта Visit

1. Для реализации свойства OrderlD добавьте в объект visit закрытую переменную, хранящую идентификатор:

 Указание налоговой ставки в заказе

2. Следует проверить идентификатор: если он равен 0, вызывается SplitBasket. Добавьте в объект visit:

 Указание налоговой ставки в заказе

Указание налоговой ставки в заказе

 

Хранение идентификатора текущего заказа в объекте Session реализуется также, какхранение идентификаторов корзины и покупателя. Поэтому при любом создании экземпляра объекта Visit мы будем извлекать его.

3. Добавьте в метод Configure объекта Visit:

 Указание налоговой ставки в заказе

4. Добавьте свойство, возвращающее сконфигурированный объект Order.

Запрашивая существующее свойство OrderlD, мы при необходимости автоматически делим заказ. Добавьте в объект visit:

 Указание налоговой ставки в заказе

5. Полезно знать, был ли уже сконфигурирован заказ. Добавьте метод IsOrder в объект visit:

 Указание налоговой ставки в заказе

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

□ Создать таблицы для хранения заказов, частей заказа и пунктов (строк) заказа (Orders, OrderParts и OrderLines)

□ Построить представления, упрощающие кодирование (vOrderParts, vOrderLines и vOrderSplit)

□ Создать объекты для заполнения наших таблиц (Orders и Order)

□ Организовать вызов метода SplitBasket объекта Orders из объекта Visit

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

Читайте так же:
Not found

Нам доверяют

Интернет магазин