Как отобразить настраиваемые образцы на домашней странице Magento 1.9

#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