Jump to content

Aide pour le Gestionnaire sql


Recommended Posts

Bonjour à tous,

 

J'ai besoin d'exporter pour excel tout mon catalogue et la fonction export catalogue native de prestashop ne marche pas pour moi, j'ai donc tout simplement créé la requete dans le gestionnaire SQL de prestashop comme suit :

 

SELECT  reference, ean13, weight, minimal_quantity, wholesale_price, price FROM  ps_product  ORDER BY reference 

 

ce qui est déjà top mais je n'arrive pas à faire la jointure avec les images pour m'afficher juste l'image par défaut de chaque produit 

 

2eme question

 

Dans le cas ou il me donnerait le lien de l'image produit, comment faire pour demander à excel d'aller m'afficher l'image plutot que son lien

 

merci d'avance à tous

Link to comment
Share on other sites

Bonjour,

 

Un début de réponse serait :

 

 

SELECT  p.id_product,reference, ean13, weight, minimal_quantity, wholesale_price, price,id_image
FROM  ps_product p LEFT JOIN ps_image i
ON  p.id_product = i.id_product and i.cover=1 and position =1
ORDER BY reference

 

Mais malheureusement je ne crois pas qu'il soit possible d'avoir le chemin des images complets juste avec du sql.

 

Cordialement

Link to comment
Share on other sites

Bonjour,

La question de base tout de même : Quelle version de Prestashop ? 

 

 

Pas tout le temps et pas pour toutes les versions de prestashop. Il y a plusieurs modes de stockage.

 

Exactement, les chemins d'images ne sont pas stockés en base de donnée.

 

Ils dépendent principalement : 

 

- Du htaccess (url rewriting ou non)

- De la version 

- Du système d'image utilisé

  • Like 1
Link to comment
Share on other sites

Exactement, les chemins d'images ne sont pas stockés en base de donnée.

 

Ils dépendent principalement : 

 

- Du htaccess (url rewriting ou non)

- De la version 

- Du système d'image utilisé

 

Vu la complexité de la méthode getImageLink dans la classe link ça va pas être possible en sql :)

Il faudrait un module existant ou à créer.

Link to comment
Share on other sites

@math_php : Je pense que tout est possible en sql, à partir du moment ou c'est du retraitement de données métier, il est quasiment toujours possible de le faire côté métier.

 

Cependant, on va commencer à taper dans une bonne grosse requête composée des familles / procédure stockée avec plein de paramètres à lui donner, ça monte d'un cran côté développement et nécessite sans doute un petit module :)

 

Ca doit être toujours possible de le faire en sql brut sans donnée d'entrée, mais en prenant en compte tous les cas (et donc faire plusieurs colonnes dans la sortie avec img_rewrite, img_classic, img_suivant_la_temperature_externe, etc.)

Link to comment
Share on other sites

A force d'étudier le stockage des images, j'ai vite fait un petit module, c'est testé sur 1.5.

 

C'est vite fait, ça doit prendre pas mal de ressource sql, mais dans mon cas ça fonctionne.

 

 

Installez le module, puis dans la configuration il faut cliquer sur le lien file. :)

 

Oups oui le fichier exporter doit etre renommé en autre chose que xport.php (xport.csv ou autres) Comme décrit c'est du vite fait :)

xportimgprod.zip

Edited by math_php (see edit history)
  • Like 1
Link to comment
Share on other sites

J'allais le dire :P

 

A noter que j'ai fais une récupération, modifié quelques trucs pour ma sauce (notemment les \t en ; pour le séparateur).

 

Pour le fonctionnement plus précis sur une 1.4 en fin de boucle :

 

$product = new Product($product['id_product'], false, 2);

// Note : 2e et 3e paramètre suivant convenance, possibilité d'utiliser un $cookie->id_lang par exemple.

 

if (!empty($value)){

$url = $link->getImageLink($product->link_rewrite, "".$product->id."-".$value."");

}

Edited by Whoami (see edit history)
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...