it-gration Posted July 1, 2016 Share Posted July 1, 2016 Hallo liebes Forum, für folgendes Problem suche ich eine Lösung. Ich habe ein Produkt X, das insg. 3 "Gruppen" besitzt, die jeweils wieder 3 "Attribute" besitzen. Diese Gruppen und deren Attribute habe ich definiert. Über "Varianten" in der Konfiguration des Produktes X kann ich nun meine 3³ Produktvarianten definieren die auch unterschiedliche Preise haben. Soweit so gut, der Kunde kann im Frontend über dropdown die jeweilige Produktvariante anwählen und bekommt dann seinen so konfigurierten Preis angezeigt. Nun zur Frage, bzw. zu meinem Problem: Ich habe vom Produkt X sagen wir 6 Stück und alle Gruppen und deren Varianten stellen lediglich Modifikationen in Form einer Dienstleistung oder Veredelung des Produktes dar, die durchgeführt wird, wenn der Kunde bestellt hat - d.h. ich habe nur 6 Stück meines Produktes auf Lager, auch wenn der Kunde insgesamt 162 versch. Varianten bestellen kann. Ich habe noch keine Möglichkeit gefunden, allen definierten Varianten eine Anzahl zuzuordnen, die quasi auf die Mutterklasse, das unveredelte Produkt zeigt und nicht jeder Variante eine Produktanzahl zuordnet. Danke für eure Hilfe Verwendeter Prestashop v1.6.1.6 Stefan Link to comment Share on other sites More sharing options...
it-gration Posted July 4, 2016 Author Share Posted July 4, 2016 Hallo hat niemand eine Idee bzw. einen Tipp, wie man es schafft die Produktanzahl mit dem eigentlichen Produkt und nicht mit den Varianten zu verknüpfen? anbei der webshop noch, webshop.it-gration.com Thx a lot Stefan Link to comment Share on other sites More sharing options...
Whiley Posted July 4, 2016 Share Posted July 4, 2016 Hallo Stefan, mit Bordmitteln schaffst du das leider nicht. Aber wenn du etwas coden kannst .,. mein erster Gedanke wäre bei allen Varianten die gleiche Stückzahl einzugeben, wird eine Variante verkauft ziehst du die Stückzahl bei allen Varianten ab. Grüsse Whiley Link to comment Share on other sites More sharing options...
it-gration Posted July 4, 2016 Author Share Posted July 4, 2016 Hi Whiley, danke für deine Antwort. Klingt gut, hast du mir zufällig einen Ansatz, an welchen Dateien, Funktionen und Variablen ich ansetzen kann? Danke Link to comment Share on other sites More sharing options...
Whiley Posted July 4, 2016 Share Posted July 4, 2016 Naja, letztendlich müssen die Werte in der db geändert werden also entweder in der ps_product_attibute oder in der ps_stock_available (quantity). Such mal nach der class StockMvt. Wenn du die veränderst aber unbeding ins Override. Grüsse Whiley Link to comment Share on other sites More sharing options...
it-gration Posted July 5, 2016 Author Share Posted July 5, 2016 Danke Whiley, ich habe mir die db angeschaut und die quantity gefunden, auch die von dir genannte Klasse, die mir zumindest bei der Recherche geholfen hat... und zu folgenden Forenbeiträgen jenseits des Tümpels geführt: https://www.prestashop.com/forums/topic/43828-combination-quantity/?p=746326 https://www.prestashop.com/forums/topic/271137-attributes-no-impact-on-stock-how/?do=findComment&comment=1389018 (kommerielle Lösung = 150Y$ die in V1.4 das Problem gefixed hat) http://stackoverflow.com/questions/12531723/combinations-in-prestashop-change-stock-to-main-stock-via-php Code Ausschnitt zu 1) der in V1.4 wohl das Problem gelöst hat... <?php class StockMvt extends StockMvtCore { public function add($autodate = true, $nullValues = false, $update_quantity = true) { if (!$update_quantity) return true; if ($this->id_product_attribute) { $product = new Product((int) $this->id_product, false, Configuration::get('PS_LANG_DEFAULT')); return (Db::getInstance()->Execute( 'UPDATE `' . _DB_PREFIX_ . 'product_attribute` SET `quantity` = quantity+' . $this->quantity . ' WHERE `id_product` = ' . (int) $this->id_product) && $product->updateQuantityProductWithAttributeQuantity()); } else return Db::getInstance()->Execute(' UPDATE `' . _DB_PREFIX_ . 'product` SET `quantity` = quantity+' . (int) $this->quantity . ' WHERE `id_product` = ' . (int) $this->id_product); } } ?> Jetzt kann ich ja mal probieren ;-) Besteht aus deiner Sicht Anlass zur Hoffnung, dass dieser Code auch in der 1.6.1.6 tut, oder geht auch hier probieren über studieren? Thx Stefan Link to comment Share on other sites More sharing options...
it-gration Posted July 10, 2016 Author Share Posted July 10, 2016 Hallo zusammen, leider scheint prestashop in Bezug auf diese Fkt leider nichts zu bieten, auch wenn es durchaus und schon seit geraumer Zeit Anfragen für solche Fkt gibt. So wie es scheint haben diejenigen, die diese Fkt wünschen aber wohl resigniert und/oder setzen nun kommerzielle Module ein, die diese features bietet, was ich nicht so ganz als open-source-spirit verstehen kann...anbei der link https://www.prestashop.com/forums/topic/271137-attributes-no-impact-on-stock-how/und hier nochmal: https://www.prestashop.com/forums/topic/540527-how-to-link-product-number-not-to-variants-but-to-underlying-product/, um das ganze Dilemma mal zusammen darzulegen. Gibt es im Forum eine Sektion, die konkret beim Coding, bzw. anpassen von Codes hilft? Weil ich will ja eigentlich lediglich folgende Fkt: Sobald x Produkt-Varianten gekauft wurden, sollen sich alle Produktvarianten auch um x erniedrigen und die Gesamtanzahl des Produktes soll durch die neu errechnete Produktanzahl/Anzahl der Produktvarianten dargestellt werden. Dafür 40 Y$ auszugeben finde ich zuviel! Danke im Voraus Grüße Stefan Link to comment Share on other sites More sharing options...
Whiley Posted July 11, 2016 Share Posted July 11, 2016 setzen nun kommerzielle Module ein, die diese features bietet, was ich nicht so ganz als open-source-spirit verstehen kann... Versteh ich nicht, Opensource hat ja per se nichts mit Freeware zu tun Aber davon abgesehen sieht doch der Codeschnipsel ganz vernünftig aus, hast du mal debuged? Voraussetzung das das so laufen kann ist, daß du Overrides im BO freigegeben hast, Cache muß geleert sein, die class_index.php muß gelöscht sein und natürlich muß die erweiterte Lagerverwaltung eingeschaltet sein (auch beim Artikel aktiviert) Falls du nicht mit der erweiterten Lagerverwaltung arbeitest kannst dir alternativ mal die /classes/order/OrderDetail.php anschauen. $update_quantity = StockAvailable::updateQuantity($product['id_product'], $product['id_product_attribute'], -(int)$product['cart_quantity']); Hier wird beim Bestellabschluß die Lagerbestandsänderung ausgelöst, an der Stelle könntest du dich einhängen. Möglich wäre auch, daß du deine Änderungen in der /classes/stock/StockAvailable.php einbaust, Die Funktion public static function setQuantity führt die Änderungen des Lagerbestandes in der ps_stock_available durch. Grüsse Whiley Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now