Neu Custom Connector > CategoryController > Attributes - Mapping wird nicht gespeichert

broesHPB

Neues Mitglied
9. Dezember 2020
7
1
Moin,

an Hand der Dokumentation habe ich für Kategorien den CategoryController.php erstellt. Funktioniert soweit.

Im nächsten Schritt möchte ich nun die Attribute der Kategorien ebenfalls speichern und die IDs der Kategorie-Attribute mappen.

Bisher habe ich dazu einfach in der push-Methode die Objekte im übergebenen $model genutzt und für Kategorie-Attribute, ähnlich wie bei der Kategorie selbst, gebrüft ob eine Endpunkt-ID für das Attribut vorhanden ist. Wenn nicht, habe ich sie erzeugt und im Model gesetzt. Genauso wie bei fehlender Endpunkt-ID einer Kategorie.

Meinem Verständnis nach übernimmt dann der PrimaryKeyMapper (aus dem Beispiel der Dokumentation entnommen) die Aufgabe das Mapping für den jeweiligen Typ (Kategorie, Kategorie-Attribut, etc.) in der Mapping-Tabelle zu speichern. Für Kategorien klappt das, für Kategorie-Attribute leider nicht.

Ich habe mir nun viele der Connectoren für Gambio & Co angeschaut, um zu sehen, wie das dort gemacht wird, aber das sind gegenüber der Dokumentation und den darin enthalten Beispielen andere Ansätze.

Was habe ich übersehen, dass das Mapping für die Kategorie-Attribute nicht gespeichert wird? Wird dafür ein eigener Controller benötigt (habe keinen eruieren können)? Muss für Kategorie-Attribute das Mapping von Hand angestoßen werden?

Freundliche Grüße
Hape von Bröös

Hier noch ein paar Eckdaten:
JTL Connector 4.0.10
Connector Tester 1.0.5.6
PHP 8.0.3
MariaDB 10.5.8

Code:
#########
# Request #
#########
{
  "method": "core.connector.features",
  "params": null,
  "jtlrpc": "2.0",
  "id": "3e7fa2006a3645f08589b9b8473a67b4"
}

##########
# Response #
##########
{
  "result": {
    "entities": {
      "Category": {
        "pull": true,
        "push": true,
        "delete": true
      },
      "CategoryAttr": {
        "pull": true,
        "push": true,
        "delete": true
      },
      "CategoryAttrI18n": {
        "pull": true,
        "push": true,
        "delete": true
      },
      "CategoryCustomerGroup": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CategoryI18n": {
        "pull": true,
        "push": true,
        "delete": true
      },
      "CategoryInvisibility": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Checksum": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ConfigGroup": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ConfigGroupI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ConfigItem": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ConfigItemI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ConfigItemPrice": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CrossSelling": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CrossSellingGroup": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CrossSellingGroupI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CrossSellingItem": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Currency": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Customer": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerAttr": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerGroup": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerGroupAttr": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerGroupI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerGroupPackagingQuantity": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrder": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrderAttr": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrderBillingAddress": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrderItem": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrderItemVariation": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrderPaymentInfo": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "CustomerOrderShippingAddress": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "DeliveryNote": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "DeliveryNoteItem": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "DeliveryNoteItemInfo": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "FileDownload": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "FileDownloadI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "FileUpload": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "FileUploadI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "GlobalData": {
        "pull": true,
        "push": false,
        "delete": false
      },
      "Image": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Language": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Manufacturer": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ManufacturerI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "MeasurementUnit": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "MeasurementUnitI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "MediaFile": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "MediaFileAttr": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "MediaFileAttrI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "MediaFileI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "PartsList": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Payment": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Product": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Product2Category": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductAttr": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductAttrI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductConfigGroup": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductFileDownload": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductInvisibility": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductPartsList": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductPrice": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductPriceItem": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductSpecialPrice": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductSpecialPriceItem": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductSpecific": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductStockLevel": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductType": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVarCombination": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariation": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationInvisibility": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationValue": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationValueDependency": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationValueExtraCharge": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationValueI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductVariationValueInvisibility": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ProductWarehouseInfo": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Shipment": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "ShippingClass": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Specific": {
        "pull": false,
        "push": true,
        "delete": false
      },
      "SpecificI18n": {
        "pull": false,
        "push": true,
        "delete": false
      },
      "SpecificValue": {
        "pull": false,
        "push": true,
        "delete": false
      },
      "SpecificValueI18n": {
        "pull": false,
        "push": true,
        "delete": false
      },
      "Statistic": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "StatusChange": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "TaxClass": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "TaxRate": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "TaxZone": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "TaxZoneCountry": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Unit": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "UnitI18n": {
        "pull": false,
        "push": false,
        "delete": false
      },
      "Warehouse": {
        "pull": false,
        "push": false,
        "delete": false
      }
    },
    "flags": {
      "var_combination_child_first": false,
      "product_images_supported": false,
      "category_images_supported": false,
      "manufacturer_images_supported": false,
      "specific_images_supported": false,
      "specific_value_images_supported": false,
      "config_group_images_supported": false,
      "product_variation_value_images_supported": false,
      "variation_products_supported": false,
      "variation_combinations_supported": true,
      "set_articles_supported": false,
      "free_field_supported": false,
      "needs_category_root": false,
      "translated_attributes_supported": true,
      "send_all_acks": false,
      "disable_statistics": false,
      "needs_finish_call": true
    }
  },
  "error": null,
  "jtlrpc": "2.0",
  "id": "3e7fa2006a3645f08589b9b8473a67b4"
}

#########
# Request #
#########
{
  "method": "category.push",
  "params": [
    {
      "id": [
        "",
        1
      ],
      "parentCategoryId": [
        "",
        0
      ],
      "isActive": true,
      "level": 0,
      "sort": 0,
      "attributes": [
        {
          "categoryId": [
            "",
            1
          ],
          "id": [
            "",
            1
          ],
          "isCustomProperty": false,
          "isTranslated": false,
          "i18ns": [
            {
              "categoryAttrId": [
                "",
                1
              ],
              "languageISO": "ger",
              "name": "attribute1",
              "value": "Hallo Frank"
            }
          ]
        },
        {
          "categoryId": [
            "",
            1
          ],
          "id": [
            "",
            2
          ],
          "isCustomProperty": false,
          "isTranslated": false,
          "i18ns": [
            {
              "categoryAttrId": [
                "",
                2
              ],
              "languageISO": "ger",
              "name": "attribute2",
              "value": "Dies ist ein Test"
            }
          ]
        }
      ],
      "customerGroups": [],
      "i18ns": [
        {
          "categoryId": [
            "",
            1
          ],
          "description": "",
          "languageISO": "ger",
          "metaDescription": "",
          "metaKeywords": "",
          "name": "Hardware",
          "titleTag": "",
          "urlPath": ""
        }
      ],
      "invisibilities": []
    },
    {
      "id": [
        "",
        2
      ],
      "parentCategoryId": [
        "",
        1
      ],
      "isActive": true,
      "level": 1,
      "sort": 0,
      "attributes": [],
      "customerGroups": [],
      "i18ns": [
        {
          "categoryId": [
            "",
            2
          ],
          "description": "",
          "languageISO": "ger",
          "metaDescription": "",
          "metaKeywords": "",
          "name": "Apple",
          "titleTag": "",
          "urlPath": ""
        }
      ],
      "invisibilities": []
    }
  ],
  "jtlrpc": "2.0",
  "id": "1784e1cdd79a4310b5d80b228192350f"
}

##########
# Response #
##########
{
  "result": [
    {
      "id": [
        "1b70562e2d3f4405afca09721a1a93f5",
        1
      ],
      "parentCategoryId": [
        "",
        0
      ],
      "isActive": true,
      "level": 0,
      "sort": 0,
      "attributes": [
        {
          "id": [
            "67826c4168e24202ad568e5c70b42364",
            1
          ],
          "isTranslated": false,
          "isCustomProperty": false,
          "i18ns": [
            {
              "languageIso": "de",
              "name": "attribute1",
              "value": "Hallo Frank",
              "languageISO": "ger"
            }
          ]
        },
        {
          "id": [
            "987bd450aef74d54a029ff5285446366",
            2
          ],
          "isTranslated": false,
          "isCustomProperty": false,
          "i18ns": [
            {
              "languageIso": "de",
              "name": "attribute2",
              "value": "Dies ist ein Test",
              "languageISO": "ger"
            }
          ]
        }
      ],
      "customerGroups": [],
      "i18ns": [
        {
          "languageIso": "de",
          "description": "",
          "metaDescription": "",
          "metaKeywords": "",
          "name": "Hardware",
          "titleTag": "",
          "urlPath": "",
          "languageISO": "ger"
        }
      ],
      "invisibilities": []
    },
    {
      "id": [
        "1a28bdd94be140dfbda3e758690f5e2a",
        2
      ],
      "parentCategoryId": [
        "1b70562e2d3f4405afca09721a1a93f5",
        1
      ],
      "isActive": true,
      "level": 1,
      "sort": 0,
      "attributes": [],
      "customerGroups": [],
      "i18ns": [
        {
          "languageIso": "de",
          "description": "",
          "metaDescription": "",
          "metaKeywords": "",
          "name": "Apple",
          "titleTag": "",
          "urlPath": "",
          "languageISO": "ger"
        }
      ],
      "invisibilities": []
    }
  ],
  "error": null,
  "jtlrpc": "2.0",
  "id": "1784e1cdd79a4310b5d80b228192350f"
}

Noch eine andere Sache, die mir aufgefallen ist:

Code:
"languageIso": "de",
"name": "attribute2",
"value": "Dies ist ein Test",
"languageISO": "ger"

Im Response der Push-Aktion wird bei allen Objekten zusätzlich "languageIso": "de" gesetzt. Warum wird das gemacht? Wenn ich mir den Iso ausgeben lasse ist es "de" und so wird es dann auch bei uns in der DB abgespeichert. Aber von der WaWi bzw. vom Connector-Tester wird "ger" angeliefert.
 
Zuletzt bearbeitet:

Immanuel

Moderator
Mitarbeiter
24. August 2016
1.434
299
Hallo @broesHPB,

bei einem Pull wird durch JTL-Wawi kein ACK für Attribute gesendet. Daher werden auch keine Mappings dafür angelegt. Bei einem Push wiederum sollten Mappings für Attribute erstellt werden, solange der Primary Key Mapper diese Identitätstypen unterstützt.

JTL-Wawi arbeitet mit dem Sprachstandard ISO 639-2b. Der Connector Core 4 wiederum arbeitet der Einfachheit halber mit ISO 639-1 und konvertiert zwischen ISO 639-2b und ISO 639-1. Das für JTL-Wawi relevante Property ist hier "languageISO".
 

broesHPB

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

danke für das Feedback.

Bei einem Push wiederum sollten Mappings für Attribute erstellt werden, solange der Primary Key Mapper diese Identitätstypen unterstützt.

Als Vorlage nutze ich das Beispiel aus der Dokumentation (primary-key-mapper-class.html). Diese wird (ebenfalls wie in der Dokumentation vorgegeben) in der connector-class.html via getPrimaryKeymapper() zur Verfügung gestellt. Die PrimaryKeyMapper-Klasse aus der Dokumentation scheint Kategorie-Attribute
aber nicht zu berücksichtigen. An Hand des Protokolls, wird category.push ausgeführt, demnach müsste Deine Aussage hier zutreffen und ein Mapping erstellt werden (auch für Kategorie-Attribute). Wird es aber leider nicht.

Vielleicht weil die Kategorie-Attribute als Eigenschaft am Kategorie-Objekt hängen und keinen eigenen Controller haben? Vielleicht weil die Controller und die dahinter liegende Logik nach einem bestimmten Schema, z. B. bei Kategorien, die Id (Identity) generisch nutzen und an den PrimaryKeyMapper übergeben. Haben Entitäten, wie Kategorien, aber noch Eigenschaften, wie Attribute, so scheint dies nicht generisch berücksichtigt zu werden? Ich kann hier nur Vermutungen anstellen, da dies alles aus der Dokumentation nicht hervor geht.

Daher würde ich mir wünschen, dass die Dokumentation um ein funktionierendes Beispiel für Attribute bzw. Kategorie-Attribute ergänzt wird, da es für mich aktuell sehr schwer ist nachzuvollziehen oder/und herzuleiten, wie oder warum eben Attribute nicht gemapped werden.

Was bedeutet ACK? Dazu finde ich in der Dokumentation leider nichts.

Nachtrag zu ACK

Hier mal mein "Gedankengang" zur Analyse des Quellcodes.
  • Gedankengang:
    • In \Jtl\Connector\Core\Controller\ConnectorController::ack habe ich jetzt etwas gefunden, das wird laut PhpStormaber nur von ConnectorTest.php aufgerufen.
      • Darin wird auch auf dem Linker die save() Methode aufgerufen (im Linker wird wohl der PrimaryKeyMapper hinterlegt sein).
      • Die Methode ack() war eine Sackgasse.
  • In \Jtl\Connector\Core\Application\Application::handleRequest:723 wird der ConnectorController(der die Methode ack hat) instanziiert
    • In \Jtl\Connector\Core\Application\Application::handleRequest:757 via im Container hinterlegten IdentityLinker mit der Methode linkModel() dann das Mapping erzeugt.
    • Je nachdem was in Application::prepareContainer() gesetzt wird, in meinem Fall der PrimaryKeyMapper aus meiner Connector.php, wird dieser dann dafür genutzt.
  • In \Jtl\Connector\Core\Linker\IdentityLinker::linkModel werden dann über den Model-Typ dessen Properties abgeklappert.
    • Alle die dem Typ AbstractDataModel entsprechen werden dann rekursiv erneut an linkModel übergeben. Alle vom Typ Identityan linkIdentity.
      • Demnach müsste bei Kategorien die Eigenschaft für Attribute eigentlich berücksichtigt werden.
  • Debug-Ergebnisse:
    • In \Jtl\Connector\Core\Linker\IdentityLinker::linkModel:109 wird abgefragt ob die Eigenschaft vom Typ Identity und im Model die Kombination aus Modelname (z. B. TranslatableAttribute) und Eigenschaftsname (z. B. id) hinterlegt und damit erlaubt ist.
    • In Jtl\Connector\Core\Definition\Model.php:111 in $propertyMappings sind dafür die Kombinationen hinterlegt.
      • Für CATEGORY_ATTRIBUTE ist aber kein Property-Mapping vorhanden.
  • Problem-Analyse:
    • Category->getAttributes() liefert ein Array mit TranslatableAttribute Entitäten
    • In \Jtl\Connector\Core\Definition\Model::CATEGORY_ATTRIBUTE ist statt TranslatableAttribute der Typ CategoryAttr hinterlegt.
      • (CategoryAttr gibt es im Ordner jtl/connector/src/Model nicht)
    • In \Jtl\Connector\Core\Definition\Model::$propertyMappings fehlt für \Jtl\Connector\Core\Definition\Model::CATEGORY_ATTRIBUTE das Mapping.
    • Passt man dies an, funktioniert das Mapping so, wie es soll.
      • Option A:
        • Model für CategoryAttr erstellen (leitet von TranslatableAttribute ab).
        • Überall die Typen anpassen, wo Kategorie-Attribute zurückgegeben werden oder als Parameter entgegen genommen bzw. gespeichert werden.
        • Eigenschaften-Mapping $propertyMappings ergänzen.
        • Sollte dann Typsicher sein.
      • Option Quickhack (schmutzig):
        • Statt CategoryAttr den Wert TranslatableAttribute für \Jtl\Connector\Core\Definition\Model::CATEGORY_ATTRIBUTE hinterlegen.
        • Eigenschaften-Mapping $propertyMappings ergänzen.
        • Ist nicht zwingend Typsicher.
JTL-Wawi arbeitet mit dem Sprachstandard ISO 639-2b. Der Connector Core 4 wiederum arbeitet der Einfachheit halber mit ISO 639-1 und konvertiert zwischen ISO 639-2b und ISO 639-1. Das für JTL-Wawi relevante Property ist hier "languageISO".

Okay. Ich nutze die Object-Methoden getLanguageIso() und setLanguageIso(), die ISO 639-1 liefern/setzen. Mich hatte es nur gewundert, dass in der RPC-Antwort beide Varianten (lediglich durch Groß-Klein-Schreibung unterschieden) zurück gesendet werden, wenn die WaWi ISO 639-1 nicht interpretiert.

Freundliche Grüße
Hape von Bröös
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Immanuel

Immanuel

Moderator
Mitarbeiter
24. August 2016
1.434
299
Danke für deine Analyse Hape. Du hast vollkommen recht, das Mapping von Translatable Attributes funktioniert so nicht. Da es an zwei Stellen Translatable Attributes gibt, müssten auch diese unabhängig voneinander mapbar sein. Um das Problem zu lösen bleibt nur Option A, dann aber sowohl für Kategorie- als auch Artikel-Attribute. Auch sollte das Naming angepasst werden (ProductAttr => ProductAttribute).
 
  • Gefällt mir
Reaktionen: broesHPB

broesHPB

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

danke für die Anpassungen und für das Involvieren.

Werde morgen das Composer-Repo upgraden und es auf die neuen Typen umstellen (was ich nun auch sehr viel verständlicher finde).

Insbesondere für die Doku würde ich mir noch wünschen, dass es dazu ein Beispiel gibt, wie man nun solche Attribute behandelt, da sie ja einen Sonderfall darstellen und keinen eigenen Controller haben, aber Teil eines Controllers sind, was man aber wissen muss (die Doku aber nicht darauf hinweist).

Freundliche Grüße
Hape von Bröös
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Product Custom Meta - Best Practice? WooCommerce-Connector 0
Beantwortet custom.css im NovaChild wird nur in <noscript> geladen? Templates für JTL-Shop 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
Neu Shopware 6 - Connector Error: Malformed UTF-8 characters Shopware-Connector 3
Neu Connector Einstellungen Synchronisation Shopify-Connector 4
Neu JTL->Prestashop: hat jemand einen Connector selbst (weiter-)entwickelt oder will sich jemand zusammenschließen? PrestaShop-Connector 3
Neu Firewall+Security Plugin für WordPress kompaktibel mit JTL Connector? WooCommerce-Connector 0
Neu Frage Woocommerce Connector: Nur einzelne Werte in Woocommerce übernehmen möglich? WooCommerce-Connector 0

Ähnliche Themen