1

Таким образом, это довольно долго, извините в заранее и надеюсь, что вы будете стараться в любом случае, чтобы помочь мне,Корзина + заказ выдает

Вот он идет:

Я сделал корзину покупок, а также и я собираюсь интегрировать проверку (Klarna), проблема у меня есть, что я пытаюсь послать детали к кассе с помощью JSON:

$sendInfo = base64_encode(json_encode($_SESSION['cart_array'])); 
echo '<input type="hidden" name="info" id="info" value="'.$sendInfo.'"/>'; 


And to pick it up i use another one: 
$info = (array) json_decode(base64_decode($_POST['info'])); var_dump($info); 

что дает:

array (size=2) 
0 => 
object(stdClass)[1] 
    public 'item_id' => string '7' (length=1) 
    public 'quantity' => int 1 
1 => 
object(stdClass)[2] 
    public 'item_id' => string '3' (length=1) 
    public 'quantity' => int 1 

So to build it further and to get the products out from the database: 

$cartOutput =""; 
$cartTotal =""; 
$cartTOTAL =""; 
$shipping =""; 
$include =""; 


if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) { 
    $cartOutput = "<h2 align='center'>Din kundvagn är tom</h2>"; 
    } else { 

//Starta for each loop 
$i = 0; 
    foreach ($_SESSION["cart_array"] as $each_item) { 
    $item_id = $each_item['item_id']; 
    $sql = mysql_query("SELECT * FROM tblproducts WHERE idProducts='$item_id' LIMIT 1"); 
    while($row = mysql_fetch_array($sql)){ 
     $product_name = $row["strName"]; 
     $price = $row["dbPrice"]; 
     $details = $row["strDescription"]; 
     $artnummer = $row["strArtnummer"]; 

    } 

и с этим помещением в массив для интеграции:

$cart = array(
    array(
    'reference' => $artnummer, 
    'name' => $product_name, 
    'quantity' => $each_item['quantity'], 
    'unit_price' => $price, 
    'discount_rate' => 0, 
    'tax_rate' => $tax, 
    ), 
    array(
    'type' => 'shipping_fee', 
    'reference' => $artnummer, 
    'name' => 'Shipping Fee', 
    'quantity' => 1, 
    'unit_price' => $shipping, 
    'tax_rate' => $tax, 
) 
    ); 

foreach($cart as $fieldarray){ 
    $body .= $fieldarray['reference'].' - '. $fieldarray['name'].' - '. $fieldarray['quantity'].' - '. $fieldarray['unit_price']; 
} 

Я получаю массив:

//$cart var_dump 
array (size=2) 
0 => 
array (size=6) 
    'reference' => string '40719013' (length=8) 
    'name' => string 'Socka 2 par/fp WS Cotton' (length=24) 
    'quantity' => int 1 
    'unit_price' => int 4800 
    'discount_rate' => int 0 
    'tax_rate' => int 2500 
1 => 
array (size=6) 
    'type' => string 'shipping_fee' (length=12) 
    'reference' => string '40719013' (length=8) 
    'name' => string 'Shipping Fee' (length=12) 
    'quantity' => int 1 
    'unit_price' => int 14500 
    'tax_rate' => int 2500 

// $body var_dump 
    string '40719013 - Socka 2 par/fp WS Cotton - 1 - 480040719013 - Shipping Fee - 1 - 14500' (length=81) 

Пока он работает хорошо, никаких проблем не видел, а если добавить количество в тележка, а затем идет к кассе, она работает также, но, как некоторые могли заметить из первого var_dump, у меня было два предмета в корзине (2 разных items_id)! Таким образом, он отображает только 1 товар из корзины (последний добавлен), поэтому сумма является неправильной, и все предметы не указаны в кассе.

Итак, кто-нибудь знает, что я делаю неправильно?

Спасибо заранее.

ответ

1

Каждый раз, когда вы устанавливаете ваш $ Корзина-массив вы перезаписать все предыдущие записи:

$cart = array(...) 

Вы, вероятно, хотите добавить каждую запись в корзину-массив

$cart[] = array(...) 
+0

Я попробовал ваш отзыв , но я, похоже, не заставляю его работать, у меня заканчивается пустая строка, и когда я пытаюсь добавить их все под один массив, я получаю только зарегистрированную часть доставки, я начинаю задаваться вопросом, что-то не так с этот тестовый модуль, который дал мне klarna, похоже, что по какой-то причине я не могу показать несколько продуктов. Или это я? –

Смежные вопросы