Кошик покупця на jQuery

Плагін jqCart.

Коли писав попередню статейку на цю тему, яка мала на меті лише показати абстрактний приклад реалізації кошика покупця, то не думав, що вона породить таку кількість питань і прохань, що посипалися і в самому блозі, і на мою пошту, і т.д. Власне тому і вирішив написати цей плагінчик "jqCart ", але хочу відразу підкреслити кілька моментів:

  1. Хоч код оформлений у вигляді плагіна, але плагіном його можна назвати з великою натяжкою. Та й взагалі, у цьому напрямку, на мій погляд, зробити плагін повністю універсальним – досить складно;
  2. Писався плагін на швидку руку, тому досить сируватий, хоч і цілком робітник;
  3. На даний момент код не документований;
  4. Чи планую його доопрацьовувати? Так, але за достатньої кількості вільного часу;

Отже, для роботи плагіна потрібна бібліотека jQuery = 1.8, яка повинна бути підключена до підключення самого плагіна. Працювати має у всіх сучасних браузера і, за ідеєю, навіть у IE8. Проблема для старих "осликів" може полягати тільки в застосовуваних CSS-властивостях і версії jQuery (нагадаю, що jQuery 2.x - не підтримує Internet Explorer 6, 7, і 8). Дані передаються на сервер за допомогою Ajax і тому я вкрай рекомендую використовувати кодування для файлівUTF-8 без BOM !

У кнопках ("Додати до кошика"), мають бути прописані наступні data-атрибути:

  1. data-id- ID товару
  2. data-title- Найменування товару
  3. data-price- Ціна товару
  4. data-img- URL фото товару (опціонально)

Усі значення вищевказаних data-атрибутів беруть участь при формуванні вікна корзини.Можна додавати додаткові атрибути даних, значення яких будуть надіслані з іншими даними в обробник. Ключі в отриманому масиві на сервері відповідатимуть імені атрибута після "data-", тобто. значення атрибуту "data-somevalue", буде в масиві під ключом "somevalue" Тег для кнопки та її розташування на сторінці - значення не має.

В архіві знайдете приклад обробника (handler.php ) з підготовкою та надсиланням листа на пошту. Наприкінці обробника, обов'язково має бути відповідь клієнту у форматі JSON.

Де змінна$send_ok - булеве значення (true/false), залежно від результату обробки замовлення. Якщо це буде відправка на пошту, можна так:

Ахтунг! В обробнику я не робив фільтрацію даних, тому уважно та ретельно їх обробляйте перед використанням, а особливо, якщо ви збираєтеся записувати дані в БД!

  • Дані розподілені за різними data-атрибутами кнопки
  • Додано можливість відображення фото товару в кошику
  • Додано параметр currency для виведення в кошику валюти поряд із вартістю та ціною
  • Додано можливість передавати на сервер додаткові дані, які беруться з користувацьких data-атрибутів кнопки

  • Додано опціюvisibleLabel. Показувати ярлик при порожньому кошику
  • Додано опціюopenByAdding. Автоматично відкривати кошик при додаванні товару
  • Додано кнопку виведення замовлення на друк

  • Виправлено розрахунок сум з плаваючою точкою