Rechercher :
Accueil » Erreurs Connexion

Question Les commandes n'apparaissent pas dans le panneau d'administration
Réponse

Avant toutes choses

Vérifiez la table orders_status

Avant de creuser plus que ça, vérifiez que la table 'orders_status' est correctement renseignée pour le langage de l'admin (Localisation -> Statut des Commandes). Si ce n'est pas le cas, corrigez le défaut par phpmyadmin pour ajouter les champs manquants. Par exemple:
INSERT INTO `orders_status` (`orders_status_id`, `language_id`, `orders_status_name`) VALUES ('1', '4', 'En attente');
Pour ajouter le statut par défaut "en attente" et faire de même pour les autres statuts manquants

Sinon, suivez les instructions suivantes

Le problème :

Il peut arriver après des modifications des scripts ou un changement dans la base de données qu'une commande pourtant correctement terminée par le client ne soit pas accessible dans le panneau d'administration ou n'apparaisse même pas.

Les Symptômes :

  • Dans l'accueil de l'admin (bloc bleu avec les icônes et les résumés dans la colonne de gauche), la commande apparaît bien dans le résumé mais est introuvable dans la partie Clients/commandes.
  • La table "orders" contient bien la commande, les autres tables liées comme "ordrers_products" ou "orders_total" contiennent aussi la commande mais le champ "orders_id" contient la valeur "0" au lieu de l'id de la dernière commande.
  • L'isncription d'un nouveau client est impossible et retourne une erreur MySql

Solutions :

Il y en a deux dont la première semble suffisante mais sans certitude :

Mettre les connexion persistantes sur "false" dans la base de donnée
define('USE_PCONNECT', 'false'); // use persistent connections?


Modifier la fonction tep_db_insert_id dans includes/functions/database.php
function tep_db_insert_id($link = 'db_link') {
global $$link;
return mysql_insert_id( $$link );
}

NB: Il est souhaitable de modifier aussi cette même fonction dans la partie admin
La seconde modification permet de conserver les connexions persistantes vers la BDD même si ce n'est pas conseillé avec un hébergement mutualisé par exemple.

Remarque:

Ne pas confondre ce problème avec la perte de commande due à une procédure de commande mal effectuée.
Il peut arriver en effet que le client ne revienne pas vers la boutique après le paiement dans la fenêtre du prestataire.
osCommerce ne peut donc savoir que la commande a été terminée : le panier ne se vide pas, la commande n'est pas enregistrée comme valide. Pour ce dernier cas, l'installation d'une contribution de pré-enregistrement de la commande comme "Check Order" est à envisager.

Auteur : Gnidhal Mise à jour le 11/11/2006

Retour