Jump to content

Property Cart->id_currency is empty at line 917


Recommended Posts

Bonjour,

J'ai quelques articles depuis plusieurs années pour lequel il faut remplir 5 champs textes obligatoires. Depuis peu et de manières aléatoires, le fait de cliquer sur enregistrer pour mémoriser la valeur des champs me déclenche une erreur 500 et donc adieu la commande.

en passant en mode DEV, voici l'erreur :

Property Cart->id_currency is empty
at line 917 in file classes/ObjectModel.php

912.             }
913. 
914.             $message = $this->validateField($field, $this->$field);
915.             if ($message !== true) {
916.                 if ($die) {
917.                     throw new PrestaShopException($message);
918.                 }
919.                 return $error_return ? $message : false;
920.             }
921.         }
922. 
ObjectModelCore->validateFields - [line 246 - classes/ObjectModel.php]
ObjectModelCore->getFields - [line 487 - classes/ObjectModel.php]
ObjectModelCore->add - [line 196 - classes/Cart.php] - [2 Arguments]
CartCore->add - [line 190 - controllers/front/ProductController.php]
ProductControllerCore->initContent - [line 189 - classes/controller/Controller.php]
ControllerCore->run - [line 367 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 41 - override/classes/Dispatcher.php]
Dispatcher->dispatch - [line 28 - index.php]

Merci par avance, toutes les idées sont bienvenues

🙂

 

Share this post


Link to post
Share on other sites

Perso je l'ai patché comme ça (Même erreur mais avec des commandes créées en BO) en attendant de débuguer le truc:

    public function validateFields($die = true, $error_return = false)
    {
        foreach ($this->def['fields'] as $field => $data) {
            if (!empty($data['lang'])) {
                continue;
            }

            if (is_array($this->update_fields) && empty($this->update_fields[$field]) && isset($this->def['fields'][$field]['shop']) && $this->def['fields'][$field]['shop']) {
                continue;
            }

            $message = $this->validateField($field, $this->$field);
            if ($message !== true) {
                if ($die) {
                    //throw new PrestaShopException($message);
                    @PrestaShopLogger::addLog('Error on validateField', 3, $this->$field, $field);
                }
                return $error_return ? $message : false;
            }
        }

        return true;
    }

On évite le die() et on log l'erreur.

Share this post


Link to post
Share on other sites

Euh, non^^

Trouvez la fonction ci-dessus dans le fichier et commentez cette ligne en ajoutant // devant

//throw new PrestaShopException($message);

Et mettez celle-ci juste en dessous:

@PrestaShopLogger::addLog('Error on validateField', 3, $this->$field, $field);

 

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
 Share

×
×
  • Create New...

Important Information

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