Я отвечаю на мой вопрос. Ответ mtns_cll на вопрос Magento 2 получить URL магазина внешнего интерфейса для пути в админ работает для меня.
Я выкладываю свое решение здесь на тот случай, если кому-то это нужно:
внешний вид продукта :
инъекционные \Magento\Framework\Url $url
$url->getUrl('catalog/product/view', ['id' => $entityId, '_nosid' => true, '_query' => ['___store' => $storeCode]]);
бэкэнд продукта
введите \Magento\Framework\UrlInterface $url
или используйте интерфейс URL, унаследованный от родительского класса.
$url->getUrl('catalog/product/edit', ['id' => $entityId, 'store' => $targetStoreId]);
фронтенд категории
inject `\ Magento \ Framework \ Url $ url
$url->getUrl('catalog/category/view', ['id' => $entityId, '_nosid' => true, '_query' => ['___store' => $storeCode]]);
бэкэнд категории
введите \Magento\Framework\UrlInterface $url
или используйте интерфейс URL, унаследованный от родительского класса.
$url->getUrl('catalog/category/edit', ['id' => $entityId, 'store' => $targetStoreId]);
веб-страница cms
инъекционные Magento\Cms\Block\Adminhtml\Page\Grid\Renderer\Action\UrlBuilder $rul
$url->getUrl($this->_pageModel->getIdentifier(), $targetStoreId, $storeCode );
бэкэнд страницы cms
введите \Magento\Framework\UrlInterface $url
или используйте интерфейс URL, унаследованный от родительского класса.
$url->getUrl(PageActions::CMS_URL_PATH_EDIT, ['page_id' => $pageId]);
бэкэнд блока cms
введите \Magento\Framework\UrlInterface $url
или используйте интерфейс URL, унаследованный от родительского класса.
$url->getUrl(BlockActions::URL_PATH_EDIT, ['block_id' => $blockId]);