Jump to content

[résolu]Aide sur requete sql function getAttributesGroups($id_lang)


Recommended Posts

Bonjour,

 

je cherche à ajouter la récupération de l' 'ean13' sur une requete presta existante : (class : product - function getAttributesGroups)

J'ai ajouté pa.'ean13', mais ça ne fonctionne pas.

 

Je ne suis pas assez calée en requete sql pour la comprendre complétement, est-ce que quelqu'un pourrai m'aider, s'il vous plait ?

public function getAttributesGroups($id_lang)
	{
		if (!Combination::isFeatureActive())
			return array();
		$sql = 'SELECT ag.`id_attribute_group`, ag.`is_color_group`, agl.`name` AS group_name, agl.`public_name` AS public_group_name,
					a.`id_attribute`, al.`name` AS attribute_name, a.`color` AS attribute_color, pa.`id_product_attribute`,
					IFNULL(stock.quantity, 0) as quantity, product_attribute_shop.`price`, product_attribute_shop.`ecotax`, pa.`weight`, pa.`ean13`,
					product_attribute_shop.`default_on`, pa.`reference`, product_attribute_shop.`unit_price_impact`,
					pa.`minimal_quantity`, pa.`available_date`, ag.`group_type`
				FROM `'._DB_PREFIX_.'product_attribute` pa
				'.Shop::addSqlAssociation('product_attribute', 'pa').'
				'.Product::sqlStock('pa', 'pa').'
				LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON pac.`id_product_attribute` = pa.`id_product_attribute`
				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`
				LEFT JOIN `'._DB_PREFIX_.'attribute_group_lang` agl ON ag.`id_attribute_group` = agl.`id_attribute_group`
				'.Shop::addSqlAssociation('attribute', 'a').'
				WHERE pa.`id_product` = '.(int)$this->id.'
					AND al.`id_lang` = '.(int)$id_lang.'
					AND agl.`id_lang` = '.(int)$id_lang.'
				GROUP BY id_attribute_group, id_product_attribute
				ORDER BY ag.`position` ASC, a.`position` ASC';
		return Db::getInstance()->executeS($sql);
	}
Edited by sangria777 (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Testé sur mon site ça fonctionne, ré- essaye avec pa.ean13 peut être que tu as un espace mal placé dans pa.`ean13`.

 

Le test effectué avec un produit qui a bien des déclinaisons et des ean13 :

 

$product = new Product(2);
                var_dump($product->getAttributesGroups(1));

 

Cordialement

Link to comment
Share on other sites

Je l'ai déplacé encore mais ça ne marche pas chez moi, même comme tu m'a dit.

Il me sort bien une valeur mais je ne comprend pas à quoi elle correspond (j'ai même chercher dans la BdD).

 

Pour toi il te met bien la bonne valeur du ean ?

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...