Antwort #19 am: 03. September 2010, 09:43:58
Hallo,
ich habe die angehängte Version von Markus installiert.
Bisher machte es den Eindruck das alles glatt gegangen ist aber jetzt hat sich doch herausgestellt das ein Fehler drin ist.
Wenn ich den Artikel auswähle im Warenkorb, wird das Produkt schön aufgelistet. Sogar der Preis von 0,00 EUR wird angezeigt.
Leider addiert der Warenkorb trotzdem den Wert des Artikels.
Habe jetzt schon versucht die Kundengruppenpreise aus dem Artikel zu löschen. Irgendwo hat der sich den original Preis gemerkt und addiert diesen immer wieder dazu.
Was kann man da machen?
Gruß
Hallo noch einmal,
ich habe jetzt noch einmal die "geänderten Dateien" die den Warenkorb betreffen durchgeschaut.
Mit einer Datei hatte und habe ich so meine Probleme. Dort werden in der Anleitung zu "suchende" Stellen beschrieben die ich nicht zu 100% genau so wieder finde. Liegt wohl an den Verbesserungen die in der modified eCommerce Shopsoftware eingearbeitet wurden.
Deshalb wollte ich hier noch einmal um Hilfe bitten noch einmal über meine Änderungen drüber zu schauen. Vielleicht findet der ein oder andere ja doch noch den Fehler.
Also ich vermute den Fehler in der includes/cart_actions.php
Hier der Teil der Anleitung der die Datei betrifft:
/includes/cart_actions.php
suche ca Zeile 57:
[code=php]
//------------------------------------
if ($_POST['cart_quantity'][$i]> MAX_PRODUCTS_QTY)
$_POST['cart_quantity'][$i] = MAX_PRODUCTS_QTY;
$attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : '';
$_SESSION['cart']->add_cart($_POST['products_id'][$i], xtc_remove_non_numeric($_POST['cart_quantity'][$i]), $attributes, false);
}
//------------------------------------
danach einfügen:
//------------------------------------
// gifts durchlaufen
// BUGFIX: Artikelmenge wurde runtergesetzt
$cart_sum = $_SESSION['cart']->show_total();
$products_gift_query = xtc_db_query("SELECT p.products_id, p.products_gift, pg.products_gift_sum
FROM ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_GIFT." pg
WHERE p.products_id = '".$_POST['products_id'][$i]."'
AND p.products_id = pg.products_id");
$products_gift_isset = xtc_db_fetch_array($products_gift_query);
// Artikelmenge wurde runtergesetzt, entferne Gratisartikel
if($products_gift_isset['products_gift'] == 1 && $cart_sum <$products_gift_isset['products_gift_sum']){
$_SESSION['cart']->remove($products_gift_isset['products_id']);
xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters)));
}
//------------------------------------
suche ca Zeile 77:
//------------------------------------
}
xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters)));
break;
//------------------------------------
danach einfügen:
//------------------------------------ case 'update_cart': if ($_GET['products_id']) { $_SESSION['cart']->remove($_GET['products_id']); } $cart_sum = $_SESSION['cart']->show_total(); if($cart_sum == 0){ $_SESSION['cart']->remove_all(); } // gifts durchlaufen // BUGFIX: Artikelmenge wurde runtergesetzt $products_number = sizeof($_SESSION['cart']->get_products()); $products = $_SESSION['cart']->get_products(); $cart_sum2 = $_SESSION['cart']->show_total(); for($i = 0; $i <$products_number; $i++) { $products_gift_query = xtc_db_query
("SELECT p.products_id, p.products_gift, pg.products_gift_sum
FROM ".TABLE_PRODUCTS
." p, ".TABLE_PRODUCTS_GIFT
." pg
WHERE p.products_id = '".$products[$i]['id']."'
AND p.products_id = pg.products_id"); $products_gift_isset = xtc_db_fetch_array
($products_gift_query); // Artikelmenge wurde runtergesetzt, entferne Gratisartikel if($products_gift_isset['products_gift'] == 1 && $cart_sum2 <$products_gift_isset['products_gift_sum']){ $_SESSION['cart']->remove($products_gift_isset['products_id']); xtc_redirect
(xtc_href_link
($goto, xtc_get_all_get_params
($parameters))); break; } }// FOR xtc_redirect
(xtc_href_link
($goto, xtc_get_all_get_params
($parameters))); break;//------------------------------------ suche ca Zeile 136:
//------------------------------------
where products_model = '".$quicky."' "."AND products_status = '1' ".$group_check);
//------------------------------------
ersetzen mit:
//------------------------------------
where products_model = '".$quicky."' "."AND products_status = '1' AND products_gift != 1 ".$group_check);
//------------------------------------
suche ca Zeile 145:
//------------------------------------
where products_model LIKE '%".$quicky."%' "."AND products_status = '1' ".$group_check);
//------------------------------------
ersetzen mit:
//------------------------------------
where products_model LIKE '%".$quicky."%' "."AND products_status = '1' AND products_gift != 1 ".$group_check);
//------------------------------------
suche ca Zeile 178:
//------------------------------------ if (isset ($_GET['BUYproducts_id'])) {//------------------------------------ ersetzen mit:
//------------------------------------ // gratisartikel verhindern ¸ber die url in den korb zu legen $products_gift_query = xtc_db_query
("SELECT products_gift FROM ".TABLE_PRODUCTS
." WHERE products_id = '".(int
)$_GET['BUYproducts_id']."'"); $products_gift_permission = xtc_db_fetch_array
($products_gift_query); if (isset ($_GET['BUYproducts_id']) && $products_gift_permission['products_gift'] == 0) {//------------------------------------ suche ca Zeile 145:
//------------------------------------ xtc_redirect
(xtc_href_link
(FILENAME_DEFAULT
)); } } } xtc_redirect
(xtc_href_link
($goto, xtc_get_all_get_params
(array ('action', 'BUYproducts_id')))); break;//------------------------------------ danach einfügen:
//------------------------------------ case 'products_gift': if(isset($_GET['FREEproducts_id'])) { if(isset($_SESSION['cart'])){ $_SESSION['cart']->add_cart((int
)$_GET['FREEproducts_id'], '1'); }else{ xtc_redirect
(xtc_href_link
(FILENAME_DEFAULT
)); } } xtc_redirect
(xtc_href_link
($goto, xtc_get_all_get_params
(array ('action', 'FREEproducts_id')))); break;//------------------------------------ [/code]
Meine geänderte cart_actions.php habe ich angehängt! Ebenso die komplette Anleitung für das Modul.