Zum Hauptinhalt springen

getDynamicArticlePrices

Verwende diese Methode, um dynamische Preise abzurufen, wenn Du die Repricing-Funktionalität in Channel Pilot Pro nutzt. Die Methode gibt alle Preise für einen bestimmten Preis (bestimmt durch priceId) zurück, die seit "filterFrom" geändert wurden.

Diese Methode gibt nur eine maximale Anzahl von Preisen pro Aufruf zurück! Dieses Limit ist für Deinen Shop konfigurierbar und ist standardmäßig auf 1000 gesetzt. Diese Grenze ist eine "weiche Grenze". Sie kann in einigen Fällen überschritten werden. Weitere Informationen dazu findest Du unter "Anwendungsfälle".

GetDynamicArticlePricesResponse getDynamicArticlePrices( 
CPAuth auth, //required
long priceId, //required
CPPagination pagination, //not used, should be null
String method, //required, ‘all’ or ‘filtered’
CPArticle[] filterArticles, //not used, should be null
String filterFrom
);

Eingabe

Parameter

Type

Optional

Kommentar

auth

CPAuth

no

Authentifizierungsdaten.

priceId

Long

no

Id des dynamicPrice in Channel Pilot Pro der für ein Preisupdate verwendet werdet soll.

pagination

CPPagination

yes

Aktuell nicht in Verwendung, es sollte 'null' übergeben werden.

method

String

no

Wird 'all' übermittelt, wird der Parameter filterFrom ignoriert und es werden alle vorhandenen Preise, ungeachtet des Zeitstempels übermittelt, bis zur maximalen Anzahl (see, Use Cases below). Send ‘all’ or ‘filtered’.

filterArticles

CPArticle[]

yes

Aktuell nicht in Verwendung, es sollte 'null' übergeben oder leer gelassen werden.

filterFrom

String

yes

Kann 'null' sein, falls method == 'all' gewählt wurde.

Muss ein Datum und eine Uhrzeit enthalten, wenn Preise vor einem bestimmten Zeitpunkt ignoriert werden sollen.

Alle Preise ab dem Zeitstempel und neuer werden übergeben.

Ausgabe

Die Methode liefert eine "GetDynamicArticlePricesResponse".

Anwendungsfälle

Das folgende Diagramm zeigt die beste Vorgehensweise bei der Integration der API. Du musst das Datum und die Uhrzeit des lastUpdate des zuletzt abgerufenen "CPManagedArticlePrice" in Deinem System speichern.

Nennen wir diese Variable vorerst "myLastUpdate". Bei jedem Durchlauf musst Du prüfen, ob ein gültiges "myLastUpdate" vorhanden ist. Wenn nicht, rufe die Methode mit dem Parameter method = 'all' auf. Andernfalls setze den Parameter method auf 'filtered'.

Du wirst ein Array von "CPManagedArticlePrice" abrufen. Iteriere über dieses Array und speichere jeden Preis in Deinem Shop- oder ERP-System. In jeder Iteration kannst Du die Variable "myLastUpdate" auf das lastUpdate des zurückgegebenen "CPManagedArticlePrice" setzen. Wenn kein Preis zurückgegeben wird, kannst Du dein aktuelles "myLastUpdate" so belassen, wie es ist! Du kannst Deinen dateLastCall von Zeit zu Zeit bereinigen und dann alle Preise erneut abrufen.

Alle "CPManagedArticlePrice" die abgerufen werden, sind nach lastUpdate aufsteigend sortiert, sodass der erste Preis der abgerufen wird, derjenige mit dem ältesten lastUpdate ist. Channel Pilot Pro garantiert, dass das lastUpdate des letzten abgerufenen Preises mindestens eine Sekunde nach dem ersten liegt. Aus diesem Grund kann die Anzahl der zurückgegebenen Preise das Limit von 1000 überschreiten, wenn die ersten 1000 Preise exakt das gleiche lastUpdate haben.

Beispiel (SOAP-UI)

Abfrage

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v4="http://v4_2.seller.api.channelpilot.com/">
<soapenv:Header/>
<soapenv:Body>
<v4:getDynamicArticlePrices>
<auth>
<merchantId>xxxxxxxxxx</merchantId>
<shopToken>xxxxxxxxxx</shopToken>
</auth>
<priceId>7576630</priceId>
<method>all</method>
<filterFrom>2019-02-06T14:00:00+02:00</filterFrom>
</v4:getDynamicArticlePrices>
</soapenv:Body>
</soapenv:Envelope>

Rückmeldung

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getDynamicArticlePricesResponse xmlns:ns1="http://v4_2.seller.api.channelpilot.com/">
<return>
<header>
<resultCode>200</resultCode>
<resultMessage/>
</header>
<moreAvailable>false</moreAvailable>
<countMoreAvailable>0</countMoreAvailable>
<managedArticlePrices>
<article>
<id>5031208-002</id>
</article>
<price>22</price>
<lastUpdate>2019-02-01T16:15:15+01:00</lastUpdate>
</managedArticlePrices>
</return>
</ns1:getDynamicArticlePricesResponse>
</soap:Body>
</soap:Envelope>

Hat dies deine Frage beantwortet?