Jump to content

[Résolu] Liste des catégories vide


Olecorre

Recommended Posts

Bonsoir,

Dans la fihe d'un produti côté Admin, je n'ai aucun produit dans la liste des accessoires, hors quand je regarde le résultat de l'appel ajax http://localhost/prestashop/admin75/ajax.php?ajaxProductAccessories=1&id_lang=2&id_product=10 j'ai :

[{value: '1-Ibanez - AG95-TRD Rouge Transparent', text:'1 - Ibanez - AG95-TRD Rouge Transparent'},{value
: '2-AGB200-TBR - Brun Transparent', text:'2 - AGB200-TBR - Brun Transparent'},{value: '3-Ibanez - AGS83B-ATF
- naturel degrade', text:'3 - Ibanez - AGS83B-ATF - naturel degrade'},{value: '4-Ibanez - AK95-DVS -
brun violon', text:'4 - Ibanez - AK95-DVS - brun violon'},{value: '5-Ibanez - EW20ASE-NT - naturelle'
, text:'5 - Ibanez - EW20ASE-NT - naturelle'},{value: '6-Ibanez - EW20WNE-NT - noyer naturel', text:'6
- Ibanez - EW20WNE-NT - noyer naturel'},{value: '7-Ibanez - EWB20WNE-NT - cordia naturel', text:'7 -..........

donc l'ajax revoit bien des données mais rien ne s'affiche dans la liste déroulante.

Une piste ?
Merci

Link to comment
Share on other sites

Bon le problème d'affichage de la liste venait du nombre de produit trop important !

en terme d'évolution il pourrait être intéressant d'ajouter une case à cocher dans la fiche produit pour mettre le produit en accessoire ! Mettre systématiquement tous les produits en accessoires n'a pas d'intérêt et pause problème quand il y a trop de produit. Donc autant pouvoir sélectionner ceux en accessoire.

sinon voici la requete que j'ai modifier dans le fichier ajax.php (se trouve dans le répertoire admin)

$products = Db::getInstance()->ExecuteS('
   SELECT p.`id_product`, pl.`name`
   FROM `'._DB_PREFIX_.'product` p
   NATURAL LEFT JOIN `'._DB_PREFIX_.'product_lang` pl 
   INNER JOIN `'._DB_PREFIX_.'category_product` cp ON cp.id_product = p.id_product 
   WHERE pl.`id_lang` = '.intval(Tools::getValue('id_lang')).' 
   AND (cp.id_category = 54 OR cp.id_category=57 OR cp.id_category=56 OR cp.id_category=53 OR cp.id_category=55)  
   AND p.`id_product` != '.intval(Tools::getValue('id_product')).'
   AND p.`id_product` NOT IN (
       SELECT a.`id_product_2`
       FROM `'._DB_PREFIX_.'accessory` a
       WHERE a.`id_product_1` = '.intval(Tools::getValue('id_product')).')');



Il y a une jointure en plus :
INNER JOIN `'._DB_PREFIX_.'category_product` cp ON cp.id_product = p.id_product

et des critères en plus
AND (cp.id_category = 54 OR cp.id_category=57 OR cp.id_category=56 OR cp.id_category=53 OR cp.id_category=55)

Qui correspondent aux catégories que je souhaitent vori en accessoire.

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...