[gelöst] Shopware API PHP Client Artikel Import Error

Shopware API PHP Client Artikel Import Error

Ich versuche über die API Artikel zu importieren. Klappt soweit ganz gut, nur nun gibt es einen Artikel da bekomme ich keine Fehlermeldung mit der ich etwas anfangen kann.

Das ist der Aufruf:

$client->put(‘articles/’, $articles);

Das erhalte ich dabei:

HTTP: 500

No Success

Error message: You have requested a synthetic service (“db_connection”). The DIC does not know how to construct this service.

Im Shopware Backend habe ich folgendes dazu gefunden:
Shopware System-Log: core:

Symfony\Component\DependencyInjection\Exception\RuntimeException: You have requested a synthetic service (“db_connection”). The DIC does not know how to construct this service. in /mnt/disks/shopware/www.globo-lighting.com/var/cache/production_201710241020/proxies/ShopwareProductione148d313d1fcea6ccfea63c681a4d03a73a1afbdProjectContainer.php:884 Stack trace:
#0 /vendor/symfony/dependency-injection/Container.php(304): ShopwareProductione148d313d1fcea6ccfea63c681a4d03a73a1afbdProjectContainer->getDbConnectionService()
#1 /engine/Shopware/Components/DependencyInjection/Container.php(217): Symfony\Component\DependencyInjection\Container->get(‘db_connection’, 2)
#2 /engine/Shopware/Components/DependencyInjection/Container.php(167): Shopware\Components\DependencyInjection\Container->doLoad(‘db_connection’)
#3 /engine/Shopware/Components/Api/Resource/Resource.php(589): Shopware\Components\DependencyInjection\Container->load(‘db_connection’)
#4 /engine/Shopware/Components/Api/Resource/Resource.php(330): Shopware\Components\Api\Resource\Resource->resetEntityManager()
#5 /engine/Shopware/Controllers/Api/Rest.php(79): Shopware\Components\Api\Resource\Resource->batch(Array)
#6 /engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Api_Rest->batchAction()
#7 /engine/Library/Enlight/Controller/Dispatcher/Default.php(530): Enlight_Controller_Action->dispatch(‘batchAction’)
#8 /engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#9 /engine/Shopware/Kernel.php(189): Enlight_Controller_Front->dispatch()
#10 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#11 /engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#12 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(275): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#14 /engine/Shopware/Components/HttpCache/AppCache.php(143): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#15 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(206): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#16 /engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#17 /mnt/disks/shopware/www.globo-lighting.com/shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#18 {main}

Hier ist ein var_dump des oben angeführten $articles Array.

(Ausgelagert auf Pastebin da zu lange fürs Forum (Body is 10363 characters too long.))

PS: Als ich auf “Show popular tags” klickte um Tags zum Post hinzuzufügen hat der Browser die Seite neu geladen und meinen ganzen Text gelöscht.

 

Die Struktur des Arrays sieht merkwürdig aus… Selbst auf „See Original“ unter „Raw Output“ scheint mir das noch etwas konfus.

Beim Import versuchst du demnach ein Post über die API abzusetzen, richtig? Hast du mal hier geschaut https://developers.shopware.com/developers-guide/rest-api/examples/article/ ?

Beim Zusammenbauen darauf achten, dass du die Knotenpunkte auch alle richtig benennst.

Danke, ja haben das ja alles nach Doku aufgebaut und hat bisher bei ca. 8000 Artikeln geklappt. Nur bei diesem hier nicht. Ist kein POST sondern ein PUT wie es für den BATCH Mode angeführt ist. Siehe hier: REST API - Examples using the batch mode

Hm… Ich habe über Put-Batch noch nie Artikel angelegt, aber das Array sollte auch dabei die gleiche Form wie in einem Post haben, nur eben mit einer weiteren Ebene drüber. Gib dir doch mal aus deiner Rückgabe den Strang mit dem einen Artikel über "

".print\_r($deinArray,true)."

" aus, dann sieht du was er versucht einzuspielen (deutlicher).

Wir haben das Problem nun gefunden.

Wir hatten 2 mal das selbe Property im Array, hier der Auszug:

[„propertyValues“]=>
    array(16) {
        [4]=>
            array(2) {
                [„option“]=>
                array(1) {
                    [„name“]=>
                    string(5) „Farbe“
                }
                [„value“]=>
                string(4) „grau“
            }
        [6]=>
            array(2) {
                [„option“]=>
                array(1) {
                    [„name“]=>
                    string(5) „Farbe“
                }
                [„value“]=>
                string(4) „grau“
            }
    }

 

Wie kann ich den Thread als beantwortet markieren?

Müsstest entweder eine Antwort als „hat meine Frage beantwortet“ markieren oder schreib einfach [gelöst] oder so davor.