webleads-tracker

comment changer de règle de frais de port en spécifique ?

Vincent StartUp
Avatar
Bonjour,

Je dois appliquer des conditions à des règles de frais de port, mais je ne peux pas le faire avec les conditions standards car elles ne le permettent pas (par exemple condition sur variante ou propriete additionnelle).

Je pense donc faire mon test de condition en spécifique et dire au panier quel règle de port utiliser, c'est là que ça coince, comment lui faire changer de règle de frais de port en spécifique ?

Une autre question qui est liée, je voudrais ajouter dynamiquement un montant à ma règle de frais de port en fonction de certaines conditions. Est-ce possible de le faire en php ? Je pourrais passer par des actions sur commande mais ce n'est pas jouable avec les conditions standards. Est-ce que je pourrais ajouter une action sur commande dans le panier sans qu'elle soit enregistrée dans emajine ?

A+
Vincent - StartUp Communication

Thomas [LE KLUB]
Avatar
Hello Vincent,
ça devrait être possible avec les hooks, celui qui concerne le processus de commande est assez complet, mais très complexe à prendre en main. Perso j'ai pas encore pris le temps de mettre le nez dedans.

Bon courage à toi,
Thomas

Vincent StartUp
Avatar
Merci Thomas,

En effet le hook du processus de commande a l'air complexe. Si quelqu'un aurait des explications je suis preneur.

Bonne soirée,
Vincent - StartUp Communication

Vincent StartUp
Avatar
Bonjour,

J'ai réussi à modifier les règles de port proposées via le hook afterGetShippingAmount (Modification des règles de frais de port proposés). Via ce hook on peut modifier le montant et l'intitulé des règles proposées. Le souci c'est que ce hook intervient après le calcul des frais de port pour chaque règle, donc le montant des frais de port ne se calcule pas automatiquement. Dans mon cas j'aurais voulu appliquer telle ou telle règle en fonction de certaines conditions (comme les conditions sur règles mais en php). Il faudrait donc pouvoir modifier la liste des règles disponibles avant le calcul des frais de port, est-ce que c'est possible ?
Vincent - StartUp Communication

Vincent StartUp
Avatar
Pour les actions sur commande, via le hook "Modification des actions sur commande disponible" (getOrderActions) on peut modifier les actions sur commande déjà active dans le panier, par contre on ne peut pas en ajouter. Dans mon cas je voudrais ajouter une action "commande impossible" en fonction de conditions php, j'ai bien tenté de l'ajouter à la liste des actions disponibles mais elle ne s'affiche jamais dans le panier. Voici ce que j'ai fait dans le hook sans résultat :
	public function getOrderActions($totalPrice, &$ordersActions, $detailPerProduct = null)
	{		
		$ordersActions[]["id_actions"]="7";
		$ordersActions[]["label"]="Test action bla bla";
		$ordersActions[]["type"]="invalid_order";
		$ordersActions[]["value"]="";
		$ordersActions[]["description"]="Test commande impossible blabla";
	}
 


@Medialibs : Peut-être n'est-ce tout simplement pas possible ?
Vincent - StartUp Communication

Thomas [LE KLUB]
Avatar
Salut Vincent,

Dans un premier temps, ta déclaration de tableau des actions sur commande n'est à mon avis pas valide (j'ai pas vérifier le fonctionnement précis, c'est un peu au feeling), je l'aurais plus vu comme suit :

public function getOrderActions($totalPrice, &$ordersActions, $detailPerProduct = null) {		
    $ordersActions[] = array(
        "id_actions" => "7",
        "label" => "Test action bla bla",
        "type" => "invalid_order",
        "value" => "",
        "description" => "Test commande impossible blabla"
    );
}


En ce qui concerne ta règle de frais de port, normalement à l'initialisation du site tu doit pouvoir lire et modifier sans peine les variables de la session $_SESSION['cart']

En espérant ne pas me tromper ;)
Thomas

Vincent StartUp
Avatar
En effet Thomas, ma déclaration n'est pas bonne.

Depuis j'ai fait autrement, c'est un peu bidouille : en php si la condition est validé je mets l'utilisateur dans un groupe spécial. Dans les règles de frais de port j'ai mis une condition sur les groupes. Pour l'instant ça marche comme ça, mais je vais re-tester en corrigeant ma déclaration.

Merci pour ton retour.
Vincent - StartUp Communication