martes, 29 de octubre de 2013

Reparar el orden de los productos en categorías en Prestashop 1.4


CREATE TABLE `ps_category_product_new` (
  `id_category` int(10) unsigned NOT NULL,
  `id_product` int(10) unsigned NOT NULL,
  `position` int(10) unsigned NOT NULL default '0',
  UNIQUE KEY `category_product_uniq` (`id_category`,`id_product`),
  UNIQUE KEY `category_product_index` (`id_category`,`id_product`),
  KEY `id_product` (`id_product`),
  KEY `position` (`position`,`id_category`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


INSERT INTO
    `ps_category_product_new`
SELECT
    id_category, id_product, row 
FROM 
(
    SELECT
        id_category, id_product, 
        @row := IF(@base = id_category, @row+1, 1) as row, @base := id_category as b 
    FROM
        (
            SELECT 
                cp.id_category, cp.id_product, pl. name
            FROM
                ps_category_product cp 
            LEFT JOIN
                ps_product_lang pl
            USING
                (id_product) 
            WHERE
                id_lang = 3
            ORDER BY 
                id_category, position
        ) AS s,
        (SELECT @row := 1, @base = 0) AS r
) as t;

No hay comentarios:

Publicar un comentario