magalupi Posted June 16, 2018 Share Posted June 16, 2018 Bonjour, un de mes clients ne peux plus se connecter à son compte, et voici ce que j'obtiens quand je tente de me connecter sur sa fiche via le B.O. [PrestaShopException] Invalid address #974at line 439 in file classes/Address.php 434. // if an id_address has been specified retrieve the address 435. if ($id_address) { 436. $address = new Address((int)$id_address); 437. 438. if (!Validate::isLoadedObject($address)) { 439. throw new PrestaShopException('Invalid address #'.(int)$id_address); 440. } 441. } elseif ($with_geoloc && isset($context->customer->geoloc_id_country)) { 442. $address = new Address(); 443. $address->id_country = (int)$context->customer->geoloc_id_country; 444. $address->id_state = (int)$context->customer->id_state; AddressCore::initialize - [line 197 - classes/tax/Tax.php] - [1 Arguments] TaxCore::getProductEcotaxRate - [line 722 - classes/Cart.php] - [1 Arguments] CartCore->getProducts - [line 3861 - classes/Cart.php] CartCore->isVirtualCart - [line 1791 - classes/Cart.php] CartCore->getOrderTotal - [line 3638 - classes/Cart.php] - [1 Arguments] CartCore->getSummaryDetails - [line 746 - controllers/admin/AdminCustomersController.php] AdminCustomersControllerCore->renderView - [line 2072 - classes/controller/AdminController.php] AdminControllerCore->initContent - [line 209 - controllers/admin/AdminCustomersController.php] AdminCustomersControllerCore->initContent - [line 205 - classes/controller/Controller.php] ControllerCore->run - [line 369 - classes/Dispatcher.php] DispatcherCore->dispatch - [line 95 - admin/index.php] Merci d'avance pour vos réponses, et DOEKIA défense de rire... Link to comment Share on other sites More sharing options...
Eolia Posted June 16, 2018 Share Posted June 16, 2018 Déjà répondu plusieurs fois... Reconstruisez l'adresse manquante ou supprimez le panier correspondant en bdd Link to comment Share on other sites More sharing options...
magalupi Posted June 16, 2018 Author Share Posted June 16, 2018 Désolé, mais quand je tape ceci dans la recherche sur le forum rien ne ressort. Je ne sais ni comment reconstruire l'adresse ni supprimer le panier correspondant. Est ce que je dois mettre l'adresse du client à la place de "invalid adress#" Ou comment puis je supprimer le panier correspondant? Merci. Link to comment Share on other sites More sharing options...
Eolia Posted June 16, 2018 Share Posted June 16, 2018 allez dans la table ps_cart et supprimez la ligne ayant l'id_cart 974 Link to comment Share on other sites More sharing options...
doekia Posted June 16, 2018 Share Posted June 16, 2018 ça ne me fait même pas rire, j'ai envie de pleurer même, car, désolé je réponds a tellement de topic, je crois donc comprendre que je te l'avais prédit. Un lien vers le précédant topic serait surement utile. Link to comment Share on other sites More sharing options...
joseantgv Posted November 6, 2019 Share Posted November 6, 2019 C'est déjà résolu : https://github.com/PrestaShop/PrestaShop/pull/11416 Link to comment Share on other sites More sharing options...
Delart Posted April 1, 2021 Share Posted April 1, 2021 On 11/6/2019 at 3:42 PM, joseantgv said: C'est déjà résolu : https://github.com/PrestaShop/PrestaShop/pull/11416 Salut, Pouvez-vous appliquer ces modifications à PS 1.6? Merci! Link to comment Share on other sites More sharing options...
Shonen Posted April 1, 2021 Share Posted April 1, 2021 2 hours ago, Delart said: Salut, Pouvez-vous appliquer ces modifications à PS 1.6? Merci! Bonjour, Je pense que vous aurez moins de difficultés à supprimer le panier concerné par cette erreur, plutôt qu'espérer un code tout fait pour corriger le cœur de Prestashop sur un bug tel que celui-ci. Mais si vous n'êtes pas pressé, pourquoi pas ! Link to comment Share on other sites More sharing options...
Eolia Posted April 1, 2021 Share Posted April 1, 2021 En 1.6, la modif que j'ai faite il y a 4 ans dans /classes/Address.php: Modifier (remplacer) cette fonction: /** * @see ObjectModel::delete() */ public function delete() { if (Validate::isUnsignedId($this->id_customer)) { Customer::resetAddressCache($this->id_customer, $this->id); } if (!$this->isUsed()) { // Clean associated carts if they exist $carts = Db::getInstance()->executeS(' SELECT id_cart FROM `'._DB_PREFIX_.'cart` WHERE id_address_delivery = '.(int)$this->id.' OR id_address_invoice = '.(int)$this->id); if (!empty($carts)) { foreach($carts as $k => &$v) { $c = new Cart((int)$v['id_cart']); $c->delete(); } unset($v); } return parent::delete(); } else { $this->deleted = true; } return $this->update(); } 2 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now