Fehler bei sGetArticleById($articleID) wenn Artikel nicht mehr vorhanden / gelöscht wurde

Wir holen uns über:

 Shopware()-\>Modules()-\>Articles()-\>sGetArticleById($articleID); 

einen Artikel. Das Problem ist nun, dass wenn der Artikel gelöscht wurde, uns diese Abfrage dann einen Fehler auswirft.

Gibt es hierfür noch eine elegantere Methode?

Es gibt ein paar Möglichkeiten:

1.) try/catch

try {
  $article = Shopware()->Modules()->Articles()->sGetArticleById(...);
} catch (\Exception $ex) {
  // ...
}
  1. Über die repo

    $repo = $this->container->get(‚models‘)->getRepository(\Shopware\Models\Article\Article::class); // oder die detail
    $article = $repo->find($id); // bzw finyOneBy per ordernumber

    if (empty($article)) {
    // article nicht gefunden …
    }

  2. Über die ListProductSerice / ProductService

… und bestimmt noch einige mehr. bitte ergänzen :slight_smile:

1 Like

Super, vielen Dank dir, dann haben wir hier für andere, die auch nach einer Lösung suchen ein paar Möglichkeiten :wink: