Jump to content

Recommended Posts

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 #974
at 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;

 

Merci d'avance pour vos réponses, et DOEKIA défense de rire...

 

Link to comment
Share on other sites

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

ç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

  • 1 year later...
  • 1 year later...
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

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();
    }

 

  • Like 2
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...