Spaces:
Runtime error
Runtime error
import requests | |
import json | |
PRESTASHOP_API_URL = "https://ton-site-prestashop.fr/api/products?output_format=JSON&display=full" | |
PRESTASHOP_API_KEY = "SI4TMK8J6Z38DJ4SB29GAMUQP7MF9EQI" | |
def fetch_prestashop_products(): | |
"""Récupère les produits depuis PrestaShop avec gestion d'erreurs améliorée""" | |
headers = {"Authorization": f"Basic {PRESTASHOP_API_KEY}", "Accept": "application/json"} | |
try: | |
print("🔍 Test de connexion à l'API PrestaShop...") | |
response = requests.get(PRESTASHOP_API_URL, headers=headers, timeout=5) | |
if response.status_code != 200: | |
print(f"❌ Erreur: Statut {response.status_code} - {response.text}") | |
return [] | |
data = response.json() | |
print("🔍 Données brutes reçues de PrestaShop:", json.dumps(data, indent=2)) # Debugging | |
products = data.get("products", []) | |
if not products: | |
print("⚠️ Aucun produit trouvé dans PrestaShop !") | |
return [] | |
structured_products = [] | |
for product in products: | |
try: | |
structured_products.append({ | |
"title": product.get("name", {}).get("language", [{}])[0].get("value", "Produit inconnu"), | |
"category": product.get("category", "Non classé"), | |
"price": float(product.get("price", 0.0)), | |
"id": product.get("id", "N/A") | |
}) | |
except Exception as e: | |
print(f"⚠️ Erreur lors du traitement d'un produit: {e}") | |
return structured_products | |
except requests.exceptions.ConnectionError: | |
print("❌ Erreur : Impossible de se connecter à PrestaShop. Vérifie l'URL et la connexion Internet.") | |
except requests.exceptions.Timeout: | |
print("❌ Erreur : Délai d'attente dépassé pour l'API PrestaShop.") | |
except requests.exceptions.RequestException as e: | |
print(f"❌ Erreur API PrestaShop : {e}") | |
return [] | |