Для демонстрації нової продукції до таблиці продукції додається поле,
яке позначатиме продукцію як «спеціальну пропозицію» і демонструє її на початковій сторінці Enterprise.
Розглянемо поточний стан таблиці продукції:
DESCRIBE products;
Field |
Type |
Null |
Key |
Default |
Extra |
Id |
Int(11) |
|
Pri |
0 |
Auto increment |
Name |
Varchar(25) |
|
Mul |
|
|
Description |
Varchar(255) |
|
|
|
|
Price |
float(5,2) |
|
|
0.00 |
|
Додамо поле з іменем on_special, щоб позначити виріб як «виріб, для якого діє спеціальна пропозиція». Для цього вводимо інструкцію ALTER (ЗМІНИТИ) таким чином:
ALTER TABLE products ADD on_special tinyint DEFAULT 0 AFTER price;
Пересвідчимось у змінах:
DESCRIBE products;
Field |
Type |
Null |
Key |
Default |
Extra |
Id |
int(11) |
|
Pri |
0 |
Auto increment |
Name |
Varchar(25) |
|
Mul |
|
|
Description |
Varchar(255) |
|
|
|
|
Price |
float(5,2) |
|
|
0.00 |
|
on_special |
Tinyint(4) |
|
|
0 |
|
Надалі змінимо сценарії управління продукцією для обробки нового поля on_special. Копіюємо структуру Enterprise3 у кореневий веб-каталог. Каталог shopping містить сценарії, які використовуються при відображенні каталогу продукції, виводу детальних даних про неї, кошика покупок та власне покупки. Додані: нова бібліотека, набір скриптів, пов’язаних з «шопінгом», і т.ін (див. application.php). Завантажуємо бібліотеку кошика (lib/cart.php) і ініціалізуємо його у разі потреби. Початкова сторінка тепер містить спеціальні пропозиції. В адміністративних сторінках управління тепер достатньо позначити елемент як такий, що «знаходиться в спеціальній пропозиції» (див. index.php).
Сторінка адміністрування продукції змінена для обробки поля «спеціальна пропозиція» (див. admin/products.php). Використані перемикачі типу «включено/виключено» (checkbox). При обробці HTML-форм через відмінності з іншими типами введення форм (дані типу checkbox визначені, лише тоді, коли вони «вибрані» (стоїть «галка»), і невизначені у протилежному випадку) сценарій перевіряє існування змінної форми замість перевірки значення цієї змінної.
Для контролю та аналізу замовлень введена адміністративна функція замовлення (admin/orders.php), яка дозволяє організувати показ та друк замовлень, які мали місце в системі.
Організація роботи та сервісу забезпечується такими функціями:
- admin/users.php — дозволяє користувачеві створювати власний пароль;
- lib/cart.php — містить оголошення класу Cart. Змінна сеансу $SESSION["cart"] є екземпляром цього класу Cart.
Додаткові функції знаходяться в файлі lib/Enterprise.php, наприклад:
- err2() — варіант функції err(), але друкує маркер >> замість <<;
- get_category_tree() — повертає дерево навігації за категоріями у вигляді рядка;
- print_category_tree() — викликає get_category_tree() і друкує результат;
- get_cart_items() — повертає обробник ($qid) запиту БД з ідентифікатором (id), назвою і ціною за одиницю продукції всіх елементів кошика покупок;
- chop_ccnum() — повертає частини номера кредитної картки для відображення його без розкриття номера;
- save_orderinfo() — використовується в екрані підтвердження замовлення. Функція тимчасово зберігає інформацію про замовлення клієнта (яка включає контактну інформацію та інформацію кредитної картки) в сеансі;
- load_orderinfo() — відшукує інформацію про замовлення клієнта в сеансі (дзеркальна до save_orderinfo());
- clear_orderinfo () — очищує інформацію про замовлення клієнта, збережену в сеансі. Викликається тільки-но інформація про замовлення успішно отримана load_orderinfo(). Разом ці три функції відповідають за проходження приватної інформації замовлення між сценаріями, які обробляють покупку і оплату;
- templates/header.php — показує резюме кошика покупок. Дозволяє користувачеві в будь-якому місці сайта бачити резюме свого кошика покупок.
Для обробки інформації необхідні:
|