monicaamb Posted February 10, 2023 Share Posted February 10, 2023 Hola. Veo que PrestaShop te exporta algunos datos pero me faltan esos dos. ¿Cómo puedo obtenerlos? Muchas gracias de antemano Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted February 12, 2023 Share Posted February 12, 2023 Haciendo una consulta directamente a la BD. Ambos datos están en la tabla product_lang. NOTA: Lo que obtendrás es la URL de reescritura. La URL final del producto depende de varios factores, entre ellos la categoría por defecto asociada, por tanto no es posible obtenerlo desde la BD. Pero si no te interesa la URL final sino que solo quieres un link de acceso directo al producto puedes usar el formato de URL que se usa cuando no están activas las URL amigables. Esa nunca falle y hace un redireccionamiento automático a la URL final. Link to comment Share on other sites More sharing options...
monicaamb Posted February 12, 2023 Author Share Posted February 12, 2023 6 hours ago, PrestaAlba said: Haciendo una consulta directamente a la BD. Ambos datos están en la tabla product_lang. NOTA: Lo que obtendrás es la URL de reescritura. La URL final del producto depende de varios factores, entre ellos la categoría por defecto asociada, por tanto no es posible obtenerlo desde la BD. Pero si no te interesa la URL final sino que solo quieres un link de acceso directo al producto puedes usar el formato de URL que se usa cuando no están activas las URL amigables. Esa nunca falle y hace un redireccionamiento automático a la URL final. Hola, gracias por la repuesta. He realizado la siguiente consulta para obtener los links y ha funcionado. Sin embargo, me gustaría que se mostrasen en el orden que se me ha descargado la lista de productos desde Prestashop (del más reciente al más antiguo). ¿Habría alguna forma de indicarlo en la consulta? SELECT CONCAT( 'http://https://lavidarosa.es/', l.`iso_code` , '/', cl.`link_rewrite` , '/', pl.`link_rewrite` , '-', p.`id_product` , '.html' ) AS ProductURL FROM `pscv_product` p LEFT JOIN `pscv_product_lang` pl ON pl.`id_product` = p.`id_product` LEFT JOIN `pscv_lang` l ON l.`id_lang` = pl.`id_lang` LEFT JOIN `pscv_category_lang` cl ON cl.`id_category` = p.`id_category_default` WHERE p.`active` =1 Gracias de antemano Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted February 13, 2023 Share Posted February 13, 2023 Lo puedes ordenar como gustes. De acuerdo a su orden de creación descendentemente sería agregando al final de tu consulta: ORDER BY p.id_product DESC Link to comment Share on other sites More sharing options...
monicaamb Posted February 13, 2023 Author Share Posted February 13, 2023 43 minutes ago, PrestaAlba said: Lo puedes ordenar como gustes. De acuerdo a su orden de creación descendentemente sería agregando al final de tu consulta: ORDER BY p.id_product DESC Muchísimas gracias Link to comment Share on other sites More sharing options...
monicaamb Posted February 14, 2023 Author Share Posted February 14, 2023 On 2/13/2023 at 4:23 PM, monicaamb said: Muchísimas gracias Hola de nuevo, discúlpame pero no consigo obtener la columna de la Descripción del producto. Esta es mi actual consulta en la cual no está la descripción: SELECT SQL_CALC_FOUND_ROWS p.`id_product` AS `id_product`, p.`reference` AS `reference`, sa.`price` AS `price`, p.`id_shop_default` AS `id_shop_default`, p.`is_virtual` AS `is_virtual`, pl.`name` AS `name`, pl.`link_rewrite` AS `link_rewrite`, sa.`active` AS `active`, shop.`name` AS `shopname`, image_shop.`id_image` AS `id_image`, cl.`name` AS `name_category`, 0 AS `price_final`, pd.`nb_downloadable` AS `nb_downloadable`, sav.`quantity` AS `sav_quantity`, IF(sav.`quantity`<=0, 1, 0) AS `badge_danger` FROM `pscv_product` p LEFT JOIN `pscv_product_lang` pl ON (pl.`id_product` = p.`id_product` AND pl.`id_lang` = 2 AND pl.`id_shop` = 1) LEFT JOIN `pscv_stock_available` sav ON (sav.`id_product` = p.`id_product` AND sav.`id_product_attribute` = 0 AND sav.id_shop = 1 AND sav.id_shop_group = 0 ) JOIN `pscv_product_shop` sa ON (p.`id_product` = sa.`id_product` AND sa.id_shop = 1) LEFT JOIN `pscv_category_lang` cl ON (sa.`id_category_default` = cl.`id_category` AND cl.`id_lang` = 2 AND cl.id_shop = 1) LEFT JOIN `pscv_category` c ON (c.`id_category` = cl.`id_category`) LEFT JOIN `pscv_shop` shop ON (shop.id_shop = 1) LEFT JOIN `pscv_image_shop` image_shop ON (image_shop.`id_product` = p.`id_product` AND image_shop.`cover` = 1 AND image_shop.id_shop = 1) LEFT JOIN `pscv_image` i ON (i.`id_image` = image_shop.`id_image`) LEFT JOIN `pscv_product_download` pd ON (pd.`id_product` = p.`id_product`) WHERE (1 AND state = 1) ORDER BY `name` desc, `id_product` asc LIMIT 0, 20 ; Link to comment Share on other sites More sharing options...
ExpertoPrestaShop Posted February 14, 2023 Share Posted February 14, 2023 Los campos son description y description_short. Solo tienes que incluirlos en el SELECT. Si quieres aprender a optimizar tu BD y además obtener un modulo gratuito que hace el 80% del trabajo, te dejo este video tutorial: Saludos 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