Anleitung Artikel anlegen: VPE / Grundpreisangabe

Thema wurde von Petra, 28. November 2012 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    471
    Danke erhalten:
    79
    Danke vergeben:
    36
    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.
     
  2. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    937
    Danke erhalten:
    808
    Danke vergeben:
    301
    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');
     
  3. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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
     
  4. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    937
    Danke erhalten:
    808
    Danke vergeben:
    301
    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');
     
  5. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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
     
  6. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    937
    Danke erhalten:
    808
    Danke vergeben:
    301
    Dafür müsste man wohl noch die Dichte wissen…

    Naja, das machen die SQL-Befehle ja…

    Vorher:

    100ml.png

    Nachher:

    l.png

    Trotzdem habe ich das Gefühl, Du könntest irgendwie recht haben. Was genau übersehe ich? Hat es irgendwas mit dieser "Mengeneinheit" zu tun?
     
  7. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Oh.... Sorry.
    Das vpe_value habe ich im Code gerade voll überlesen.:oops:
    Und dann habe ich ganz klar viel zu kompliziert gedacht.
     
  8. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    471
    Danke erhalten:
    79
    Danke vergeben:
    36
    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
     
  9. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    937
    Danke erhalten:
    808
    Danke vergeben:
    301
  10. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    471
    Danke erhalten:
    79
    Danke vergeben:
    36
    wenn ich den ersten und dritten Befehl eingebe:
     

    Anhänge:

    • 1.png
      1.png
      Dateigröße:
      4,8 KB
      Aufrufe:
      5
    • 2.png
      2.png
      Dateigröße:
      34,2 KB
      Aufrufe:
      5
  11. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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
     
  12. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    471
    Danke erhalten:
    79
    Danke vergeben:
    36
    Danke, im Test Shop hat es geklappt, aber im Live Shop leider nicht, dann heißt es jetzt manuell loslegen.... :confused::(
     
  13. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    937
    Danke erhalten:
    808
    Danke vergeben:
    301
    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>;
     
  14. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    3. Juni 2019
    Beiträge:
    471
    Danke erhalten:
    79
    Danke vergeben:
    36
    :D und so hat es dann auch geklappt, Danke dir Dominik :)