Корзина для интернет-магазина на фронте или Пишем модульный javascript. Корзина для интернет-магазина на фронте или Пишем модульный javascript Php модуль корзины товаров

Уважаемые посетители сайта, задающие вопросы вроде "А как прикрутить вашу корзину к сайту?" и т.п. Я не делаю готовых решений, я описываю логику реализации, для каждого отдельного сайта нужно будет дописывать те или иные вещи в любом случае, поэтому если вам очень нужно что-либо прикрутить или приделать, я оказываю платные и бесплатные услуги по консультированию и доработке сайтов. Пишите в форму обратной связи вверху страницы, отвечу всем.


Интернет-магазин. AJAX корзина товаров. Часть 1: PHP функции.

Не так давно решил немного обновить свою серию статей о том, как создать корзину для интернет магазина. В общем, там есть некоторые недоработки, неточности и места, которые я хотел бы изменить, но основной момент – сделать так, чтобы кнопка «Добавить в корзину» работала без перезагрузки страницы. Зачем? Нет предела совершенству… на мой взгляд – это удобно. Сначала надо понять, что нам понадобится для создания корзины интернет-магазина на AJAX:

  • Набор PHP функций для работы с самой корзиной: добавить, удалить, обновить количество и т.д.
  • Набор JavaScript функций, которые будут отвечать за кнопки добавить, удалить и иземнить (я при слове JavaScript обычно пугаюсь, но здесь не будет ничего сложного)
  • backend-файлы, которые будут отвечать за работу корзины товаров без перезагрузки страницы
  • Если еще нет – таблица в базе данных, содержащая в себе товары магазина.
  • Библиотека jQuery . Буду пользоваться ей (может когда-нибудь опишу, как тоже самое сделать с помощью JsHttpRequest), поскольку он проще и нагляднее для работы с технологией AJAX
  • Для нагладности я сделал файлы примеры, можно скачать
  • Первым этапом будет разработка PHP функций для работы корзины. Итак:

  • Добавить товар в корзину. В нее передается идентификатор товара. Я изменю структуру самого массива, содержащего в сессии добавленные в корзину товары, теперь будет следующим образом:

    $_SESSION["products"] – массив, который отвечает за товары в корзине, структура которого будет такой:

    $_SESSION["products"]=array("идентификатор_товара_1"=>array("cost"=>"цена_товара_1", "count"=>"количество_товара_1_в_корзине"), "идентификатор_товара_2"=>array("cost"=>"цена_товара_1", "count"=>"количество_товара_2_в_корзине"), // и т.д) За количество товаров в корзине будет отвечать переменная $_SESSION["products_incart"], за стоимость корзины – переменная $_SESSION["cart_cost"]. С такой организацией массива товаров в корзине проще работать, а именно удалять, изменять и считать количество товаров. Итак, пишем саму функцию: /** * параметры: * $product_id – идентификатор товара * $count – количество добавляемого товара, по умолчанию 1, */ function add_to_cart($product_id, $count=1)) { //проверяем, не был ли добавлен товар в корзину ранее: if (!empty($_SESSION["products"][$product_id]) { //увеличиваем количество на единицу, если товар уже добавлен: $_SESSION["products"][$product_id]["count"]++; } else { //создаем пустой массив, на всякий случай, можно и без него. $_SESSION["products"][$product_id]=array(); //извлекаем цену товара из базы данных: $q=”SELECT price FROM таблица_товаров WHERE id="$product_id"”; //разбиваем результат запроса в массив: $add_product=mysql_fetch_assoc(mysql_query($q)); //добавляем товар в корзину: $_SESSION["products"][$product_id]["cost"]=$add_product["price"]; $_SESSION["products"][$product_id]["count"]=$count; } /* вызываем функции для подсчета стоимости корзины и количества товаров. здесь я опять внесу изменение, будем считать не количество товаров в корзине, а количество самих товаров, т.е. если в корзине 5 единиц товара 1, и 2 – товара 2, то товаров в корзине – 2, а не 7. И еще один момент, лучше всего объединить в одну функцию подсчет суммы корзины и количества товаров в ней: update_cart() */ update_cart(); } Функция для добавления товара в корзину готова.

  • Функция update_cart() будет считать стоимость корзины и количество товаров в ней: function update_cart() { //количество товаров в корзине считаем как количество элементов в массиве //$_SESSION["products"] с помощью стандартной функции PHP count(): $_SESSION["products_incart"]=count($_SESSION["products"]); //сначала обнулим стоимость: $_SESSION["cart_cost"]=0; //стоимость корзины (перемножаем цены на количество и складываем): foreach ($_SESSION["products"] as $key=>$value) { $_SESSION["cart_cost"]+=$_SESSION["products"][$key]["cost"]* $_SESSION["products"][$key]["count"]; } }
  • Функция, которая будет изменять количество товара в корзине: /** * принимает те же параметры, что и функция add_to_cart() */ function update_product_count($product_id, $count) { $_SESSION["products"][$product_id]["count"]=$count; //вызываем update_cart() чтобы пересчитать стоимость. update_cart(); }
  • Ну и последнее что нам нужно – удалить товар из корзины: function remove_from_cart($product_id) { unset($_SESSION["products"][$product_id]); update_cart(); }
  • Вот и все, функции для работы с корзиной готовы, осталось вывести на странице список товаров, и сделать кнопки «Добавить в корзину». Лучше всего представленные функции поместить в один файл, например cart.php, и подключать его инструкцией include. Стоит оговориться, что дополнительную переменную $count в функции add_to_cart() я ввел на тот случай, если вы хотите чтобы пользователь определял количество товара при нажатии на кнопку добавить в корзину, а не в интерфейсе корзины. Дальше я не буду передавать значения этой переменной, а буду использовать значение по умолчанию, которое равно 1. В следующей статье мы будем создавать основное – JavaScript функции для работы с корзиной.

    Я пытаюсь создать простую корзину покупок PHP с ценами, продуктами, регистрацией и областью оформления. Я искал Google для учебных пособий, но все они включают SQL, который еще не входит в мой набор навыков. У кого-нибудь есть примеры или другие ресурсы учебника, которые вы могли бы назвать новичком PHP?

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

    Заранее благодарим за помощь!

    3 ответа

    Вместо того, чтобы критиковать, почему бы просто не помочь? Лицемерный, но что угодно. Пожалуйста, имейте в виду, без базы данных SQL вы не можете "зарегистрироваться", но вы можете иметь предварительные имена пользователей и пароли.

    Итак, давайте создадим вашу базу псевдо sql с php.

    Нам нужна таблица для хранения имен пользователей и паролей для вашей учетной записи.

    Теперь нам нужна таблица для хранения продуктов

    Таким образом, у нас есть наши продукты "таблица" и наша учетная запись "таблица". Теперь вот более сложная часть, которая создает систему, которая принимает всю эту информацию, отображает ее, позволяет войти и выйти из системы, а также отслеживает элементы, которые у вас есть в корзине.