add initial script api woocommerce
This commit is contained in:
123
api_special_image.py
Normal file
123
api_special_image.py
Normal file
@ -0,0 +1,123 @@
|
||||
import requests
|
||||
import base64
|
||||
import time
|
||||
from api import create_category
|
||||
|
||||
# ✅ Identifiants WordPress (et non WooCommerce)
|
||||
wordpress_username = "admin_lcdm" # Remplace par ton username WordPress
|
||||
wordpress_application_password = "yTW8 Mc6J FUCN tPSq bnuJ 0Sdw" #"#8io_mb!55@Bis" # Généré dans WordPress > Utilisateurs
|
||||
|
||||
# ✅ Générer l'authentification Basic en base64
|
||||
auth_str = f"{wordpress_username}:{wordpress_application_password}"
|
||||
auth_bytes = auth_str.encode("utf-8")
|
||||
auth_base64 = base64.b64encode(auth_bytes).decode("utf-8")
|
||||
|
||||
image_id = 675
|
||||
# ✅ URL de l'API WordPress pour téléverser une image
|
||||
media_api_url = f"https://lescreationsdemissbleue.local/wp-json/wp/v2/media/{image_id}"
|
||||
|
||||
# ✅ Fichier image à uploader
|
||||
image_path = "C:\\Users\\beren\\OneDrive\\Documents\\nextcloud\\beren\\site_missbleue\\photos\\pyramide_olfactive.png"
|
||||
image_name = "pyramide_olfactive.png"
|
||||
|
||||
images_to_upload = [
|
||||
("C:\\Users\\beren\\OneDrive\\Documents\\nextcloud\\beren\\site_missbleue\\photos\\Photos_bougies_Claudine\\Bougies\\Chope\\chope-sapin-face.jpg", "chope-sapin-face.jpg"),
|
||||
("C:\\Users\\beren\\OneDrive\\Documents\\nextcloud\\beren\\site_missbleue\\photos\\Photos_bougies_Claudine\\Bougies\\Chope\\chope-adoucissant-face.jpg", "chope-adoucissant-face.jpg")
|
||||
]
|
||||
|
||||
# ✅ Headers avec l'authentification correcte
|
||||
"""headers = {
|
||||
"Authorization": f"Basic {auth_base64}",
|
||||
"Content-Disposition": f"attachment; filename={image_name}"
|
||||
}"""
|
||||
|
||||
headers = {
|
||||
"Authorization": f"Basic {auth_base64}",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
updata_data = {
|
||||
"title" : "Pyramide olfactive test",
|
||||
"alt_text": "Pyramide olfactive test"
|
||||
}
|
||||
|
||||
response = requests.post(
|
||||
media_api_url,
|
||||
headers=headers,
|
||||
json=updata_data,
|
||||
verify=False # ⚠️ Désactiver la vérification SSL si problème de certificat
|
||||
)
|
||||
|
||||
# ✅ Lecture et envoi du fichier
|
||||
"""with open(image_path, "rb") as image_file:
|
||||
response = requests.post(
|
||||
media_api_url,
|
||||
headers=headers,
|
||||
files={"file": image_file},
|
||||
verify=False # ⚠️ Désactiver la vérification SSL si problème de certificat
|
||||
)"""
|
||||
|
||||
# ✅ Vérifier la réponse
|
||||
if response.status_code == 201:
|
||||
media_data = response.json()
|
||||
image_id = media_data["id"]
|
||||
image_url = media_data["source_url"]
|
||||
print(f"✅ Image téléversée avec succès ! ID : {image_id}, URL : {image_url}")
|
||||
else:
|
||||
print(f"❌ Erreur lors du téléversement de l'image : {response.status_code}")
|
||||
print(response.text) # 🔍 Afficher l'erreur détaillée
|
||||
|
||||
|
||||
"""def create_image(name, description, source):
|
||||
images_data = {
|
||||
"name": name,
|
||||
"description": description,
|
||||
"source": source
|
||||
}
|
||||
|
||||
response = requests.post(media_api_url, headers=headers, json=images_data)
|
||||
|
||||
if response.status_code == 201:
|
||||
category = response.json()
|
||||
print(f"✅ Catégorie '{name}' créée avec succès ! ID : {category['id']}")
|
||||
return category["id"]
|
||||
else:
|
||||
print(f"❌ Erreur lors de la création de '{name}' : {response.status_code} {response.text}")
|
||||
return None"""
|
||||
|
||||
categories_api_url = "https://lescreationsdemissbleue.local/wp-json/wp/v2/product_cat"
|
||||
|
||||
|
||||
def upload_image(image_path, image_name):
|
||||
with open(image_path, "rb") as image_file:
|
||||
response = requests.post(
|
||||
media_api_url,
|
||||
headers={
|
||||
"Authorization": f"Basic {auth_base64}",
|
||||
"Content-Disposition": f"attachment; filename={image_name}"
|
||||
},
|
||||
files={"file": image_file},
|
||||
verify=False
|
||||
)
|
||||
if response.status_code == 201:
|
||||
media_data = response.json()
|
||||
print(f"✅ Image téléversée : {media_data['source_url']}")
|
||||
category_parent_id = create_category("Gamme prestige", "Catégorie principale pour organiser la gamme prestige", media_data["id"])
|
||||
if category_parent_id:
|
||||
subcategory_id = create_category("Chopes", "Sous-catégorie de la gamme prestige", category_parent_id, media_data["id"])
|
||||
return media_data["id"] # Retourne l'ID de l'image
|
||||
else:
|
||||
print(f"❌ Erreur image : {response.status_code} {response.text}")
|
||||
return None
|
||||
|
||||
# ✅ Boucle sur les images et envoi
|
||||
uploaded_images = []
|
||||
for image_path, image_name in images_to_upload:
|
||||
image_id = upload_image(image_path, image_name)
|
||||
print('iciiiiiiiiiiiii')
|
||||
if image_id:
|
||||
uploaded_images.append(image_id)
|
||||
time.sleep(2) # ⏳ Pause pour éviter la surcharge du serveur
|
||||
|
||||
# ✅ Liste des images téléversées avec leur ID
|
||||
print(f"📌 Images téléversées : {uploaded_images}")
|
||||
Reference in New Issue
Block a user