juankiko Posted September 1 Share Posted September 1 Bonjour, j’aimerais savoir si PrestaShop propose un point d’accès public pour récupérer le catalogue produits en JSON (sans authentification). Si oui, quel est généralement l’URL ou la méthode utilisée pour y accéder ? Link to comment Share on other sites More sharing options...
Eolia Posted September 2 Share Posted September 2 Non, ça n'existe pas nativement. Si vous avez le google sitemap sur votre site vous pouvez partager l'url de celui-ci (mais ce sera du xml) Link to comment Share on other sites More sharing options...
cocos.codes Posted September 2 Share Posted September 2 (edited) Par défaut, PrestaShop ne fournit pas d'API publique sans autorisation permettant de télécharger le catalogue de produits au format JSON. Quelques informations clés : L'API Webservice officielle de PrestaShop existe et prend en charge les produits, les catégories, les commandes, etc., mais nécessite une clé API (Basic Auth). L'adresse se présente généralement sous la forme suivante : https://twoj-sklep.pl/api/products Vous pouvez ajouter le paramètre output_format=JSON à votre requête pour obtenir les données au format JSON plutôt qu'au format XML. Exemple : https://twoj-sklep.pl/api/products?output_format=JSON Accès public sans connexion : PrestaShop ne fournit pas cette fonctionnalité « prête à l'emploi » car elle serait dangereuse (divulgation de toutes les données produit). Si vous avez besoin d'un flux public, cela se fait le plus souvent par : les modules qui exportent le catalogue vers JSON/CSV/XML (par exemple, flux de produits pour Google Merchant, Facebook, Ceneo), la création de votre propre contrôleur/contrôleur frontal dans PrestaShop qui partagera des données spécifiques en JSON, ou l'ouverture d'une partie des données de l'API via un proxy inverse avec des restrictions. En résumé : PrestaShop standard → API sécurisée par clé. Flux JSON public → à implémenter soi-même (par exemple, module, propre point de terminaison). =========================================== Je vais vous montrer un exemple simple dans PrestaShop 1.7/8, comment exposer votre propre endpoint renvoyant JSON avec le catalogue de produits (sans autorisation). 1. Structure du module Créons le module jsoncatalog. Dans le répertoire modules/jsoncatalog/, créez les fichiers suivants : jsoncatalog/ ├─ jsoncatalog.php └─ controllers/ └─ front/ └─ products.php 2. Fichier principal du module jsoncatalog.php <?php /** * Module COCOS PrestaShop * * Auteur : COCOS * (https://cocos.codes) * * Ce module a été créé par COCOS, une entreprise spécialisée dans la création de modules et l'intégration pour PrestaShop et WordPress. * Plus d'informations : https://cocos.codes */ if (!defined('_PS_VERSION_')) { exit; } class JsonCatalog extends Module { public function __construct() { $this->name = 'jsoncatalog'; $this->version = '1.0.0'; $this->author = 'COCOS.CODES'; $this->bootstrap = true; parent::__construct(); $this->displayName = $this->l('JSON Catalog'); $this->description = $this->l('Fournit un point de terminaison public avec la liste des produits au format JSON.'); } public function install() { return parent::install() && $this->registerHook('moduleRoutes'); } public function hookModuleRoutes($params) { return [ 'module-jsoncatalog-products' => [ 'controller' => 'products', 'rule' => 'jsoncatalog/products', 'keywords' => [], 'params' => [ 'fc' => 'module', 'module' => $this->name, ], ], ]; } } 3. Kontroler controllers/front/products.php <?php /** * Module COCOS PrestaShop * * Auteur : COCOS * (https://cocos.codes) * * Ce module a été créé par COCOS, une entreprise spécialisée dans la création de modules et l'intégration pour PrestaShop et WordPress. * Plus d'informations : https://cocos.codes */ class JsonCatalogProductsModuleFrontController extends ModuleFrontController { public function initContent() { header('Content-Type: application/json'); $products = Product::getProducts( Context::getContext()->language->id, 0, 50, // limite, par exemple 50 pièces. 'id_product', 'ASC' ); echo json_encode($products, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); exit; } } 4. Résultat Une fois le module installé dans le panneau PrestaShop : Votre flux sera disponible à l'adresse suivante : https://twoj-sklep.pl/jsoncatalog/products Renvoie un JSON avec les produits (ID, nom, prix, etc.). Je pense que le sujet est clos à 100 % 🙂 Edited September 2 by cocos.codes (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted September 2 Share Posted September 2 Merci Grok/ChatGPT^^ 2 1 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