Hướng dẫn how to add product in cart without login in php? - Làm thế nào để thêm sản phẩm vào giỏ hàng mà không cần đăng nhập trong php?

bởi Vincy. Sửa đổi lần cuối vào ngày 27 tháng 9 năm 2022.

Một ứng dụng giỏ hàng sẽ có một danh mục để giới thiệu các sản phẩm như một phòng trưng bày. Các sản phẩm có thể được lưu trữ trong cơ sở dữ liệu, tệp hoặc bất kỳ biểu mẫu nào khác phù hợp với doanh nghiệp của bạn tùy thuộc vào số lượng danh sách sản phẩm.

Chúng tôi đã thấy nhiều ví dụ về giỏ hàng với cơ sở dữ liệu để lưu trữ sản phẩm. Trong một ví dụ về giỏ hàng liên tục, chúng tôi đã sử dụng các bảng cơ sở dữ liệu để quản lý giỏ hàng. Nếu chúng tôi muốn bán một khối lượng lớn sản phẩm, chúng tôi cần phương tiện lưu trữ giống như cơ sở dữ liệu.

Nếu không, nếu số lượng sản phẩm ít hơn, chúng ta chỉ có thể quản lý sản phẩm theo cách tĩnh hoặc bằng cách sử dụng các tệp hoặc mảng. Hãy để chúng tôi tạo một ứng dụng giỏ hàng mà không cần cơ sở dữ liệu bằng cách quản lý các sản phẩm bằng cách sử dụng mảng PHP.

Xem bản demo

Tôi đã tạo một lớp sản phẩm để xác định mảng sản phẩm và một chức năng để trả về mảng này. Tôi nhận được sản phẩm bằng cách sử dụng lớp này và hiển thị chúng trong một bộ sưu tập.

Ảnh chụp màn hình này cho thấy đầu ra của ví dụ giỏ hàng mà không có cơ sở dữ liệu. Nó hiển thị đánh dấu đánh dấu trên một giỏ sản phẩm để thể hiện rằng nó hiện đang được thêm vào phiên giỏ hàng.

Sau khi làm mới trang, dấu ấn này sẽ đi và chúng tôi có thể thêm nhiều sản phẩm vào giỏ hàng.

Hướng dẫn how to add product in cart without login in php? - Làm thế nào để thêm sản phẩm vào giỏ hàng mà không cần đăng nhập trong php?

Bộ sưu tập sẽ chứa tùy chọn bổ sung cho mỗi sản phẩm. Sau khi thêm một sản phẩm vào giỏ hàng, nó sẽ được duy trì trong phiên PHP được lập chỉ mục bởi mã sản phẩm. Mục Giỏ hàng trong mảng phiên sẽ được liệt kê cho người dùng.add-to-cart option for each product. After adding a product to the cart, it will be maintained in a PHP session indexed by the product code. The cart item in the session array will be listed to the user.

Chế độ xem giỏ hàng có chứa các hành động xóa giỏ hàng và số lượng lớn. Tất cả các hành động giỏ hàng được thực hiện bằng cách sử dụng JQuery Ajax.

Phòng trưng bày sản phẩm và giỏ hàng HTML

Tôi đã thiết kế trang đích với hai phần chính cho các sản phẩm và giỏ hàng. Tôi lặp lại mảng sản phẩm và hiển thị từng sản phẩm trong một thẻ để giới thiệu tất cả các sản phẩm trong chế độ xem phòng trưng bày.

Nếu phiên giỏ hàng không trống, tôi chạy một vòng lặp qua mảng Phiên Ph chuyển PHP để hiển thị danh sách các mặt hàng giỏ hàng. Mã HTML là,

<html lang="en">
<head>
<TITLE>PHP Shopping Cart without Database</TITLE>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
<body>
    <h2>Demo Shopping Cart without Database</h2>
    <?php 
	require_once "product-gallery.php";
    ?>
    <div class="clear-float"></div>
    <div id="shopping-cart">
        <div class="txt-heading">
            Shopping Cart <a id="btnEmpty" class="cart-action"
                onClick="cartAction('empty','');"><img
                src="images/icon-empty.png" /> Empty Cart</a>
        </div>
        <div id="cart-item">
        <?php 
		require_once "ajax-action.php";
        ?>
        </div>
    </div>
</body>
</html>

Nhận mảng sản phẩm và tạo bộ sưu tập

Trong khối mã sau, phiên bản lớp sản phẩm được tạo để có được mảng sản phẩm. Sau khi nhận được mảng sản phẩm, nó được lặp lại để hiển thị từng thẻ sản phẩm.

Phần tử thẻ được đánh dấu bằng mã sản phẩm để giới thiệu danh tính sản phẩm trong khi thực hiện các hành động giỏ hàng.

<?php
require_once ("Product.php");
$product = new Product();
$productArray = $product->getAllProduct();
?>
<div id="product-grid">
    <div class="txt-heading">Products</div>
<?php
if (! empty($productArray)) {
    foreach ($productArray as $k => $v) {
        ?>
		<div class="product-item">
        <form id="frmCart">
            <div class="product-image">
                <img src="<?php echo $productArray[$k]["image"]; ?>">
            </div>
            <div>
                <div class="product-info">
                    <strong><?php echo $productArray[$k]["name"]; ?></strong>
                </div>
                <div class="product-info product-price"><?php echo "$".$productArray[$k]["price"]; ?></div>
                <div class="product-info">
                    <button type="button"
                        id="add_<?php echo $productArray[$k]["code"]; ?>"
                        class="btnAddAction cart-action"
                        onClick="cartAction('add','<?php echo $productArray[$k]["code"]; ?>')">
                        <img src="images/add-to-cart.png" />
                    </button>
                    <input type="text"
                        id="qty_<?php echo $productArray[$k]["code"]; ?>"
                        name="quantity" value="1" size="2" />
                </div>
            </div>
        </form>
    </div>
	<?php
    }
}
?>
</div>

JQuery Ajax Giỏ hàng

Tập lệnh jquery này chứa các chức năng để thực hiện các hành động giỏ hàng như thêm vào xe hơi, loại bỏ-single-cart-item và trống-cart. Khi biểu tượng bổ sung-để mô tả được nhấp vào thẻ sản phẩm, sản phẩm sẽ được thêm vào phiên giỏ hàng với tham chiếu mã sản phẩm.

Trong khi thêm một sản phẩm vào giỏ hàng, tôi đã kiểm tra xem sản phẩm đã được thêm vào. Nếu vậy, tôi sẽ chỉ cập nhật số lượng. Nếu không, tôi sẽ tạo một thể hiện mảng giỏ hàng mới.

Từ danh sách các phiên giỏ hàng hiện có, chúng tôi có thể loại bỏ các mặt hàng giỏ hàng cụ thể và cũng xóa hoàn toàn giỏ hàng. Trong khi xóa một mục duy nhất, mã sản phẩm sẽ được gửi đến PHP để xóa mục cụ thể khỏi phiên.

<script src="jquery-3.2.1.min.js" type="text/javascript"></script>
<script>
function cartAction(action, product_code) {
    var queryString = "";
    if (action != "") {
        switch (action) {
        case "add":
            queryString = 'action=' + action + '&code=' + product_code
                    + '&quantity=' + $("#qty_" + product_code).val();
            break;
        case "remove":
            queryString = 'action=' + action + '&code=' + product_code;
            break;
        case "empty":
            queryString = 'action=' + action;
            break;
        }
    }
    jQuery.ajax({
        url : "ajax-action.php",
        data : queryString,
        type : "POST",
        success : function(data) {
            $("#cart-item").html(data);
            if (action == "add") {
                $("#add_" + product_code + " img").attr("src",
                        "images/icon-check.png");
                $("#add_" + product_code).attr("onclick", "");
            }
        },
        error : function() {
        }
    });
}
</script>

Mã PHP để thực hiện hành động giỏ hàng

Tôi đã tạo trường hợp chuyển đổi trong PHP để xử lý thêm giỏ hàng, loại bỏ, hành động trống của giỏ hàng. Tham số hành động được gửi qua yêu cầu AJAX.

Tham số này sẽ được nhận trong PHP và cung cấp cho trường hợp chuyển đổi. Sau khi thực hiện hành động giỏ hàng, mảng phiên giỏ hàng mới nhất được lặp lại để tạo HTML để hiển thị trạng thái giỏ hàng hiện tại.

<?php
session_start();
require_once ("Product.php");
$product = new Product();
$productArray = $product->getAllProduct();
if(!empty($_POST["action"])) {
switch($_POST["action"]) {
	case "add":
		if(!empty($_POST["quantity"])) {
		    $productByCode = $productArray[$_POST["code"]];
		    $itemArray = array($productByCode["code"]=>array('name'=>$productByCode["name"], 'code'=>$productByCode["code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode["price"]));
			
			if(!empty($_SESSION["cart_item"])) {
			    $cartCodeArray = array_keys($_SESSION["cart_item"]);
			    if(in_array($productByCode["code"],$cartCodeArray)) {
					foreach($_SESSION["cart_item"] as $k => $v) {
							if($productByCode["code"] == $k) {
							    $_SESSION["cart_item"][$k]["quantity"] = $_SESSION["cart_item"][$k]["quantity"]+$_POST["quantity"];
							}
					}
				} else {
					$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
				}
			} else {
				$_SESSION["cart_item"] = $itemArray;
			}
		}
	break;
	case "remove":
		if(!empty($_SESSION["cart_item"])) {
			foreach($_SESSION["cart_item"] as $k => $v) {
					if($_POST["code"] == $k)
						unset($_SESSION["cart_item"][$k]);
					if(empty($_SESSION["cart_item"]))
						unset($_SESSION["cart_item"]);
			}
		}
	break;
	case "empty":
		unset($_SESSION["cart_item"]);
	break;		
}
}
?>
<?php
if(isset($_SESSION["cart_item"])){
    $item_total = 0;
?>	
<table class="tutorial-table">
<tbody>
<tr>
<th><strong>Name</strong></th>
<th><strong>Code</strong></th>
<th class="align-right"><strong>Quantity</strong></th>
<th class="align-right"><strong>Price</strong></th>
<th></th>
</tr>	
<?php		
    foreach ($_SESSION["cart_item"] as $item){
		?>
				<tr>
				<td><strong><?php echo $item["name"]; ?></strong></td>
				<td><?php echo $item["code"]; ?></td>
				<td align="right"><?php echo $item["quantity"]; ?></td>
				<td align="right"><?php echo "$".$item["price"]; ?></td>
				<td align="center"><a onClick="cartAction('remove','<?php echo $item["code"]; ?>')" class="btnRemoveAction cart-action"><img src="images/icon-delete.png" /></a></td>
				</tr>
				<?php
        $item_total += ($item["price"]*$item["quantity"]);
		}
		?>

<tr>
<td colspan="3" align=right><strong>Total:</strong></td>
<td align=right><?php echo "$". number_format($item_total,2); ?></td>
<td></td>
</tr>
</tbody>
</table>		
  <?php
}
?>

Lớp sản phẩm PHP

Lớp PHP này chứa một thuộc tính để xác định mảng sản phẩm. Thuộc tính lớp khởi tạo sẽ được trả về bởi chức năng của nó có tên là getallproduct (). Hàm này được gọi với phiên bản lớp sản phẩm từ trang Bộ sưu tập sản phẩm.

<?php

class Product
{

    public $productArray = array(
        "3DcAM01" => array(
            'id' => '1',
            'name' => '3D Camera',
            'code' => '3DcAM01',
            'image' => 'product-images/camera.jpg',
            'price' => '1500.00'
        ),
        "USB02" => array(
            'id' => '2',
            'name' => 'External Hard Drive',
            'code' => 'USB02',
            'image' => 'product-images/external-hard-drive.jpg',
            'price' => '800.00'
        ),
        "wristWear03" => array(
            'id' => '3',
            'name' => 'Wrist Watch',
            'code' => 'wristWear03',
            'image' => 'product-images/watch.jpg',
            'price' => '300.00'
        )
    );

    public function getAllProduct()
    {
        return $this->productArray;
    }
}

Xem demodownload

Các bài viết phổ biến

  • Một trang kiểm tra tập lệnh miễn phí với mẫu ví dụ trong PHP
  • Tạo hóa đơn mua hàng thương mại điện tử PDF bằng cách sử dụng tập lệnh PHP
  • Shopify thích giỏ hàng với thanh toán bằng cách sử dụng PHP

Trở lại đầu

Làm thế nào thêm vào giỏ hàng hoạt động trong PHP?

Chúng được bổ sung vào xe hơi, loại bỏ một vật phẩm ra khỏi giỏ hàng, xóa hoàn toàn giỏ hàng và tương tự. Trong mã trên, tôi đã thêm tùy chọn HTML để thêm sản phẩm vào giỏ hàng từ bộ sưu tập sản phẩm. Khi người dùng nhấp vào nút 'Thêm vào giỏ hàng', biểu mẫu HTML sẽ chuyển ID sản phẩm đến tập lệnh PHP phụ trợ.When the user clicks the 'Add to Cart' button, the HTML form passes the product id to the backend PHP script.

Làm cách nào để tạo chức năng thêm vào giỏ hàng?

Bước 1: Trên trên Thêm vào hành động của giỏ hàng, đối tượng SessionStorage xây dựng mảng mục đã mua. Bước 2: Sau đó, nó nhận được chi tiết thanh toán của người mua trên biểu mẫu thanh toán. Bước 3: Có thể hiển thị các tùy chọn thanh toán như PayPal với mảng tham số yêu cầu. Mảng này chứa các mặt hàng đã mua và chi tiết thanh toán của người mua.

Làm thế nào để bạn kết nối một giỏ hàng với cơ sở dữ liệu?

Bắt đầu. Có một vài bước chúng ta cần thực hiện trước khi tạo hệ thống giỏ hàng của mình. ....
Tạo cơ sở dữ liệu và các bảng thiết lập. ....
Thiết kế hệ thống giỏ hàng với CSS. ....
Tạo tệp chức năng. ....
Tạo tệp chỉ mục. ....
Tạo trang chủ. ....
Tạo trang sản phẩm. ....
Tạo trang sản phẩm ..

Làm thế nào giỏ hàng có thể được duy trì với mã mẫu Phps Mẫu Php?

Thư viện giỏ hàng (cart.class.php) get_item () - Trả về một chi tiết mục Giỏ hàng cụ thể.Total_Items () - Trả về tổng số mặt hàng trong giỏ hàng.Tổng số () - Trả về tổng giá của giỏ hàng.Chèn () - Chèn các mục vào giỏ hàng và lưu chúng trong phiên. get_item() – Returns a specific cart item details. total_items() – Returns the total item count in cart. total() – Returns the total price of the cart. insert() – Insert items into the cart and save them in the SESSION.