Wenn nach einem Update oder einer Installation von VirtueMart das VirtueMart-Menü im Backend nicht vorhanden ist, liegt das häufig daran, dass in der Datentabelle für die Menü-Einträge (Verwaltet in der Tabelle #_menu) die Componenten-Id component_id bei der Erzeugung der Einträge nicht korrekt gesetzt wurde. Dann sollte man in der Tabelle #_extensions schauen, welche ID die Komponente VirtueMart erhalten hat - i.d.R. wird dass eine ID > 10000 sein. Mit dieser ID führt man dann folgende SQL-Anweisung z.B. in phpMyAdmin aus:

UPDATE `#_menu` 
SET `component_id` = '10000' 
WHERE `component_id` = 10036;

 

Der Grund warum es vermutlich bei der Installation von VM zu diesem Fehler kommt, ist dass vor der Installation schon ein Virtuemart-Plugin für die Erweiterung xMap gibt. Beim Versuch die Komponenten-ID für VM zu ermitteln, findet der VM-Installer irrtümlich die ID dieses Plugins und verwendet dann diese fälschlich.

 

Bei einem späteren Update von VM 3.0.18 auf 3.2.2 kam es zu einem gleichen Effekt, wieder waren die Admin-Menüs für virtuemart im Backend verschwunden. Hier zeigte sich eine andere Ursache bestehende aus zwei Ungereimtheiten:

  1. In der #_menu war der Menütyp (Feld menutype) auf vmadmin eingestellt. Damit das Menü erscheint sollte es aber besser auf main stehen.
  2. In der gleichen Tabelle sollte das Feld published auf 1 gesetzt sein, war aber auf 0.

Das Ganze ließ sich beheben durch einen SQL-Befehl in dieser Form (bitte # ersetzen durch den Tabellenpräfix:

UPDATE `#_menu` 
SET `menutype` = 'main', `published` = '1' 
WHERE `#_menu`.`menutype` = 'vmadmin';

Warum es bei dem Update zu diesem Problem kommt, ist für mich noch ungeklärt.

 



Wenn Ihnen dieser Beitrag geholfen und viel Zeit gespart hat, zeigen Sie sich erkenntlich: Über einen Klick auf Google+1 und Facebook-teilen oder Rückmeldungen freue ich mich. Zeigen Sie mir, dass sich die Mühe für die Beitragerstellung gelohnt hat.
Schenken Sie auch den Produktwerbungen Ihre Beachtung (Maus benutzen! ;-) ), denn damit wird mein Aufwand für diese Beiträge refinanziert.