public function saveUrlRewrite($link, $id, $storeIds)
    {
        $moduleUrl = $this->stockistsConfig->getModuleUrlSettings();
        $getCustomUrlRewrite = $moduleUrl . "/" . $link;
        $stockistId = $moduleUrl . "-" . $id;

        $storeIds = explode(",", $storeIds);
        foreach ($storeIds as $storeId){

            $filterData = [
                UrlRewriteService::STORE_ID => $storeId,
                UrlRewriteService::REQUEST_PATH => $getCustomUrlRewrite,
                UrlRewriteService::ENTITY_ID => $id,

            ];

            // check if there is an entity with same url and same id
            $rewriteFinder = $this->urlFinder->findOneByData($filterData);

            // if there is then do nothing, otherwise proceed
            if ($rewriteFinder === null) {

                // check maybe there is an old url with this target path and delete it
                $filterDataOldUrl = [
                    UrlRewriteService::STORE_ID => $storeId,
                    UrlRewriteService::REQUEST_PATH => $getCustomUrlRewrite,
                ];
                $rewriteFinderOldUrl = $this->urlFinder->findOneByData($filterDataOldUrl);

                if ($rewriteFinderOldUrl !== null) {
                    $this->urlRewrite->load($rewriteFinderOldUrl->getUrlRewriteId())->delete();
                }

                // check maybe there is an old id with different url, in this case load the id and update the url
                $filterDataOldId = [
                    UrlRewriteService::STORE_ID => $storeId,
                    UrlRewriteService::ENTITY_TYPE => $stockistId,
                    UrlRewriteService::ENTITY_ID => $id
                ];
                $rewriteFinderOldId = $this->urlFinder->findOneByData($filterDataOldId);

                if ($rewriteFinderOldId !== null) {
                    $this->urlRewriteFactory->create()->load($rewriteFinderOldId->getUrlRewriteId())
                        ->setRequestPath($getCustomUrlRewrite)
                        ->save();

                    continue;
                }

                // now we can save
                $this->urlRewriteFactory->create()
                    ->setStoreId($storeId)
                    ->setIdPath(rand(1, 100000))
                    ->setRequestPath($getCustomUrlRewrite)
                    ->setTargetPath("stockists/view/index")
                    ->setEntityType($stockistId)
                    ->setEntityId($id)
                    ->setIsAutogenerated(0)
                    ->save();
            }
        }
    }
public function saveUrlRewrite($link, $id, $storeIds)
    {
        $moduleUrl = $this->stockistsConfig->getModuleUrlSettings();
        $getCustomUrlRewrite = $moduleUrl . "/" . $link;
        $stockistId = $moduleUrl . "-" . $id;

        $storeIds = explode(",", $storeIds);
        foreach ($storeIds as $storeId){

            $filterData = [
                UrlRewriteService::STORE_ID => $storeId,
                UrlRewriteService::REQUEST_PATH => $getCustomUrlRewrite,
                UrlRewriteService::ENTITY_ID => $id,

            ];

            // check if there is an entity with same url and same id
            $rewriteFinder = $this->urlFinder->findOneByData($filterData);

            // if there is then do nothing, otherwise proceed
            if ($rewriteFinder === null) {

                // check maybe there is an old url with this target path and delete it
                $filterDataOldUrl = [
                    UrlRewriteService::STORE_ID => $storeId,
                    UrlRewriteService::REQUEST_PATH => $getCustomUrlRewrite,
                ];
                $rewriteFinderOldUrl = $this->urlFinder->findOneByData($filterDataOldUrl);

                if ($rewriteFinderOldUrl !== null) {
                    $this->urlRewrite->load($rewriteFinderOldUrl->getUrlRewriteId())->delete();
                }

                // check maybe there is an old id with different url, in this case load the id and update the url
                $filterDataOldId = [
                    UrlRewriteService::STORE_ID => $storeId,
                    UrlRewriteService::ENTITY_TYPE => $stockistId,
                    UrlRewriteService::ENTITY_ID => $id
                ];
                $rewriteFinderOldId = $this->urlFinder->findOneByData($filterDataOldId);

                if ($rewriteFinderOldId !== null) {
                    $this->urlRewriteFactory->create()->load($rewriteFinderOldId->getUrlRewriteId())
                        ->setRequestPath($getCustomUrlRewrite)
                        ->save();

                    continue;
                }

                // now we can save
                $this->urlRewriteFactory->create()
                    ->setStoreId($storeId)
                    ->setIdPath(rand(1, 100000))
                    ->setRequestPath($getCustomUrlRewrite)
                    ->setTargetPath("stockists/view/index")
                    ->setEntityType($stockistId)
                    ->setEntityId($id)
                    ->setIsAutogenerated(0)
                    ->save();
            }
        }
    }
public function saveUrlRewrite ( $ link , $ id , $ storeIds ) { $ moduleUrl = $ this -> stockistsConfig -> getModuleUrlSettings ( ) ; $ getCustomUrlRewrite = $ moduleUrl . "/" . $ link ; $ stockistId = $ moduleUrl . "-" . $ id ; $ storeIds = explode ( "," , $ storeIds ) ; foreach ( $ storeIds as $ storeId ) { $ filterData = [ UrlRewriteService :: STORE_ID => $ storeId , UrlRewriteService :: REQUEST_PATH => $ getCustomUrlRewrite , UrlRewriteService :: ENTITY_ID => $ id , ] ; // check if there is an entity with same url and same id $ rewriteFinder = $ this -> urlFinder -> findOneByData ( $ filterData ) ; // if there is then do nothing, otherwise proceed if ( $ rewriteFinder === null ) { // check maybe there is an old url with this target path and delete it $ filterDataOldUrl = [ UrlRewriteService :: STORE_ID => $ storeId , UrlRewriteService :: REQUEST_PATH => $ getCustomUrlRewrite , ] ; $ rewriteFinderOldUrl = $ this -> urlFinder -> findOneByData ( $ filterDataOldUrl ) ; if ( $ rewriteFinderOldUrl !== null ) { $ this -> urlRewrite -> load ( $ rewriteFinderOldUrl -> getUrlRewriteId ( ) ) -> delete ( ) ; } // check maybe there is an old id with different url, in this case load the id and update the url $ filterDataOldId = [ UrlRewriteService :: STORE_ID => $ storeId , UrlRewriteService :: ENTITY_TYPE => $ stockistId , UrlRewriteService :: ENTITY_ID => $ id ] ; $ rewriteFinderOldId = $ this -> urlFinder -> findOneByData ( $ filterDataOldId ) ; if ( $ rewriteFinderOldId !== null ) { $ this -> urlRewriteFactory -> create ( ) -> load ( $ rewriteFinderOldId -> getUrlRewriteId ( ) ) -> setRequestPath ( $ getCustomUrlRewrite ) -> save ( ) ; continue ; } // now we can save $ this -> urlRewriteFactory -> create ( ) -> setStoreId ( $ storeId ) -> setIdPath ( rand ( 1 , 100000 ) ) -> setRequestPath ( $ getCustomUrlRewrite ) -> setTargetPath ( "stockists/view/index" ) -> setEntityType ( $ stockistId ) -> setEntityId ( $ id ) -> setIsAutogenerated ( 0 ) -> save ( ) ; } } }
Saves the url rewrite for that specific store
@param $link string
@param $id int
@param $storeIds string
@return void
Saves the url rewrite for that specific store