Вы можете повторно использовать модуль перезаписи URL каталога magento.
Вам просто нужно будет передать категорию и идентификатор магазина в качестве параметров.
public function __construct(
\Magento\CatalogUrlRewrite\Model\ProductUrlPathGenerator $ProductUrlPathGenerator,
....
) {
$this->ProductUrlPathGenerator = $ProductUrlPathGenerator;
....
}
public function fetchFullProductUrl($product)
{
...
return $this->ProductUrlPathGenerator->getUrlPathWithSuffix($product, $storeId, $category);
}