Hallo zusammen,
ich würde gerne meine SEO-URLs aus SW5 in SW6 migrieren und übernehmen.
Bei Kategorien und Landingpages kann ich das ohne weiteres realisieren aber bei den Artikel/Produkten gibt es ein Problem:
In SW5 habe ich für die Artikel folgendes SEO-Template hinterlegt:
{$sArticle.id}/{$sArticle.name}
Ergebnis ist dann z.B.:
https:/www.meinShop/1234/meinArtikel
Leider wurde in SW6 die Article.id aus der DB nicht 1:1 übernommen - in SW6 ist die product.id als HEX-Zahl gespeichert. Würde ich das SEO-Template entsprechend in SW6 verwenden, kommt natürlich die HEX-Zahl anstelle der SW5-Article.id:
{{ product.id }}/{{ product.translated.name }}
Ergebnis: https://www.meinShop/f5315638c6c24e8bb01a1b603e7c06dd/meinArtikel
Hat jemand eine Lösung dafür, wie man die „alte“ Article.id migrieren und abrufen kann?
Das Problem dürfte relativ viele Shops betreffen, da Shopware in den Docus damals selbst dieses Template im SW5-Standard vorgeschlagen hatte (wenn mich nicht alles täuscht), um eindeutige Artikel-URLS zu erzeugen.
Speicher deine URLs in SW5 in ein Freitextfeld.
Durch die Migration wird das FTF übernommen.
Gebe im SW6 SEo Template an, dass er die URL aus dem CustomField erstellen soll, wenn etwas darin vorhanden ist, ansonsten neues Template.
Vielleicht könnte man auch das „autoincrement“ Feld benutzen? Das Feld ist eine Zahl und entspricht der Anzahl/Position in der Tabelle. Wird also ein neuer Artikel erstellt, erhöht sich das autoincrement Feld entsprechend.
Ich weiß aber nicht, was mit dem Feld passiert, wenn ein Artikel gelöscht wird. Es kann sein, dass dann alle Einträge ggf. aktualisiert werden. Das müsste man testen.
Das Feld „autoincrement“ hatte ich auch schon auf dem Schirm. Dieses Feld ist aber leider nicht mit der „alten“ Article.id verbunden, sondern wird tatsächlich von SW6 durchgezählt. Das könnte klappen, wenn man keine Varianten in SW5 verwendet hat - die „alte“ article.id wurde in SW5 ja auch inkrementiert… Dann darf aber auch nichts zwischendurch im Artikelstamm bei SW5 gelöscht worden sein, sonst stimmt die Reihe dann wieder nicht überein.
Deswegen kann ich das Feld „autoincrement“ leider bei meinen URLs nicht als Ersatz für die article.id verwenden. Sie würden aufgrund der unterschiedlichen Werte dann in google wieder als neue URL indiziert und das alte Ranking ist futsch.
Die Idee mit dem Freitextfeld ist da evtl. besser. Allerdings müsste ich ja dann nochmal an die SW5-Datenbank ran. Wir haben ca. 240.000 Artikel (inkl. Varianten), ich bin froh, dass das Ding läuft
Kann man denn die „alte“ article.id als Wert oder als Feld nach SW6 mit dem Migrations-Tool migrieren? Dann könnte ich im SEO-Template da ja auch darauf zugreifen.
Ich habe mich sowieso schon gefragt, warum ausgerechnet die article.id aus der SW5-DB nicht im Migrations-Lauf automatisch mitgenommen wird. Oder versteckt sich das Feld irgendwo anders in der SW6-DB?
Leider habe ich das Problem noch nicht gelöst. Da die Migration an sooo vielen Stellen hakt, werden wir wahrscheinlich gar nicht zu SW6 wechseln/migrieren, sondern gleich auf ein anderes Shopsystem wechseln. Bin auch von der Forum-Unterstützung hier bei SW6 etwas enttäuscht. Überhaupt kein Vergleich zum guten alten SW5-Forum und der Hilfsbereitschaft dort.
ok - Ich habe per SQL die Artikel id aus SW5 in ein Freitextfeld kopiert, und das zu SW6 migriert.
Dort kann ich es un auch in den SEO URL Einstellungen ansprechen. Soweit so gut.
Das klappt prima für Artikel ohne Varianten.
Bei Artikeln mit Varianten wird in SW5 wohl der parent über die ID angesprochen, in SW6 geht das nicht.
Hier werden die IDs der Variante genommen.
Wie soll ich den so jemals auf SW6 wechseln können? (der 3. Anlauf in 1,5 Jahren…)
Ich werde sicherlich nicht zulassen, dass 50% meiner alten URLs einen 404er bekommen und ins leere schiessen.
Ich nehme gerade den zweiten Anlauf auf SW6 zu wechseln.
Wirklich überzeugt bin ich nicht. Die Migration ist an vielen Stellen sehr hackelig, oder funktioniert garnicht.
Wenn man mehr als 200 Arikel hat und jedes einzelne Nachbearbeiten muss, überlegt man ob man wirklich wechseln will.
In SW5 habe ich für Produkt {sCategoryPath articleID=$sArticle.id}/{$sArticle.id}/{$sArticle.name}
Wie ist denn hier der aktuelle Stand? Wir haben etliche Shops mit dem selben Problem. Wie bekommen wir die bisherigen SW5 SEO-URLs sauber in den SW6?
PS: Schade auch, dass sich Shopware generell hier im Forum bezüglich SW6 sehr zögerlich verhält. Viele User vielen sich im Stich gelassen. Die Umstellung von SW5 auf SW6 ist teilweise eine Katastrophe und Hilfe per Forum ist kaum zu erwarten
SEO seeding and growing von SW 5 gehen bei Varianten einfach den Bach runter….
Alle Artikel mit Varianten sind zwar mit der alten SEO URL aufrufbar aber in der Produktansicht wird nicht der Parent Artikel sondern immer die größte Variante auf der Produktseite aufgerufen.
Die Krönung - ein gelöschtes Produkt anschließend ohne Variante neu angelegt - ruft bei Eingabe der SEO URL die nicht mehr vorhandene größte Variante auf - natürlich 404
Einstellungen > SEO > Produktdetailseite {{ product.translated.name }}
Die Storefront Einstellungen Einzelprodukt - Variante sind gesetzt aber es funktioniert einfach nicht
Das Migrations-Tool kann das mit der SW5 Article Id eigentlich handeln.
Problem sind die Bugs innerhalb des Tools.
Falls jemand noch Hilfe bei der Migration benötigt, kann er sich gerne bei mir melden. Habe schon sämtliche Szenarien verschiedener Datenstrukturen durch.
Die ID in der URL war in SW5 leider Standard aber völlig unnötig. Mein Tipp, lege in SW6 eine SEO Vorlage ohne ID (hast du ja nicht) an. Dann sollte die URL bis auf die ID identisch sein. In der htacces oder nginx Direktiven machst du eine RewriteRule, welche die ID entfernt. Somit bekommst du keine Probleme mit den bereits indexierten URLs.
So haben wir das bei unseren letzten Migrationen durchgeführt.
Hm, ich muss dieses Thema auch noch mal vorholen. So richtig funktioniert die Übernahme von alten SW5 URLs in SW6 leider nicht. Ich habe mir hierzu sogar ein eigenes Tool geschrieben, was die SEO-URLs von SW5 zu SW6 überträgt. Bei einfachen Produkten (ohne Varianten) alles kein Problem. Problem bereiten die Varianten!
Beispiel:
In SW5 Shop ware die URL so: www.meinShop/meinArtikel-12345
wenn man hier die Varianten umschaltet, dann bleibt die Haupturl und nur ein Parameter wird angehangen, also so:
Dieses Format kann ich aber nicht in SW6 übernehmen, zumindest machte der SW6 hier dann ein 404. Jetzt ist es allerdings so, dass jede URL in SW6 anders sein sein. Gleiche URLs werden nicht akzeptiert. Ich kann also bei den Varianten nicht die URL www.meinShop/meinArtikel-12345 verwenden.
Hat sich damit einer ausgibig beschäftigt? Wie habt ihr das denn gelöst?
Die 12345 ist die Shopware 5 Artikel-ID? In dem Fall habe ich in Shopware 5 ein Zusatzfeld migration_articleid angelegt und die SW5-ID darauf per SQL gemappt. Dann steht die SW5 Artikel-ID nach der Migrations über das Zusatzfeld in SW6 zur Verfügung.
Damit kannst du dann dein SEO-Template in SW6 entsprechend aufbauen, z.B.: {{ product.translated.name }}-{{ product.customFields.migration_articleid }}{% if product.parentId %}/{{ product.productNumber }}{% endif %}
Dann hat dein Hauptprodukt folgende URL:
www.meinShop/meinArtikel-12345
Und die Varianten entsprechend
www.meinShop/meinArtikel-12345/12345-1
www.meinShop/meinArtikel-12345/12345-2
www.meinShop/meinArtikel-12345/12345-3
Dann musst du nur noch ein Canonical-Tag setzen, damit die Varianten nicht als Duplicate Content erfasst werden. Dafür haben wir uns ein kleines Plugin geschrieben:
Die SW5-Varianten-URLs kannst du noch bei Bedarf per Rewrite auf die neuen weiterleiten. Und für neue Artikel (in denen das Zusatzfeld nicht gefüllt ist) halt entsprechend das SEO-Template mit einer if-Abfrage noch anpassen.
Oh mit SW5 noch nie zu tun gehabt? Hm, Ja es ist die Artikel-ID bei SW5.
Habe nun selber ein Tool geschrieben (was auch Canonical-Tag beachtet), wie ich bei Varianten die SEO-URL einstelle. Entspricht zwar nicht dem von SW5, was auch Google-Technisch schlecht ist, aber andere Lösung gibt es ja fast gar nicht.