Jump to content

La ligne frais de manutention dans le panier


Recommended Posts

  • 4 months later...
  • 1 year later...

C'est la bonne piste il me semble oui, regarde dans php ce que veut dire le signe =+ pour comprendre comment adapter ton code.

Je ne suis pas allé voir le code en détail, mais à priori, dans le fichier php il faudrait :

- Supprimer le code cité plus haut.

- Créer un nouvelle variable du type :

$handling_charges = (float)$configuration['PS_SHIPPING_HANDLING'];

Pour ensuite l'afficher dans le fichier tpl correpondant.

Link to comment
Share on other sites

Merci pour ton aide !

J'ai plutôt ajouté une ligne (car pour l'instant je v garder le reste).

 

ça donne ça :

if (isset($configuration['PS_SHIPPING_HANDLING']) && $carrier->shipping_handling)
{
	$shipping_cost += (float)$configuration['PS_SHIPPING_HANDLING'];
	$handling_charges = (float)$configuration['PS_SHIPPING_HANDLING'];	
}

Mais dans le tpl si je met : {$handling_charges}

(Je l'ai mis au même endroit que le shipping_cost pour être sur)

Il ne m'affiche rien ! Je ne dois pas rajouter quelque chose pour "l'envoyer" ? (Je l'ai juste déclaré la, non ?)

Link to comment
Share on other sites

Oui, c'est parce que de la manière dont on a procédé, la nouvelle variable est créée dans la fonction "getPackageShippingCost" qui ne retourne que $shipping_cost.

Il faudrait à la fin de la fonction modifier ça :

		return $shipping_cost;

par ça :

		return array(
			'shipping_cost' => $shipping_cost,
			'handling_charges' => $handling_charges,
		);

Link to comment
Share on other sites

  • 4 weeks later...

Merci pour ta réponse !

 

Par contre ça ne fonctionne pas et ça à l'air d'être à cause de ça :

Cache::store($cache_id, $shipping_cost);

Peut importe ce que je met dans le return : return $handling_charges; ou return $shipping_cost;   (J'ai mis de coté le tableau proposé pour le moment)

Il me retourne la valeur présente dans ce cache !

 

Je dois envoyer les 2 j'imagine ? Mais comment ?

Link to comment
Share on other sites

  • 2 years later...

Bonjour,

Etant confronté à la même problématique je me permets de compléter cette réponse partielle.

Pour ma part j'ai surchargé la fonction getSummaryDetails() de la classe Cart.php :

$configuration = Configuration::getMultiple(array(
                    'PS_SHIPPING_FREE_PRICE',
                    'PS_SHIPPING_HANDLING',
                    'PS_SHIPPING_METHOD',
                    'PS_SHIPPING_FREE_WEIGHT'
        ));
        $carrier = new Carrier($this->id_carrier, $id_lang);
        $shipping_handling = 0;
        if (isset($configuration['PS_SHIPPING_HANDLING']) && $carrier->shipping_handling) {
            $shipping_handling = (float) $configuration['PS_SHIPPING_HANDLING'];
            $base_total_tax_inc += $shipping_handling; // ajout des frais au prix total affiché (variable total_price)
        }


        $summary = array(
            'shipping_handling' => $shipping_handling,
            ...

Cette partie permet de récupérer la nouvelle variable $shipping_handling dans les TPLs du tunnel de commande du thème utilisé et de les afficher sur une ligne. Comme ci-dessous dans le TPL du panier shopping-cart.tpl :

{if $shipping_handling > 0}
            <tr class="cart_shipping_handling">
                <td colspan="{$col_span_subtotal}" class="text-right">Frais de manutention</td>
                <td colspan="2" class="price" id="total_shipping" >{displayPrice price=$shipping_handling}</td>
            </tr>
        {/if}

En espérant que cela puisse en aider l'un(e) ou l'autre.

 

Link to comment
Share on other sites

  • 2 weeks later...

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