Jump to content

[RESOLU] Modification prix module paypal


Recommended Posts

Bonjour à tous,

j'ai développé un module pour un de mes clients qui permet de faire des réduction en fonctions de tranches de prix.

Ex: à partir de 300€ HT 10% sur le panier

à partir de 600€ HT 15% sur le panier

à partir de 800€ HT 20% sur le panier

bref le module marche très tous les module de paiement prennent le bon prix sauf paypal.

Je cherche à appliquer la reduction sur le prix final car il n'est pas prix en compte...

 

Quelqu'un sait quelle est la ligne précise. j'ai fait beaucoup de chose mais rien n'est pris en compte.

Merci d'avance !

Edited by guigui23 (see edit history)
Link to comment
Share on other sites

J'ai trouvé un moyen.

J'ai un peu triché mais ça fonctionne.
Pour ma part j'ai modifier la method setDiscountsList

dans le /module/paypal/express_checkout/process.php

 

voici le détail du code si ça peu aider des personnes.

private function setDiscountsList(&$fields, &$index, &$total)
	{
		$discounts = (_PS_VERSION_ < '1.5') ? $this->context->cart->getDiscounts() : $this->context->cart->getCartRules();
		// override web-batier.com
		$tranche = $this->context->cart->getReductionTranche();
		if($tranche > 0){
			$discounts[]['id_discount'] = 10000;
			$discounts[]['name'] 		= 'Reduction panier';
			$discounts[]['value_real'] 	= (float)$tranche;

		}
		// end override

		if (count($discounts) > 0)
			foreach ($discounts as $discount)
			{
				$fields['L_PAYMENTREQUEST_0_NUMBER'.++$index] = $discount['id_discount'];

				$fields['L_PAYMENTREQUEST_0_NAME'.$index] = $discount['name'];
				if (isset($discount['description']) && !empty($discount['description']))
					$fields['L_PAYMENTREQUEST_0_DESC'.$index] = Tools::substr(strip_tags($discount['description']), 0, 50).'...';

				/* It is a discount so we store a negative value */
				$fields['L_PAYMENTREQUEST_0_AMT'.$index] = - 1 * Tools::ps_round($discount['value_real'], $this->decimals);
				$fields['L_PAYMENTREQUEST_0_QTY'.$index] = 1;

				$total = Tools::ps_round($total + $fields['L_PAYMENTREQUEST_0_AMT'.$index], $this->decimals);
			}


	}

et du coup ça m'ajoute ça sous forme de bon de réduction.

Au moins ça marche !

 

PS: Il faut aussi modifier la method getTotalPaid() pour tomber sur le même montant sinon ça marche pas non plus :)

Edited by guigui23 (see edit history)
Link to comment
Share on other sites

Salut,

Le module est très très particulier, j'ai bien étudié la chose et je n'ai pas trouvé d'autre moyen.

Voici un aperçu de ce que le client souhaite dans la fiche produit.

Les règle de panier se cumulent dans prestashop et impossible de les paramètrer comme voulait le client.

 

post-284349-0-28647500-1432217618_thumb.png

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