Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Artikel nur alleine in Warenkorb

    Alphagen2901

    • Neu im Forum
    • Beiträge: 9
    Artikel nur alleine in Warenkorb
    am: 24. August 2012, 10:32:17
    Hallo liebe Community,

    ich komme mal wieder mit einem Problem angetanzt. :-D
    Folgendes Szenario: ich möchte in meinem Shop einfügen, dass der Artikel yyy nur alleine und somit nicht mit anderen Artikeln bestellt werden kann.

    Die technische Seite hab ich auch schon gelöst, indem ich in "includes/classes/shopping_cart.php" die Funktion "add_cart" bearbeitet habe.

    Für die, die es interessiert hier der Code:
    Code: PHP  [Auswählen]
    $sql_artikel_pg = xtc_db_query("Select products_model from products where products_id = '". $products_id ."'");
       while ($attributes = xtc_db_fetch_array($sql_artikel_pg)) {
            $tmp_art_nr = $attributes['products_model'];

            // Wird versucht der Artikel 1000 einzufügen???
            if ($tmp_art_nr == "1000") {
                    //Überprüfen:
                    //Wieviele Artikel sind im Warenkorb?
                    $anzahl_items = $this->count_contents();
                    //Ist die Anzahl > 1, dann brechen wir sofort ab.
                    if ($anzahl_items > 1) {
                            return "1";
                    }                                      
                                           
                    //Ist die Anzahl = 1 und der eine Artikel NICHT die 1000, dann brechen wir auch ab.
                    if ($anzahl_items == 1) {                                      
                            if ($this->in_cart($products_id) == false) {
                                    return "2";
                            }
                    }
                                           
            }                              
            else
            {
                    //Oder wird versucht ein anderen Artikel als den 1000 einzufügen?
                    //Und wenn ja, dann gucken wir ob der Artikel 1000 schon im Warenkorb ist.
                    $sql_artikel_pg_2 = xtc_db_query("Select products_id from products where products_model = '1000'");
                    while ($attributes_2 = xtc_db_fetch_array($sql_artikel_pg_2)) {
                            if ($this->in_cart($attributes_2['products_id']) == true) {
                                    return "3";
                            }                                              
                    }                              
            }
    }
     

    Das ist eine vorläufige Lösung für einen einzigen Artikel. Die While-Schleifen kommen evt noch raus und eine Möglichkeit für mehrere Artikel wird noch eingefügt.

    Jetzt ist es natürlich blöd, wenn Kunden versuchen einen Artikel in den Warenkorb zu legen, in diesem auch ankommen, aber der Artikel nicht drin ist. Deshalb brauch ich Infomeldungen.

    Die Frage ist: Wo kann ich die "add_cart" Funktion sinnvoll auswerten und auf Basis ihres Rückgabewertes eine Fehlermeldung ausgeben? (Sinnvoll wäre, denke ich, in der Übersicht vom Warenkorb). Leider hab ich keine Ahnung, wenn ich von der product_info.php komme, wie die Artikel in den Warenkorb kommen und wo die Funktion "add_cart" aufgerufen wird. :-(

    Hoffe ich drücke mich verständlich aus und jemand kann mir helfen.

    Vielen Dank im Voraus.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=21917.0

    Alphagen2901

    • Neu im Forum
    • Beiträge: 9
    Re: Artikel nur alleine in Warenkorb
    Antwort #1 am: 24. August 2012, 11:22:06
    Ich hatte gerade eine Idee... Die Funktion "add_cart" kann doch eine Variable schreiben, die vom Template ausgewertet wird oder? :-)

    Dann bleibt nur noch die Frage offen, wie ich eine neue Smarty-Variable einfüge, diese Fülle und auswerten kann.


    Edit: Im Template gibts in der datei "shopping_cart.html" die Variable "{$info_message}". Wie kann ich die setzen in meinem PHP-Script? Wenn mir das jemand beantwortet, habe ich mein Problem gelöst. :-)

    Alphagen2901

    • Neu im Forum
    • Beiträge: 9
    Re: Artikel nur alleine in Warenkorb
    Antwort #2 am: 24. August 2012, 12:47:22
    So... Also ich bin schon ein Stück weiter...

    includes/cart_actions.php
    Code: PHP  [Auswählen]

    case 'add_product' :
       ...
       xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters)));
     

    Wenn ich hier in der letzten Zeile des Codes bei dem Redirect die Url um den Get_Parameter "&info_message=test" erweitere, wird mir die info_message im Warenkorb auch angezeigt.

    Code: PHP  [Auswählen]
    xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters) . '&info_message=test'));
     

    Mein Problem ist also nur noch, eine Variable von der Funktion "add_cart" aus der Datei "includes/classes/shopping_cart.php" an includes/cart_actions.php zu übergeben.

    Ich weiss noch nicht mal, wo die "add_cart" aufgerufen wird. :-(

    web28

    • modified Team
    • Beiträge: 9.404
    Re: Artikel nur alleine in Warenkorb
    Antwort #3 am: 24. August 2012, 13:16:12
    Zitat
    Ich weiss noch nicht mal, wo die "add_cart" aufgerufen wird.

    in cart_actions.php
    Code: PHP  [Auswählen]
    $_SESSION['cart']->add_cart...

    Alphagen2901

    • Neu im Forum
    • Beiträge: 9
    Re: Artikel nur alleine in Warenkorb
    Antwort #4 am: 24. August 2012, 13:20:52
    Das würde aber doch auch bedeuten, dass wenn ich in der Funktion "add_cart" einen Rückagebewert einfügen würde

    Code: PHP  [Auswählen]
        return "test";
     

    Und
    Code: PHP  [Auswählen]
    $_SESSION['cart']->add_cart

    umwandeln würde in
    Code: PHP  [Auswählen]
    $tmp_speicher = $_SESSION['cart']->add_cart
    dass ich hier einen Rückgabewert erwarten dürfte oder?
    Ich bekomm aber keinen Rückgabewert. :-/
    6 Antworten
    3637 Aufrufe
    03. April 2014, 20:30:08 von Tanky
    19 Antworten
    1520 Aufrufe
    16. Juni 2024, 08:18:51 von voodoopupp
    0 Antworten
    1992 Aufrufe
    22. September 2015, 13:56:45 von chaploo
               
    anything