2010-12-17 5 views
0

젠토는 다음과 같은 제품 URL에 대한 작업을 다른 형식의 번호를 갖고있는 것 같아요 :젠토 제품의 일관성 URL을

/catalog/product/view/id/123/s/my-product-slug/ 
/my-product-slug/ 
/top-category/sub-category/my-product-slug/ 
etc... 

나는 3 일 모두 합치, 인, 항상, 단지 이들 중 하나를 사용하려면 상위 카테고리의 슬러그가 제품 슬러그에 함께 표시됩니다. Magento가 이러한 형식 중 하나만 사용하도록 구성 할 수 있습니까?

getProductUrl()과 같은 방법을 사용하면 현재 페이지/컨텍스트에 따라 다른 결과가 표시되는 것처럼 보입니다. 그 이유는 누구에게 말해 줄 수 있습니까?

그리고 일반적으로 Magento의 라우팅을 좀 더 잘 이해할 수있는 문서 나 블로그 게시물 등을 아는 사람이 있습니까?

감사합니다!

$product_url = "http://www.domain.com/".$product->getUrlPath(); 

답변

3

clockworkgeek은 ... 아주 가까이했고 내 대답에 나를 이끌어

내가 $product->setCategoryId()를 사용하여 시도하고 $product->getCategoryId() 아무것도 반환하지 않는 것을하고 Mage_Catalog_Model_Product_Url::getUrl 방법은에 getCategoryId 방법에 의존한다는 것을 발견했다 제품 모델을 사용하여 제품의 URL을 찾습니다. getCategoryIdMage::registry('current_category')의 값을 반환하는 제품 모델 (내가 가정 한 마술 방법이 아님)에 명시 적으로 정의되어 있습니다. 그래서 기본적으로 나는 나의 필요를 충족시키기 위해 'current_category'를 등록하고 등록 해제했다.

아직도 내 질문에 부분적으로 대답하지 않습니다. 내가 해킹하고 내가 원하는 URL을 얻는 방법을 알아 냈지만, 기술적으로 더러워진 /catalog/product/view/id/123/s/my-product-slug/ 유형의 URL은 여전히 ​​작동하며 카테고리 종류의 URL로 모든 URL 종류가 전달됩니다. Magento에서 하나의 정식 URL 스타일을 정의하는 것이 좋을 것입니다. 누군가가 이것에 대한 더 이상의 통찰력을 가지고 있다면 알려주세요!

0

는 잘 모르겠어요.

$product->setCategoryId(7)->getProductUrl(); 

물론 7은 예입니다. 제품은 여러 범주에 속할 수 있으므로 첫 번째 가정을 선택하여 제품을 선택하는 방법을 결정해야합니다.

2

내가 당신의 제품이 카테고리 ID를 포함해야 확신 해당 URL을 강제로 : 이것은 당신이 필요로하고 지금 확인 만이 맛볼 수없는 경우

+0

감사합니다. 이것은 정확하지 않았지만 대답을 알려주지 :) –