2013-03-05 1 views
6

질문은 간단합니다. 내 제품의 SKU를 아는 경우, 그 항목에 대한 URL을 어떻게 검색 할 수 있습니까? 이는 일반적으로 원격 서비스의 고유 ID가 제품 ID와 일치하지 않는 제 3 자 통합에 유용합니다. 또는 SKU로 검색 할 수있는 검색 창을 만들고 싶을 수도 있습니다.Magento의 SKU에서 제품의 URL을 얻는 방법

답변

11

로드 제품에 대한 자세한 내용은

Mage::getModel('catalog/product')->load('sku', 'sku'); 

: 또한

$sku = 'ecco'; // SKU you want to load. 'ecco' is a sku in the Magento demo data 

$url = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku)->getProductUrl(); 
echo $url; 
1
$product = Mage::helper('catalog/product')->getProduct($this->getData('sku'), Mage::app()->getStore()->getId(), 'sku'); 

$url = Mage::getUrl($product->getUrlPath()); 

당신은에 의해 검색 할 SKU에 클래스의 SKU의 속성을 설정 한 다음 방법으로이 문제를 추가하고하여 SKU를 기반으로 제품의 전체 URL을 액세스 할 수 있습니다.

+0

치명적 오류 : 16 번째 줄의 /sku.php에있는 객체 컨텍스트가 아닌 경우 $ this를 사용하면 $ product = line ... weird에 오류가 발생합니다. –

+0

거기에 무슨 문제가 있는지 알지 못하면 OOP의 원칙을 살펴 보거나 $ this-> getData ('sku')를 리터럴 값으로 대체해야합니다. – ajameswolf

2

로드 방법을 사용할 수 있습니다. 다른 모든 솔루션보다 빠르고 쉽습니다. 더 당신은 그냥이 작업을 수행 할 수 있습니다 Click Here

+0

이 코드는 magento 1.7에서 작동하지 않습니다. 찾을 수 없습니다.하지만 해당 SKU가있는 제품이 있습니다. –

+0

을 찾지 못하면 아무 것도없는 모델을 반환하지 않을 것입니다. – ajameswolf

3

.... 당신은 'geturlbysku.php'에서라는 파일이 추가 할 수 있습니다 마젠타 루트 디렉토리. 이 코드는 제품을 나타내는 작은 양의 json을 쉽게 끌어 와서 작은 자바 스크립트 통합을 가능하게합니다. 제품 URL 데이터의

일부는 반환 된 데이터 세트 같은

<?php 

require_once '/app/Mage.php'; 
umask(0); 
Mage::app('admin'); 

$actual_link = "http://$_SERVER[HTTP_HOST]"; 

$sku = $_GET['sku']; 
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku); 
$fullUrl = "/catalog/product/view/id/" . $product->getId(); 

header("Content-Type: application/json"); 

    echo $_GET['callback'] . '('.json_encode($product->getData()).')'; 
?> 

사용 ... www.yoursite.com/geturlbysku.php?sku=theskuoftheproduct의 일부입니다 것은 "url_path"을 포함한다 : "당신의 실제 URL에 해당하는 "-product-name.html"입니다.

관련 문제