【问题标题】:Magento 1.7.0.2: Display default qty in the drop-down bundled product optionsMagento 1.7.0.2:在下拉捆绑产品选项中显示默认数量
【发布时间】:2013-07-04 11:15:32
【问题描述】:

这是文件 "select.phtml" 中的代码:app/design/frontend/base/default/template/bundle/catalog/product/view/type/bundle/option/select。 phtml

我需要插入什么代码,以便我可以在下拉捆绑产品选项中的产品名称旁边显示默认数量

或者至少我怎样才能根据产品 ID 获得默认的选项数量?

<?php $_option      = $this->getOption(); ?>
<?php $_selections  = $_option->getSelections(); ?>
<?php $_default     = $_option->getDefaultSelection(); ?>
<?php list($_defaultQty, $_canChangeQty) = $this->_getDefaultValues(); ?>

<dt>
    <label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php echo $this->htmlEscape($_option->getTitle()) ?><?php if ($_option->getRequired()) echo '<em>*</em>' ?></label>
</dt>

<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
    <div class="input-box">
         <?php if ($this->_showSingle()): ?>
        <?php echo $this->getSelectionTitlePrice($_selections[0]) ?>
        <input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>"/>
          <?php else:?>

        <select onchange="bundle.changeSelection(this)" id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]" class="bundle-option-<?php echo $_option->getId() ?><?php if ($_option->getRequired()) echo ' required-entry' ?> bundle-option-select change-container-classname">

            <option value=""><?php echo $this->__('Choose a selection...') ?></option>

        <?php foreach ($_selections as $_selection): ?>

            <option value="<?php echo $_selection->getSelectionId() ?>"<?php if ($this->_isSelected($_selection)) echo ' selected="selected"' ?><?php if (!$_selection->isSaleable()) echo ' disabled="disabled"' ?>><?php echo $this->getSelectionTitlePrice($_selection, false) ?></option>

        <?php endforeach; ?>
        </select>
        <?php endif; ?>


    <span class="qty-holder" style="display: inline-block; margin-left: 20px;">

        <label for="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->__('Qty:') ?>&nbsp;</label><input onkeyup="bundle.changeOptionQty(this, event)" onblur="bundle.changeOptionQty(this, event)" <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" class="input-text qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>" style="background-color: rgb(248, 248, 248);"/>

    </span>
 </div>

</dd>

【问题讨论】:

    标签: magento


    【解决方案1】:
    <?php $_option      = $this->getOption(); ?>
    <?php $_selections  = $_option->getSelections(); ?>
    <?php $_default     = $_option->getDefaultSelection(); ?>
    <?php list($_defaultQty, $_canChangeQty) = $this->_getDefaultValues(); ?>
    
    <dt>
        <label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php echo $this->htmlEscape($_option->getTitle()) ?><?php if ($_option->getRequired()) echo '<em>*</em>' ?></label>
    </dt>
    
    <dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
        <div class="input-box">
             <?php if ($this->_showSingle()): ?>
            <?php echo $this->getSelectionTitlePrice($_selections[0]) ?>
            <input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>"/>
              <?php else:?>
    
            <select onchange="bundle.changeSelection(this)" id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]" class="bundle-option-<?php echo $_option->getId() ?><?php if ($_option->getRequired()) echo ' required-entry' ?> bundle-option-select change-container-classname">
    
                <option value=""><?php echo $this->__('Choose a selection...') ?></option>
    
            <?php foreach ($_selections as $_selection): ?>
    
                <option value="<?php echo $_selection->getSelectionId() ?>"<?php if ($this->_isSelected($_selection)) echo ' selected="selected"' ?><?php if (!$_selection->isSaleable()) echo ' disabled="disabled"' ?>><?php echo $this->getSelectionTitlePrice($_selection, false) ?> (Default Qty: <?php echo $_selection->getSelectionQty() ?>)</option>
    
            <?php endforeach; ?>
            </select>
            <?php endif; ?>
    
    
        <span class="qty-holder" style="display: inline-block; margin-left: 20px;">
    
            <label for="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->__('Qty:') ?>&nbsp;</label><input onkeyup="bundle.changeOptionQty(this, event)" onblur="bundle.changeOptionQty(this, event)" <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" class="input-text qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>" style="background-color: rgb(248, 248, 248);"/>
    
        </span>
     </div>
    
    </dd>
    

    使用上面的代码在下拉列表中显示默认数量。我只在 foreach 循环中添加了以下代码

    (Default Qty: <?php echo $_selection->getSelectionQty() ?>)
    

    【讨论】:

    • 有效!!!非常感谢monojit,这正是我想要的。非常感谢您的意见:)
    • 我知道这是题外话,但是您知道如何在同一循环中获取所选选项的原始产品 ID 吗?我可以使用这个&lt;?php echo $_selection-&gt;getSelectionId() ?&gt; 获得一个 ID,但这不是所选产品的原始 ID。你有什么想法或建议我怎么能得到它?
    • 是的,你可以使用 getId() ?>
    • 再次感谢你,今天你是我的英雄
    猜你喜欢
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多