Корзина, работающая на ajax, js, php и cookie

Алексей18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
25.01.2008

Нужно сделать корзину для интернет магазина работающую на 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 и сколько времени вам потребуется для выполнения заказа.

Просьба не предлагать готовые скрипты!

А если вы предложите более логичный вариант по ТЗ и логике в некоторых местах, мы с радостью выслушаем их, но это уже лично!