Ich habe folgendes Problem mit meiner Magento 1.7.0.2 Installation:
Wir haben gewisse CMS Seite mit einem URL Rewrite so verlinkt, dass sie über einen Navigationspunkt der Hauptnavigation erreichbar sind. Jedesmal nachdem ich Produkte in meinen Shop importiere, muss ich diese URL Rewrites für die CMS Seiten neu machen. Magento generiert irgendwie automatisch hunderte von merkwürdigen rewrites und überschreibt die manuell hinzugefügten…
Was läuft da falsch? Wäre froh wenn mir jemand helfen könnte.
Hast du die CMS - Seiten denn unter URL`s erreichbar gemacht die denselben Namen haben wie product url keys von importierten Produkten? Dann ist klar dass die überschrieben werden.
Verstehen nicht genau was du meinst. Vielleicht habe ich mich zu wenig genau ausgedrückt.
Ich mache folgendes:
1. Ich erstelle eine CMS seite mit dem namen \"Sevice\". Diese kann ich dann per http://www.meinstore.com/url-bezeichner aufrufen.
2. Ich erstelle eine Kategorie mit dem Namen \"Service\" und lasse diese in der Navigation anzeigen. Dies generiert mir nun eine URL Rewrite mit folgende Angaben:
- ID Pfad: category/38
- Anfragepfad: service
- Zielpfad: catalog/category/view/id/38
Was muss ich nun machen, damit der Link in der Navigation mich zur gewünschten CMS Seite bringt?
Ich habe schon ganz viele Ansaätze versucht. Die klappen meistens auch. Aber wenn ich Produkte importiere wird ja die Inidizierung von Artikel -und Kategorie URL Rewrites neu aufgebaut. Dies führt dann immer dazu, dass entwerder die 301 rausfliegen oder meine ganzen Einstellungen überschrieben werden.
Erstell doch einfach eine Kategorie mit dem Name “Sevice”, stell dort ein das keine Produkte sondern nur ein CMS-Block angezeigt wird, in den Block packst du halt den content deiner CMS Page und schon hast du den gewünschten Menüpunkt mit der gewünschten URL.
Ja das habe ich schon so gemacht und das geht bei fast allen Seiten gut so.
Mein Problem ist, dass ich das Kontaktformualr verknüpfen möchte. Dies würde ja auch mit dem Statischen-block gehen.
Dazu muss gesagt sein, dass ich folgende Extension installiert habe: http://www.mageworx.com/extended-contacts-magento-extension.html
Diese Extension macht nichts weiter als ein zusätzliches Feld zu dem Formular hinzuzufügen wo man auswählen kann zu welchem Thema man eine Fage hat. Dementsprechend wird dann das Mail an die zuständige Email-Adresse gesendet.
Wenn ich also das Kontaktformula als Block in meinem Navi-Punkt anzeigen lasse, wird die Extension nicht angezeigt. Wenn ich aber auf die von Magento vordefinierte Seite http://www.meinstore.com/contacts gehe wird die Extension angezeigt.
Darum dachte ich mir, ich könnte ein URL-Rewrite machen, welcher mein “Kontakt” Link auf /contacts umleitet…
Behalte ich den “id_path” bei, wird die Regel beim nächsten Indexieren überschrieben.
Passe ich den “id_path” an, löst die Navigation nicht mehr korrekt auf.
Es muss doch irgendeine Möglichkeit geben, das System vom Überschreiben benutzerdefinierter Rewrites abzuhalten, auch wenn diese einen bestehen Kategorie- oder Produktpfad identifizieren.
Da gibt`s mehrere Möglichkeiten...eine (etwas weniger elegante) wäre bei der Kategorie einen CMS - Block als Ziel einzustellen, in diesen Block packst du ein javascript - redirect auf die gewünschte Seite. So würde es auf jeden Fall am schnellsten gehen. Ansonsten müßtest du ein kleines Modul schreiben was beim Kategorie-Aufruf eingreift und den Zielpfad ändert.
Ein Redirect bringt mich nicht weiter, da ich dadurch die Navigationsstruktur verlasse. Beim Aufruf der Seite (/contacts) soll weiterhin der Pfad in der Navigation (z.B. /unternehmen/formular.html) als aktiv gekennzeichnet werden.
Ein Modul zum Anpassen des Pfads wäre eine Möglichkeit. Wenn ich die Pfade nicht hartkodieren möchte, wird die Sache aber sicher recht aufwändig.
Im Prinzip habe ich alles genau so konfiguriert, wie ich\’s brauche. Ich benötige nur eine Möglichkeit, dem System zu sagen, dass es meine benutzerdefinierten URL Rewrites nicht überschreiben soll.
Wenn\’s mit Boardmitteln nicht klappt, lässt sicher der Indexer vielleicht überschreiben? Ich kann mir nicht vorstellen, dass dieses Problem sonst niemand hat.
Also ich würde ein neues Kategorie-Attribut erstellen, zb. “Weiterleitung”, dort trägst du dann den entsprechenden Pfad ein der stattdessen geladen werden soll. Dann per Extension an der Stelle eingreifen wo die Kategorie aufgerufen wird, dort das “Weiterleitung” - Attribut auslesen und gegebenenfalls den Pfad ersetzen.
Ist auf jeden Fall einfacher und sauberer als im Indexer einzugreifen.