#magento #magento-1.9 #configurable-product
#magento #magento-1.9 #настраиваемый-продукт
Вопрос:
У меня есть список продуктов на моей домашней странице, и мне трудно понять, как отображать настраиваемые / цветные образцы вдоль продуктов на моей домашней странице. Настраиваемые / цветные образцы в моем списке каталогов работают нормально. Я предполагаю, что мне просто нужно настроить свой макет, но я не знаю, как это сделать. Я использую тему RWD и Magento 1.9.
Кто-нибудь, пожалуйста, помогите мне. Спасибо!
ОБНОВЛЕНИЕ!!
Итак, я узнал, что это
<script type="text/javascript">
$j(document).on('product-media-loaded', function() {
ConfigurableMediaImages.init('<?php echo $this->getImageType(); ?>');
<?php foreach ($this->getProductImageFallbacks() as $imageFallback): ?>
ConfigurableMediaImages.setImageFallback(<?php echo $imageFallback['product']->getId(); ?>, $j.parseJSON('<?php echo $imageFallback['image_fallback']; ?>'));
<?php endforeach; ?>
$j(document).trigger('configurable-media-images-init', ConfigurableMediaImages);
});
</script>
в app / design / frontend //default/configurableswatches/catalog/media/js.phtml
является причиной проблемы.
Но перед этим я вставляю это в свой local.xml
<cms_index_index translate="label">
<update handle="product_list"/>
<reference name="content">
<block type="configurableswatches/catalog_media_js_list" name="configurableswatches.media.js.list" />
</reference>
</cms_index_index>
Затем я обнаружил, что продукты не заполняют его маленькие изображения.
Если вы заметили, в приведенном выше javascript есть цикл for , но он не работает, потому что getProductImageFallbacks() возвращает NULL .
Это то, что я поместил в свой контент CMS (домашняя страница)
{{block type="catalog/product_list" column_count="5" category_id="21" template="catalog/product/homepage-list.phtml"}}
В app/code/local/Mage/ConfigurableSwatches/Block/Catalog/Media/Js/Abstract.php строка 69 в общедоступной функции getProductImageFallbacks($keepFrame = null)
Это $products = $this->getProducts();
дает мне NULL. Вот почему он не может предоставить правильный запасной вариант изображения.
Все еще жду ответа. Пожалуйста, помогите мне.
Ответ №1:
Попробуйте следующий код :
<?php
$categoryId = 3 //your category id's;
$collection = Mage::getSingleton('catalog/category')->load($categoryId)
->getProductCollection()->addAttributeToFilter('visibility', 4)
->addAttributeToSelect('*')->addAttributeToFilter('status',1);
foreach($collection as $pro):
$productAttributeOptions =
$pro->getTypeInstance(true)->getConfigurableAttributesAsArray($pro);
?>
<h3 class="product-name"><?php echo $pro->getName(); ?></h3>
<?php
// Предоставляет дополнительные блоки, на которые можно повесить некоторые функции для продуктов в
списке
// Функции, обеспечивающие элементы пользовательского интерфейса, нацеленные на этот блок, будут отображаться непосредственно под названием продукта
if ($this->getChild('name.after')) {
$_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
foreach ($_nameAfterChildren as $_nameAfterChildName) {
$_nameAfterChild =
$this->getChild('name.after')->getChild($_nameAfterChildName);
$_nameAfterChild->setProduct($_product);
echo $_nameAfterChild->toHtml();
}
}
?>
<?php endforeach; ?>
Комментарии:
1. Привет! Спасибо за ответ. Я попробую это. Я создал другой list.phtml (я назвал его homepage-list.phtml) и из содержимого моей домашней страницы в разделе CMS я написал {{тип блока=»каталог / список продуктов» column_count=»5″ category_id=»21″ template=»каталог / продукт / домашняя страница-список.phtml»}}. Я просто собираюсь добавить приведенный выше код на свою домашнюю страницу-list.phtml, верно?
Ответ №2:
Чтобы отобразить настраиваемый образец на домашней странице в списке функциональных продуктов, выполните следующие действия:
Создайте свой собственный файл list.phtml для списка пользовательских продуктов в вашем файле list.phtml выберите место, где вы хотите отобразить настраиваемые образцы, и вставьте приведенный ниже код:
$_nameAfterChild = $this->getLayout()-> getBlock('product_list.образцы'); $_nameAfterChild->setProduct($_product); echo $_nameAfterChild-> toHtml();
Включите этот файл на домашнюю страницу в CMS, используя приведенный ниже код:
{{тип блока="catalog / product_list" column_count="5" category_id="21" шаблон="catalog/product /homepage-list.phtml"}}
В local.xml
файл в вашей теме вставьте приведенный ниже код:
дескриптор обновления cms_index_index="product_list"/ /cms_index_index