Hallo,
ich versuche, bei der Installation eines Plugins einen (später mehrere) Artikel per API anzulegen. Mein bisheriger Code, der insoweit funktioniert, daß der Artikel angelegt wird, sich die Installation im Backend aber aufhängt und bei der Installation per bin/console der Fehler lautet:
Entity has to be managed or scheduled for removal for single computation Shopware\Models\Plugin\Plugin@3257
Der bisherige Code:
public function install(InstallContext $context)
{
$test = \Shopware\Components\Api\Manager::getResource('Article');
$params = array(
'name' => 'MeinArtikelname',
'active' => true,
'tax' => '19',
'supplier' => 'MeinHersteller',
'categories' => [
'id' => 2169
],
'mainDetail' => [
'number' => 'MeineNumber',
'active' => true,
'prices' => [
[
'customerGroupKey' => 'EK',
'price'=> 999.88
]
]
]
)
;
$test->create($params);
}
In diesem Forumsbeitrag hat es mit der getResource()-Methode wohl noch funktioniert.
Ich konnte sehen, daß \Shopware\Components\Api\Manager::getResource(‚Article‘); nicht mehr verwendet werden soll (@deprecated with 5.6, will be removed with 5.8. Inject the resource instead). Somit würde ich gern den aktuellen Weg für Version 5.7.14 benutzen, weiß aber nur, daß dazu \Shopware\Components\Api\Resource\Article verwendet werden müsste. Wie kann ich denn diese in der install-Methode implementieren? Oder geht das nur über (das dekorieren eines) Service? Wie muss dieser dann aussehen?
Danke für eure Denkanstösse!