banderas Posted May 8, 2013 Report Share Posted May 8, 2013 Hi. Ich habe zum Thema Mindestbestellmengen viel gelesen und eine gute und brauchbare und vor allem selbstgemachte Lösung habe ich nicht gefunden. Die Aufgabe: Ein Artikel wird angezeigt samt Stückpreis. Diesen kann man aber erst ab 6 Stück bestellen. Sonst nicht. Die Idee: Ein neues Datenbankfeld bei products anlegen mit dem Wert der Mindestbestellmenge. Diese beim Artikel anzeigen lassen (evtl. unter dem Preis). Bis hierhin ist die Sache einfach. Nun wird ein Code benötigt, der das Datenbankfeld überprüft und bei einem kleineren Wert als 6 (Beispiel hier) entweder den Artikel nicht ins Warenkorb übernimmt mit der entsprechenden Meldung, oder den Artikel übernimmt jedoch mit der Mindestbestellmenge. Kann da jemand weiterhelfen? Oder evtl. einen anderen Vorschlag. Link to comment Share on other sites More sharing options...
Sentor77 Posted May 10, 2013 Report Share Posted May 10, 2013 Moin, ich würde es wie folgt umsetzen: Neues Datenbankfeld in der Tabelle xt_products. Als Bezeichnung bietet sich etwas wie 'prefix_min_quantity' an. Einen Prefix solltest du für neue Felder verwenden um zu vermeiden, dass evtl. in zukünftigen Versionen von xt ein Feld mit gleichen Namen hinzugefügt wird. Das Feld sollte wie das products_quantity Feld vom Typ DECIMAL(15,2) sein.In allen Templatedateien, wo es dem User ermöglicht wird Artikel in den Warenkorb zu legen ein unsichtbares Formfeld in das Formular einfügen und mit dem Wert aus dem neuen Datenbankfeld belegen. Im Falle der product.html und den oben vorgeschlagenen Feldnamen dann etwa so: {form type=hidden name=min_quantity value=$prefix_min_quantity} Ein Plugin erstellen welches auf folgenden Hook zugreift: form_handler.php:add_product_top[/code] Dieser Hook ist hier zu finden: [CODE]xtCore/form_handler.php[/code]Innerhalb dieses Hooks einen Vergleich von $data_array['qty'] und $data_array['min_quantity'] durchführen und im Fehlerfall eine entsprechende Fehlermeldung erstellen und den Redirect auf die Warenkorbseite verhindern. Ich hoffe ich konnte helfen. LG Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.