2014-06-05 3 views
1

특정 옵션의 수량을 입력 할 수 있도록 제품 정보> 사용자 정의 옵션 양식을 성공적으로 수정했습니다. 이제 '제목'과 '고정 가격'옆에있는 제품보기 페이지의 드롭 다운 목록에 수량이 표시되도록 노력하고 있습니다. 몇 가지 조사를 통해 Magento 1.8.1.0 : 제품 옵션 드롭 다운 목록에서 수량 표시 select.phtml

, 내가하는 옵션 레이아웃에 대한 책임있는 파일을 추적 할 수있었습니다 :

응용 프로그램/디자인/프론트 엔드/기본/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(); 

     } 

// 내 사용자 지정

>

끝? getOption(); ?> getIsRequire()) 에코 '클래스 = "필수"'? >> getIsRequire()) 에코 '* '?> htmlEscape ($ _ 옵션 -> 인 getTitle())?> * /?>

decoratedIsLast) {?> 클래스> = "마지막"

<div class="input-box"> 
getType로() == Mage_Catalog_Model_Product_Option :: OPTION_TYPE_DROP_DOWN || $ _option-> getType로() == Mage_Catalog_Model_Product_Option :: OPTION_TYPE_MULTIPLE) {?>
<?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> 

답변

1

예, 클래스

Mage_Catalog_Block_Product_View_Options_Type_Select

을 무시하고 변경해야

$ _value-> getTitle(). ''. $ priceStr. ''

$ _value-> 인 getTitle (

에). '('. $ _value-> getQty(). ')'. $ priceStr. '',

여기서 Qty는 수량이 저장되는 Magento 색인입니다.

관련 문제