ilario Posted December 22, 2022 Share Posted December 22, 2022 ragazzi mi dareste una mano per cortesia mi sto perdendo tra le tabelle dovrei inserire una sql nel mio modulo gli passo id_carrello e id_product dovrei recuperare tutti gli Id_attribute (combinazioni) di un prodotto in un carrello ho visto la tabelle cart_product e la tabella product-attribute-combination ma se provo fare una select non mi tornano tutti gli attributi perchè il singolo prodotto nel carrello so che ha più di una variante (attributo) a me ne torna solo una grazie mille ilario Link to comment Share on other sites More sharing options...
ziobudda Posted December 22, 2022 Share Posted December 22, 2022 Ciao, dai un occhio alla tabella ps_order_details. M. Link to comment Share on other sites More sharing options...
ilario Posted December 22, 2022 Author Share Posted December 22, 2022 grazie zio budda quella tabella non l'ho presa in considerazione, perchè mi servono gli attributi dei prodotti nel carrello, prima che venga trasformato in ordine Link to comment Share on other sites More sharing options...
ilario Posted December 22, 2022 Author Share Posted December 22, 2022 ho guardato un po in cart.php con delle modifiche sono riuscito ad ottenere le varianti corrette per ogni prodotto, $result = Db::getInstance()->executeS( 'SELECT pac.`id_product_attribute`, agl.`public_name` AS public_group_name, al.`name` AS attribute_name, ag.is_color_group, a.id_attribute as color_id_attribute, a.color as color_value FROM `' . _DB_PREFIX_ . 'product_attribute_combination` pac LEFT JOIN `' . _DB_PREFIX_ . 'attribute` a ON a.`id_attribute` = pac.`id_attribute` LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` LEFT JOIN `' . _DB_PREFIX_ . 'attribute_lang` al ON ( a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = ' . (int) $id_lang . ' ) LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group_lang` agl ON ( ag.`id_attribute_group` = agl.`id_attribute_group` AND agl.`id_lang` = ' . (int) $id_lang . ' ) WHERE pac.`id_product_attribute` IN (' . implode(',', $pa_implode) . ') ORDER BY ag.`position` ASC, a.`position` ASC' ); foreach ($result as $row) { $colorImg = ''; if ($row['is_color_group'] == '1'){ if ($row['color_value']){ } else { $colorImg = 'url(/img/co/'.$row['color_id_attribute'].'.jpg), '; self::$_imagesvariant .= $colorImg ; } } } però prima di inserirlo nel modulo ho un problema, non riesco a ricostruire $pa_implode, ho visto che la ricava da un foreach di $ipa_list che è ricavata a sua volta da un foreach $pa_ids[] = $row['id_product_attribute']; ci potrebbero essere due soluzioni 1 aggiungere alla sql la tabella cart_product così gli passo id_cart e id_product (mi sembra la soluzione più pulita 2 passare al modulo $pa_ids[] ma sono bloccato 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