Viele Artikelpreise schnell und dauerhaft ändern

Ein Händler möchte z.B. in seinem Shop mit weit über tausend Artikeln die Preise dauerhaft um einen bestimmten Prozentbetrag senken. Die folgende SQL-Abfrage senkt den Preis aller Artikel um 20%:

UPDATE catalog_product_entity_decimal SET value = value * 0.8;

Nach einer solchen Abfrage wird der neue Preis zunächst als Sonderpreis dargestellt, d.h. der alte Preis ist im Shop weiterhin sichtbar und erscheint durchgestrichen über dem neuen Preis.

Damit der alte Preis vollständig verschwindet, muss die Indextabelle mit Artikelpreisen aktualisiert werden. Hierzu in System > Index-Verwaltung in der Zeile Artikelpreise auf Neuaufbau klicken.

 

Nachtrag vom 07.02.2012

Sicherheitshalber sollte die Anfrage auf die Artikelpreise beschränkt werden. Die richtige attribute_id kann auch über die Abfrage der Tabelle catalog_product_entity_decimal an den Ihnen bekannten Produktpreisen in der Spalte value erkannt werden. In meinem Fall ist das die 64:

UPDATE catalog_product_entity_decimal SET value = value * 0.8
WHERE attribute_id = 64;

Wer es ganz automatisch haben möchte, bekommt die attribute_id über eine Unterabfrage:

UPDATE catalog_product_entity_decimal SET value = value * 0.8
WHERE attribute_id = (
       SELECT attribute_id
       FROM eav_attribute
       WHERE attribute_code = "price"
);

Ein Gedanke zu „Viele Artikelpreise schnell und dauerhaft ändern“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.