Warenkorb: Bestand weniger als gekaufte Ware

  • Hallo liebes Forum,


    ich bin kurz vor der Veröffentlichung meines Online Shops.
    Ich habe nur mehr ein Problem... wenn man von einem Produkt 10 Stk. bestellt, aber nur 5 Stk. verfügbar sind, dann setzt VM die Menge automatisch auf 5 Stk. Ohne Fehlermeldung oder der gleichen.
    Es erscheint nur ein Pop-Up mit: 5 Stk xxxx wurde in Ihrem Warenkorb hinzugefügt.
    Ich denke, dass das meine Kunden verwirrt und diese denken sie haben einen Fehler gemacht und es wahrscheinlich mehrere Male versuchen werden mehr zu bestellen.
    Ich würde mir eine Art Fehlermeldung wünschen in der steht: Maximale Menge erreicht, neue Menge auf produktx gesetzt oder so etwas. Diese Meldung bekomme ich komischerweise, wenn ich vom gleichen Produkt noch einmal 10 Stk. bestellen möchte. :confused:


    Ich hoffe, ich hab mich einigermaßen verständlich ausgedrückt und freue mich über jede Antwort :)

    Joomla!-Version: Joomla! 3.7.4
    Template: Horme 3 free
    PHP Version: 7.0.21
    VirtueMart-Version: 3.2.2

  • Servus,


    die Informationen sind da sicherlich alle als Variablen vorhanden. Da müsste man sich anschauen, was es da gibt, und dann das Layout für den Popup als Override erzeugen und ablegen.


    Sowas dauert aber einige Zeit, weil es nicht durch eine Einstellung in der Konfiguration geht.
    Vielleicht einmal den Template-Hersteller fragen, ob es so eine Möglichkeit gibt.
    Als Einzelarbeit wird das bisserl teuerer.


    Grüße
    Stefan

  • Hallo,


    danke für deine Antwort! :)
    hab jetzt mehrere Stunden versucht die Variablen zu finden und sie dort einzufügen wo sie hingehören, dachte mir es wäre nicht schwer da es die Fehlermeldung ja schon gibt und ich sie nur an die richtige Stelle einfügen muss.
    Leider war das schwerer als gedacht und habe noch kein brauchbares Ergebnis.
    Aber ich werde mich an den Template Hersteller wenden, vielleicht hilft mir der ja weiter.


    LG CHAISED

  • Hätte jetzt einen Lösungsansatz... wenn er funktionieren würde.
    Bitte nicht lachen bin absoluter php Anfänger und brauche eure Hilfe, was mache ich hier falsch:


    <?php

    if($this->products){
    if($product->quantity>0) and ($product->quantity<$stock){
    echo '<h4 class="page-header">'.vmText::sprintf('COM_VIRTUEMART_CART_PRODUCT_ADDED',$product->product_name,$product->quantity).'</h4>';
    } else {
    echo '<div class="alert alert-danger">'.$product->errorMsg.'</div>';
    }
    }


    .
    .
    .


    Wenn man im Frontend jetzt "zum Warenkorb hinzufügen" klickt, passiert nichts außer dass er ewig lädt.
    Freue mich über jede Antwort!!!


    LG CHAISED

  • Servus,


    wenn irgendetwas nicht funktioniert, versuch, die Dinge möglichst einzeln anzugehen, also einfach einmal eine einzelne echo-Zeile probieren, dann findest Du langsam heraus, was nicht funktioniert.


    1. Zeile wahrscheinlich: if (!empty($this->product)) { // ich mag das !empty


    Dann kommt da "$product", in der productdetails view ist das allerdings wie in Zeile 1 $this->product.


    In der Kategorieansicht ist es wieder $product.


    Am besten einmal die PHP-Dateien in den tmpl-Ordnern der productdetails and category studieren, dann wird das was. ;-)


    Grüße
    Stefan

  • Hallo Stefan,


    vielen herzlichen Dank für deine Hilfe. Ich habe deine Tipps befolgt und folgenden Code für mich zusammengestellt!
    Funktioniert super!!!


    <?php


    if($this->products){
    foreach($this->products as $product){
    if($product->quantity>0){
    echo '<h4 class="page-header">'.vmText::sprintf('COM_VIRTUEMART_CART_PRODUCT_ADDED',$product->product_name,$product->quantity).'</h4>';
    } else {
    if(!empty($product->errorMsg)){
    echo '<div class="alert alert-danger">'.$product->errorMsg.'</div>';
    }
    }


    }
    }



    if($this->products){
    foreach($this->products as $product){
    if($product->quantity<$stock){
    echo '<h4 class="page-header">'.vmText::sprintf('COM_VIRTUEMART_CART_PRODUCT_ADDED',$product->product_name,$product->quantity).'</h4>';
    } else {
    if(!empty($product->errorMsg)){
    echo '<div class="alert alert-danger">'.$product->errorMsg.'</div>';
    }
    }


    }
    }


    LG CHAISED