MD85 Posted December 27, 2018 Share Posted December 27, 2018 (edited) Buenos días, He estado buscando pero no encuentro solución. Tengo una web en Prestashop 1.5 y estoy realizando otra en Prestashop 1.7. Mi sorpresa es que las urls de las combinaciones de producto no se pueden configurar como en Prestashop 1.5. Quedando en la nueva versión del siguiente modo: mitienda/es/159-199-producto.html#/66-combinacion-de-producto Cuando realmente quiero que se quede: mitienda/es/159-producto.html#/combinacion-de-producto_ Espero que me puedan ayudar, muchas gracias. Edited August 17, 2022 by MD85 (see edit history) Link to comment Share on other sites More sharing options...
Fran Ramírez Posted December 28, 2018 Share Posted December 28, 2018 Buenas tardes, tendrías que irte a "Parámetros de la tienda > Seo y URLs" , tienes que hacer scroll y bajar hasta "Formatos de Enlaces" Hay se cambian las urls. He estado haciendo pruebas y cambiando la sintaxis de los productos, lo máximo que he conseguido es esto {id}-{rewrite}.html{id_product_attribute} cuando la sintaxis que trae por defecto prestashop 1.7 es {category:/}{id}{-:id_product_attribute}-{rewrite}{-:ean13}.html Si buscas información sobre diferencia entre "Formatos de Enlaces" de prestashop 1.5 y 1.7 quizas encuentres la solución. Si encuentro un hueco intento terminartelo. 1 Link to comment Share on other sites More sharing options...
Fran Ramírez Posted December 28, 2018 Share Posted December 28, 2018 He encontrado este modulo que quizas te valga: https://victor-rodenas.com/eliminar-el-id-de-la-url-en-prestashop/ 1 Link to comment Share on other sites More sharing options...
Fran Ramírez Posted December 29, 2018 Share Posted December 29, 2018 He probado el módulo y parece que no funciona con las ultimas versiones de prestashop 1.7. En el post de Victor Rodenas hay dos enlaces a módulos que solventan el problema de los id en las urls. Aunque supongo que habrá muchos más. https://www.psitsolution.com/prestashop-seo-clean-urls/es/ https://codecanyon.net/item/prestashop-seo-friendly-url-module/16070024?irgwc=1&clickid=y6URRv0IoxyJWTZ0RFzYkRCrUkgWYUQe5Rtf0Q0&iradid=275988&irpid=1312355&iradtype=ONLINE_TRACKING_LINK&irmptype=mediapartner&mp_value1=&utm_campaign=af_impact_radius_1312355&utm_medium=affiliate&utm_source=impact_radius En tu caso quieres quitar los id de las categorías y de los atributos, no se si los módulos permiten esto. De todos modos aunque instales un módulo supongo que tendras que modificar la sintaxis del "Formatos de Enlaces" para adaptarlo a lo que tu quieres. 1 Link to comment Share on other sites More sharing options...
MD85 Posted January 2, 2019 Author Share Posted January 2, 2019 (edited) Buenas tardes Fran, Muchas gracias por la información. Claro, no puedo borrar todas las id porque mis urls tienen id (mitienda/es/159-producto.html#/combinacion-de-producto_), en Prestashop 1.7 lo que tienen es id duplicada en el producto + id en la combinación (mitienda/es/159-199-producto.html#/66-combinacion-de-producto). Ni tampoco se puede formular la url con el formato que uno quiera. Lo que necesito es poder darle a las urls de combinaciones el formato que antes tenía en Prestashop 1.5. Espero que me podáis ayudar, es muy importante tengo mi web creada e indexada en Prestashop 1.5. Gracias. Un saludo. Edited June 9, 2021 by MD85 (see edit history) Link to comment Share on other sites More sharing options...
gusman126 Posted January 2, 2019 Share Posted January 2, 2019 Creo que no se puede, no se exactamente desde que version . He probado muchos modulos de reescritura de url y no recuerdo que en ninguno lo puedas hacer. Otra cosa seria añadir un override para que no lo hiciera. siempre y cuando se pudiera. Prueba a añadir esta misma pregunta en el apartado ingles , a ver si ahi te pueden ayudar mejor. Puede que al final vas a tener que hacer un fichero tipo sitemap para añadirlo al htaccess y redirigir las URL viejas a las nuevas. 1 Link to comment Share on other sites More sharing options...
Fran Ramírez Posted January 3, 2019 Share Posted January 3, 2019 Hola Sara, Que versión de prestashop 1.7 Tienes? Es que de una a otra varía. 1 Link to comment Share on other sites More sharing options...
Fran Ramírez Posted January 3, 2019 Share Posted January 3, 2019 Hola de nuevo Sara, He estado mirando y : - el "199" es la posición del atributo o combianción y se puede eliminar sin problema. - el "66" es el id del atributo y solo se puede eliminar cambiando el código fuente (que no se como se hace) o instalando un módulo para eliminarlo. Hay muchos módulos para esto, si buscas en google "eliminar id en url prestashop 1.7" te salrá un monton de resultados de módulos y videos explicativos. No se puede hacer de otra manera. Te recomiendo que antes de comprar uno, contactes con el vendedor y le preguntas que solo quieres eliminar el número de la posicción del atributo (en tu ejemplo "199") y el id del atributo (en tu ejemplo "66"). Si te contestan es que tienen un buen servicio al cliente que es importatísimo por si tienes algun problema. Te dejo un link del video de uno de estos módulos para que veas como actuan estos módulos: Si te gusta te dejo el para que contactes con la empresa, aunque ya tee he dicho que hay muchos, investiga y compra el que mas te guste. https://www.sunnytoo.com/product/prestashop-removing-ids-urls-module-seo-friendly?wpam_id=1 2 Link to comment Share on other sites More sharing options...
Fran Ramírez Posted January 3, 2019 Share Posted January 3, 2019 Ah, se me olvidaba, comprueba que las urls de las categorías y páginas cms como "contacte con nosotros" y demás tengan la misma extructura quee la de tu prestashop 1.5. Por otro lado, en el apartado Internacional>Localización pestaña Geolocalización, no actives la "geolocalización por ip" porque da errores 503 y tampoco restringas ningun país porque el robot de google puede estar en cualquier país. 1 Link to comment Share on other sites More sharing options...
MD85 Posted January 24, 2019 Author Share Posted January 24, 2019 Hola Fran, La versión es la 1.7.3.3, el {-:id_product_attribute} no se puede borrar del apartado SEO y URLS. Muchas gracias. Link to comment Share on other sites More sharing options...
enriquetortola Posted January 24, 2019 Share Posted January 24, 2019 Yo estoy teniendo el mismo problema.... y lo peor de todo es que no me está indexando las URL de los productos....😪😪😪 Espero que se pueda encontrar alguna solución a esto porque es un paso atras para prestashop... Link to comment Share on other sites More sharing options...
enriquetortola Posted January 24, 2019 Share Posted January 24, 2019 Dejo el tema en el cual nombro basicamente el mismo problema.https://www.prestashop.com/forums/topic/953361-productos-con-doble-id-no-indexan-en-google/ Espero que nos puedan ayudar... 1 Link to comment Share on other sites More sharing options...
MD85 Posted March 13, 2019 Author Share Posted March 13, 2019 (edited) ¿Alguien sabe como cambiar las estructuras de las urls desde código? Me da igual que las urls que no sean combinaciones tengan ids. Tengo urls indexadas y quiero lo más sencillo para que las urls de las combinaciones sean como en versiones anteriores. En la actualidad está así {id}{-:id_product_attribute}-{rewrite}{-:ean13}.html y la quiero dejar así {id}-{rewrite}{-:ean13}.html, quiero eliminar {-:id_product_attribute} Necesitamos ayuda, gracias. Edited March 13, 2019 by MD85 (see edit history) Link to comment Share on other sites More sharing options...
burrots Posted March 14, 2019 Share Posted March 14, 2019 si q se puede. mira este ps 1.7 https://www.xtremegrow.com/armario-cultivo-cultibox-light#/109-tamano-60_x_60_x_140_cm https://www.xtremegrow.com/armario-cultivo-cultibox-light#/111-tamano-80_x_80_x_160_cm con esto agrego la combinacion a la url, esero q sirva export function checkUrl() { let original_url = window.location + ''; let first_url_check = true; if (original_url != window.location || first_url_check) { let first_url_check = false; let url = window.location + ''; // if we need to load a specific combination if (url.indexOf('#/') != -1) { // get the params to fill from a "normal" url let params = url.substring(url.indexOf('#') + 1, url.length); let tabParams = params.split('/'); let tabValues = []; if (tabParams[0] == '') tabParams.shift(); let len = tabParams.length; for (let i=0; i<len; i++) { tabParams[i] = tabParams[i].replace('/', '-'); tabValues.push(tabParams[i].split('-')); } return tabValues; } return; } 1 Link to comment Share on other sites More sharing options...
MD85 Posted March 14, 2019 Author Share Posted March 14, 2019 Gracias por la ayuda, pero no serviría ya que la combinación sigue apareciendo en la url y con id. Necesito que la url del producto con combinación sea www.miweb.com/es/152-producto.html y cuando seleccionas combinaciones www.miweb.com/es/152-producto.html#/combinacion Gracias Link to comment Share on other sites More sharing options...
burrots Posted March 15, 2019 Share Posted March 15, 2019 On 1/24/2019 at 1:30 PM, enriquetortola said: Dejo el tema en el cual nombro basicamente el mismo problema.https://www.prestashop.com/forums/topic/953361-productos-con-doble-id-no-indexan-en-google/ Espero que nos puedan ayudar... claro q no indexan, solo indexa la canonica. eso no es problema y es como debe ser Link to comment Share on other sites More sharing options...
burrots Posted March 15, 2019 Share Posted March 15, 2019 (edited) 13 hours ago, MD85 said: Gracias por la ayuda, pero no serviría ya que la combinación sigue apareciendo en la url y con id. Necesito que la url del producto con combinación sea www.miweb.com/es/152-producto.html y cuando seleccionas combinaciones www.miweb.com/es/152-producto.html#/combinacion Gracias pr vamos a ver, que mas da q salgan las ids en las combinaciones si esas urls no se indexan. Porque motivo quieres quitar las ids del trozo de las combioanciones en la url? Edited March 15, 2019 by burrots (see edit history) 1 Link to comment Share on other sites More sharing options...
MD85 Posted March 18, 2019 Author Share Posted March 18, 2019 On 3/15/2019 at 2:13 AM, burrots said: pr vamos a ver, que mas da q salgan las ids en las combinaciones si esas urls no se indexan. Porque motivo quieres quitar las ids del trozo de las combioanciones en la url? Muchas gracias, puede ser una solución. Lo que me choca es que cuando eliges un producto la url ya aparece con la combinación, ¿se podría hacer para que no apareciera la combinación por defecto? ¿Me puedes decir la ruta para agregar o modificar el código? Mil gracias. Link to comment Share on other sites More sharing options...
burrots Posted March 18, 2019 Share Posted March 18, 2019 solo por curiosidad? pk kieres k al entrar el producto lo haga sin la combiancion en la url? Link to comment Share on other sites More sharing options...
MD85 Posted March 18, 2019 Author Share Posted March 18, 2019 1 hour ago, burrots said: solo por curiosidad? pk kieres k al entrar el producto lo haga sin la combiancion en la url? Veo la url mucho más limpia, las urls son muy largas, cuando alguien copie y pegue la url esta copiando la url de una combinación no del producto... Pero sino se puede agradecería que me dijeras donde tengo que incluir o modificar el código ya que lo quiero emplear. Gracias de nuevo. Link to comment Share on other sites More sharing options...
gusman126 Posted March 18, 2019 Share Posted March 18, 2019 hace 48 minutos, MD85 dijo: Veo la url mucho más limpia, las urls son muy largas, cuando alguien copie y pegue la url esta copiando la url de una combinación no del producto... Pero sino se puede agradecería que me dijeras donde tengo que incluir o modificar el código ya que lo quiero emplear. Gracias de nuevo. Añade productos independientes, sin combinaciones, se acabo el problema de ids en la url. Fuera coñas, si un producto tiene combinaciones se deben mostrar o el sistema es imposible que sepa que combinación quiere el comprador. Quieres mostrar un producto con combinaciones sin la url de la combinacion, recuerda que siempre hay una por defecto, no se puede o cada vez que entre un posible cliente al añadir al carrito dara error porque no hay una combinacion "elegida" al leer ese dato de la url. Que al copiar y pegar es larga la URL, prueba a copiar una de Amazon y veras lo que son url largas SEO y URL limpias y cortas-> personalmente creo que se toma muy en serio esto, si lo quieres totalmente limpio, productos independientes y que solo puedan comprar 1 color o 1 talla, si quieren tener otro color o talla añade enlace al otro producto independiente y que visiten el otro producto y lo compren. Link to comment Share on other sites More sharing options...
burrots Posted March 18, 2019 Share Posted March 18, 2019 58 minutes ago, gusman126 said: Añade productos independientes, sin combinaciones, se acabo el problema de ids en la url. Fuera coñas, si un producto tiene combinaciones se deben mostrar o el sistema es imposible que sepa que combinación quiere el comprador. Quieres mostrar un producto con combinaciones sin la url de la combinacion, recuerda que siempre hay una por defecto, no se puede o cada vez que entre un posible cliente al añadir al carrito dara error porque no hay una combinacion "elegida" al leer ese dato de la url. Que al copiar y pegar es larga la URL, prueba a copiar una de Amazon y veras lo que son url largas SEO y URL limpias y cortas-> personalmente creo que se toma muy en serio esto, si lo quieres totalmente limpio, productos independientes y que solo puedan comprar 1 color o 1 talla, si quieren tener otro color o talla añade enlace al otro producto independiente y que visiten el otro producto y lo compren. en ps 1.7 si peudes tener una url sin combinacion aunque el producto tenga. Mira ejemplo demo 1.7 http://fo.demo.prestashop.com/es/art/3-the-best-is-yet-to-come-framed-poster.html esta seria la caninca del prodcto id 3, que si accedes te hara un 301 hacia la url x defecto, en este caso: http://fo.demo.prestashop.com/es/art/3-13-the-best-is-yet-to-come-framed-poster.html Saludos 1 Link to comment Share on other sites More sharing options...
gusman126 Posted March 18, 2019 Share Posted March 18, 2019 Ok, a lo de canonica, ira directo a la combinación por defecto. al cambiar a otras combinaciones vuelve a aparecer la url de combinación y si pones la combinaciñón por defecto seguira mostrando la url. Aunque lo dicho, no controlo el SEO de URLs pero en muchas ocasiones las url limpias son mas para direcciones de servicios o entradas en el blog que para productos. no es un mensaje de SEO por lo que se puede hacer un tema de esto y no seguir contestando aqui. Link to comment Share on other sites More sharing options...
burrots Posted March 18, 2019 Share Posted March 18, 2019 1 hour ago, gusman126 said: Aunque lo dicho, no controlo el SEO de URLs pero en muchas ocasiones las url limpias son mas para direcciones de servicios o entradas en el blog que para productos. no es un mensaje de SEO por lo que se puede hacer un tema de esto y no seguir contestando aqui. Totalmente de acuerdo, lo d quitar ids es mas una pijeria q nada mas. importa mas q haya keywords en las urls y sean cortas q tengan o no ids 1 Link to comment Share on other sites More sharing options...
Aghnaya Posted March 19, 2019 Share Posted March 19, 2019 On 1/3/2019 at 3:21 PM, Fran Ramírez said: Hola de nuevo Sara, He estado mirando y : - el "199" es la posición del atributo o combianción y se puede eliminar sin problema. - el "66" es el id del atributo y solo se puede eliminar cambiando el código fuente (que no se como se hace) o instalando un módulo para eliminarlo. Hay muchos módulos para esto, si buscas en google "eliminar id en url prestashop 1.7" te salrá un monton de resultados de módulos y videos explicativos. No se puede hacer de otra manera. Te recomiendo que antes de comprar uno, contactes con el vendedor y le preguntas que solo quieres eliminar el número de la posicción del atributo (en tu ejemplo "199") y el id del atributo (en tu ejemplo "66"). Si te contestan es que tienen un buen servicio al cliente que es importatísimo por si tienes algun problema. Te dejo un link del video de uno de estos módulos para que veas como actuan estos módulos: Si te gusta te dejo el para que contactes con la empresa, aunque ya tee he dicho que hay muchos, investiga y compra el que mas te guste. https://www.sunnytoo.com/product/prestashop-removing-ids-urls-module-seo-friendly?wpam_id=1 Muchísimas gracias @Fran Ramírez! Por chafardear me llevo algo muy bueno que no tenía ni idea de que se podía hacer. Implementado y funcionando, muy fácil. Incluso para un inexperto como yo. Gracias! Link to comment Share on other sites More sharing options...
MD85 Posted March 19, 2019 Author Share Posted March 19, 2019 On 3/14/2019 at 2:07 AM, burrots said: si q se puede. mira este ps 1.7 https://www.xtremegrow.com/armario-cultivo-cultibox-light#/109-tamano-60_x_60_x_140_cm https://www.xtremegrow.com/armario-cultivo-cultibox-light#/111-tamano-80_x_80_x_160_cm con esto agrego la combinacion a la url, esero q sirva export function checkUrl() { let original_url = window.location + ''; let first_url_check = true; if (original_url != window.location || first_url_check) { let first_url_check = false; let url = window.location + ''; // if we need to load a specific combination if (url.indexOf('#/') != -1) { // get the params to fill from a "normal" url let params = url.substring(url.indexOf('#') + 1, url.length); let tabParams = params.split('/'); let tabValues = []; if (tabParams[0] == '') tabParams.shift(); let len = tabParams.length; for (let i=0; i<len; i++) { tabParams[i] = tabParams[i].replace('/', '-'); tabValues.push(tabParams[i].split('-')); } return tabValues; } return; } Hola, ¿Me puedes decir donde incluir ese código? Gracias. Link to comment Share on other sites More sharing options...
burrots Posted March 19, 2019 Share Posted March 19, 2019 Quote Hola, ¿Me puedes decir donde incluir ese código? Gracias. En ES6 creo la clase para exportar como decia antes export function checkUrl() { let original_url = window.location + ''; let first_url_check = true; if (original_url != window.location || first_url_check) { let first_url_check = false; let url = window.location + ''; // if we need to load a specific combination if (url.indexOf('#/') != -1) { // get the params to fill from a "normal" url let params = url.substring(url.indexOf('#') + 1, url.length); let tabParams = params.split('/'); let tabValues = []; if (tabParams[0] == '') tabParams.shift(); let len = tabParams.length; for (let i=0; i<len; i++) { tabParams[i] = tabParams[i].replace('/', '-'); tabValues.push(tabParams[i].split('-')); } return tabValues; } return; } Luego en product.js Importamos class y creamos funcion q haga el cambio de combinación si la detecta en la url import {checkUrl} from './components/common'; function checkurl() { let checkurl = checkUrl(); if (checkurl) { $('.product-variants select option').attr('selected', false); $('.product-variants [type="radio"]').attr('checked', false); $(checkurl).each((i, el) => { $('.product-variants select option[value="' + el[0] + '"]').attr('selected', true); $('.product-variants [type="radio"][value="' + el[0] + '"]').attr('checked', true) }); $("input[name$='refresh']").click(); } } Y lo inicimos asi: $(document).ready(function () { checkurl() }); Suerte Link to comment Share on other sites More sharing options...
MD85 Posted March 25, 2019 Author Share Posted March 25, 2019 (edited) Buenos días, Llevo unos días intentándolo pero no se modifica nada. El primer código lo incluyo en el archivo common El segundo código en la parte superior de product.js y el checkrul en el apartado que se indica pero no hay manera. ¿Es así? Muchas gracias. Edited March 25, 2019 by MD85 (see edit history) Link to comment Share on other sites More sharing options...
burrots Posted March 25, 2019 Share Posted March 25, 2019 2 hours ago, MD85 said: Buenos días, Llevo unos días intentándolo pero no se modifica nada. El primer código lo incluyo en el archivo common El segundo código en la parte superior de product.js y el checkrul en el apartado que se indica pero no hay manera. ¿Es así? Muchas gracias. compilas con webpack? esa es la manera en q lo tengo yo... pr si no utilzas webpack debes utilzar js tradicional e incluir todo eso en el custom.js Link to comment Share on other sites More sharing options...
MD85 Posted March 25, 2019 Author Share Posted March 25, 2019 (edited) He incluido dicho código en custom.js y tampoco, o ¿es hacer un módulo? No tengo conocimientos para eso. Aparece en las combinaciones ese error y la url no se modifica, es más ahora no se ven las combinaciones aparece el error: ContextErrorException in smarty_internal_templatebase.php(157) : eval()'d code line 39:Notice: Undefined index: id_lang Si desactivo el modulo relatedfree se ven las combinaciones, pero necesito tenerlo activado he tenido que meter todos los productos relacionados a mano. Ahora si que necesito ayuda, es un gran problema. Edited March 25, 2019 by MD85 (see edit history) Link to comment Share on other sites More sharing options...
burrots Posted March 25, 2019 Share Posted March 25, 2019 q raro. No tendras modo errores activado. busca en algun tpl del modulo ese la variable y prueba a cambiarla por esto {$this->context->language->id} Suerte 1 Link to comment Share on other sites More sharing options...
MD85 Posted March 26, 2019 Author Share Posted March 26, 2019 9 hours ago, burrots said: q raro. No tendras modo errores activado. busca en algun tpl del modulo ese la variable y prueba a cambiarla por esto {$this->context->language->id} Suerte Si, ya está solucionado. He reiniciado el servidor y quitado el modo debug y se ha solucionado, vaya susto. ¿Pero tu solución es crear un módulo o solamente incluirlo en esos archivos? Gracias. Link to comment Share on other sites More sharing options...
burrots Posted March 26, 2019 Share Posted March 26, 2019 6 hours ago, MD85 said: Si, ya está solucionado. He reiniciado el servidor y quitado el modo debug y se ha solucionado, vaya susto. ¿Pero tu solución es crear un módulo o solamente incluirlo en esos archivos? Gracias. relamente el problema sigue existiendo pero te funciona al desactivar debug, no sera algo grave... lo q te decia era para implementar en el theme, en custom.js, pero tambien te faltaria la parte de modificar las llamadas ajax en el controller para enviarle la id_attribute, modifcar getproductlink para q te las saque con el anchor, etc. Lo veo muy lioso para ti Creo q hay modulos q te sacan las ids d las combinaciones. Aunque repito, veo q estas perdiendo energias y tiempo en un tema q tiene 0 repercusion en trafico y posicionameinto. Suerte 1 Link to comment Share on other sites More sharing options...
gusman126 Posted March 26, 2019 Share Posted March 26, 2019 hace 5 minutos, burrots dijo: Aunque repito, veo q estas perdiendo energias y tiempo en un tema q tiene 0 repercusion en trafico y posicionameinto. Por ahora la mejor respuesta a todo el mensaje. Link to comment Share on other sites More sharing options...
MedinaAJ Posted January 5, 2021 Share Posted January 5, 2021 Hola a todos. Un cliente tenía la URL con este formato {id}{-:id_product_attribute}-{rewrite}{-:ean13}.html y me ha pedido que lo deje en este formato {id}-{rewrite}{-:ean13}.html . Ya tengo la solución para eliminar el id_product_attribute, pero no soy capaz de hacer una redirección 301 en el .htaccess desde la url que incluye el ID del atributo a la nueva URL. ¿Alguien sabría como implementar esta regla? Un saludo. 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