Jump to content

Επαναδημιουργία Friendly URL σε όλα μαζί τα προϊόντα


Prestan0ob
 Share

Recommended Posts

Έχω εισαγάγει τα προϊόντα από αρχείο csv. Οι τίτλοι προϊόντων ήταν στην ελληνική γλώσσα.  Mετά την εισαγωγή, το πεδίο Friendly URL είναι άδειο ή περιέχει μόνο αριθμούς και λατινικά όπως  /-baby-ML21321.html ενώ ο τίτλος είναι "παιδικό παντελόνι baby ML 21321 " Δεν περιλαμβάνονται δηλαδή οι ελληνικές λέξεις από τον τίτλο.
Έτσι πρέπει να ανοίξω όλα τα προϊόντα ένα προς ένα και να αναδημιουργήσω το φιλικό URL πατώντας το "Δημιουργήστε" ώστε το παραπάνω για παράδειγμα να γίνει /παιδικό-παντελόνι-baby-ML21321.html. Υπάρχει κάποιος τρόπος να τα επαναδημιουργήσω όλα μαζί;

Έψαξα για Modules και για scripts αλλά δεν υπάρχει κάτι σχετικό.

Edited by Prestan0ob (see edit history)

Share this post


Link to post
Share on other sites

Θα μπορούσες να το κάνεις στην βάση.

select 
pl.name,
replace(lower(pl.name),' ','-') as link_rewrite
from ps_product_lang as pl
where pl.id_lang = '2'

Με το παραπάνω μπορείς να δεις για κάθε προϊόν το link rewrite που θα μπει (όπου id_lang βάζεις για την γλώσσα που σε ενδιαφέρει).

Το μόνο που κάνει είναι το lower και replace τα κενά με παύλα.

Αλλά να ξέρεις το παραπάνω θα παίξει σωστά μόνο αν δεν έχει περίεργους  χαρακτήρες στα ονόματα των προϊόντων (#,%,',",/,\,  κτλ).

Αν έχεις κάποιων χαρακτήρα συχνά μπορείς να βάλεις μερικά ακόμη replace. π.χ. για το #

select 
pl.name,
replace(replace(lower(pl.name),' ','-'),'#','') as link_rewrite
from ps_product_lang as pl
where pl.id_lang = '2'

 

Κανονικά θέλει ένα regular expression σε  μερικά replace , squeeze repeats και trim σε κενό ή τα κενά και στο τέλος ένα replace το κενό με παύλα.

Αν μου πεις τι DB έχεις (mariaDB, Mysql) θα μπορούσα να στο κάνω και με regular expression.

Τρέξε το παραπάνω και αν δεν έχεις πολλά προϊόντα με αυτούς τους χαρακτήρες τρέχε το παρακάτω για το εφαρμόσεις και μετά διορθώνεις τα συγκεκριμένα προϊόντα με το χέρι.

update ps_product_lang as pl
set link_rewrite = replace(lower(pl.name),' ','-')
where pl.id_lang = '2'

Στο set θα βάλεις το τελικό replace που έχεις κατασταλάξει.

Υ.Γ. Γενικός αλλαγές στο link rewrite θα πρέπει να ξέρεις τι κάνεις ώστε να μην χάσεις πάρα πολύ από το google rank που έχεις.

 

 

Share this post


Link to post
Share on other sites

Ευχαριστώ πολύ φίλε μου. Ήμουν έτοιμος να αγοράσω ενα module αλλά δεν ήμουν σίγουρος εαν θα δούλευε στα Ελληνικά https://codecanyon.net/item/prestashop-tidy/18965736?ref=GreenMouseStudio . Θα δοκιμάσω το query σου και επανέρχομαι! Βάση δεδομένων έχω MariaDB και απο χαρακτήρες έχω μόνο ) και ( και ίσως και -

 

Edited by Prestan0ob (see edit history)

Share this post


Link to post
Share on other sites

Ευχαριστώ πολύ το δοκίμασα και δουλεύει σωστά. Μου εμφανίζει τα αποτελέσματα αλλά δεν εφαρμίζει τις αλλαγές στο Link_rewrite. Τι πρέπει να κάνω;

Share this post


Link to post
Share on other sites

  • 1 year later...
13 hours ago, kotheodr said:

είναι εύκολο να εξηγήσετε πως μπορεί να γίνει αυτό.

Κάθε περίπτωση δεν είναι ίδια. Πες μας τι ακριβός θέλεις να κάνεις?

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More