Magento – „The attribute code ‚weight‘ is reserved by system. Please try another attribute code.“ Attribute anpassen, wenn es über das Backend nicht geht

BildEs gibt das eine oder andere Attribut, welches sich nicht so einfach über das Backend verändern lässt, wie man es vielleicht gerne möchte. Ein Beispiel hierfür ist das Attribut Gewicht / Weight. Dieses wirft die oben stehende Fehlermeldung aus, wenn man versucht es zu ändern, sei es der Name (Bezeichnung/Optionen verwalten), die Sichtbarkeit o.ä..

Hierfür scheint u.a. die Erweiterung „Market Ready Germany“ zu sein, die dies einrichten musste, um damit den Sicherheitsanforderungen von Trusted Shops gerecht zu werden.
Leider lässt sich dies aus diesem Grund nicht so einfach über das Backend lösen, wie es wünschenswert wäre.

Es bleibt aktuell leider nur der Umweg über die Änderung direkt in der Datenbank. Dies ist wieder ein Eingriff, der tief in die Strukturen des gesamten Shops geht, daher die Empfehlung jeden Schritt genau zu überlegen und am besten zu dokumentieren bzw. einen Schritt nach dem anderen zu machen und nicht viele Änderungen auf einmal. Sollte anschließend der Shop nicht mehr funktionieren, kann man die Änderungen in DB wieder rückgängig machen, sollte aber eben wissen, was man gemacht hat 😉

Um nun ein Attribut zu ändern, welches sich im Backend nicht ändern lässt (hier „weight“ bzw. „Gewicht“), wird also die Datenbank des Shops z.b. über „PHP My Admin“ geöffnet und links die Tabelle „eav_attribute“ das Attribut mit dem attribute_code „weight“ bzw. mit dem „frontend_label“ “Gewicht” gesucht (TIPP: Unten kann man mehrere Seiten der Werte aussuchen, vorliegend war das Attribut auf Seite 3).

Bild 1

Dann in der Zeile vorne die „attribute_id“ merken und anschließend links die Tabelle „catalog_eav_attribute“ öffnen. Dort nach der eben gemerkten „attribute_id“ (hier die „69“) suchen. (Einfacher geht es übrigens wenn man im Backend das Attribut bearbeitet und dort in die URL schaut […]attribute_id/69/key[…])

Bild 2

Dort dann auf den kleinen Bleistift vorne in der Zeile klicken.

Bild 3

Hier kann nun alles eingestellt werden, was eigentlich auch im Backend gehen sollte. „1“ steht jeweils für „Ja“ und „0“ für „Nein“.

  • Soll das Attribut in der Standardsuche zu sehen sein, bei „is_searchable“ eine 1 setzen, sonst 0.
  • Soll danach gefilter werden, bei „is_filterable“
  • Sollen Produkte durch das Attribut verglichen werden können, „is_comparable“ eine 1 setzen.
  • Soll das Attribut im Shop (Frontend) angezeigt werden, bei „is_visible_on_front“ eine 1 setzen. Da dem aber nicht so sein soll, eine 0.
  • Soll das Attribut in der Erweiterten Suche (Advanced Search) zu suchen sein, muss eine 1 bei „is_visible_in_advanced_search“ stehen, sonst eine 0.

Anschließend unten rechts auf OK klicken. Damit wäre dies abgespeichert. Nun muss wahrscheinlich noch der Shopcache gelöscht werden und mglw. auch der Cache im Browser, dann ist das Attribut aber geändert.

Genutzt in Magento Versionen 1.4.1.1 und 1.5.0.1

P.S. Möchte man das Attribut Gewicht nutzen, es aber in verschiedenen Storeviews verschieden benennen (dies ist ja auch nicht so einfach über das Backend möglich), bin ich ganz einfach vorgegangen (ein wenig geschummelt): Ein anderes Attribut nehmen und dann für den entsprechenden Storeview einen absonderlichen (weil einmaligen) Namen geben. Ich habe z.B. bei den Storeview englisch „BLUBBB“ verwendet. Dann in der Tabelle eav_attribute_label nach diesem Begriff suchen und dann nur noch die attribute_id durch die eben gefundene (hier 69) ersetzen und BLUBBB durch die neue Bezeichnung „Weight“.

Nachtrag vom 09.01.13

Um ein Attribut nicht mehr als System Attribut zu definieren, z.B. um es zu löschen (nicht ganz ungefährlich) oder es über das Backend zu editieren, kann dies ähnlich wie oben getan werden, indem beim Wert „is_user_defined“ von der 0 eine 1 gemacht wird. Dann abspeichern und man kann die meisten Einstellungen direkt im Backend vornehmen.

Published by Covos

Seit 2009 arbeite ich nun intensiv mit Magento. Begonnen habe ich mit der Erstellung und dem Betrieb von B2C-Shops. Ausgeweitet wurde dies durch meine Tätigkeit im Logistik-Sektor. Hieraus entstanden erste spezialisierte B2E-Systeme. Heute arbeite ich tag-täglich mit spannenden B2C-, B2B- und B2E-Projekten und berichte in diesem Blog über Herausforderungen und gebe Insider-Tipps.

7 comments on “Magento – „The attribute code ‚weight‘ is reserved by system. Please try another attribute code.“ Attribute anpassen, wenn es über das Backend nicht geht”

  1. Vielen Dank für die ausführliche Beschreibung. Habe lange nach einer anderen Lösung gesucht. Es gibt aber anscheinend keine Bessere. Bin gespannt was beim nächste Update passiert.. 🙂

    Schöne Grüße,
    Carsten

  2. Sollte das auch bei Magento 1.6 funktionieren? Ich hab die oben aufgeführten Schritte genau so durchgeführt. Im Backend passen die Einstellungen jetzt auch, Gewicht „Sichtbar auf Artikelseite im Frontend“ steht jetzt auf NEIN, aber auf der Webseite wird das Gewicht bei den Produkten dennoch angezeigt. Hab ich doch noch einen Fehler eingebaut?

  3. Den Cache hab ich schon gelöscht. In der Artikelübersicht und auch wenn ich den Artikel anklicke wird das Gewicht angezeigt direkt zwischen dem Preis und der Lieferzeit angezeigt. Aus der Sektion „Zusatzinformation“ des Artikels ist das Gewicht aber raus. Denke fast es liegt am Template. Kann die zugehörige Datei aber leider (noch) nicht finden. In der „view.phtml“ aus dem Verzeichnis „app/design/frontend/default/jm_asenti/template/catalog/product“ ist nicht angegeben.

    1. Gibt es schon eine URL zum Shop? Ich denke -auf die Entfernung- auch, dass es an der URL liegt, da der eigentlich relevante Teil, also unten in den Details, nicht mehr angezeigt wird.
      Schon mal mit den Entwickleroptionen > Debug geschaut, ob die verantwortlichen Stellen anzeigt wird?

  4. Ich habe die Schritte wie oben aufgeführt mit Magento 1.7.0.2 durchgeführt. Das Attribut „weight“ wird wie gewohnt gespeichert, aber wenn ich in ein Produkt im Backend gehe, dann zeigt im Feld Gewicht keinen Wert an. Im Frontend, Export und Enhanced Grid Spalte Gewicht zeigt er die Werte an. Habe auch alle Extensions testweise deaktiviert. Reindexierung und Cache leeren habe ich auch schon gemacht.

    1. So ganz spontan würde ich sagen, dass es etwas mit dem Vorgehen in der DB zu tun hat. Schonmal die Änderungen Schritt für Schritt rückgängig gemacht und geschaut, welche Änderung für das Problem verantwortlich ist?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.