Subshop Produktsuche

Hallo zusammen.

Ich stehe gerade vor einen kleinen Problem. In meinem Plugin will ich alle Produkte einer Kategorie erhalten. Dies funktioniert auch für den „Haupshop“ wie es soll. Das ganze soll aber auch auf Subshop Ebene funktionieren. Sprich ich will die Produkt-Urls aus dem Subshop und nicht aus dem Hauptshop. Folgender Code wird aktuell verwendet.

$context = $this->contextService->createShopContext(SUBSHOPID);
$criteria = new \Shopware\Bundle\SearchBundle\Criteria();
$criteria->addCondition(new \Shopware\Bundle\SearchBundle\Condition\CategoryCondition([KATEGORIE]));

$searchResult = $this->productSearch->search(
    $criteria,
    $context
);

Ich dachte wenn ich den Shopcontext mit der Id des Subshops setze funktioniert es aber leider nicht. Was mache ich falsch?

Gruß Mike

Ok das oben beschriebene Problem hat sich gelöst. Hatte noch einen kleine Fehler drin. Der Code oben ist korrekt. Die Produkt-Urls stimmen nun. Leider wird im Bildpfad immer noch die URL des Hauptshops verwendet. Ideen?

/** @var \Shopware\Bundle\StoreFrontBundle\Struct\ListProduct $product */
foreach ($searchProducts as $product) {
    $structProduct = $this->productService->get($this->getOrdernumberByArticleId($product->getId()), $this->contextService->getShopContext());
    $product = $this->legacyStructConverter->convertListProductStruct($product);

    /** @var StoreFrontBundle\Struct\Product $legacyProduct */
    $legacyProduct = $this->legacyStructConverter->convertProductStruct($structProduct);
    $imageLink = $legacyProduct['image']['source'];

 

In welchen Context tuest du das?

Für die Cli müsstest du einmal das Doctrine Objekt vom Shop holen und ->registerResources() aufrufen