Каталог на PHP и корзина

Создание каталога товаров в MySQL, формирование списка товаров на PHP и функционал добавления товаров в корзину

Настроить корзину Пример работы

Корзина для сайта
Корзина для сайта

Содержание:

Шаг 1: Создание таблицы в MySQL для хранения товаров

  1. Создаем новую таблицу Items, используя интерфейс PhpMyAdmin
    Корзина на PHP и MySQL
    где поле ID используется для хранение идентификатора товара, NAME - для названия, DECRRIPTION - описание товара, PRICE - цена, LINK - адрес страницы товара, который будет использован для возможности перехода на страницу из письма с заказом, IMG - адрес картинки товара.
  2. Добавим в созданную таблицу Items запись о товаре
    Корзина на PHP и MySQL
    поле ID можно не заполнять - оно автоинкрементное и будет автоматически установлено в следующий по порядку номер

Шаг 2: Вывод каталога товаров на PHP

  1. Создаем новый файл index.php
  2. Добавляем в него HTML-шаблон страницы (в примере используется шаблон c библиотекой jQuery и виджетом корзины):
    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta charset="utf-8" />
            <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
            <script defer src="//lk.easynetshop.ru/frontend/v5/test.js"></script>
            <link href="//lk.easynetshop.ru/frontend/v5/test.css" rel="stylesheet">
    
        </head>
        <body>
            <h2>Каталог товаров</h2>
        </body>
    </html>
  3. Для соединения с базой данных в файл потребуется указать LOGIN и PASSWORD пользователя MySQL и название созданной таблицы ITEMS:
    <?php
    $conn = new mysqli("localhost", "login", "password", "items");
    $conn->query('SET NAMES utf8');
    if($conn->connect_error){
        die("Ошибка: " . $conn->connect_error);
    }
    ?>
  4. Для соеднинеия с базой данных в файл потребуется указать LOGIN и PASSWORD пользователя MySQL и название созданной таблицы ITEMS:
    <?php
    $sql = "SELECT * FROM items"; // Выборка всех записей из таблицы Items
    if($result = $conn->query($sql)){
    echo "<table>";
    foreach($result as $row){
    // Вывод каждой строки в виде строки таблицы
    echo "<tr>";
        echo "<td><img src='" . $row["img"] . "' height='50px'></td>";
    	echo "<td>" . $row["name"] . "</td>";
    	echo "<td>" . $row["description"] . "</td>";
    	echo "<td>" . $row["price"] . "</td>";
    	// Формирование в последней колонке кнопки добавления товара в корзину через набор параметров data-*
    	echo "<td> <a class='btn-ens-self btn-ens-style'
    				  data-name='" . $row["name"] . "' 
    				  data-price='" . $row["price"] . "' 
    				  data-desc='" . $row["description"] . "' 
    				  data-href='" . $row["link"] . "'
    				  data-img='" . $row["img"] . "'>
    			Купить
    	</a></td>";
    	echo "</tr>";
    }
    echo "</table>";
    } else{
    echo "Ошибка: " . $conn->error;
    }
    $conn->close();
    ?>
  5. Итоговый файл index.php будет иметь вид:
    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta charset="utf-8" />
            <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
            <script defer src="//lk.easynetshop.ru/frontend/v5/test.js"></script>
            <link href="//lk.easynetshop.ru/frontend/v5/test.css" rel="stylesheet">
    
        </head>
        <body>
            <h2>Каталог товаров</h2>
            <?php
                $conn = new mysqli("localhost", "login", "password", "items");
                $conn->query('SET NAMES utf8');
                if($conn->connect_error){
                    die("Ошибка: " . $conn->connect_error);
                }
            		
            $sql = "SELECT * FROM items"; // Выборка всех записей из таблицы Items
            if($result = $conn->query($sql)){
            echo "<table>";
            foreach($result as $row){
            // Вывод каждой строки в виде строки таблицы
            echo "<tr>";
                echo "<td><img src='" . $row["img"] . "' height='50px'></td>";
            	echo "<td>" . $row["name"] . "</td>";
            	echo "<td>" . $row["description"] . "</td>";
            	echo "<td>" . $row["price"] . "</td>";
               	// Формирование в последней колонке кнопки добавления товара в корзину через набор параметров data-*
                echo "<td> <a class='btn-ens-self btn-ens-style'
            	    data-name='" . $row["name"] . "' 
            	    data-price='" . $row["price"] . "' 
            	    data-desc='" . $row["description"] . "' 
            	    data-href='" . $row["link"] . "'
            	    data-img='" . $row["img"] . "'>
            	Купить
                </a></td>";
                echo "</tr>";
            }
            echo "</table>";
            } else{
            echo "Ошибка: " . $conn->error;
            }
            $conn->close();
            ?>
        </body>
    </html>

Шаг 3: Настройка корзины

Настройки корзины производятся в личном кабинете сервиса в разделе Основные настройки

  1. Установите адрес почты, на который будут отправляться заказы
  2. Укажите адреса сайтов с которых в корзину можно автоматически добавлять товары
  3. Настройте список полей для заполнения покупателем в форме заказа
  4. Замените в шаблоне код подключения корзины на код из раздела Установка корзины
  5. Активируйте дополнительную функцию Произвольный товар для того, чтобы корзина принимала заказы из вашего каталога

Доступно на тарифах: Полный

Комментарии:
AlexGreen
22.07.2024

А можно не из MySQL данные брать? например если они в таблице excel

Фролов Сергей (EasyNetShop.ru)
22.07.2024

Источником может быть любой сервис из которого на PHP возможно получить данные для формирования кнопки добавления в корзину. Вот пример создания корзины на основе таблицы из Google Spreadsheets:

Создаем таблицу, открытую всем по ссылке на чтение
Корзина на PHP и Google Spreadsheets

Читаем таблицу в формате CSV:

$id = '1ZwSpeZPytZ1KZnKNy7Oo9l99oMVYGNs3vJc47GA46FI'; // можно получить из URL страницы на диске Google
$gid = '0'; // первый лист
 
$csv = file_get_contents("https://docs.google.com/spreadsheets/d/" . $id . "/export?format=csv&gid=" . $gid);
$csv = explode("\r\n", $csv);
$result = array_map('str_getcsv', $csv);
Используем данные для формирования строк каталога и кнопки добавления в корзину:
echo "<table>";
foreach($result as $row){
    // Вывод каждой строки в виде строки таблицы
    echo "<tr>";
    echo "<td><img src='" . $row[4] . "' height='50px'></td>";
    echo "<td>" . $row[0] . "</td>";
    echo "<td>" . $row[2] . "</td>";
    echo "<td>" . $row[1] . "</td>";
    // Формирование в последней колонке кнопки добавления товара в корзину через набор параметров data-*
    echo "<td> <a class='btn-ens-self btn-ens-style'
        data-name='" . $row[0] . "' 
        data-price='" . $row[2] . "' 
        data-desc='" . $row[1] . "' 
        data-href='" . $row[3] . "'
        data-img='" . $row[4] . "'>
        Купить
    </a></td>";
    echo "</tr>";
}
echo "</table>";