2bigin Posted April 17, 2012 Share Posted April 17, 2012 Bonjour, Je désespère un peu ... En effet, je suis en train d'essayer de développer l'affichage de mes produits sur les catégories par déclinaison. En gros, si j'ai un produit avec trois déclinaisons, j'aimerais que sur la catégorie, ça s'affiche en trois produits distincts. L'idée est de pouvoir ensuite via les catégories, ajouter au panier chacun des produits indépendamment et donc rapidement. SELECT p.*, pa.`id_product_attribute`, al.`name` AS attr_name, pl.`description`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`, cl.`name` AS category_default, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new, (p.`price` * IF(t.`rate`,((100 + (t.`rate`))/100),1)) AS orderprice FROM `'._DB_PREFIX_.'category_product` cp LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON p.`id_product` = pa.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.id_product_attribute = pa.id_product_attribute LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (al.id_attribute = pac.id_attribute AND al.id_lang = '.intval($id_lang).') LEFT JOIN `'._DB_PREFIX_.'attribute` a ON a.id_attribute = pac.id_attribute LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (p.`id_category_default` = cl.`id_category` AND cl.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group` AND tr.`id_country` = '.(int)Country::getDefaultCountryId().' AND tr.`id_state` = 0) LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`) LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` LEFT JOIN `'._DB_PREFIX_.'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group` WHERE cp.`id_product` = pa.`id_product` AND cp.`id_category` = '.(int)($this->id).($active ? ' AND p.`active` = 1' : '').' '.($id_supplier ? 'AND p.id_supplier = '.(int)$id_supplier : ''); Actuellement, ça affiche bien chacun produit mais ça n'associe par les déclinaisons ensemble, donc je pense être sur la bonne voie quand même Je continue de mon côté à chercher comment mettre plus clairement ma requête et la finaliser, mais si quelqu'un connait déjà l'astuce, ça me permettra d'avancer un poil plus rapidement. En vous remerciant vivement par avance ! Link to comment Share on other sites More sharing options...
kittypaw Posted December 3, 2012 Share Posted December 3, 2012 Bonjour, As-tu trouvé la solution a ton problème ? Link to comment Share on other sites More sharing options...
regielm Posted March 29, 2013 Share Posted March 29, 2013 Salut ça m'interesse aussi 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