FROM CACHE - de_header

Kompletter Product export als CSV via API Anfrage

Sebbo89
Tourist
10 0 1

Hallo liebe Community,

 

ich würde gerne meine Produkte aus dem Shopify Store gerne via GET Request aus dem Admin API Bereich als CSV Datei downloaden. Den Zugriff dazu habe ich schon geschafft, jedoch lädt er bei der GET Abfrage nur ein Produkt mit sämtlichen Attributen herunter. Würde gerne den Export für alle Produkte hinbekommen. Der normale Export über die Export Funktion im Produkt Bereich des Admin Frontends läuft leider nicht. Bekomme keine Mail vom Backend mit der entsprechenden CSV Datei als Anhang. Hat da einer von Euch eine Idee, wie ich das via API Abruf hinbekommen kann?

 

Hintergrund ist, dass ich die Produkte gerne bei Idealo listen möchte, aber dafür nicht unbedingt die Idealo Feed App nutzen möchte.

 

Ich danke Euch für Eure Hilfe im Voraus.

 

Grüße

 

Sebbo

1 ANTWORT 1

Gabe
Shopify Staff
16696 2637 3915

Hey @Sebbo89 

 

Danke für die Frage und Good Job! zu was du schon mit unserem Admin API erreicht hast, Hut ab! Hat dir unsere API Doku helfen können?

 

Zum Abrufen aller Produkte über die Admin API könnte man vielleicht eine Loop verwenden, um alle Produkte zu durchlaufen. Beachte, dass Shopify Pages mit maximal 250 Produkten zurückgibt. Daher muss man eventuell mehrere Anfragen stellen, um alle Produkte abzurufen.

 

Das folgende ist ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen. Du könntest auch einen unserer Experten engagieren indem du denen eine E-Mail rüberschießt. Unsere Experten antworten meist sehr schnell.
 

Du könntest die "requests" Library verwenden:

 

import requests
import csv

api_key = 'Ihr API Key'
password = 'Ihr Passwort'
store_url = 'Ihr Store URL'

# Initialisieren des CSV-Datei-Schreibers
csv_file = open('products.csv', 'w')
csv_writer = csv.writer(csv_file)

# Schreiben der Überschriften
headers = ['Handle', 'Title', 'Body (HTML)', ...]  # Hier alle gewünschten Produktattribute auflisten
csv_writer.writerow(headers)

# Initialisieren der Seite
page = 1

while True:
    response = requests.get(f'https://{api_key}:{password}@{store_url}/admin/api/2023-07/products.json?limit=250&page={page}')
    products = response.json().get('products', [])

    if not products:
        break

    for product in products:
        row = [product.get('handle'), product.get('title'), product.get('body_html'), ...]  # Hier alle gewünschten Produktattribute auflisten
        csv_writer.writerow(row)

    page += 1

csv_file.close()

 

Ersetze api_key, password und store_url durch deine eigene. Man sollte auch die gewünschten Produktattribute in headers und row auflisten, beachte aber, dass die URL die API-Version enthält (2023-07), die du möglicherweise anpassen müsstest.

 

Es sollte eine CSV-Datei mit allen Produkten und den gewünschten Attributen erzeugen und du kannst diese CSV-Datei dann für deine Zwecke verwenden, beispielsweise zum Hochladen auf Idealo.

Gabe | Social Care @ Shopify
 - War meine Antwort hilfreich? Klicke Like um es mich wissen zu lassen! 
 - Wurde deine Frage beantwortet? Markiere es als Akzeptierte Lösung 
 - Um mehr zu erfahren, besuche das Shopify Help Center oder den Shopify Blog