Magento:Ottenere gli URL dei prodotti per i prodotti all'interno di un prodotto raggruppato
Domanda
Per un prodotto raggruppato vorrei visualizzare un collegamento ai prodotti semplici di cui è composto.Ad esempio, se ho un prodotto raggruppato chiamato Dining Set composto da piatti, coltelli, forchette, ecc.Vorrei che ciascuno dei sottoprodotti avesse un collegamento a quel sottoprodotto (cliccando sulle piastre si va al Prodotto semplice per le piastre)
<?php foreach ($_associatedProducts as $_item): ?>
<tr>
<td><?php echo $this->htmlEscape($_item->getName()) ?></td>
<td class="a-right">
<?php echo $this->getPriceHtml($_item, true) ?>
</td>
<?php if ($_product->isSaleable()): ?>
<td class="a-center">
<?php if ($_item->isSaleable()) : ?>
<a href="<?php $_item->getProductUrl() ?>">View</a>
<?php else: ?>
<p class="availability"><span class="out-of-stock"><?php echo $this->__('Out of stock.') ?></span></p>
<?php endif; ?>
</td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
Questo è uno snippet di codice dal file grouped.phtml in
app/design/frontend/blank/default/template/catalog/product/view/type/grouped.phtml
In particolare la linea che ha $_item->getProductUrl()
, questo non funziona e non conosco il codice necessario per ottenere l'URL per questo articolo di prodotto associato.Se qualcuno potesse aiutare qui sarebbe molto apprezzato.
Inoltre, dove diavolo posso trovare i metodi disponibili (e come vengono utilizzati) per prodotti o categorie o $_item
e simili?
Soluzione
Facile da trovare tutti i metodi e le funzioni. risalire sempre alla /app/code/core/Mage/Catalog/Model/Product.php
Core o qualsiasi altro file in quella cartella.
Il codice è perfetto. Basta usare
$_item->getUrlPath() ;
al posto di productURL
.
Altri suggerimenti
A pochi appunti su come ottenere il metodi disponibili / dati:
In primo luogo, per ottenere tutti i metodi realmente codificate nelle classi, è possibile ottenere tutti i metodi disponibili con:
$array = get_class_methods($_item); //yields an array of the methods in the class
var_dump($array); // to see the methods
Per ottenere tutti i metodi relativi ai dati, prima trovare i dati membri della classe. Questo funziona con la maggior parte degli oggetti in Magento:
$data = $_item->getData(); // $key => $value array
Poi si può ottenere qualsiasi pezzo di dati che si desidera due modi:
// assuming I want 'my_data'
$data = $_item->getMyData();
$data = $_item->getData('my_data');
<?php echo $this->htmlEscape($_item->getProductUrl()) ?>
oppure ecco l'intero A HREF:
<a href="<?php echo $this->htmlEscape($_item->getProductUrl()) ?>">
<?php echo $this->htmlEscape($_item->getName()) ?>
</a>