Jump to content
ASCENS

Bug Can't save order Prestashop1.6.1.11

Recommended Posts

Bonjour à tous,

 

Je suis généralement ici pour aider mais une fois n'est pas coutume..

Je rencontre un problème sur lequel je bute depuis deux jours sur une boutique en production.

 

Lors de la validation d'une commande une erreur apparaît "can't save order" ligne 345 PaymentModule.

 

Après activation du mode debug je m'aperçois que le "current_state" est à 0 et que l'enregistrement de la commande est fait avec un id_order à 0 également..

 

Le bug est effectif avec n'importe quel moyen de paiement.. N'importe quel transporteur..

 

J'ai déjà tenté de verifier les statuts de commande et les modules de paiements ainsi que les transporteurs, ainsi que les classes et les overrides mais aucune piste à cette heure ci..

 

Je compte sur vous pour m'éclairer si vous avez déjà rencontré un problème similaire..

 

Version prestashop 1.6.1.11

Share this post


Link to post
Share on other sites

Oui tout fonctionnait parfaitement et sans raison apparente l'erreur est survenue..

 

Oui j'ai déjà vérifié les overrides..

Share this post


Link to post
Share on other sites

Effectivement il faudrait regarder s'il y a des overrides.

Une autre explication serait qu'un statut de commande "essentiel" a été supprimé.

Share this post


Link to post
Share on other sites

Non plus j'ai vérifié cette option également tous les statuts d'origine sont en place et conforme ainsi que dans la table configuration : PS_OS...

Je vais faire une copie de mon erreur avec le mode debug..

Edited by AgostiniJulien (see edit history)

Share this post


Link to post
Share on other sites
je bute depuis deux jours sur une boutique en production.

 

 

A toi la boutique ou un client qui aurait pu ajouter un module ?

Share this post


Link to post
Share on other sites

Le client me certifie ne rien avoir fait (rien d'ailleurs dans les logs).. Et j'ai vérifié les modules un à un..

post-360083-0-97028200-1495438786_thumb.png

post-360083-0-03706800-1495438794_thumb.png

Edited by AgostiniJulien (see edit history)

Share this post


Link to post
Share on other sites

Le pire c'est que cette erreur arrive avec n'importe quel mode de paiement et n'importe quel statut autant chercher une aiguille dans une botte de foin :)

Share this post


Link to post
Share on other sites

Non j'ai vérifié aussi :( Déjà il y a un problème en amont puisque le statut de la commande est à 0...

Share this post


Link to post
Share on other sites

Non tu n'as pas de de $order->current_state avant la ligne de ton bug ( 345 ) 

 

Normal qui est soit vide 

 

Mais tu as un $id_order_state

 

Met un d($id_order_state);  ligne 344 tu verras bien. 

Share this post


Link to post
Share on other sites

Donc je confirme que la vérité est ailleurs... :)

Share this post


Link to post
Share on other sites

Tu peux faire un export de la structure de la table orders

Share this post


Link to post
Share on other sites

Bien sûr le voici..

-- phpMyAdmin SQL Dump
-- version 4.4.15.7
-- http://www.phpmyadmin.net
--
-- Client :  **************
-- Généré le :  Lun 22 Mai 2017 à 11:47
-- Version du serveur :  5.5.55-0+deb7u1-log
-- Version de PHP :  5.6.30-0+deb8u1

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=[spam-filter]CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=[spam-filter]CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=[spam-filter]COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de données :  `*************`
--

-- --------------------------------------------------------

--
-- Structure de la table `ps_orders`
--

CREATE TABLE IF NOT EXISTS `ps_orders` (
  `id_order` int(10) unsigned NOT NULL,
  `reference` varchar(9) DEFAULT NULL,
  `id_shop_group` int(11) unsigned NOT NULL DEFAULT '1',
  `id_shop` int(11) unsigned NOT NULL DEFAULT '1',
  `id_carrier` int(10) unsigned NOT NULL,
  `id_lang` int(10) unsigned NOT NULL,
  `id_customer` int(10) unsigned NOT NULL,
  `id_cart` int(10) unsigned NOT NULL,
  `id_currency` int(10) unsigned NOT NULL,
  `id_address_delivery` int(10) unsigned NOT NULL,
  `id_address_invoice` int(10) unsigned NOT NULL,
  `current_state` int(10) unsigned NOT NULL,
  `secure_key` varchar(32) NOT NULL DEFAULT '-1',
  `payment` varchar(255) NOT NULL,
  `conversion_rate` decimal(13,6) NOT NULL DEFAULT '1.000000',
  `module` varchar(255) DEFAULT NULL,
  `recyclable` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `gift` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `gift_message` text,
  `mobile_theme` tinyint(1) NOT NULL DEFAULT '0',
  `shipping_number` varchar(64) DEFAULT NULL,
  `total_discounts` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_discounts_tax_incl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_discounts_tax_excl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_paid` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_paid_tax_incl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_paid_tax_excl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_paid_real` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_products` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_products_wt` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_shipping` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_shipping_tax_incl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_shipping_tax_excl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `carrier_tax_rate` decimal(10,3) NOT NULL DEFAULT '0.000',
  `total_wrapping` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_wrapping_tax_incl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `total_wrapping_tax_excl` decimal(20,6) NOT NULL DEFAULT '0.000000',
  `round_mode` tinyint(1) NOT NULL DEFAULT '2',
  `round_type` tinyint(1) NOT NULL DEFAULT '1',
  `invoice_number` int(10) unsigned NOT NULL DEFAULT '0',
  `delivery_number` int(10) unsigned NOT NULL DEFAULT '0',
  `invoice_date` datetime NOT NULL,
  `delivery_date` datetime NOT NULL,
  `valid` int(1) unsigned NOT NULL DEFAULT '0',
  `date_add` datetime NOT NULL,
  `date_upd` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Index pour les tables exportées
--

--
-- Index pour la table `ps_orders`
--
ALTER TABLE `ps_orders`
  ADD PRIMARY KEY (`id_order`),
  ADD KEY `reference` (`reference`),
  ADD KEY `id_customer` (`id_customer`),
  ADD KEY `id_cart` (`id_cart`),
  ADD KEY `invoice_number` (`invoice_number`),
  ADD KEY `id_carrier` (`id_carrier`),
  ADD KEY `id_lang` (`id_lang`),
  ADD KEY `id_currency` (`id_currency`),
  ADD KEY `id_address_delivery` (`id_address_delivery`),
  ADD KEY `id_address_invoice` (`id_address_invoice`),
  ADD KEY `id_shop_group` (`id_shop_group`),
  ADD KEY `current_state` (`current_state`),
  ADD KEY `id_shop` (`id_shop`),
  ADD KEY `date_add` (`date_add`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Edited by AgostiniJulien (see edit history)

Share this post


Link to post
Share on other sites

A savoir que j'ai déjà vérifié l'auto incrémentation avec la requête suivante :

ALTER TABLE `ps_orders` AUTO_INCREMENT = 12345

Share this post


Link to post
Share on other sites

Sur mon export en bas j'ai plus de choses

-- phpMyAdmin SQL Dump
-- version 4.6.6
-- https://www.phpmyadmin.net/
--
-- Client :  localhost:3306
-- Généré le :  Lun 22 Mai 2017 à 12:09
-- Version du serveur :  5.5.52-0ubuntu0.14.04.1-log
-- Version de PHP :  5.6.14

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=[spam-filter]CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=[spam-filter]CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=[spam-filter]COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Base de données :  `presta-equita5`
--

-- --------------------------------------------------------

--
-- Structure de la table `ps_orders`
--

CREATE TABLE `ps_orders` (
  `id_order` int(10) UNSIGNED NOT NULL,
  `reference` varchar(9) DEFAULT NULL,
  `id_shop_group` int(11) UNSIGNED NOT NULL DEFAULT '1',
  `id_shop` int(11) UNSIGNED NOT NULL DEFAULT '1',
  `id_carrier` int(10) UNSIGNED NOT NULL,
  `id_lang` int(10) UNSIGNED NOT NULL,
  `id_customer` int(10) UNSIGNED NOT NULL,
  `id_cart` int(10) UNSIGNED NOT NULL,
  `id_currency` int(10) UNSIGNED NOT NULL,
  `id_address_delivery` int(10) UNSIGNED NOT NULL,
  `id_address_invoice` int(10) UNSIGNED NOT NULL,
  `current_state` int(10) UNSIGNED NOT NULL,
  `secure_key` varchar(32) NOT NULL DEFAULT '-1',
  `payment` varchar(255) NOT NULL,
  `conversion_rate` decimal(13,6) NOT NULL DEFAULT '1.000000',
  `module` varchar(255) DEFAULT NULL,
  `recyclable` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  `gift` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  `gift_message` text,
  `mobile_theme` tinyint(1) NOT NULL DEFAULT '0',
  `shipping_number` varchar(32) DEFAULT NULL,
  `total_discounts` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_discounts_tax_incl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_discounts_tax_excl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_paid` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_paid_tax_incl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_paid_tax_excl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_paid_real` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_products` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_products_wt` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_shipping` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_shipping_tax_incl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_shipping_tax_excl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `carrier_tax_rate` decimal(10,3) NOT NULL DEFAULT '0.000',
  `total_wrapping` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_wrapping_tax_incl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `total_wrapping_tax_excl` decimal(17,2) NOT NULL DEFAULT '0.00',
  `invoice_number` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `delivery_number` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `invoice_date` datetime NOT NULL,
  `delivery_date` datetime NOT NULL,
  `valid` int(1) UNSIGNED NOT NULL DEFAULT '0',
  `date_add` datetime NOT NULL,
  `date_upd` datetime NOT NULL,
  `atoosync_transfert_comptable` int(1) NOT NULL,
  `centre_client` varchar(30) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Index pour les tables exportées
--

--
-- Index pour la table `ps_orders`
--
ALTER TABLE `ps_orders`
  ADD PRIMARY KEY (`id_order`),
  ADD KEY `id_customer` (`id_customer`),
  ADD KEY `id_cart` (`id_cart`),
  ADD KEY `invoice_number` (`invoice_number`),
  ADD KEY `id_carrier` (`id_carrier`),
  ADD KEY `id_lang` (`id_lang`),
  ADD KEY `id_currency` (`id_currency`),
  ADD KEY `id_address_delivery` (`id_address_delivery`),
  ADD KEY `id_address_invoice` (`id_address_invoice`),
  ADD KEY `id_shop_group` (`id_shop_group`),
  ADD KEY `id_shop` (`id_shop`),
  ADD KEY `date_add` (`date_add`),
  ADD KEY `current_state` (`current_state`);

--
-- AUTO_INCREMENT pour les tables exportées
--

--
-- AUTO_INCREMENT pour la table `ps_orders`
--
ALTER TABLE `ps_orders`
  MODIFY `id_order` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 

:

Share this post


Link to post
Share on other sites

Effectivement je vois l'auto incrément.. J’essaie de suite :)

Share this post


Link to post
Share on other sites

Ok donc nous sommes sur la bonne piste l'auto incrément était bien manquant pour la table `orders` bizarre qu'il est pu sauter comme ça..

Une nouvelle erreur apparaît mais la commande est cette fois-ci générée..

 

Lors du passage d'une commande avec paiement accepté à préparation en cours celle-ci génère un id_order_invoice et number et delivery_number à 0

Edited by AgostiniJulien (see edit history)

Share this post


Link to post
Share on other sites

Apparemment d'après ce que je peu voir le problème est survenu après la mise à jour d'une commande par virement bancaire vers le statut préparation en cours... On y est presque :)

Share this post


Link to post
Share on other sites

Bon bah voilà..

 

Tellement le nez dedans que je suis passé à côté. Merci à toi !!!

Donc l'auto incrément des tables "ps_order_invoice" et "ps_orders" avait bien sauté...

Mais bon étrange que la structure des tables est bougée...

Share this post


Link to post
Share on other sites

Je pense que quelqu'un à utilisé un script de backup et restauration boiteux. Comme dit Dr House les patients mentent toujours

  • Like 2

Share this post


Link to post
Share on other sites

C'est peut-être quelque chose dans le genre effectivement..

J'ai repris le site en main depuis peu et je passe mon temps à corrigé les bugs.. Surement une MAJ qui à mal tournée ou une manipulation maladroite... Ennnfin bref..

 

Mais je garde la phrase du Dr House j'adore :)

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More