Taxe montant fixe

  • Posts: 46
  • Thank you received: 1
7 years 2 months ago #259824

-- HikaShop version -- : 2.6.3
-- Joomla version -- : 3.6.5
-- PHP version -- : 7

Bonjour à tous,

j'ai besoin de créer une taxe fixe par panier, j'ai installé le plugin "Global_Cart_Fee" qui fonctionne très bien mais il faudrait que j'exclue une zone pays (France)

Bref, applicable pour tout pays sauf France
Merci par avance

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

  • Posts: 26000
  • Thank you received: 4004
  • MODERATOR
7 years 2 months ago #259829

Bonjour,

Cela va demander une modification du plugin afin de rajouter le support des zones.
Sachant que le plugin se base sur le trigger "onAfterCartProductsLoad", vous avez un accès au panier et vous avez la possibilité de lire l'adresse courante de l'utilisateur afin d'ajouter ou non le champs additionnel.
www.hikashop.com/support/documentation/6...fterCartProductsLoad

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.

  • Posts: 46
  • Thank you received: 1
7 years 2 months ago #259887

Merci Jerome,

j'ai testé ça mais ça ne change rien et surtout je ne sais pas si je suis sur le bon chemin

if(!count($plugins) && ($address_country !=country_France_73)){
return;

Quel plugin natif utilisant le trigger "onAfterCartProductsLoad" pourrait m'aiguiller ?

Cdt
Phi

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

  • Posts: 81481
  • Thank you received: 13062
  • MODERATOR
7 years 2 months ago #259903

Bonjour,

Il n'y a pas de variable $country dans le plugin. Donc c'est normal que cela ne fonctionne pas.

Vous trouverez le pays dans $cart->billing_address->address_country faites un var_dump de cette variable pour voir ce que vous avez dedans et faites votre if en fonction.

Le plugin global cart fee utilise déjà onAfterCartProductsLoad donc il n'y a pas besoin de regarder un autre plugin sur comment implémenter cela.

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

  • Posts: 46
  • Thank you received: 1
7 years 2 months ago #260026

Bonjour Nicolas,

je ne trouve pas de billing_address avec un var_dump($cart);

function onAfterCartProductsLoad(&$cart) {
      $plugins = array();
      $this->listPlugins($this->name, $plugins, false, true);
      $country = $cart->billing_address->address_country;

		if(!count($plugins) && ($country != 'country_France_73')){
                    return;
                 }

Rapport d'erreur Joomla :

Notice: Undefined property: stdClass::$billing_address in

Merci par avance

Last edit: 7 years 2 months ago by Jerome. Reason: [code] is nice

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

  • Posts: 26000
  • Thank you received: 4004
  • MODERATOR
7 years 2 months ago #260033

Bonjour,

C'est malheureusement normal ; vous utilisez HikaShop 2.6.3 et cela n'est disponible que depuis HikaShop 3.0
Dans HikaShop 2.x ; vous devez récupérer l'adresse ID via la session et vous devez ensuite charger l'adresse correspondante.

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.

  • Posts: 46
  • Thank you received: 1
7 years 2 months ago #260081

Bonjour,

par contre avec un var_dump($cart) je trouve un array "zone_namekey"

j'ai essayé :

$country = $cart->zone_namekey;
if(!count($plugins) && ($country != 'country_France_73')){

Mais même message d'erreur de Joomla:

Notice: Undefined property: stdClass::$zone_namekey in

N'y aurait -il pas la possibilité de faire une condition sur zone_namekey

Merci

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

  • Posts: 46
  • Thank you received: 1
7 years 2 months ago #260144

Bonsoir,

afin de test j'ai installé une version d'hika 3.0 et effectivement avec un var_dump $cart j'y trouve shipping_address->address_country

mais ma modif ne fonctionne pas

function onAfterCartProductsLoad(&$cart) {
      $plugins = array();
      $this->listPlugins($this->name, $plugins, false, true);
      $country = $cart->shipping_address->address_country;

		if(!count($plugins) && ($country != 'country_France_73')){
                    return;
                 }
Qu'est ce que j'oublie ou fais de travers ?

Merci par avance

Last edit: 7 years 2 months ago by Jerome. Reason: [code] is nice

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

  • Posts: 81481
  • Thank you received: 13062
  • MODERATOR
7 years 2 months ago #260083

Bonjour,

Comme Jérome l'a expliqué, avec une version antérieure à HikaShop 3, il faut charger l'adresse vous même et $cart->zone_namekey n'existe pas.

Il faut faire cela:

$app = JFactory::getApplication();
$id = $app->getUserState('com_hikashop.billing_address');
$class = hikashop_get('class.address');
$address = $class->get($id);
echo $address->address_country;

The following user(s) said Thank You: fifi84

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

  • Posts: 46
  • Thank you received: 1
7 years 2 months ago #260241

Merci Nicolas

c'est nickel ! je mets le bout de code avec la condition si ça peut aider

$app = JFactory::getApplication();
$id = $app->getUserState('com_hikashop.shipping_address');
$class = hikashop_get('class.address');
$address = $class->get($id);
$country = $address->address_country;
   if ($country == 'country_France_73'){
      if(!count($plugins)){
	     return;
            }
	      } else {
Cordialement :)

Last edit: 7 years 2 months ago by Jerome. Reason: [code] IS NICE

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

Time to create page: 0.081 seconds
Powered by Kunena Forum