Корзина, работающая на ajax, js, php и cookie
Нужно сделать корзину для интернет магазина работающую на ajax, js, php и cookie.
Выглядит:
1. Общая информация (мини корзина), там где показывается 2 параметра: 1 – общее количество выбранных товаров и 2 – общая сумма выбранных товаров. Эта информация выводиться в небольшой блок корзины, как в обычных Интернет магазинах типа этого mebel7.ru и показывается пользователю на всех страницах.
2. Страница оформление заказа. В ней выводиться выбранные товары (id которых хранятся в куках) списком, напротив названий товара поле для ввода нужного количества товара, ссылка на удаление и сохранение этого товара. Короче также как тут: http://telephone.ru/advbasket (днс и сортировка не нужна, а кнопка оформить заказ – просто сделать заглушку)
3. Список товара (для теста хотя бы 5 позиций) напротив каждого товара ссылка о добавлении и поле, где указывать, сколько этого товара нужно добавить (как тут http://mebel7.ru/mebel/catalog/1/). И когда делается клик по позиции для добавления в корзину выводиться по центру информация (мини окошко на 3 сек.) об успешном добавление товара. Причем “мини окно” должно быть ровно по центру, не зависит от того, где мы находились внизу или вверху страницы каталога. И при добавлении в мини корзине изменяются ее параметры.
4. Сделать все эти пункты нужно без перезагрузки страницы!, т.е. на ajax, js, php. И самое главное условие ВСЕ должно работать максимально быстро с минимальной нагрузкой. Никакой лишней информации по передачи и только оптимизированный скрипт. А также все должно работать одинаково хорошо и быстро как минимум в 3 браузерах IE, opera, mozila. Использовать “хаки” и прочее запрещено! Все должно отвечать нормам.
Теперь техническая часть:
База данный 1 таблица:
CREATE TABLE `catalog` (
`id` int(11) NOT NULL default '0',
`idcat` int(3) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`costrozn` int(11) NOT NULL default '0',
KEY `id` (`id`),
KEY `idcat` (`idcat`),
) ENGINE=MyISAM;
id – товара
idcat – id раздела где товар
name – название товара
costrozn – цена товара (целая)
Суть такая: когда передаем id товара и его количество из каталога (списка товаров) в скрипт php (который взаимодействует с БД и вытаскивает цену товара и проверяет, что такой товар вообще существует) через ajax то он пишется в Куки в виде массива или строки с разделителем (тут как быстрее и лучше), 3 параметра: id товара, количество его, цена за 1 единицу.
Если товар с таким id уже в Куках есть, то просто увеличиваем (изменяя) его количество на указанное во входящем.
Должна быть проверка на левое число (от дурака), т.е. вводить разрешено числа от 1 до 999 и никакие другие символы более!
Далее в мини корзину посылаются данные из Куков в виде всего двух параметров: общее количество и общая сумма товаров. Маршрут посылки и отправляемые данные нужно составить максимально простыми и очень быстрыми, чтобы все “летало” и работало железно.
Если корзина пустая то выдавать сообщение в мини корзине, что она пуста.
А вот кстати и вид мини корзины:
Товаров: 12 шт. на сумму
13 000 рублей
оформить заказ | очистить
Очистить – соответственно удалить все товары из корзины (Куков).
В html это стоит сделать, например на
c id.Оформить заказ – это форма типа как http://telephone.ru/advbasket только управление ею происходит без перезагрузки страницы на ajax.
В ней тоже должны быть защиты от дурака.
Работать форма должна в связке с Куки и БД. Бежим по Кукам соединяемся с БД и выдираем от туда инфу (заголовок, цену, сравнимаем). Причем КАК ТОЛЬКО мы попадаем на эту форму, если есть товары в корзине (куки), то сразу перепроверяем и обновляем (если нужно) данные в корзине с данными в базе (Аля синхронизация), т.е. если цена в Куках не совпадает с ценой в БД, то изменяем Куки (ставим новую цену на нужный id) и выдаем новые данные в “мини корзину – которая и тут будет нас сопровождать, в шапке например” (это если товар в корзину положили, а оформить заказ решили через месяц (и Куки живы), когда цена уже поменялась на этот товар в БД).
Но стараемся конечно по возможности не обращаться к БД с лишними данными, делая лишнюю нагрузку, все обращения к БД должны быть обдуманными.
Куки сохранять нужно сроком на 3 месяца.
Писать скрипт нужно максимально грамотный, оптимизированный и со всем возможными защитами от дурака и других ошибок, задача сделать отличный очень быстрый скрипт корзины и оформления заказа (форма подсчета и управление корзиной “удаление, изменение количества товара”).
Если вы действительно готовы сделать выше написанное на профессиональном уровне, то тогда пишите за сколько WMZ и сколько времени вам потребуется для выполнения заказа.
Просьба не предлагать готовые скрипты!
А если вы предложите более логичный вариант по ТЗ и логике в некоторых местах, мы с радостью выслушаем их, но это уже лично!