Child pages
  • Les modules transporteurs - fonctionnement, création, configuration

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
/*
** Hook update carrier
**
*/
public function hookupdateCarrier($params)
{
    // On actualise l'id du carrier 1
    if ((int)($params['id_carrier']) == (int)(Configuration::get<br />('MYCARRIER1_CARRIER_ID')))
        Configuration::updateValue('MYCARRIER1_CARRIER_ID', (int)
                ($params['carrier']->id));
    // On actualise l'id du carrier 2
    if ((int)($params['id_carrier']) == (int)(Configuration::get<br />('MYCARRIER2_CARRIER_ID')))
        Configuration::updateValue('MYCARRIER2_CARRIER_ID', (int)
               ($params['carrier']->id));
}

3) 

Les

...

méthodes

...

front

...

office

Code Block
/*
** Front Methods
**
** Si vous avez configuré la variable need_range à true lorsque vous avez créé votre 
** transporteur dans la méthode install(), la méthode appelée par la classe Cart sera 
** getOrderShippingCost()
** Sinon, la méthode appelée sera getOrderShippingCostExternal
**
** La variable $params contient le panier, le client et ses addresses
** La variable $shipping_cost contient les frais calculé par les tranches de prix  
** configurés pour le transporteur dans le back-office
**
*/
public function getOrderShippingCost($params, $shipping_cost)
{
    // Cet exemple retourne les frais de port avec le coût supplémentaire
    // mais vous pouvez appeler un webservice ou faire le calcul que vous voulez
    // avant de retourner le frais de port final

    if ($this->id_carrier == (int)(Configuration::get('MYCARRIER1_CARRIER_ID')) &&
        Configuration::get('MYCARRIER1_OVERCOST') > 1)
        return (float)(Configuration::get('MYCARRIER1_OVERCOST'));

    if ($this->id_carrier == (int)(Configuration::get('MYCARRIER2_CARRIER_ID')) &&
        Configuration::get('MYCARRIER2_OVERCOST') > 1)
        return (float)(Configuration::get('MYCARRIER2_OVERCOST'));
    // Si le transporteur n'est pas renconnu, il suffit de retourner false
    // le transporteur n'apparaitra alors pas dans la liste des transporteurs
    return false;
}
public function getOrderShippingCostExternal($params)
{
    // Cet exemple retourne le coût supplémentaire
    // mais vous pouvez appeler un webservice ou faire le calcul que vous voulez
    // avant de retourner le frais de port final
    if ($this->id_carrier == (int)(Configuration::get('MYCARRIER1_CARRIER_ID')) &&
        Configuration::get('MYCARRIER1_OVERCOST') > 1)
                return (float)(Configuration::get('MYCARRIER1_OVERCOST'));
    if ($this->id_carrier == (int)(Configuration::get('MYCARRIER2_CARRIER_ID')) &&
            Configuration::get('MYCARRIER2_OVERCOST') > 1)
                return (float)(Configuration::get('MYCARRIER2_OVERCOST'));
    // Si le transporteur n'est pas renconnu, il suffit de retourner false
    // le transporteur n'apparaitra alors pas dans la liste des transporteurs
    return false;
}

...