Jump to content

Disparition des transporteurs TNT


Recommended Posts

Bonjour,

je remarque sur 2 plateformes prestashop que les transporteurs TNT ont disparu depuis hier (samedi) sans raison.

Tout était fonctionnel avant ça sur les 2 plateformes (module installé, frais de port définis, tranches de prix, zones définies).

 

Quelqu'un a t il constaté le même type de problème ?

 

Est-ce que celà peut être lié à une perte de disponibilité des Webservice TNT ou un autre évenement externe aux plateformes ?

 

J'ai testé une réinstallation du module (mis à jour) sur un environnement de développement et rien n'y fait... TNT reste absent de la liste des transporteurs.

 

Merci

Link to comment
Share on other sites

Bonjour, c'est un bug du module tnt.

 

Après expertise du module tnt et du dialogue effectué avec leur serveur,

voici ce qui est déduit, le problème vient bien du module tnt, en clair le module ne gère pas les jours fériés!!!,

 

Le problème est reproduit pour toutes les paniers dont le coût des expéditions n'est pas gratuit

Voici le scénario technique pour bien comprendre ce qui se passe:

 

La méthode getOrderShippingCost du module tnt est appelé, cette méthode calcul le pris de la livraison, or une erreur se produit dans celle-ci et le cout de la livraison est à 0.

 

L'erreur produite est la suivante :

Le module appel l'opération du webservice tnt "faisabilité", cette méthode permet de savoir si une livraison est possible selon différents paramètres et notamment la date de livraison.

Or le calcul de la date de livraison ce weekend et Lundi est au 09/04/2012 or ce jour est férié, le webservice tnt répond logiquement que cette date est impossible. Oui tnt ne livre pas les jours fériés!!!

 

 

$service = $tntWebService->faisabilite($date_exp, Configuration::get('TNT_CARRIER_SHIPPING_ZIPCODE'), $this->putCityInNormeTnt(Configuration::get('TNT_CARRIER_SHIPPING_CITY')), 
$info['postcode'], $this->putCityInNormeTnt($info['city']), 'INDIVIDUAL');

 

Cette méthode retournant false, le service tnt est supprimé des résultats :

Classe : Carrier.php méthode : getCarriersForOrder

 

// If price is false, then the carrier is unavailable (carrier module)
if ($row['price'] === false)
{
unset($result[$k]);
continue;
}

 

Pour contourner le problème, j'ai mis en dur la date de livraison au 10/04/2012 seulement pour la journée du 09/04/2012.

 

 

$tntWebService = new TntWebService();
//ajout pour le Lundi de paque
if(date("Y-m-d", strtotime("now"))=="2012-04-09");
      {
          $date_exp =date("Y-m-d", strtotime("now + 1 day"));
      }

 

Pour conclure, Il faut que ce module intègre la gestion des jours fériés sinon ce problème va être reproduit.

 

Cordialement,

Romain

d'activ-developpement.net

Link to comment
Share on other sites

J'avais effectivement pensé au coup du Lundi férié mais le fait de désactiver les transporteurs en cas de "non faisabilité en 24h" me semblait assez extrême et donc peu probable... bref, un grand merci Romain pour avoir trouvé d'où venait le problème.

 

J'imagine alors que sans mettre de date en dur dans le code, les transporteurs ne réapparaitront que mardi ...

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