Jump to content

[Resolu] Prestashop 1.5.4 et cache model ps_product


Recommended Posts

Bonjour,

j'ai un gros souci sur la nouvelle version de Prestashop :

 

lorsque je modifie le champ active d'un produit dans la table ps_product et que je le mets à zéro par exemple, mon produit reste actif sur la boutique...

 

J'ai donc étudié la fonction Update de ObjectModel et j'y ai découvert la fonction $this->clearCache()

 

public function clearCache($all = false)
{
 if ($all)
  Cache::clean('objectmodel_'.$this->def['classname'].'_*');
 elseif ($this->id)
  Cache::clean('objectmodel_'.$this->def['classname'].'_'.(int)$this->id.'_*');
}

 

Le souci est que je n'ai aucun système de cache activé :

 

define('_PS_CACHING_SYSTEM_', 'CacheMemcache');
define('_PS_CACHE_ENABLED_', '0');

 

Alors comment faire pour pouvoir modifier les données des tables MySQL de cette nouvelle version de Prestashop et forcer le rafraichissement de ce cache "virtuel" ?

 

Je suis en effet souvent amené à développer des applis externes qui renseignent des données dans les tables de mes clients, sans systématiquement utiliser les models de presta.

 

J'espère que l'équipe Presta pourra me répondre, je ne trouve aucune discussion qui document mieux ce points; si des liens m'ont échappé, je suis preneur...

 

Merci à vous

Link to comment
Share on other sites

Rien à voir avec la classe Cache en fait.

 

Je viens de voir que même la requête de ObjectModel.php qui récupère les données du model retourne des données provenant d'un cache... ?

 

Comment faire pour que les données soient bien retournées en direct de la base de données ?

Link to comment
Share on other sites

Ah oui effectivement !

Dans ps_product_shop ca fonctionne (je suis sur prestashop 1.5.4.0)

Mais alors à quoi sert ps_product ?

Quand nous avons besoin de faire des modifs en base de données par lots, sur quelle table devons nous agir ?

Link to comment
Share on other sites

Mais alors à quoi sert ps_product ?

 

Tous les modules ne connaissent pas ps_product_shop, donc il faut qu'il puisse continuer a fonctionner. La "retro compatibilité" en principe. A priori l'objet gere lui meme l'insertion dans les deux tables par la class Shop.php. Pas besoin de requête en direct normalement.

 

Cordialement

Edited by Gregory Roussac (see edit history)
Link to comment
Share on other sites

merci de votre réponse.

ok mais nous avons besoin parfois de passer en inactif une série de produits. Il est plus rapide de le faire directement dans la table... on n'utilise donc pas l'objet...

Comment pouvons-nous faire dans un cas comme celui-ci ?

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...