Отображать только в наличии на складе для конфигурируемых продуктов на страницах каталога в Magento - PullRequest
2 голосов
/ 09 декабря 2011

Мне удалось добавить опции к конфигурируемым продуктам на страницах моего каталога, используя код, найденный здесь: http://www.magentocommerce.com/boards/viewthread/21039/P45/#t167724. Что я хотел бы сделать сейчас, так это показать только те опции, которые доступны в соответствии с запасом простой продукт, от которого исходит опция.

Например, если у меня есть футболка (настраиваемый продукт), имеющая различные цвета (простые товары), а моего красного цвета нет в наличии, красный не будет отображаться в качестве опции при отображении настраиваемого продукта.

Какой лучший способ сделать это?

Обновление: Для ясности вот соответствующий блок кода по ссылке, которую я разместил.

<?php if($product->getTypeId() == "configurable"): ?>
    <?php $attValConfig = $product->getTypeInstance()->getConfigurableAttributesAsArray(); ?>
    <?php if(sizeof($attValConfig)): ?>
        <?php foreach($attValConfig as $attValConfigSingle): ?>
            <fieldset class="product-options" id="product-options-wrapper">
                <label><?php echo $attValConfigSingle['label']; ?>:</label>
                <select name="super_attribute[<?php echo $attValConfigSingle['attribute_id'] ?>]" id="attribute<?php echo $_product->getId() ?>" class="required-entry super-attribute-select">
                    <?php foreach($attValConfigSingle['values'] as $attValConfigSingleVal): ?> 
                        <option value="<?php echo $attValConfigSingleVal['value_index'] ?>"><?php echo $attValConfigSingleVal['label'] ?></option>
                    <?php endforeach; ?>
                </select>
            </fieldset>
        <?php endforeach; ?>
    <?php endif; ?>
<?php endif; ?>

Поскольку этот код просто получает все настраиваемые параметры и отображает их, он не проверяет наличие на складе простого продукта, поддерживающего настраиваемый параметр. Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 31 октября 2012

Мне просто интересно, почему мы проверяем количество на наличие на складе, почему мы не смотрим на наличие на складе простых продуктов.

Мне удалось показать, что на складе нет настраиваемого продукта в зависимости от состояния на складе.Теперь вы можете производить товар "на складе" и "на складе" с помощью атрибута наличия на складе простого продукта.

0 голосов
/ 13 декабря 2011

Попробуйте следующее (делайте, что хотите, чтобы получить результат):

$_productCollection = Mage::getModel('cataloginventory/stock_item')->getCollection()
    ->addIdFilter($productId) // this line is wrong, don't care this
    ->addFieldToFilter('qty', array('gteq' => 1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...