ARtikel URL in Datenbank

Hallo zusammen,

kann mir jemand sagen, ob die Artikel URL’s irgendo in der Datenbank gespeichert werden?

Danke

du findest alle seo-Urls in der Tabelle  s_core_rewrite_urls

 

Hach vielen Dank, das genau was ich gesucht habe. Eine Frage noch hast du ne Idee wo die Verknüpfung da zu den Artikeln ist?!? also s_core_rewrite_urls.id zu Artikel ist?? Oder besser gefragt gibt es da überhaupt eine?

Hi,

ja, es gibt eine Verknüpfung in der Spalte „org_path“: 

 

Nehmen wir etwa die letzte Zeile:

sViewport=detail&sArticle=26 || Genusswelten/Tees/und-so-weiter || 1 || 1

Bedeutet soviel wie: Die Url „deinshop.de/genusswelten/tees/und-so-weiter“ für den Shop 1 ist der Canonical Link („main=1“) für die technische URL controller=detail&sArticle=26. Darüber ist indirekt auch das Mapping zum Artikel vorhanden (ID = 26).

Eine „reine“ ID gibt es nicht: Die SEO-URL mappt immer auf eine technische URL, die zwar in der Regel aber nicht zwingend die ID beinhaltet. Etwas ausführlicher habe ich das alles mal hier beschrieben: The Shopware SEO engine

Besten Gruß,

Daniel

2 „Gefällt mir“

Vielen Vielen Dank für den ausführlichen Artikel.

Hallo Daniel,

ich versuche über einen SQL Select eine Übersicht aller „aktiven“ Produkte mit URL zum jeweiligen Produkt in einer HTML Tabelle auszugeben.

Die Problematik ist bei mir die Tabellenstruktur der Datenbank für die URLs. ( s_core_rewrite_urls ). Dort gibt es keinen Bezug zur jeweiligen ArtikelID in einer separaten Spalte, sondern nur als Wert in den jeweiligen Zeilen. Damit werden dann auch Aritkel angezeigt, die nicht aktiv sind. 

Man müsste doch besser in der Tabelle " s_core_rewrite_urls" die ArtikelID als Spalte hinterlegen oder in der Haupttabelle " s_article" die jeweilge URL-ID angeben, sodass diese verknüpft werden kann.

Wie bekomme ich das hin oder hat jemand einen anderen Workaround bzw. einen passenden SQL-Befehl?

Bisher habe ich das hier:

select concat('https://www.test.de/shop/de/', path) FROM `usr_p5496`.`s_core_rewrite_urls` WHERE `main` like 1 and `subshopID` like 1 and `org_path` like "%Article%"

Anbei ein Screenshot wie ich das meine.

Mal vor einiger Zeit damit rumgespielt, daher nur als Ansatzpunkt zu betrachten:

SELECT a.id, a.name, seo.path 
FROM s_articles a, s_core_rewrite_urls seo
WHERE a.id = REPLACE (seo.org_path, 'sViewport=detail&sArticle=', '') 
AND a.active = 1 
AND seo.main = 1 AND seo.org_path REGEXP ('sArticle') 
ORDER BY seo.id DESC

 

1 „Gefällt mir“

Danke @R4M - hier noch mit Artikelnummer…

SELECT a.id, a.name, d.ordernumber, seo.path
FROM s_articles a, s_core_rewrite_urls seo, s_articles_details d
WHERE a.id = REPLACE (seo.org_path, 'sViewport=detail&sArticle=', '') 
AND a.active = 1 
AND seo.main = 1 AND seo.org_path REGEXP ('sArticle') 
AND a.id = d.articleID
ORDER BY seo.id DESC