2013-03-05 8 views
6

La domanda è semplice. Se conosco lo sku del mio prodotto e nient'altro, come posso recuperare l'url su quell'elemento. Questo è comunemente utile per l'integrazione di terze parti in cui l'ID univoco del servizio remoto non corrisponde a un ID prodotto. O forse vuoi fare una casella di ricerca per cercare solo per sku.Come posso ottenere l'Url di un prodotto dal suo SKU in Magento

risposta

11

Si può solo fare questo:

$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()); 

È possibile accedere l'URL completo del prodotto in base alla sua SKU aggiungendo questo ad un metodo e quindi impostando l'attributo sku sulla classe alla SKU che si desidera effettuare la ricerca per.

+0

Errore irreversibile: l'utilizzo di $ this quando non è in contesto oggetto in /sku.php sulla riga 16 l'errore è su $ product = line ... strano. –

+0

Se non riesci a capire cosa c'è di sbagliato, devi esaminare i principi di OOP o sostituire $ this-> getData ('sku') con un valore letterale. – ajameswolf

2

È possibile utilizzare il metodo di caricamento. Questo è più veloce e più facile di tutte le altre soluzioni.

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

Per ulteriori informazioni sui prodotti di carico Click Here

+0

questo codice non funziona su Magento 1.7 dice non trovato, ma c'è un prodotto con quella SKU –

+0

non trovato, non direbbe che non trovato restituirà il modello senza nulla in esso. – ajameswolf

3

anche .... Si potrebbe aggiungere ad un file chiamato 'geturlbysku.php' in magento root dir. Questo codice abilita una piccola quantità di JSON che rappresenta il prodotto da estrarre facilmente, consentendo una piccola integrazione javascript. URL del prodotto fa parte del set di dati

<?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()).')'; 
?> 

Usa come questo ... www.yoursite.com/geturlbysku.php?sku=theskuoftheproduct

Parte dei dati restituito comprende "url_path": "la tua -product-name.html "che corrisponde all'URL reale.

Problemi correlati