Я пытаюсь добавить несколько настраиваемых продуктов на страницу списка категорий в Magento 1.7.2. Я использую расширение Organic Internet SCP вместе с EM Gala Colorswatches, которое делает это немного сложнее, чем обычно. Я следовал за учебники с этих сайтов .... они в значительной степени та же идея ...Magento - как отображать несколько настраиваемых продуктов на странице категории - значения выпадающего списка не отображаются
http://www.catgento.com/adding-configurable-product-options-to-category-list-in-magento/
The выпадающие и образцы цветов отображаются нормально на странице продукта, однако на на странице категории выпадающие списки, метки и отображение цены, но значения продукта не отображаются, когда выпадающий список выбран. Я включил все те же файлы .js со страницы продукта, где он работает. Единственное различие я вижу в консоли я получаю следующие ошибки от prototype.js
TypeError: document.getElementById(...) is null
element.attachEvent("ondataavailable", responder);
prototype.js (line 5644)
TypeError: element.attachEvent is not a function
element.attachEvent("ondataavailable", responder);
prototype.js (line 5644)
TypeError: element.attachEvent is not a function
element.attachEvent("on" + actualEventName, responder);
TypeError: element.dispatchEvent is not a function
element.dispatchEvent(event);
третья ошибка появляется только тогда, когда у меня есть конфигурируемый блок продукта раскомментируйте на этой странице. Функция она имеет в виду в prototype.js и заключается в следующем
function observe(element, eventName, handler) {
element = $(element);
var responder = _createResponder(element, eventName, handler);
if (!responder) return element;
if (eventName.include(':')) {
if (element.addEventListener)
element.addEventListener("dataavailable", responder, false);
else {
element.attachEvent("ondataavailable", responder);
element.attachEvent("onlosecapture", responder);
}
} else {
var actualEventName = _getDOMEventName(eventName);
if (element.addEventListener)
element.addEventListener(actualEventName, responder, false);
else
element.attachEvent("on" + actualEventName, responder);
}
return element;
}
при просмотре источника я могу видеть, что объект JSON есть и данные доступны, но по какой-то причине не добавляться в поля выбора в качестве параметров, например, на странице продукта .... Любая помощь будет оценена по достоинству.
Вот код из приложения/дизайн/интерфейс/по умолчанию/MyTheme/каталог/продукта/list.phtml
<?php if ($_product->getData('type_id') == "configurable"){
Mage::unregister('product');
Mage::register('product', $_product);
$block = $this->getLayout()->createBlock(
'OrganicInternet_SimpleConfigurableProducts_Catalog_Block_Product_View_Type_Configurable',
'options_configurable',
array('template' => 'catalog/product/view/type/options/configurable.phtml')
);
echo $block->toHtml();
$priceBlock = $this->getLayout()->createBlock(
'OrganicInternet_SimpleConfigurableProducts_Catalog_Block_Product_Price',
$_product->getFinalPrice(),
array('template' => 'catalog/product/price.phtml')
);
echo $priceBlock->toHtml();
}
?>
Вот код, который этот блок звонки в/приложение/дизайн/интерфейс/по умолчанию /mytheme/template/catalog/product/view/type/options/configurable.phtml
<?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
<dl>
<?php foreach($_attributes as $_attribute): ?>
<dt><label class="required"><!-- <em>*</em>--><?php echo $_attribute->getLabel() ?></label></dt>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select_<?php echo $_product->getId()?>">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>
</div>
</dd>
<?php endforeach; ?>
</dl>
<script type="text/javascript">
var spConfig_<?php echo $_product->getId()?> = new Inchoo_Product.Config(<?php echo $this->getJsonConfig() ?>);
</script>
<?php endif;?>
заранее спасибо, дайте мне знать, если вам нужно больше информации ...