/**
  * @param \Magento\UrlRewrite\Service\V1\Data\UrlRewrite $url
  * @param int $storeId
  * @return array
  */
 protected function generateForCustom($url, $storeId)
 {
     $urls = [];
     $targetPath = !$url->getRedirectType() ? $url->getTargetPath() : $this->categoryUrlPathGenerator->getUrlPathWithSuffix($this->category, $storeId);
     if ($url->getRequestPath() !== $targetPath) {
         $urls[$url->getRequestPath() . '_' . $storeId] = $this->urlRewriteFactory->create()->setEntityType(CategoryUrlRewriteGenerator::ENTITY_TYPE)->setEntityId($this->category->getId())->setRequestPath($url->getRequestPath())->setTargetPath($targetPath)->setRedirectType($url->getRedirectType())->setStoreId($storeId)->setDescription($url->getDescription())->setIsAutogenerated(0)->setMetadata($url->getMetadata());
     }
     return $urls;
 }
예제 #2
0
 /**
  * @param UrlRewrite $url
  * @return bool
  */
 protected function isCorrectUrl(UrlRewrite $url)
 {
     $metadata = $url->getMetadata();
     return $url->getEntityType() == ProductUrlRewriteGenerator::ENTITY_TYPE && !empty($metadata['category_id']) && $url->getIsAutogenerated();
 }
 /**
  * @param UrlRewrite $url
  * @return Category|null|bool
  */
 protected function retrieveCategoryFromMetadata($url)
 {
     $metadata = $url->getMetadata();
     if (isset($metadata['category_id'])) {
         $category = $this->import->getCategoryProcessor()->getCategoryById($metadata['category_id']);
         return $category === null ? false : $category;
     }
     return null;
 }
 /**
  * @param UrlRewrite $url
  * @return Category|null|bool
  */
 protected function retrieveCategoryFromMetadata($url)
 {
     $metadata = $url->getMetadata();
     if (isset($metadata['category_id'])) {
         $category = $this->productCategories->get($metadata['category_id']);
         return $category === null ? false : $category;
     }
     return null;
 }