2

多くの Magento 開発者および管理者に当てはまると思われる質問があります。

構成可能な製品 (下の画像を参照) の価格帯を表示する方法を探す中で、あるアイデアを思いつきました。なんらかのセルフハックを追加せずに設定可能な製品の価格帯を表示する拡張機能は存在しないため、皆さんはこのアイデアについてどのように考えているのだろうかと思いました. 私はあまり PHP 開発者ではないので、うまくいけば正しい方向に向けてくれることを願っています。

ここに画像の説明を入力

アイデア: 価格が関連するすべての単一製品の最低価格である設定可能な製品があると仮定すると、新しい属性を作成し、関連する単一製品の最大価格を手動で入力します。多くの場合、このアプローチは繰り返しデータ入力を必要とするため理想的ではないかもしれませんが、多くの管理者にとっては、余分な労力を費やす価値のある結果が得られます。さらに、この余分なデータ入力は、多くの管理者のために Excel で自動化できます。

ここで、次の場所にある .phtml テンプレート ファイルにその属性を何らかの方法で表示します。

 app/design/frontend/base/default/template/catalog/product/price.phtml

問題は、そのアプローチがうまくいくと思いますか? 結果はどうなりますか?この同じファイルがショッピング カート内で価格を生成したり、その他の不要な結果を生成したりしますか?

これが機能する場合、次のロジックを考えていました。

  1. データベースから製品の属性を検索し、変数に値を格納します
  2. variable が 0 より大きい場合は、" - '$'$variable" をエコーし​​ます。

そうすれば、この変数のデータを持たない単純な製品は価格帯が表示されません。

このアプローチが機能する場合、データベースからこのカスタム属性を price.phtml ファイルで最も効率的に取得するにはどうすればよいでしょうか?

以下の price.phtml ファイル全体をご覧ください。<!--Here test test-->すべての設定可能な製品とシンプルな製品の価格が私のページに反映されている場所を指摘するコメントを含めました.

事前に助けてくれてありがとう!

まず、このアプローチについてどう思いますか?

<?php
/**
 * Template for displaying product price in different places (products grid, product     view page etc)
 *
 * @see Mage_Catalog_Block_Product_Abstract
 */
?>
<?php
    $_coreHelper = $this->helper('core');
    $_weeeHelper = $this->helper('weee');
    $_taxHelper  = $this->helper('tax');
    /* @var $_coreHelper Mage_Core_Helper_Data */
    /* @var $_weeeHelper Mage_Weee_Helper_Data */
    /* @var $_taxHelper Mage_Tax_Helper_Data */

    $_product = $this->getProduct();
    $_storeId = $_product->getStoreId();
    $_id = $_product->getId();
    $_weeeSeparator = '';
    $_simplePricesTax = ($_taxHelper->displayPriceIncludingTax() || $_taxHelper->displayBothPrices());
    $_minimalPriceValue = $_product->getMinimalPrice();
    $_minimalPrice = $_taxHelper->getPrice($_product, $_minimalPriceValue,     $_simplePricesTax);
?>

<?php if (!$_product->isGrouped()): ?>
    <?php $_weeeTaxAmount = $_weeeHelper->getAmountForDisplay($_product); ?>
    <?php if ($_weeeHelper->typeOfDisplay($_product, array(Mage_Weee_Model_Tax::DISPLAY_INCL_DESCR, Mage_Weee_Model_Tax::DISPLAY_EXCL_DESCR_INCL, 4))): ?>
        <?php $_weeeTaxAmount = $_weeeHelper->getAmount($_product); ?>
        <?php $_weeeTaxAttributes = $_weeeHelper->getProductWeeeAttributesForDisplay($_product); ?>
    <?php endif; ?>
    <?php $_weeeTaxAmountInclTaxes = $_weeeTaxAmount; ?>
    <?php if ($_weeeHelper->isTaxable() && !$_taxHelper->priceIncludesTax($_storeId)): ?>
        <?php $_attributes = $_weeeHelper->getProductWeeeAttributesForRenderer($_product, null, null, null, true); ?>
        <?php $_weeeTaxAmountInclTaxes = $_weeeHelper->getAmountInclTaxes($_attributes); ?>
    <?php endif; ?>

    <div class="price-box">
    <?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?>
    <?php $_regularPrice = $_taxHelper->getPrice($_product, $_product->getPrice(), $_simplePricesTax) ?>
    <?php $_finalPrice = $_taxHelper->getPrice($_product, $_product->getFinalPrice()) ?>
    <?php $_finalPriceInclTax = $_taxHelper->getPrice($_product, $_product->getFinalPrice(), true) ?>
    <?php $_weeeDisplayType = $_weeeHelper->getPriceDisplayType(); ?>
    <?php if ($_finalPrice >= $_price): ?>
        <?php if ($_taxHelper->displayBothPrices()): ?>
            <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?>
                    </span>
                </span>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
                    </span>
                </span>
            <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?>
                    </span>
                </span>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
                    </span>
                    <span class="weee">(
                        <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                            <?php echo $_weeeSeparator; ?>
                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
                            <?php $_weeeSeparator = ' + '; ?>
                        <?php endforeach; ?>
                        )</span>
                </span>
            <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, false) ?>
                    </span>
                </span>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
                    </span>
                    <span class="weee">(
                        <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                            <?php echo $_weeeSeparator; ?>
                            <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?>
                            <?php $_weeeSeparator = ' + '; ?>
                        <?php endforeach; ?>
                    )</span>
                </span>
            <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_price, true, false) ?>
                    </span>
                </span>
                <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                    <span class="weee">
                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
                    </span>
                <?php endforeach; ?>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
                    </span>
                </span>
            <?php else: ?>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php if ($_finalPrice == $_price): ?>
                        <?php echo $_coreHelper->currency($_price, true, false) ?>
                        <?php else: ?>
                        <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
                        <?php endif; ?>
                    </span>
                </span>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?>
                    </span>
                </span>
            <?php endif; ?>
        <?php else: ?>
            <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
                <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
                </span>
            <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
                <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
                </span>
                <span class="weee">(
                    <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                        <?php echo $_weeeSeparator; ?>
                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
                        <?php $_weeeSeparator = ' + '; ?>
                    <?php endforeach; ?>
                    )</span>
            <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
                <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
                </span>
                <span class="weee">(
                    <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                        <?php echo $_weeeSeparator; ?>
                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?>
                        <?php $_weeeSeparator = ' + '; ?>
                    <?php endforeach; ?>
                    )</span>
            <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
                <span class="regular-price"><?php echo $_coreHelper->currency($_price,true,true) ?></span><br />
                <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                    <span class="weee">
                        <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
                </span>
            <?php endforeach; ?>
            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_price + $_weeeTaxAmount, true, true) ?>
            </span>
        <?php else: ?>
            <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php if ($_finalPrice == $_price): // this is where price is generated ?> <!--Here test test-->  
                    <?php echo $_coreHelper->currency($_price, true, true) ?>
                <?php else: ?>
                    <?php echo $_coreHelper->currency($_finalPrice, true, true) ?>
                <?php endif; ?>
            </span>
        <?php endif; ?>
    <?php endif; ?>
<?php else: /* if ($_finalPrice == $_price): */ ?>
    <?php $_originalWeeeTaxAmount = $_weeeHelper->getOriginalAmount($_product); ?>

    <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
        <p class="old-price">
            <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?>
            </span>
        </p>

        <?php if ($_taxHelper->displayBothPrices()): ?>
            <p class="special-price">
                <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?>
                    </span>
                </span>
            <span class="price-including-tax">
                <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
                </span>
            </span>
            </p>
        <?php else: ?>
        <p class="special-price">
            <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
            <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmountInclTaxes, true, false) ?>
            </span>
        </p>
        <?php endif; ?>

    <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
        <p class="old-price">
            <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?>
            </span>
        </p>

        <p class="special-price">
            <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
            <span class="price-excluding-tax">
                <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?>
                </span>
            </span>
        <span class="weee">(
            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                <?php echo $_weeeSeparator; ?>
                <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
                <?php $_weeeSeparator = ' + '; ?>
            <?php endforeach; ?>
            )</span>
        <span class="price-including-tax">
            <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
            <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
            </span>
        </span>
        </p>
    <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
        <p class="old-price">
            <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_regularPrice + $_originalWeeeTaxAmount, true, false) ?>
            </span>
        </p>

        <p class="special-price">
            <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
            <span class="price-excluding-tax">
                <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_finalPrice + $_weeeTaxAmount, true, false) ?>
                </span>
            </span>
        <span class="weee">(
            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                <?php echo $_weeeSeparator; ?>
                <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount() + $_weeeTaxAttribute->getTaxAmount(), true, true); ?>
                <?php $_weeeSeparator = ' + '; ?>
            <?php endforeach; ?>
            )</span>
        <span class="price-including-tax">
            <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
            <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
            </span>
        </span>
        </p>
    <?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
        <p class="old-price">
            <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_regularPrice, true, false) ?>
            </span>
        </p>

        <p class="special-price">
            <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
            <span class="price-excluding-tax">
                <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
                </span>
            </span>
            <?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
                <span class="weee">
                    <?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currency($_weeeTaxAttribute->getAmount(), true, true); ?>
                </span>
            <?php endforeach; ?>
            <span class="price-including-tax">
                <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                    <?php echo $_coreHelper->currency($_finalPriceInclTax + $_weeeTaxAmountInclTaxes, true, false) ?>
                </span>
            </span>
        </p>
    <?php else: // excl. ?>
        <p class="old-price">
            <span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
            <span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_regularPrice, true, false) ?>
            </span>
        </p>

        <?php if ($_taxHelper->displayBothPrices()): ?>
            <p class="special-price">
                <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
                    </span>
                </span>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_finalPriceInclTax, true, false) ?>
                    </span>
                </span>
            </p>
        <?php else: ?>
        <p class="special-price">
            <span class="price-label"><?php echo $this->__('Special Price:') ?></span>
            <span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_finalPrice, true, false) ?>
            </span>
        </p>
        <?php endif; ?>
    <?php endif; ?>

<?php endif; /* if ($_finalPrice == $_price): */ ?>

<?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue && $_minimalPriceValue     < $_product->getFinalPrice()): ?>

    <?php $_minimalPriceDisplayValue = $_minimalPrice; ?>
    <?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, array(0, 1, 4))): ?>
        <?php $_minimalPriceDisplayValue = $_minimalPrice + $_weeeTaxAmount; ?>
    <?php endif; ?>

    <?php if ($this->getUseLinkForAsLowAs()):?>
    <a href="<?php echo $_product->getProductUrl(); ?>" class="minimal-price-link">
    <?php else:?>
    <span class="minimal-price-link">
    <?php endif?>
        <span class="label"><?php echo $this->__('As low as:') ?></span>
        <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
            <?php echo $_coreHelper->currency($_minimalPriceDisplayValue, true, false) ?>
        </span>
    <?php if ($this->getUseLinkForAsLowAs()):?>
    </a>
    <?php else:?>
    </span>
    <?php endif?>
<?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice && $_minimalPrice     < $_finalPrice): */ ?>
</div>

<?php else: /* if (!$_product->isGrouped()): */ ?>
<?php
$_exclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue);
$_inclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, true);
?>
<?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue): ?>
    <div class="price-box">
        <p class="minimal-price">
            <span class="price-label"><?php echo $this->__('Starting at:') ?></span>
            <?php if ($_taxHelper->displayBothPrices()): ?>
                <span class="price-excluding-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
                    <span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_exclTax, true, false) ?>
                    </span>
                </span>
                <span class="price-including-tax">
                    <span class="label"><?php echo $this->helper('tax')->__('Incl.       Tax:') ?></span>
                    <span class="price" id="price-including-tax-<?php echo $_id ?><?php     echo $this->getIdSuffix() ?>">
                        <?php echo $_coreHelper->currency($_inclTax, true, false) ?>
                    </span>
                </span>
            <?php else: ?>
                <?php
                $_showPrice = $_inclTax;
                if (!$_taxHelper->displayPriceIncludingTax()) {
                    $_showPrice = $_exclTax;
                }
                ?>
            <span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
                <?php echo $_coreHelper->currency($_showPrice, true, false) ?>
            </span>
            <?php endif; ?>
        </p>
    </div>
<?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice): */ ?>
<?php endif; /* if (!$_product->isGrouped()): */ ?>
4

1 に答える 1

1

さて、私はそれを機能させ、サイトのすべての領域で正しく表示されました. しかし、私はPHP開発者ではなく、私が行ったことを行うためのより良い方法があると確信しているので、誰かがこれを改善できることを願っています.

これが私が段階的に行ったことです:

最初: price.phtml ファイルのコピーを作成し、テーマのディレクトリに保存します。

元のファイル:

app/design/frontend/base/default/template/catalog/product/price.phtml

新しいファイル:

app/design/frontend/{package}/{theme}/template/catalog/product/price.phtml

2 番目: テーマの下にある price.phtml を開きます。行 200 に移動します。以下は、単純で構成可能なすべての製品の価格を生成するコードです。うまくいけば、あなたもそうです。

    <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
        <?php if ($_finalPrice == $_price): ?>
            <?php echo $_coreHelper->currency($_price, true, true) ?>

三番。新しい属性を作成します。「price_from」の属性コードで「Price From」と呼びました

第4。price.phtml ファイルの次の行の前に、次のコード行を挿入します。 <?php echo $_coreHelper->currency($_price, true, true) ?>

挿入するコード:

<?php $priceFrom = Mage::getResourceModel('catalog/product')->getAttributeRawValue($_id, 'price_from', 1);  ?>

このコード行では、変数 $priceForm が作成され、$_id (price.phtml で計算された作成された ID 変数) とストア ID (私の場合)。

5番目。そこから、ほとんどの人が残りを理解できると思いますが、ここに私の price.phtml 編集があります。

     <span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
         <?php if ($_finalPrice == $_price): ?>
                <?php $priceFrom = Mage::getResourceModel('catalog/product')->getAttributeRawValue($_id, 'price_from', 1);  ?>
                <?php $formattedPrice = round($priceFrom,2); ?>
                <?php echo $_coreHelper->currency($_price, true, true) ?>
                <?php if ($priceFrom > 0): ?><span class="price price-from"> - <?php echo '$'; ?><?php echo $formattedPrice; ?></span><?php endif; ?>

六番目。次に、この price.phtml も商品ページの価格の HTML を生成するので、CSS を使用して、追加した HTML を商品ページに非表示にしました。CSS は次のとおりです。

     .product-type-data .price-box .price.price-from {
         display: none;
     }

そして、あなたはそれを持っています。誰かがこれを行うためのより良い方法でいくつかの批判を投稿してくれたら本当にうれしいです. おそらく、これは私がまだ気付いていないいくつかの問題を引き起こすでしょう。

皆さん、ありがとうございました!

于 2013-07-17T03:31:02.680 に答える