ChatGBT cevabı

Öncelikle, kodunuzda bazı hataları düzeltmeli ve toplama işlemindeki mantık hatasını gidermelisiniz. İşte düzenlenmiş kod:
function sepeteEkle($urun_item, $siparis_adet) {
    // Ürün ID'sini POST verisinden al
    $product_id = $_POST["product_id"];

    // Alışveriş sepeti SESSION içinde var mı kontrol et
    if (isset($_SESSION["shoppingCart"])) {
        $shoppingCart = $_SESSION["shoppingCart"];
        $urunler = $shoppingCart["urunler"];
    } else {
        $urunler = array();
    }

    // Ürün adedi kontrolü
    // Ürünün zaten eklenip eklenmediğini kontrol et
    // Burada ürünleri ürün ID'lerine göre saklamak daha mantıklı olur
    $urun_id_key = $urun_item['id']; // Ürün ID'sini anahtar olarak kullan
    if (array_key_exists($urun_id_key, $urunler)) {
        // Ürün zaten varsa, adedini artır
        $urunler[$urun_id_key]['siparis_adet'] += $siparis_adet;
    } else {
        // Ürün yoksa, yeni olarak ekle
        $urunler[$urun_id_key] = $urun_item;
        $urunler[$urun_id_key]['siparis_adet'] = $siparis_adet;
    }

    // Sepetin Hesaplanması
    $toplamTutar = 0.0;
    $toplamAdet = 0;
    foreach ($urunler as $key => $urun) {
        $urunler[$key]['toplamTutar'] = $urun['siparis_adet'] * $urun["price"];
        $toplamTutar += $urunler[$key]['toplamTutar'];
        $toplamAdet += $urun['siparis_adet'];
    }

    $summary["toplamTutar"] = $toplamTutar;
    $summary["toplamAdet"] = $toplamAdet;

    // Güncellenmiş ürün listesini SESSION'a kaydet
    $_SESSION["shoppingCart"]["urunler"] = $urunler;
    $_SESSION["shoppingCart"]["summary"] = $summary;
    // Test amaçlı ürün bilgilerini yazdır
    print_r($_SESSION);
}

Değişiklikler:
  1. $toplamTutar hesaplamasını düzelttim. Toplam tutarı toplamak yerine her ürün için ayrı ayrı hesapladım.
  2. $toplamTutar ve $toplamAdet hesaplamalarını düzelttim.
  3. print_r($_SESSION); satırını kodun sonunda bıraktım, ancak bu sadece test amaçlıdır ve prodüksiyona geçerken kaldırmanız önerilir.




    ChatGBT ye doğru prombtu girerseniz yardımcı olacaktır.
    Tavsiyem anydesk adresinizi kaldırmanız yönünde. Saldırı yiyebilirsiniz