Neu Custom Connector > CategoryController > Attributes - Pull berücksichtigt neue Kategorie-Attribute im Endpoint bestehender Host-Kategorien nicht

broesHPB

Neues Mitglied
9. Dezember 2020
7
1
Ahoi!

Aktuell implementiere ich die Pull-Funktion für Kategorien.

Im Beispiel aus der Dokumentation für den CategoryController geht leider nicht hervor, wie beim Pull neuer Kategorie-Attribute aus dem Endpoint einer in der WaWi bereits bestehenden Kategorie berücksichtigt werden.

In der Beispiel-Pull-Methode werden ja grundsätzlich nur Kategorien berücksichtigt, die in der Endpoint-Datenbank in der Mapping-Tabelle keine Host-ID und/oder keinen Entitäten-Typ hinterlegt haben (bzw. kein Eintrag dafür im Mapping vorhanden ist). Das funktioniert auch ganz gut. Über den Connector Tester werden die Daten via Pull entgegen genommen: Host-ID ist dann 0 (so die Vorgabe, es muss ein Integer sein). Bei einem Push dieser Daten, nachdem man im Connector Tester per Hand eine Host-ID höher 0 gesetzt hat, wird dann auch das Mapping erzeugt.

Soweit so gut: Wenn ich das richtig gesehen habe, werden da auch Kategorie-Attribute beim Pull einer neuen Kategorie berücksichtigt und wenn beim (Re-)Push die jeweiligen Host-IDs im Connector Tester von 0 auf andere Werte umgestellt werden, geht auch alles seinen korrekten Gang (Mapping wird erzeugt).

Allerdings scheint der Fall, dass neue Kategorie-Attribute im Endpoint einer bereits in der WaWi bestehenden Kategorie vorkommen können, nicht berücksichtigt zu sein. Der CategoryController aus der Doku behandelt ja generell keine Kategorie-Attribute bisher. Er stellt aber die Grundlage für meine Implementierung dar, die in der Doku bei einem Pull besagt "Selektiere nur Kategorien, die noch kein Mapping haben". Verstehe ich das richtig, dass ich hier erweitern müsste "Selektiere nur Kategorien, die noch kein Mapping haben oder Kategorie-Attribute hat, die selbst noch kein Mapping haben" und gebe dann für den Pull - die zwar in der WaWi bereits existierende - Kategorie plus der neuen Kategorie-Attribute zurück (ohne die bereits evtl. bestehenden Kategorie-Attribute dieser Kategorie)?

Freundliche Grüße
Hape von Bröös
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
1.451
305
Hallo Hape,

ich bin mir nicht sicher ob ich richtig verstehe was du machen möchtest. Es wäre wahrscheinlich besser, wenn unabhängig von der Technik erklärst was du erreichen möchtest (Äußeres Modell).
 

broesHPB

Neues Mitglied
9. Dezember 2020
7
1
Hallo @Immanuel ,

nehmen wir folgendes an:
  • Im Host ( WaWi) ist eine Kategorie "Brot".

  • Im Host hat diese Kategorie noch keine Eigenschaften.

  • Im Endpoint (Custom Onlineshop) erstelle ich nun eine Eigenschaft für diese Kategorie.

  • Im Connector für den Endpoint ist für Kategorie-Eigenschaften in der Feature-Matrix "PULL" aktiviert.
Wie bemerkt im Connector nun der Controller für Kategorien bei einem PULL, dass da eine neue Kategorie-Eigenschaft im Endpoint existiert?

Im Beispiel in der Doku werden Eigenschaften ja nun nicht erklärt. Und das Beispiel für die Kategorien basiert ja nun nur einmal darauf, dass bei einem Pull nur Kategorien berücksichtigt werden, die kein Mapping haben.

Nach dem Beispiel in der Doku werden also Kategorien mit Mapping während des PULL nicht berücksichtigt. Somit können neu hinzugefügte oder gar veränderte Eigenschaften via Endpoint bei einem Pull auch nicht berücksichtigt werden. Und somit werden Änderungen an einer Kategorie via Endpoint ebenfalls nicht berücksichtigt.

-------------------------

Wenn ich im Endpoint eine Kategorie ändere, z. B. eine Übersetzung oder deren Status, dann berücksichtigt das Beispiel aus der Doku diese Änderung nicht - da dort nur Kategorien für einen Pull berücksichtigt werden, die noch kein Mapping haben? Ist es überhaupt vorgesehen, dass ich Kategorien via Endpoint ändern darf? Oder dürfen via Endpoint nur neue angelegt werden?

Mir ist gerade nicht ganz klar, woran dann fest gemacht würde, ob bei einem Delta zwischen Host und Endpoint, z. B. nach einer Änderung im Endpoint, welcher Datenstand dann der Führende ist. Kann (soll) dass nach Bedarf festgelegt werden? Also dass man definiert, die WaWi führt (was dann Änderungen im Endpoint obsolete machen würde) oder der Endpoint führt (was dann Änderungen in der WaWi obsolet machen würde). Im Grunde müsste die WaWi doch immer das führende System für Stammdaten wie Kategorien und Produkte sein (für Bestellungen wäre es eher der Endpoint)?

Was genau macht eigtl. die Action Statistic? Die selektiert im Beispiel aus der Doku auch nur Kategorien, die noch nicht gemapped sind und gibt deren Anzahl zurück. Wenn Statistic also ermittelt ob es da was neues gäbe, dann würden hier die Eigenschaften ebenfalls ignoriert. Oder bin ich da gerade total auf dem falschen Gleis?

Auch ist mir nicht klar, wenn ich im Endpoint eine Kategorie löschen würde (in der Feature-Matrix ist PULL aktiv), löscht dann die WaWi diese Kategorie auch oder geht dann der Connector auf Grund des fehlenden Mappings beim nächsten PUSH davon aus, dass die Kategorie im Endpoint wieder anzulegen wäre?

-------------------------

Sorry, wenn ich so viele Fragen habe, es geht für mich aus der Dokumentation einfach nicht hervor und es bremst mich jetzt schon eine ganze Weile aus, weil ich immer öfter anfangen muss den Connector-Quellcode zu analysieren, was der eigentlich tut, was nicht in der Doku steht (aber vielleicht stehen sollte).

Im Moment gewinne ich immer mehr den Eindruck, dass die PULL-Funktion zwar rudimentäre Dinge abdeckt, aber eigentlich nicht dazu geeignet scheint Änderungen an z. B. Kategorien vom Endpoint in den Host zu übertragen. Das mag bei Bestellungen anders aussehen, da ist das führende System eben der Endpoint, aber bei Kategorien und Produkten ist für mich die WaWi das führende System.

:confused:

Freundliche Grüße
Hape von Bröös
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
1.451
305
Wie bemerkt im Connector nun der Controller für Kategorien bei einem PULL, dass da eine neue Kategorie-Eigenschaft im Endpoint existiert?

Im Beispiel in der Doku werden Eigenschaften ja nun nicht erklärt. Und das Beispiel für die Kategorien basiert ja nun nur einmal darauf, dass bei einem Pull nur Kategorien berücksichtigt werden, die kein Mapping haben.

Nach dem Beispiel in der Doku werden also Kategorien mit Mapping während des PULL nicht berücksichtigt. Somit können neu hinzugefügte oder gar veränderte Eigenschaften via Endpoint bei einem Pull auch nicht berücksichtigt werden. Und somit werden Änderungen an einer Kategorie via Endpoint ebenfalls nicht berücksichtigt.
In der Regel prüft man ob ein Linking für eine bestimmte Kategorie schon vorhanden ist oder nicht. Will man, dass eine Kategorie erneut importiert wird, dann könnte man bspw. das vorhandene Linking löschen. Hier ist die Kreativität des Entwicklers gefragt.

Wenn ich im Endpoint eine Kategorie ändere, z. B. eine Übersetzung oder deren Status, dann berücksichtigt das Beispiel aus der Doku diese Änderung nicht - da dort nur Kategorien für einen Pull berücksichtigt werden, die noch kein Mapping haben? Ist es überhaupt vorgesehen, dass ich Kategorien via Endpoint ändern darf? Oder dürfen via Endpoint nur neue angelegt werden?

Mir ist gerade nicht ganz klar, woran dann fest gemacht würde, ob bei einem Delta zwischen Host und Endpoint, z. B. nach einer Änderung im Endpoint, welcher Datenstand dann der Führende ist. Kann (soll) dass nach Bedarf festgelegt werden? Also dass man definiert, die WaWi führt (was dann Änderungen im Endpoint obsolete machen würde) oder der Endpoint führt (was dann Änderungen in der WaWi obsolet machen würde). Im Grunde müsste die WaWi doch immer das führende System für Stammdaten wie Kategorien und Produkte sein (für Bestellungen wäre es eher der Endpoint)?
Vorgesehen ist, dass ein initialer Import von Kategorien durchgeführt wird und danach Änderungen nur noch über JTL-Wawi erfolgen. Man kann dennoch Kategorien erneut importieren, meine ich. Aber auch hier ist die Kreativität des Entwicklers gefragt.

Was genau macht eigtl. die Action Statistic? Die selektiert im Beispiel aus der Doku auch nur Kategorien, die noch nicht gemapped sind und gibt deren Anzahl zurück. Wenn Statistic also ermittelt ob es da was neues gäbe, dann würden hier die Eigenschaften ebenfalls ignoriert. Oder bin ich da gerade total auf dem falschen Gleis
Die Statistik ist dazu da um anzuzeigen wieviel Elemente eines bestimmten Typs (zb. Artikel oder Bestellungen) noch zu importieren sind. Wenn man drauf verzichten möchte, dann kann das Feature Flag "disable_statistics" auf true gesetzt werden.

Auch ist mir nicht klar, wenn ich im Endpoint eine Kategorie löschen würde (in der Feature-Matrix ist PULL aktiv), löscht dann die WaWi diese Kategorie auch oder geht dann der Connector auf Grund des fehlenden Mappings beim nächsten PUSH davon aus, dass die Kategorie im Endpoint wieder anzulegen wäre?
Es ist gilt der Grundsatz "JTL-Wawi ist federführend". Insofern sollte eine Kategorie im Endpoint nur über JTL-Wawi gelöscht (oder für den Shop deaktiviert) werden. JTL-Wawi kennt weder die Linkings im Endpoint noch weiß sie, ob eine Kategorie im Endpoint existiert oder nicht.
 
  • Gefällt mir
Reaktionen: broesHPB

broesHPB

Neues Mitglied
9. Dezember 2020
7
1
Hallo @Immanuel ,

danke für das Feedback.

Verstanden habe ich das, was ich bereits zuvor angenommen hatte. WaWi federführend - daher Push/Delete only für die meisten Controller, lediglich Bestellungen und (ggf.) Artikel Pull/Statistics.

Statistics ist demnach nur für Controller geeignet, die Pull supporten? Für Push wird Statistics nicht verwendet oder auch?

Es wäre sicherlich für andere hilfreich, dies auch in der Doku klar zu kommunizieren, Gerade das Beispiel mit dem CategoryController aus der Doku und dem darin enthaltenen Pull hat mich dazu verleitet zu glauben, dass man alles auch Pull`en könnte (da nirgends explizit steht, dass dem nicht so ist).

Jedenfalls hat mir Dein Feedback sehr weitergeholfen, den Connector besser zu verstehen. :thumbsup:

Freundliche Grüße
Hape von Bröös
 
Zuletzt bearbeitet:
Ähnliche Themen
Titel Forum Antworten Datum
Neu data-live-search="true" für custom-select selectpicker in variation.tpl möglich? Technische Fragen zu Plugins und Templates 0
Neu Product Custom Meta - Best Practice? WooCommerce-Connector 1
Beantwortet custom.css im NovaChild wird nur in <noscript> geladen? Templates für JTL-Shop 1
Beantwortet Artikelstammdaten Varianten und Variation Kombination // Import durch WooCommerce Connector User helfen Usern - Fragen zu JTL-Wawi 6
Neu Probleme mit den Einstellungen die der Connector vornimmt (Preise) WooCommerce-Connector 1
Neu Crossselling mit Connector 2.12.0 und SW 5.7.3 Shopware-Connector 1
Neu Shop teilweise anbinden? bzw., Bestand und Aufträge ohne Connector synchronisieren Shopify-Connector 1
Neu SW5 auf SW6 Migration & Connector Shopware-Connector 2
Neu Shopware 6 Connector User helfen Usern 0
Neu Shopware 6 Connector - API error .. "Dieser Wert sollte nicht leer sein" Shopware-Connector 3
Neu JTL-Connector - Einstellungen der Übertragungsparameter Allgemeines zu den JTL-Connectoren 0
Neu SW5 - Nach Connector Update - Bilder werden Artikel nicht zugewiesen Shopware-Connector 19
Neu Invalid request JTL Connector 1.26.0 mit Woocommerce 5.5.1, GermanMarket 3.12.2 WooCommerce-Connector 0
Neu Überverkäufe mit dem Connector managen? Gambio-Connector 3
Neu Shopware 6 Connector schmeißt ständig Fehlermeldung Shopware-Connector 4
Neu Einfacher Connector zum Bestandsabgleich Technische Fragen zu den JTL-Connectoren 2
Neu Woo Connector connector.identify "Der Remoteserver hat einen Fehler zurückgegeben: (403) Unzulässig. WooCommerce-Connector 1
Neu Shopware 5 Connector anmeldung nicht möglich nach Update Shopware-Connector 2
Neu JTL-SW6 Connector Error: The File for media object with id: [...] is not supported for creating thumbnails. Shopware-Connector 11
Neu Prestashop Connector - Zahlungsarten zuordnen PrestaShop-Connector 0

Ähnliche Themen