Magento的层级定价下拉列表

时间:2015-10-23 16:52:20

标签: php jquery magento

我已经在网站上工作了几个月,现在又回到了一个从未实现过的功能。

我们从一开始就计划只允许人们以我们的Tier-Price断点结算作为可用的增量数量。本网站上的所有产品都是定制的,不保留库存。

我们希望断点反映层而不是完美的增量(100,250,500,1000,2000,3000,5000,10000),因此设置每个产品基础数量限制的唯一方法是选择集合层。

我找到的最近参考和代码如下,它会创建从分层中断自动生成的单选按钮选项,但是将其变为下拉列表比我想象的要困难。

如果有人可以帮助解决以下代码问题,我可能无法将所有这些选项添加到下拉列表中,并根据设置的数量和选项动态更改价格。

<div class="retail-price-contain tier-price-tab">
<?php
    $_tierPrices=$this->getTierPrices();
    $_firstTier = array_slice($_tierPrices, 0, 3);
    $c = count($_firstTier);
        if($c>0): ?>
        <ul class="tier-prices product-pricing">
            <?php for ($i = 0; $i < $c; $i++) {
               $_firstTierPrice = Mage::helper('core')->currency($_firstTier[$i]['price']); ?>
                <li>
                <input type="radio" name="tierprice" id="tier-price<?php echo $_firstTier[$i]['price_qty'] ?>" value="<?php echo $_firstTier[$i]['price_qty'] ?>" >
                <?php echo $this->__('Buy %1$s for %2$s', $_firstTier[$i]['price_qty'],'<span class="price">'. $_firstTierPrice.'</span>').$this->__(' each Save extra '.$_firstTier[$i]['savePercent'].'%');  ?>
                </li>
            <?php } ?>
        </ul>
<?php endif;  ?> </div>

<?php   
$_tierPricesqty=$this->getTierPrices();
$_firstTierqty = array_slice($_tierPricesqty, 0, 3);
$d = count($_firstTierqty);
if($d>0): ?>

<?php
  for ($i = 0; $i < $d; $i++) {
  $_firstTierPrice = Mage::helper('core')->currency($_firstTierqty[$i]['price']);  ?>

<script type="text/javascript"> jQuery(function($){     
    $("#tier-price<?php echo $_firstTierqty[$i]['price_qty'] ?>").change(function() { 
        $('#qty').val(this.value);
        //alert(<?php echo $_firstTierqty[$i]['price_qty'] ?>);     
    }); }); </script>

我将以上代码放在mytheme / templates / catalog / product / view.phtml中的以下行中

<div class="qty-wrapper">
    <label for="qty"><?php echo $this->__('Enter Quantity:') ?></label>
    <input type="text" name="qty" id="qty" maxlength="18" value="<?php echo $this->getProductDefaultQty() * 1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" /><span class="forinline">for</span>
</div>

并且单选按钮层定价正在运行,但我无法修改此内容以获取下拉列表而不会破坏上述代码的功能。

有人可以帮助将其修改为下拉列表,我一直在尝试,但要么留下了无效的下拉列表,要么遗漏了列表中的一些选项(并且上面的代码缺少100件)。

谢谢,Alexander Countey

1 个答案:

答案 0 :(得分:0)

我没有Magento运行atm。但我认为这样的事情应该有效: https://jsfiddle.net/f7m5mp40/

<div class="retail-price-contain tier-price-tab">
<?php
    $_tierPrices=$this->getTierPrices();
    $_firstTier = array_slice($_tierPrices, 0, 3);
    $c = count($_firstTier);
        if($c>0): ?>
        <select name="tierprice">
            <?php for ($i = 0; $i < $c; $i++) {
               $_firstTierPrice = Mage::helper('core')->currency($_firstTier[$i]['price']); ?>

                <option value="<?php echo $_firstTier[$i]['price_qty'] ?>">
                    <?php echo $this->__('Buy %1$s for %2$s', $_firstTier[$i]['price_qty'],'<span class="price">'. $_firstTierPrice.'</span>').$this->__(' each Save extra '.$_firstTier[$i]['savePercent'].'%');  ?>
                </option>
            <?php } ?>
        </select>
<?php endif;  ?>
</div>

<script type="text/javascript"> 
jQuery(function($){     
    $("select[name='tierprice']").change(function() { 
        $('#qty').val(this.value);
    });
});
</script>