2017-02-06 1 views
1

Je voudrais ajouter une taxe fixe de 2 euros par commande à un site prestashop existant. Je l'ai déjà ajouté à chaque étape du client, jusqu'à la dernière étape dans laquelle je ne suis pas capable de:Ajouter une taxe fixe à la commande prestashop

le fichier que je veux modifier est "modules/bankwire/views/templates/hook/payment_return.tpl" dans lequel j'ai cette ligne:

{l s='Amount' mod='bankwire'}: <span class="price"><strong>{$total_to_pay}</strong> 

Si je change la ligne précédente à:

{l s='Amount' mod='bankwire'}: <span class="price"><strong>{$total_to_pay+2}</strong> 

mon prix affiché final est arrondi et aucun symbole € apparaît (par exemple, si mon prix total est 54.50 € , quand j'ajoute 2 euros, ça devient 56 au lieu de 56,50 €)

Comment puis-je le gérer?

Merci

+0

La modification de modèles ne vous sera d'aucune utilité. Lorsqu'un client passe une commande, la taxe ne sera pas calculée en ordre. – TheDrot

Répondre

1

$total_to_pay est un prix formaté ("56,90 €" au lieu de "56,90") définie dans le module de virement bancaire:

public function hookPaymentReturn($params) 
{ 
    if (!$this->active) 
     return; 

    $state = $params['objOrder']->getCurrentState(); 
    if (in_array($state, array(Configuration::get('PS_OS_BANKWIRE'), Configuration::get('PS_OS_OUTOFSTOCK'), Configuration::get('PS_OS_OUTOFSTOCK_UNPAID')))) 
    { 
     $this->smarty->assign(array(
      'total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 
      'bankwireDetails' => Tools::nl2br($this->details), 
      'bankwireAddress' => Tools::nl2br($this->address), 
      'bankwireOwner' => $this->owner, 
      'status' => 'ok', 
      'id_order' => $params['objOrder']->id 
     )); 
     if (isset($params['objOrder']->reference) && !empty($params['objOrder']->reference)) 
      $this->smarty->assign('reference', $params['objOrder']->reference); 
    } 
    else 
     $this->smarty->assign('status', 'failed'); 
    return $this->display(__FILE__, 'payment_return.tpl'); 
} 

Vous pouvez obtenir le prix comme celui-ci en utilisant la objet de la commande:

{displayPrice price=$objOrder->getOrdersTotalPaid()}