Skip to main content

Produit pas en stock sur certains résultats de recherche et en stock sur d'autre

More
3 years 6 months ago #349957 by info@lerenardquitrace.be
Bonjour, Nous venons d'essayer mais cela ne semble pas suffire.
La query proposée avait une petite coquille :
Code:
'.$filter->filter_namekey.$i.'_2.product_quantity==NULL

Voici le code mis en place :
Code:
if($filter->filter_type=='instockcheckbox' && $infoGet[0]=='in_stock'){ $filters[]=' b.product_quantity!=0'; $on.=' LEFT JOIN #__hikashop_product_related AS '.$filter->filter_namekey.$i.' ON '.$filter->filter_namekey.$i.'.product_id=b.product_id AND '.$filter->filter_namekey.$i.'.product_related_type = \'bundle\' LEFT JOIN #__hikashop_product AS '.$filter->filter_namekey.$i.'_2 ON '.$filter->filter_namekey.$i.'_2.product_id = '.$filter->filter_namekey.$i.'.product_related_id'; $filters[]=' ('.$filter->filter_namekey.$i.'_2.product_quantity = NULL OR '.$filter->filter_namekey.$i.'_2.product_quantity!=0 )'; return true; }

Cela ne fonctionne pas :


Merci d'avance pour l'aide.

Please Log in or Create an account to join the conversation.

More
3 years 6 months ago #349959 by nicolas
Cela me semble bien pourtant. Il faudrait regarder le détails de la configuration d'un de ces produits et des produits en bundle dedans.
Pourriez-vous fournir des captures ?

Please Log in or Create an account to join the conversation.

More
3 years 6 months ago #349968 by info@lerenardquitrace.be
Alors oui pas de problème

Le produit principal :

Les produits en bundle :


Le détails des produits en bundle :


Et le dernier (qui est celui qui n'est plus en stock)



Merci d'avance.

Please Log in or Create an account to join the conversation.

More
3 years 6 months ago #349972 by nicolas
Bonjour,

Serait-il possible d'avoir l'URL de la page en question et un accès FTP pour étudier la question ?

Please Log in or Create an account to join the conversation.

More
3 years 6 months ago #349993 by info@lerenardquitrace.be
OUi je vous envoie ceci dans quelques instants

Please Log in or Create an account to join the conversation.

More
3 years 6 months ago #350006 by nicolas
Bonsoir,

Merci. J'ai trouvé une bien meilleure façon de gérer cela avec ce code:
Code:
$query = 'SELECT pr.product_id'. ' FROM '.hikashop_table('product_related').' AS pr '. ' INNER JOIN '.hikashop_table('product').' AS p ON pr.product_related_id = p.product_id '. ' WHERE pr.product_related_type = ' . $this->db->Quote('bundle') . ' AND (p.product_quantity = 0 OR p.product_quantity < pr.product_related_quantity)'; $database->setQuery($query); $out_of_stock_bundled_products = $database->loadObjectList('product_id'); if(!empty($out_of_stock_bundled_products) && count($out_of_stock_bundled_products)) { $filters[]=' b.product_id NOT IN ('.implode(',', array_keys($out_of_stock_bundled_products)).')'; }
au lieu du code d'avant.
Cela allège beaucoup la requête de chargement des produits, et cela fonctionne bien mieux. Cela prend même en compte les cas plus complexes quand par exemple le stock d'un produit en bundle est de 1 alors qu'il y en a 2 dans le pack.

J'ai mis ce code sur votre site avec l'accès FTP que vous avez fourni et cela à l'air de bien marcher.
Nous allons pouvoir inclure cette modification de notre coté pour la prochaine version d'HikaShop.

Please Log in or Create an account to join the conversation.

More
3 years 6 months ago #350054 by info@lerenardquitrace.be
C'est merveilleux! Un énorme MERCI pour tout le travail abattu! ;)
Bonne semaine!

Please Log in or Create an account to join the conversation.

Time to create page: 0.309 seconds
Powered by Kunena Forum