productSlug can be null, do more discovery, add fallback

This commit is contained in:
Anton Smirnov 2025-06-20 15:50:16 +03:00
parent 354cea09a7
commit 00eb145320

View file

@ -59,13 +59,20 @@ class EpicGamesFreeBridge extends BridgeAbstract
) {
continue;
}
$slug = $element['productSlug'] ?? $element['catalogNs']['mappings'][0]['pageSlug'] ?? null;
if ($slug !== null) {
$uri = parent::getURI() . $this->getInput('locale') . '/p/' . $slug;
} else {
// slug not found, show the root promos page
$uri = parent::getURI() . $this->getInput('locale') . '/free-games';
}
$item = [
'author' => $element['seller']['name'],
'content' => $element['description'],
'enclosures' => array_map(fn($item) => $item['url'], $element['keyImages']),
'timestamp' => strtotime($promo['startDate']),
'title' => $element['title'],
'uri' => parent::getURI() . $this->getInput('locale') . '/p/' . $element['productSlug'],
'uri' => $uri,
];
$this->items[] = $item;
}