Hallo!
Wie im Tutorial angegeben, erstelle ich in GlobalDataController :: pull einige grundlegende Objekte, z.B. Sprache, Währung usw. Mein Problem ist: Diese Objekte erscheinen alle nicht in der Mapping-Tabelle, so dass der Connector nicht wissen kann, wie hier ein Endpoint auf einen Host gemappt werden soll. Beispiel:
Wenn ich nun versuche, einem CrossSellingItem diese CrossSellingGroup hinzuzufügen:
wird keine HostId gefunden und das ganze scheitert (Meldung: " Shop unterstützt keine individuellen Cross-Selling-Gruppen. Cross-Selling-Gruppe 'Bulk-CrossSelling' wurde in der Wawi angelegt. Über diese Gruppe können Cross-Seller für den Shop gepflegt werden.").
Gebe ich die HostId "per Hand" vor:
geht es. Aber das ist irgendwie nicht Sinn der Sache
Ich habe aber bemerkt, dass der Connector für die Daten aus globalData überhaupt keine Einträge in der Mapping-Tabelle vornimmt. Im Mapper wird zwar getHostId aufgerufen, aber nie save.
Ist das gewollt oder ein Fehler? Wie kann ich diese Objekte denn ansprechen?
Wie im Tutorial angegeben, erstelle ich in GlobalDataController :: pull einige grundlegende Objekte, z.B. Sprache, Währung usw. Mein Problem ist: Diese Objekte erscheinen alle nicht in der Mapping-Tabelle, so dass der Connector nicht wissen kann, wie hier ein Endpoint auf einen Host gemappt werden soll. Beispiel:
Code:
class GlobalDataController implements PullInterface, PushInterface
{
public function pull(QueryFilter $queryFilter) : array
{ $result = [];
$globalData = new GlobalData;
$crossSellingGroup = (new CrossSellingGroup)
->setId(new Identity("ShopEndpoint"))
->addI18n((new CrossSellingGroupI18n())->setName("Meine CrossSellingGruppe")->setLanguageIso("de"));
$globalData->addCrossSellingGroup($crossSellingGroup);
$result[] = $globalData;
return $result;
}
..
}
Wenn ich nun versuche, einem CrossSellingItem diese CrossSellingGroup hinzuzufügen:
Code:
$item = (new CrossSellingItem)
->setCrossSellingGroupId(new Identity("ShopEndpoint");
Gebe ich die HostId "per Hand" vor:
Code:
$item = (new CrossSellingItem)
->setCrossSellingGroupId(new Identity("ShopEndpoint", 1);
Ich habe aber bemerkt, dass der Connector für die Daten aus globalData überhaupt keine Einträge in der Mapping-Tabelle vornimmt. Im Mapper wird zwar getHostId aufgerufen, aber nie save.
Ist das gewollt oder ein Fehler? Wie kann ich diese Objekte denn ansprechen?