REST Api batch delete

Hallo, ich möchte über die REST-Api auf unseren Shop zugreifen. Das funktioniert auch bislang recht gut, allerdings gelingt es mir nicht, Artikel per batch-delete zu löschen - viele Artikel einzeln zu löschen geht zwar, dauert aber ziemlich lange.

Wenn ich mich nicht irre, sollte ein JSON für ein batch-delete beispielhaft so aussehen:

[[{“id”: 434}],[{“id”: 435}]]

wobei es in unserem Shop die Artikel mit diesen IDs gibt. Wenn ich das jedoch mit Postman absende, dann bekomme ich so etwas zurück:

{
    “success”: true,
    “data”: [
        {
            “success”: false,
            “message”: “”,
            “trace”: "
#0 engine\Shopware\Components\Api\Resource\Resource.php(262): Shopware\Components\Api\Resource\Article->delete(false)

#1 engine\Shopware\Controllers\Api\Rest.php(106): Shopware\Components\Api\Resource\Resource->batchDelete(Array)

#2 engine\Library\Enlight\Controller\Action.php(159): Shopware_Controllers_Api_Rest->batchDeleteAction()

#3 engine\Library\Enlight\Controller\Dispatcher\Default.php(530): Enlight_Controller_Action->dispatch(‘batchDeleteActi…’)

#4 engine\Library\Enlight\Controller\Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))

#5 engine\Shopware\Kernel.php(191): Enlight_Controller_Front->dispatch()

#6 vendor\symfony\http-kernel\HttpCache\HttpCache.php(484): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)

#7 engine\Shopware\Components\HttpCache\AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)

#8 vendor\symfony\http-kernel\HttpCache\HttpCache.php(251): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)

#9 vendor\symfony\http-kernel\HttpCache\HttpCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)

#10 engine\Shopware\Components\HttpCache\AppCache.php(143): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)

#11 vendor\symfony\http-kernel\HttpCache\HttpCache.php(199): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)

#12 engine\Shopware\Components\HttpCache\AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)

#13 shopware.php(118): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))

#14 {main}"
        },
        {
            …
        }
    ]
}

 

Hat vielleicht jemand diesbezüglich eine Idee? Oder hat es schon mal jemand geschafft, Artikel per batch-delete zu löschen und kann mir sagen, wie das JSON dazu aussehen muss?

 

Hallo @StephanK‍,

deine JSON darf sein wie so:

[{"id": 434},{"id": 435}]

VG,

Tel.: +49 755 - 183 990 00 | Web: http://enbit.de/

1 Like

Vielen Dank, ahmadsaad, das funktioniert prima so!