Luca01 Posted March 24, 2015 Share Posted March 24, 2015 (edited) Hallo Foris, heute habe ich quasi den Tag mit der Kreation eines sql verbracht. Aufgrund der Frage nach den Keywords der Produkte hier -> Link habe ich mich mit dem Thema etwas näher beschäftigt. Die Prestashop-Leute haben im BO im Bereich des SEO der Produkte die Keywords-Eingabe ausgeblendet. Die Begründung ist, dass man für eine gutes SEO keine Keywords mehr braucht. Die Diskussion ist hier -> Link Man findet dort auch den Code um die Keywords wieder einzublenden. Die Prestashop Leute haben leider nur quick-and-dirty gearbeitet und die Eingabe der Keywords in BO für die Produkte einfach ausgeblendet. Mit der Folge, das beim Kopieren und auch beim CSV Import Keywords in die Datenbank eingetragen werden, aber nicht mehr im BO bearbeitet werden können. Bei mir hatte das Datenchaos zur Folge, weil ich Produkte für die Integration neuer Produkte über die Kopierfunktion kopiert habe. Bei diesen Produkten waren die alten Keywords hinterlegt. Nun möchte ich auf die Keywords nicht ohne weiteres verzichten. Darum habe ich an einem sql gebastelt, der sich Text aus unterschiedlichen Bereichen der Datenbank zusammen sucht und daraus individuelle Produkt-Keywords erschafft. Das Problem bei der Durchführung war, das es mysql nicht zulässt, dass man ein Update für eine Tabelle durchführt für die man gleichzeitig ein subselect laufen läßt. Die Lösung brachte diese Quelle -> Link Mein sql sieht jetzt so aus: UPDATE ps_product_lang as ch1 SET ch1.meta_keywords =(SELECT wort FROM (SELECT a.id_product as id_product, CONCAT (GROUP_CONCAT(" ", c.name), ", ", b.name,", ", (CASE WHEN e.meta_title IS NULL THEN 'noname' ELSE e.meta_title END), ", ", f.meta_keywords, ", ", 'Angebot', ", ", 'Onlineshop') as wort FROM ps_product_tag as a LEFT OUTER JOIN ps_product_lang as b ON a.id_product = b.id_product LEFT OUTER JOIN ps_tag as c ON a.id_tag = c.id_tag LEFT OUTER JOIN ps_product as d ON b.id_product = d.id_product LEFT OUTER JOIN ps_manufacturer_lang as e ON d.id_manufacturer = e.id_manufacturer LEFT OUTER JOIN ps_category_lang as f ON d.id_category_default = f.id_category GROUP BY a.id_product) as ch2 WHERE ch2.id_product = ch1.id_product)Weil ich hoffe das es einem Fori etwas Arbeit erspart, poste ich den sql mal hier. Bitte nicht einfach über die Datenbank laufen lassen, sondern individuell anpassen und testen. Auf jeden Fall finde ich die Subselect-Struktur sehr interessant (Danke an Thomas Wiedmann).Viele Grüße Edited March 24, 2015 by Luca01 (see edit history) 1 Link to comment Share on other sites More sharing options...
Wuschel Posted March 25, 2015 Share Posted March 25, 2015 (edited) Du kannst das Feld aber auch schnell wieder hervorzaubern, weil es nur auf "hide" gesetzt wurde: <admin-Verzeichnis>/themes/default/template/controllers/products/seo.tpl, Zeile 64: <div class="form-group hide"> ersetzen durch: <div class="form-group"> Den Tipp habe ich hier gefunden: https://www.prestashop.com/forums/topic/340124-keywords-field-for-products/?do=findComment&comment=1984250 Edited March 25, 2015 by Wuschel (see edit history) Link to comment Share on other sites More sharing options...
Magicalname Posted March 26, 2015 Share Posted March 26, 2015 Hey Luca, Dickes Like und danke fürs teilen Gruß Link to comment Share on other sites More sharing options...
Martijn++ Posted March 27, 2015 Share Posted March 27, 2015 Kein Effekt bei PS 1.6.0.11. Link to comment Share on other sites More sharing options...
Wuschel Posted March 27, 2015 Share Posted March 27, 2015 (edited) Hallo Luca, tut mir ja echt leid, aber ich kann vor diesem SQL-Statement nur warnen. In einem Testshop mit ca. 8.000 Produkten hat mir dein SQL-Statement vorhandene Keywords entweder komplett entfernt oder durch Unsinn (z.B. anderthalb Dutzend Wiederholungen des selben Begriffs, schön durch Komma separiert) ersetzt. War jetzt keine große Katastrophe, denn ich kann ja das Backup wieder einspielen, aber für Live-Shop ist das sicher nicht zu empfehlen, sondern wäre der reinste Albtraum. Ach so, dass war jetzt unter 1.5.6.2, aber unter 1.6.0.11 mit einer Handvoll Produkte lief es auch nicht besser. Woran es genau liegt, weiß ich leider auch nicht. Gruß Wuschel Edited March 27, 2015 by Wuschel (see edit history) Link to comment Share on other sites More sharing options...
Luca01 Posted March 27, 2015 Author Share Posted March 27, 2015 Hallo Wuschel, Bitte nicht einfach über die Datenbank laufen lassen, sondern individuell anpassen und testen. Weiste Bescheid, gell. Link to comment Share on other sites More sharing options...
Wuschel Posted March 27, 2015 Share Posted March 27, 2015 Hallo Wuschel, Weiste Bescheid, gell. Nee! Natürlich habe ich das individuell angepasst, denn so wäre es erst gar nicht gelaufen. Das ändert aber nichts an meiner Feststellung. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now