Рейтинг:
2
OriginalGriff
Я бы сделал так, чтобы у каждого размера был свой отдельный номер детали:
PN Desc
1000 Nike LeBron 'New Heights' Size 7
1001 Nike LeBron 'New Heights' Size 8
1002 Nike LeBron 'New Heights' Size 9
1003 Nike LeBron 15 Low Supernova Size 7
1004 Nike LeBron 15 Low Supernova Size 8
...
Таким образом, вы можете проверить запас определенных размеров, а также убедиться, что правильный товар заказан и отправлен.
Рейтинг:
1
Richard Deeming
То, что я обычно делаю, - это разделяю продукты на две таблицы: Product и SKU ("единица хранения запасов") Запись корзины ссылается на запись SKU, а не на продукт.
(Вы, вероятно, также захотите нормализовать таблицу продуктов, чтобы извлечь общие вещи, такие как марка.)
Итак, в вашем примере вы бы имели:
Make
====
Make Id Name
------- ----
1 Nike
Product
=======
Product Number Make Id Description
-------------- ------- -----------
1000 1 LeBron 'New Heights'
1001 1 LeBron 15 Low Supernova
...
SKU
===
SKU Id Product Number Size
--- -------------- ----
1 1000 7
2 1000 8
3 1000 9
4 1001 7
5 1001 8
...
Таким образом, проще отображать "новые высоты" как один продукт с выпадающим списком размеров, а не отображать каждый размер как отдельный продукт.
NB: Тележка не должна хранить детали продукта. Все, что вам нужно для хранения, - это идентификатор SKU, количество и (необязательно) цена.
John Th
До сих пор это то, что я пробовал. У меня есть две таблицы, которые являются tblproducts и tblproducts_extension. tblproduct_extension(product_id) - это внешний ключ tblproducts(product_id). Но это не работает. Кто-нибудь поможет?
Посмотрите на этот скриншот.
https://ibb.co/d2RKS7
John Th
Добавить в корзину скриншот кнопки
https://ibb.co/m6Wsx7
--JQuery/Ajax
function add_to_cart(product_id, status) {
var quantity = $('#quantity'+product_id).val();
var product_size = $('#product_size').val();
var button = (status === 'Delete') ? $('#add_to_cart'+product_id).html(' Add to cart') : $('#add_to_cart'+product_id).html(' Added');
button,setTimeout(function(){
var data = { action : 'Add To Cart', product_id : product_id, status : status, quantity : quantity, product_size : product_size };
$.ajax({
type: 'POST',
url: '../pages/class.php',
data: data,
cache: false,
dataType: 'json',
success: function(data) {
data.success == true ? successful(data.success,data.bgcolor,data.color,data.message) : successful(data.success,data.bgcolor,data.color,data.message);
}
});
$('#add_to_cart'+product_id).html(' Add to Cart');
show_cart_count();
show_cart_contents();
show_cart_content_in_cart_page();
show_cart_content_in_checkout_page();
show_cart_total();
},300);
}
John Th
--PHP Function
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'Add To Cart':
$product_id = $_POST['product_id'];
$product_size = $_POST['product_size'];
$quantity = $_POST['quantity'];
$status = $_POST['status'];
add_to_cart($product_id, $product_size, $quantity, $status);
break;
}
}
function add_to_cart($product_id, $product_size, $quantity, $status) {
GLOBAL $db_conn;
$search_query = "SELECT p.*, pe.*, pct.* FROM tblproduct p JOIN (SELECT p.product_id, MIN(pe.product_extension_id) AS product_extension_id FROM tblproduct p LEFT JOIN tblproduct_extension pe ON pe.product_id = p.product_id WHERE p.product_id='$product_id' GROUP BY product_id) product_unique LEFT JOIN tblproduct_extension pe ON pe.product_extension_id = product_unique.product_extension_id LEFT JOIN tblproduct_carousel pct ON pct.product_id = p.product_id WHERE p.product_id = product_unique.product_id";
$query = mysqli_query($db_conn, $search_query);
$row = mysqli_fetch_array($query);
if(isset($product_id)) {
switch ($status) {
case 'Add':
if(isset($_SESSION['item_cart'][$product_id]['product_id']) == $product_id && $product_size && isset($quantity)) {
$_SESSION['item_cart'][$product_id]['product_qty'] += $quantity;
$qty = ($quantity == 1) ? 'quantity' : 'quantities';
notify([true,'#222','#fff',$row['product_name']. ' ' .'has been readded with '.$quantity.' '.$qty. '.']);
} else {
$count = (!isset($_SESSION['item_cart'])) ? 0 : count($_SESSION['item_cart']);
$add_quantity = (isset($quantity)) ? $quantity : 1;
$_SESSION['item_cart'][$product_id] = array(
"product_id"=>$product_id,
"product_qty"=>$add_quantity,
"product_size"=>$product_size,
"product_price"=>$row['product_price'],
"product_name"=>$row['product_name'],
"product_segment"=>$row['segment_id'],
"product_image"=>$row['product_images'],
"product_brand"=>$row['product_brand'],
"product_stocks"=>$row['product_stocks'],
"product_category"=>$row['category_name']
);
notify([true,'#222','#fff',$row['product_name']. ' ' .'has been added.']);
}
break;
}
}
}
John Th
Помогите ребятам.