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

broesHPB

Mitglied
9. Dezember 2020
13
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

Gesperrter Benutzer
24. August 2016
1.542
329
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

Mitglied
9. Dezember 2020
13
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

Gesperrter Benutzer
24. August 2016
1.542
329
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

Mitglied
9. Dezember 2020
13
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 custom.css Versionierung / Cache Problem? Technische Fragen zu Plugins und Templates 5
Neu Custom Template für Custom Artikel mit Plugin? Plugins für JTL-Shop 0
Neu ebay- Angebote-laufende Angebote: Fehler beim Laden der Daten, der mehrteilige Bezeichner "Custom-fWawiArtikelpreisBrutto" konnte nicht gebunden werde JTL-Wawi - Fehler und Bugs 2
Custom css für Galerie-Bilder Einrichtung JTL-Shop5 3
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 0
Neu Passenden WooCommerce Connector zu meinem WordPress WooCommerce-Connector 7
Neu JTL Shopify Connector und Billbee frage Shopify-Connector 0
Neu JTL Connector zu SW6 auch als Testumgebung möglich ? Onlineshop-Anbindung 3
Neu Shopify Erhöhung der Varianten von 100 auf 2000 - Connector App Problem Shopify-Connector 1
Neu Greyhound JTL-Connector funktioniert nach Update auf 1.8.12 nicht mehr richtig Technische Fragen zu den JTL-Connectoren 5
Neu Connector anlegen in Verkaufskanälen nicht möglich, Verbindungstest schlägt fehl Shopware-Connector 2
Neu JTL Connector Woocomerce für PHP Version 7.4 WooCommerce-Connector 2
Fehler beim Datenbank - JTL WAWI Connector WooCommerce-Connector 1
Neu Woocommerce mit JTL Connector "Die Shop-URL verweist nicht auf einen gültigen Shop" WooCommerce-Connector 4
JTL WAWI 1.8.11.1 / JTL CONNECTOR / Shopware 6 JTL-Wawi 1.8 4
Neu Connector für php 8.3 / Prestashop 8.1.3 PrestaShop-Connector 3
Neu Migration von eCommerce-Integrator auf JTL Connector - Software 5 Shop Onlineshop-Anbindung 2
Neu JTL Connector WooCommerce überträgt keine Bestellungen mehr WooCommerce-Connector 3
Neu JTL Connector Woocommerce nicht möglich WooCommerce-Connector 9
Neu Woran kann es liegen, dass ein neu erstellter Connector-Verkaufskanal nicht in der Statusliste des Workers vorkommt? Shopify-Connector 2
Neu Connector überträgt keine Bilder Shopify-Connector 1
Neu JTL Connector Plugin Aktivierunf [Fehlermeldung] WooCommerce-Connector 1
Neu Shopify Connector Abgleich endet nicht Shopify-Connector 6
Neu Shopware 6 Connector = Mangelhaftes Produkt! Shopware-Connector 0
Neu WooCommerce Connector - Keine Produkte in link_product Tabelle WooCommerce-Connector 0
Connector übernimmt nicht alle Bestellungen WooCommerce-Connector 0
Wichtig 👉 Wichtiger Hinweis: Abkündigungsfristen JTL-Wawi 1.5 / MSQL-Server 2014 / JTL-POS für Android 7 / JTL-Connector für Shopware 5 News, Events und Umfragen 2
Neu Keine Übertragung der Preise mehr seit Connector Update von 1.41.2 auf 1.42.0 WooCommerce-Connector 9
Neu JTL WooCommerce-Connector leert bei Artikelupdate Inhalte der Felder WooCommerce-Connector 3
Neu JTL-Connector übernimmt den Bestellstatus in Woocommerce nicht WooCommerce-Connector 2
Neu Update auf Connector 2.2.5.3 stürzt mich ins Chaos Shopware-Connector 4
Neu Probleme mit Connector und Shopify URL (Shop noch nicht online) Shopify-Connector 3

Ähnliche Themen