我已成功修改了产品信息>自定义选项表单允许输入特定选项的数量。现在,我正在努力使数量显示在“标题”和“固定价格”旁边的产品视图页面的下拉列表中。
通过一些研究,我已经能够将选项布局的负责文件跟踪到:
应用程序/设计/前端/默认/ MY_TEMPLATE /模板/目录/产品/视图/选项/类型/ select.phtml
但是现在我不确定我需要修改哪些代码才能在下拉列表中显示数量。任何帮助将不胜感激!
以下是select.phtml文件中的代码:
<?php
//开始我的自定义
$_option = $this->getOption();
$configValue = $this->getProduct()->getPreconfiguredValues()->getData('options/' . $_option->getId());
$store = $this->getProduct()->getStore();
if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN
|| $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_MULTIPLE) {
$require = ($_option->getIsRequire()) ? ' required-entry' : '';
$extraParams = '';
$select = $this->getLayout()->createBlock('core/html_select')
->setData(array(
'id' => 'select_'.$_option->getId(),
'class' => $require.' product-custom-option'
));
if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DROP_DOWN) {
$title_options = ($_option->getIsRequire())?$this->htmlEscape($_option->getTitle())." *":$this->htmlEscape($_option->getTitle()) ;
$select->setName('options['.$_option->getid().']')
->addOption('', $title_options );
} else {
$select->setName('options['.$_option->getid().'][]');
$select->setClass('multiselect'.$require.' product-custom-option');
}
foreach ($_option->getValues() as $_value) {
if( $_value->getPrice(($_value->getPriceType() == 'percent') )== 0){
$sign = '+';
$priceStr = $sign . $this->helper('core')->currencyByStore(0, $store, true, false);
}
else{
$priceStr = $this->_formatPrice(array(
'is_percent' => ($_value->getPriceType() == 'percent'),
'pricing_value' => $_value->getPrice(($_value->getPriceType() == 'percent'))
), false);
}
$select->addOption(
$_value->getOptionTypeId(),
$_value->getTitle() . ' ' . $priceStr . '',
array('price' => $this->helper('core')->currencyByStore($_value->getPrice(true), $store, false))
);
}
if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_MULTIPLE) {
$extraParams = ' multiple="multiple"';
}
if (!$this->getSkipJsReloadPrice()) {
$extraParams .= ' onchange="opConfig.reloadPrice()"';
}
$select->setExtraParams($extraParams);
if ($configValue) {
$select->setValue($configValue);
}
$selectHtml = $select->getHtml();
}
//结束我的自定义
&GT;
getOption(); ?&GT; getIsRequire())echo'class =“required”'?&gt;&gt; getIsRequire())echo' * '?&gt; htmlEscape($ _ option-&gt; getTitle())?&gt; * /&GT?; ?decoratedIsLast){&GT;类= “最后” &GT;
<div class="input-box">
getType()== Mage_Catalog_Model_Product_Option :: OPTION_TYPE_DROP_DOWN
|| $ _option-&gt; getType()== Mage_Catalog_Model_Product_Option :: OPTION_TYPE_MULTIPLE){?&gt;
<?php echo $selectHtml; ?>
<?php
} else{
echo $this->getValuesHtml(); ?>
<?php } ?>
<?php if ($_option->getIsRequire()): ?>
<?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?>
<span id="options-<?php echo $_option->getId() ?>-container"></span>
<?php endif; ?>
<?php endif;?>
</div>
答案 0 :(得分:1)
是的,应该覆盖类
<强> Mage_Catalog_Block_Product_View_Options_Type_Select 强>
并更改
$ _ value-&gt; getTitle()。 ''。 $ priceStr。 '',
到
$ _ value-&gt; getTitle()。 '('。$ _value-&gt; getQty()。')'。 $ priceStr。 '',强>
其中Qty是Magento索引,保存数量。