Wir haben im Shop die Verpackungseinheiten in ml angegeben, jetzt ist es ja Pflicht in Liter und Kilo anzugeben! Kann mir bitte jemand einen SQL Befehl geben, wie ich meine ganzen ml angaben, in L angaben, ändere? Danke im Voraus.
Ernsthaft ml? Dann so: Code: UPDATE `products` SET `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='l'), products_vpe_value=products_vpe_value/1000 WHERE `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='ml'); Allerdings vermute ich eher, Du meinst 100ml. Dann so: Code: UPDATE `products` SET `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='l'), products_vpe_value=products_vpe_value/10 WHERE `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='100ml'); So oder so unbedingt vorher die products-Tabelle sichern und/oder erst im Testshop ausprobieren. VPEs sind nicht mein Spezialgebiet und ich hab' wenig geschlafen Edit: Wenn Du "100ml" in "100 ml" geändert hast, dann entsprechend so: Code: UPDATE `products` SET `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='l'), products_vpe_value=products_vpe_value/10 WHERE `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='100 ml');
Das wird nicht reichen. Denn wenn Du z.B. einen Artikel mit z.B. 60ml Inhalt hast und bisher den Grundpreis für 100ml angegeben hast, dann musst Du jetzt nicht nur die VPE von 100ml auf 1l (oder 1000ml) ändern, sondern auch den VPE-Wert von 0,600 auf 0,060 Du wirst also einen SQL-Befehl brauchen den Du für jeden VPE-Wert einzeln aufrufen musst. also einmal für 28ml, einmal für 18ml, einmal für 60ml.... Das ganze dann noch einmal für die VPE-Werte bei Kg
Wieso? Die Umrechnung der Einheiten ist doch immer dieselbe, egal, was da für konkrete Werte drinstehen. Von "g" auf "kg" wäre dann das hier: Code: UPDATE `products` SET `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='kg'), products_vpe_value=products_vpe_value/1000 WHERE `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='g'); "100 g" auf "kg" entsprechend: Code: UPDATE `products` SET `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='kg'), products_vpe_value=products_vpe_value/10 WHERE `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='100 g');
Nein. Woher soll der Shop denn wissen, dass z.B. 60ml in der Flasche sind? Der Shop berechnet jetzt auf 100ml, wenn Du nur anstelle der 100ml nun 1kg einsetzt, wird z.B. aus Preis 3,90 Grundpreis 13,93 je 100ml Preis 3,90 Grundpreis 13,93 je Liter Da muss der VPE-Wert auch angepasst werden, denn es ist jetzt nicht mehr 1,0 = 100ml, sondern 1,0 = 1000ml Und wenn bisher da 0,18 für 18ml stand, dann muss da jetzt 0,018 in das Feld
Dafür müsste man wohl noch die Dichte wissen… Naja, das machen die SQL-Befehle ja… Vorher: Nachher: Trotzdem habe ich das Gefühl, Du könntest irgendwie recht haben. Was genau übersehe ich? Hat es irgendwas mit dieser "Mengeneinheit" zu tun?
Oh.... Sorry. Das vpe_value habe ich im Code gerade voll überlesen. Und dann habe ich ganz klar viel zu kompliziert gedacht.
Hallo Dominik, Hallo Barbara Ja so wäre es korrekt das heißt ich brauche dann ein SQl Befehl für 100 ml in l und ein SQL für den Wert Bsp. 0.59 auf 00.59 Danke Gruß Ralf
Steht alles oben. "100 ml in l" ist der 3. Befehl unter https://www.gambio.de/forum/threads/artikel-anlegen-vpe-grundpreisangabe.8869/page-5#post-408494 Wobei ich davon ausgehe, dass Du nicht "00.59", sondern "0.059" meinst.
Du brauchst nur einen Befehl, wie Dominik geschrieben hat - nur den 3. der 1. macht aus dem Grundpreis für 1 ml den für 1000 ml
Danke, im Test Shop hat es geklappt, aber im Live Shop leider nicht, dann heißt es jetzt manuell loslegen....
Also, noch der Vollständigkeit halber: Es muss schon ganz exakt die Verpackungseinheit im SQL-Befehl stehen. Wenn man vor '100 ml' noch ein Leerzeichen hat, also ' 100 ml', lautet der SQL-Befehl für die Umwandlung in 'l' so: Code: UPDATE `products` SET `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name='l'), products_vpe_value=products_vpe_value/10 WHERE `products_vpe` = (SELECT products_vpe_id FROM `products_vpe` WHERE language_id=2 AND products_vpe_name=' 100 ml'); Hätte ich so etwas geahnt, hätte ich gleich gesagt: Schau im Gambio-Admin unter Artikel > Verpackungseinheiten nach den IDs von Liter und von 100ml und setze sie ein in Code: UPDATE `products` SET `products_vpe` = <ID von Liter>, products_vpe_value=products_vpe_value/10 WHERE `products_vpe` = <ID von 100ml>;