Магенто:Получение URL-адресов продуктов для Продуктов внутри Сгруппированного продукта
Вопрос
Для сгруппированного продукта я хотел бы отобразить ссылку на простые продукты, из которых он состоит.Например, если у меня есть сгруппированный продукт под названием Обеденный набор, состоящий из тарелок, ножей, вилок и т.д.Я бы хотел, чтобы у каждого из субпродуктов была ссылка на этот субпродукт (нажмите plates, чтобы перейти к Простому продукту для plates)
<?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; ?>
Это фрагмент кода из сгруппированного файла.phtml в
app/design/frontend/blank/default/template/catalog/product/view/type/grouped.phtml
В частности , строка, которая имеет $_item->getProductUrl()
,
это не работает, и я не знаю кода, необходимого для получения URL-адреса для этого связанного товара.Если бы кто-нибудь мог здесь помочь, я был бы вам очень признателен.
Кроме того, где на земле я могу найти доступные методы (и как они используются) для продуктов или категорий или $_item
и тому подобное?
Решение
Легко найти все методы и функции.Всегда возвращайтесь к Сути /app/code/core/Mage/Catalog/Model/Product.php
или любой другой файл в этой папке.
Ваш код идеален.Просто используй
$_item->getUrlPath() ;
вместо того , чтобы productURL
.
Другие советы
Всего несколько замечаний по получению доступных методов / данных:
Во-первых, чтобы получить все методы, фактически закодированные в классах, вы можете получить все доступные методы с помощью:
$array = get_class_methods($_item); //yields an array of the methods in the class
var_dump($array); // to see the methods
Чтобы получить все методы, связанные с данными, сначала найдите элементы данных в классе.Это работает с большинством объектов в Magento:
$data = $_item->getData(); // $key => $value array
Затем вы можете получить любой фрагмент данных, который вам нужен, двумя способами:
// assuming I want 'my_data'
$data = $_item->getMyData();
$data = $_item->getData('my_data');
<?php echo $this->htmlEscape($_item->getProductUrl()) ?>
или вот вся ссылка A:
<a href="<?php echo $this->htmlEscape($_item->getProductUrl()) ?>">
<?php echo $this->htmlEscape($_item->getName()) ?>
</a>