Règle de calcul prix "prise en charge" pour une catégorie,

  • Posts: 119
  • Thank you received: 6
6 years 3 months ago #286294

Bonjour

je voudrais creer un site ecommerce pour la numérisation de support bobine, K7, disques ...
les produits seront dispatcher vers plusieurs catégories dont une qui s'appellerai bobine
Je cherche à facturer une prise en charge unique (calage bobine) seulement pour les produit d'une seule catégorie "bobine" cad rajouter un surcout unique de x euro si le client choisie au moins 1 article de cette catégorie.
Cette prise en charge ne sera ajouté qu'une fois, cela même si il y à plusieurs bobines.
c'est possible avec hikashop ?
merci
Cordialement
Bertrand

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

  • Posts: 81515
  • Thank you received: 13069
  • MODERATOR
6 years 3 months ago #286308

Bonjour,

Difficile de répondre par un oui ou par un non.
Déjà il est possible d'utiliser le système d'entrepôts pour que les bobines utilisent des méthodes de livraison différentes avec un surcoût fixe pour toutes les bobines.
Mais du coup, si quelqu'un achète en même temps des bobines et autre chose, il aura à payer la livraison pour les bobines (avec le surcoût) plus la livraison pour l'autre produit.
Cela peut potentiellement fonctionner... cela dépends de vos besoin de configuration pour les méthodes de livraison.
Sinon, il est aussi possible de rajouter ce genre de frais additionnel via plugin. Par exemple, ce plugin rajoute un coût fix au panier:
www.hikashop.com/forum/taxes/873285-fix-tax-import.html#190511
Par contre, il ne permet pas de limiter cela à une seule catégorie de produit. Mais il suffirait de rajouter un peu de code pour.
Donc avec un peu de développement, c'est tout à fait faisable.

The following user(s) said Thank You: tramber91

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

  • Posts: 119
  • Thank you received: 6
6 years 3 months ago #286328

Merci pur cette réponse rapide

C'est sur l'option du plugin est plus qu'intéressante
reste plus qu'a faire une recherche sur la table hikashop_cart_product
c'est peux etre plus simple de jouer directement sur le champ product_id de la table hikashop_cart_product ?

Le calage bobine se fait que sur un produit (product_id=x)
J'ai plusieurs types de bobine que je gère via des variantes
au moment du passage en caisse
recherche dans la table "hikashop_cart_product" le nombre de produit ayant un product_id=x
si x > 1 le plugin additionnel (global_cart_fee) se met en place

Bon c'est sur mon niveau php ici est restreint pour mettre en place cette recherche

sinon, si par bonheur, j'ai plusieurs clients qui sont en checkout au meme moment
cela ne risque pas d'être problématique ?
car je peux avoir en meme temps 2 clients utilisant cette meme table

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

  • Posts: 81515
  • Thank you received: 13069
  • MODERATOR
6 years 3 months ago #286349

Bonjour,

Dans la méthode onAfterCartProductsLoad du plugin, les produits sont déjà disponibles dans $cart->products
Donc vous avez déjà leurs product_id
Ce qu'il faut c'est faire une requête MySQL sur hikashop_product_category pour vérifier les catégories associées aux product_ids

Et non, il n'y aura pas de problème de concurrence car onAfterCartProductsLoad est appelé pour un panier spécifique lorsque nécessaire. Donc chaque processus est indépendant.

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

  • Posts: 119
  • Thank you received: 6
6 years 2 months ago #286737

ok merci

bon j'essaye avec un code de ce type
je veux rajouter la prise en charge seulement si j'ai un produit dans mon panier de la catégorie id =13

$calagecatid = 13;
$dbcalage =& JFactory::getDBO();
$dbcalage->setQuery('SELECT b.product_id FROM #__hikashop_product_category AS a LEFT JOIN #_hikashop_cart_product AS b ON a.category_id=$calagecatid  WHERE a.product_id = '.$item->product_id);

if(empty($dbcalage))
continue;

page blanche !!

Last edit: 6 years 2 months ago by tramber91.

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

  • Posts: 119
  • Thank you received: 6
6 years 2 months ago #286745

Bon c'est pas cela du tout
j'ai jamais pris de cour de SQL

Je veux rajouter la prise en charge seulement si j'ai un produit dans mon panier de la catégorie id =13
J'ai une variable $dbcallage='' initialement

je dois faire une boucle sur la table hikashop_cart_product
Pour tout les product_id de la table hikashop_cart_product
Je regarde si dans la table hikashop_product_category, j'ai un produit avec category_id=13
si oui pour au moins un produit
$dbcallage='1'

puis on rajoute le si $dbcallage=1 alors le plugin se met en marche

besoin d'aide
si quelqu'un peut m'aider
merci

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

  • Posts: 119
  • Thank you received: 6
6 years 2 months ago #286757

J'avance mais sans succes

Pour ma requete, j'ai mis

$calagecatid = 13;
$dbcalage_ok = '';
$dbcalage =& JFactory::getDBO();
$dbcalage->setQuery('SELECT product_id FROM #__hikashop_product_category AS a LEFT JOIN #_hikashop_cart_product WHERE product_id = '.product_id);

    if($dbcalage->category_id == $calagecatid){
     $dbcalage_ok = '1';
	}

et ma condition
if(!empty($dbcalage_ok)){
continue;

il y a un truc sur la requete et j'ai pas ma boucle

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

  • Posts: 26000
  • Thank you received: 4004
  • MODERATOR
6 years 2 months ago #286746

Bonjour,

Je vous conseil d'activer le "debug mode" de Joomla ainsi que d'activer l'affichage des erreurs PHP.
Car votre page blanche est liée à des erreurs PHP dans votre code.
Je vous conseil également de lire quelques tutoriaux sur le développement pour Joomla et l'utilisation du système de base de données fournis par Joomla.

docs.joomla.org/Selecting_data_using_JDatabase/fr

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

Time to create page: 0.069 seconds
Powered by Kunena Forum