Wer einen Magento Shop betreut, der wird sicherlich des öfteren an den Preisen einzelner Artikel oder gar die Preise einer ganzen Kategorie arbeiten. Das Backend von Magento ist für das schnelle Editieren einzelner Artikel sicherlich das Mittel der Wahl. Sind allerdings die Preise einer großen Anzahl zu ändern, so ist der Weg über die Datenbank der schnellere.

HINWEIS: Wer sich mit Datenbank nicht auskennt, sollte von den nachfolgenden Anweisungen die Finger lassen. Ihr könnt euch den gesamten Shop damit zerstören. Also bitte wirklich nur die Statements benutzen, wenn ihr wisst, was ihr tut. Sicherheitshalber ist ein Datenbank Backup zu empfehlen, falls irgendetwas schief gehen sollte.

Der über das SELECT Statement

Um sicher zugehen, dass ihr genau die Daten ändert, die auch geändert werden sollen, empfiehlt es sich im Vorfeld über ein SELECT die Daten „zusammenzusuchen“. Mit dem nachfolgenden Statement könnt ihr beispielsweise die Artikelnummern sehen, die einen bestimmten Preis haben.

SELECT c.sku, cped.* 
  FROM catalog_product_entity_decimal as cped
  LEFT JOIN catalog_product_entity as c ON c.entity_id=cped.entity_id
WHERE cped.attribute_id = 64
  and cped.value = 12.9500

Das Statement sucht die Artikelnummern heraus, bei denen das Preis Attribut (ID: 64) den Wert 12,95 hat. Prüft im Vorfeld, ob die attribute_id mit dem Wert 64 auch das von euch gewünschte Attribut ist.

Arikelpreise ändern: Auswahlkriterium der Preis

Die Preise sind in der Datenbanktabelle catalog_product_entity_decimal gespeichert. Der Preis ist im Feld value gespeichert.

UPDATE catalog_product_entity_decimal 
	SET value = 13.9900 
WHERE  attribute_id = 64 
	AND (value = 12.9500 OR value = 12.9900)

Das Statement änder alle (!) Artikel, die den Preis 12,95 oder 12,99 auf 13,99. Das Aushwahlkriterium in dieser SQL Anweisung ist der Preis. Hier wären allerdings auch andere Kriterien möglich, wie beispielsweise die Zugehörigkeit zu einer oder mehreren Kategorien.