adriangb91 Posted April 27, 2016 Share Posted April 27, 2016 Hola, Resulta que cuando desactivo un producto sin stock en mi tienda, cuando escribo la URL en mi navegador me aparece un mensaje que dice "Producto no disponible", y en vez de ese mensaje de error me gustaría que me redireccionara a otra web como por ejemplo el home de mi tienda. Me gustaría destacar que necesitaría hacerlo de forma masiva ya que al ser artículos que me proporciona un dropshipper me sucede constantemente. Muchas gracias de ante mano. Link to comment Share on other sites More sharing options...
Code-Plus Posted April 27, 2016 Share Posted April 27, 2016 Buenas, para eso debes cambiar el campo de redirección en la ficha de producto. Masivamente en el sql: update ps_product set ps_product.redyrect_type=301; Si tienes contenido en ps_product_shop, también: update ps_product_shop set ps_product_shop.redyrect_type=301; No olvides hacer un backup de la Base de Datos!! Saludos! 1 Link to comment Share on other sites More sharing options...
adriangb91 Posted April 27, 2016 Author Share Posted April 27, 2016 Hola, Gracias por contestar, he estado realizando las consultas SQL en la base de datos pero aunque han cambiado los valores no me realiza la redirección ¿Debería de indicar en una tabla de la base de datos que contenga la información de los errores a donde quiero que se redirija cuando dispone de un error 301? o quizás ¿debería de tocar algún que otro parámetro? Link to comment Share on other sites More sharing options...
Code-Plus Posted April 28, 2016 Share Posted April 28, 2016 Buenas, el 301 no es un error, es una redirección a tu index si el producto está desactivado para mostrar. Asegúrate que en la ficha de producto aparece la redirección. Saludos Link to comment Share on other sites More sharing options...
adriangb91 Posted May 5, 2016 Author Share Posted May 5, 2016 Buenas, Al final pude solucionarlo con un script que desarrollé el cual me proporciona los artículos que tengo desactivados en mi tienda y que no están en stock para luego poder añadir esta información al fichero .htaccess para que me redireccione esos enlaces a la página de error 404. Esta es la consulta que me obtiene la información de los artículos desactivados: -- Script utilizado para proporcionar la url de los productos deshabilitados de nuestra tienda. SELECT URL.DOMAIN AS DOMINIO, URL.PHYSICAL_URI AS FISICA, IDI.ISO_CODE AS IDIOMA, LANG.LINK_REWRITE AS CATEGORIA , PRO.ID_PRODUCT AS ID , PRLANG.LINK_REWRITE AS ARTICULO, PRESTASHOP.PS_SHOP_URL AS NUM_TIENDA FROM PRESTASHOP.PS_PRODUCT PRO LEFT JOIN PRESTASHOP.PS_CATEGORY_LANG LANG ON PRO.ID_CATEGORY_DEFAULT = LANG.ID_CATEGORY LEFT JOIN PRESTASHOP.PS_LANG AS IDI ON LANG.ID_LANG = IDI.ID_LANG LEFT JOIN PRESTASHOP.PS_PRODUCT_LANG AS PRLANG ON PRO.ID_PRODUCT = PRLANG.ID_PRODUCT, PRESTASHOP.PS_SHOP_URL URL WHERE PRO.ACTIVE = 0 AND URL.ID_SHOP_URL = 1 AND (IDI.ISO_CODE = 'es' OR IDI.ID_LANG = 1); Y este es el fichero php que me informa de los artículos: <?php $bd ="base_de_datos"; $password = "xxx"; $user = "usuario"; $server = "servidor"; $mysqli = new mysqli($server,$user,$password,$bd); if ($mysqli->connect_errno) { echo "Fallo al conectar a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; } $consulta = "SELECT URL.DOMAIN AS DOMINIO, URL.PHYSICAL_URI AS FISICA, IDI.ISO_CODE AS IDIOMA, LANG.LINK_REWRITE AS CATEGORIA , PRO.ID_PRODUCT AS ID , PRLANG.LINK_REWRITE AS ARTICULO, URL.ID_SHOP_URL AS NUM_TIENDA FROM $bd.ps_product PRO LEFT JOIN $bd.ps_category_lang LANG ON PRO.ID_CATEGORY_DEFAULT = LANG.ID_CATEGORY LEFT JOIN $bd.ps_lang AS IDI ON LANG.ID_LANG = IDI.ID_LANG LEFT JOIN $bd.ps_product_lang AS PRLANG ON PRO.ID_PRODUCT = PRLANG.ID_PRODUCT, $bd.ps_shop_url URL WHERE PRO.ACTIVE = 0 AND URL.ID_SHOP_URL = 10 AND (IDI.ISO_CODE = 'es' OR IDI.ID_LANG = 1);"; if ($resultado = $mysqli->query($consulta)) { echo "Total de articulos afectados : ".$resultado->num_rows; echo "<br/><br/>"; while ($fila = mysqli_fetch_row($resultado)) { printf("RedirectMatch 301 %s%s%s/%s-%s.html /%s/index.php?controller=404 \n", $fila[0], $fila[1],$fila[2], $fila[4],$fila[5], $fila[0]); echo "<br>"; } /* liberar el conjunto de resultados */ $resultado->close(); } ?> 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