API Update Artikel erzeugt während des Uploads Fehlermeldung

Hallo,

wir nutzen die API Schnittstelle seitens unseres ERP-Herstellers (Mercator-Warenwirtschaft) und erhalten während des Uploads Fehlermeldungen im Shop.
Angenommen man lädt eine große Menge an Artikeln hoch, ist während dieser Zeit fast der gesamte Shop down.
Die betrifft alle Artikel bzw. Listings, in dem Artikel enthalten sind (im Upload).
Im Anschluss funktioniert dann der Shop wieder.
Die Fehlermeldung lautet:

Fatal error: Uncaught TypeError: Argument 1 passed to Shopware\Components\Compatibility\LegacyStructConverter::convertListProductStruct() must be an instance of Shopware\Bundle\StoreFrontBundle\Struct\ListProduct, null given, called in /engine/Shopware/Core/sArticles.php on line 2386 and defined in /engine/Shopware/Components/Compatibility/LegacyStructConverter.php:311 Stack trace: #0 /engine/Shopware/Core/sArticles.php(2386): Shopware\Components\Compatibility\LegacyStructConverter->convertListProductStruct(NULL) #1 /engine/Shopware/Core/sArticles.php(456): sArticles->getListing('6', Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext), Object(Enlight_Controller_Request_RequestHttp), Object(Shopware\Bundle\SearchBundle\Criteria)) #2 /engine/Shopware/Controllers/Frontend/Listing.php(520): sArticles->sGetArticlesByCategory('6', Object(Shopware\Bundle\SearchBundle\Criteria)) #3 /eng in /var/www/web6/htdocs/sw/engine/Shopware/Components/Compatibility/LegacyStructConverter.php on line 311 

Wisst Ihr damit etwas anzufangen und könnt mir sagen, wie ich das ggf. beheben kann?

Außerdem kommt auf Artikeldetailsebene folgende Meldung hinzu:

Fatal error: Uncaught Error: Call to a member function getId() on null in /engine/Shopware/Bundle/StoreFrontBundle/Gateway/DBAL/VoteGateway.php:103 Stack trace: #0 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/VoteService.php(85): Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\VoteGateway->getList(Array, Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext)) #1 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/ProductService.php(160): Shopware\Bundle\StoreFrontBundle\Service\Core\VoteService->getList(Array, Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext)) #2 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/ProductService.php(147): Shopware\Bundle\StoreFrontBundle\Service\Core\ProductService->createFromListProducts(Array, Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext)) #3 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/ProductService.php(136): Shopware\Bundl in /var/www/web6/htdocs/sw/engine/Shopware/Bundle/StoreFrontBundle/Gateway/DBAL/VoteGateway.php on line 103

Und:

Fatal error: Uncaught Error: Call to a member function getNumber() on null in /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/RelatedProductsService.php:115 Stack trace: #0 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/RelatedProductsService.php(97): Shopware\Bundle\StoreFrontBundle\Service\Core\RelatedProductsService->getProductsByNumbers(Array, Array) #1 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/ProductService.php(162): Shopware\Bundle\StoreFrontBundle\Service\Core\RelatedProductsService->getList(Array, Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext)) #2 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/ProductService.php(147): Shopware\Bundle\StoreFrontBundle\Service\Core\ProductService->createFromListProducts(Array, Object(Shopware\Bundle\StoreFrontBundle\Struct\ShopContext)) #3 /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/ProductService.php(136): Shopwar in /engine/Shopware/Bundle/StoreFrontBundle/Service/Core/RelatedProductsService.php on line 115 

 

Dazu sei gesagt, dass das in einem neutralen Test-System nicht reproduzierbar ist, und es bei @haustechnik‍ auch nicht bei allen Artikeln passiert.
Diese Downzeit können wir uns nur durch die Serverlast erklären (viele Artikel, geänderte Bilddaten, …), alle Operationen erfolgen ganz offiziell durch die lokale API Ressourcen.

Vielleicht hat wer eine Idee? Verwaiste Cross-Seller?

Zur Serverlast: Ich würde für die große Artikelmenge dann wohl auch empfehlen, die minütlichen/stündlichen Updates nur auf Preise- und Bestände zu reduzieren (Kompaktformat) um die Perfomance zu steigern. Und komplette Artikeldaten (die mit Varianten ja auch mal größer sein können) können Sie vielleicht noch besser mit dem Änderungs- Flag selektieren („nur geänderte Artikel“ im Export). Dann werden nur vollständige Artikel hochgeladen, die seit dem letzten Export geändert bzw. angepasst wurden. So ersparen Sie sich vielleicht den kompletten Katalog immer durchwälzen zu müssen, was zum einen den Server schont und zum anderen deutlich schneller funktioniert.

Schöne Grüße,
Niklas