2013-08-31 2 views
12

möchte ich den benutzerdefinierten Optionspreis mit dem Namen im Preisfeld auf der Produktdetailseite anzeigen.Magento: So zeigen Sie ausgewählten benutzerdefinierten Optionspreis auf der Produktdetailseite an Im Preisfeld

enter image description here

Ich versuche auch diesen Link aber nicht den Erfolg bekommen this is link i use

Also bitte mir eine Lösung vorschlagen.

+0

Ich denke, diese Aufgabe für Vorschlag getan werden kann Javascript –

+0

hmm dank derzeit mit i daran arbeiten. Ich weiß, brauche js, weil ich Option anzeigen muss, wenn ich es auswähle. – Jalpesh

+0

eine Lösung erhalten? –

Antwort

0

allererst müssen Sie Taste calculateprice

setzen dann Onclick von calculateprice Sie Funktion chkprice()

 function chkpice() 
    { 
     var a=document.getElementById("options_1_text").value; 
     var b=document.getElementById("options_2_text").value; 
     var c=document.getElementById("options_3_text").value; 
     var d=document.getElementById("options_4_text").value; 
     var e=<?php echo $_product = $this->getProduct()->getPrice()?>;  
     var f=(a+b+c+d)+e; 
     var e=document.getElementById(('product-price-'+<?php echo $_product = $this->getProduct()->getId()?>)).innerHTML; 
     $('product-price-'+<?php echo $_product = $this->getProduct()->getId()?>).innerHTML =''+e.replace(<?php echo $_product = $this->getProduct()->getPrice()?>,d)+'</span>'; 
    } 

insted options_1_text,options_2_text,options_3_text,options_4_text zu nennen haben setzen Sie Ihre ID wird Ihr Ergebnis erhalten

+0

** von Optionen_1_Text, Optionen_2_Text, Optionen_3_Text, Optionen_4_Text setzen Sie Ihre ID es wird Ihr Ergebnis ** aber ID wird dynamisch von Magento generiert, so kann ich ID hier nicht. Wenn Sie überprüfen, dass die benutzerdefinierte Option in Magento hat diffrent ID für jedes Produkt und ich brauche diese Möglichkeit in jedem einzelnen Produkt, so dass wir nicht hier ID setzen können. – Jalpesh

+0

Bitte erstellen Sie zwei Produkte in einem einzigen Magento und zuweisen benutzerdefinierte Option und prüfen, ob Ihre Lösung funktioniert? Ich überprüfte das und es funktioniert nicht – Jalpesh

+0

Sie können ID mit Firebug kümmern, ich bin auf diese Weise fertig –

0

öffnen Seite: app\code\core\Mage\Catalog\Block\Product\View\Options.php finden Sie protected function _getPriceConfiguration($option) Funktion und fügen $data['title'] = $option->getTitle(); vor return $data; Anweisung hinzu.

nun offen app\design\frontend\YOUT_TEMPLATE_PATH\default\template\catalog\product\view\options.phtml

hinzufügen <div id="optiontitle"></div> Seitenanfang.

Dann ist diese finden:

$A(element.options).each(function(selectOption){ 
          if ('selected' in selectOption && selectOption.selected) { 
           if (typeof(configOptions[selectOption.value]) != 'undefined') { 
            curConfig = configOptions[selectOption.value]; 

           } 
          } 
         }); 

durch Ersetzen:

$A(element.options).each(function(selectOption){ 
          if ('selected' in selectOption && selectOption.selected) { 
           if (typeof(configOptions[selectOption.value]) != 'undefined') { 
            curConfig = configOptions[selectOption.value]; 
            optionTitle = curConfig.title + "<br>"; 
            $("optiontitle").insert(optionTitle); 
           } 
          } 
         }); 
0

Zuerst Sie die Funktion, die Pflege der Aktualisierung der Kosten übernimmt:

function updateCharges(){ 
    var tmpText=""; 
    $("input[type='select']").each(function{ 
    tmpText+=$("#"+this.id+"option:selected").text()+"<br>";  
    }); 
    $("#detailDiv").html(tmpText) 
} 

Dann binden Sie einfach die wählt zu dieser Funktion

$("input[type='select']").change(updateCharges) 

Jetzt müssen Sie nur sicherstellen, dass in der Vorlage würde ich einen benutzerdefinierten Block mit dem obigen Code erstellen <div id="detailDiv"></div>

enthalten nur und legen Sie sie in der Produktdetailseite. Außerdem sollten Sie die verwendeten Selektoren überprüfen, sie werden auf der Seite nach absoluten ALL-Selects suchen, das ist also nicht das, was Sie wollen. Aber es ist nur eine Sache von Firebug-Ging, bis der passende Wähler gefunden wird

0

Kürzlich brauche ich etwas ähnliches. Vielleicht ist es hilfreich für dich.

Block-Klasse:

class Foo_Bar_Block_Baz extends Mage_Catalog_Block_Product_View {  
    protected function getOptionDataCollection($options) { 
     $optionDataCollection = array(); 
     foreach ($options as $option) { 
      $optionDataCollection[$option->getData('option_id')] = array_filter($option->getData()); 
     } 
     return $optionDataCollection; 
    } 

    protected function getOptionValueDataCollection($options) { 
     $optionValueDataCollection = array(); 
     foreach ($options as $option) { 
      $optionType = $option->getType(); 
      if ($optionType == 'drop_down') { 
       $optionValues = $option->getValues(); 
       foreach ($optionValues as $valueItem) { 
        // here you could also use the option_type_id (in my case I needed the sku) 
        $optionValueDataCollection[$valueItem->getData('sku')] = array_filter($valueItem->getData()); 
       } 
      } else { 
       //Mage::throwException('Unexpected input. Processing for this optionType is not implemented'); 
      } 
     } 
     return $optionValueDataCollection; 
    } 

    public function getOptionsJson() { 
     $data = array(
      'options' => array(), 
      'optionValues' => array() 
     ); 
     $options = $this->getProduct()->getOptions(); 
     array_push($data['options'], $this->getOptionDataCollection($options)); 
     array_push($data['optionValues'], $this->getOptionValueDataCollection($options)); 
     $optionsJson = json_encode($data); 

     return $optionsJson; 
    } 
} 

Vorlage

<script id="optionsJson" type="application/json"> 
    <?php echo $this->getOptionsJson(); ?> 
</script> 

JS

var json = JSON.parse(document.getElementById("optionsJson").innerHTML), 
    options = json.options[0], 
    optionValues = json.optionValues[0]; 

    optionValues['<optionValueSKU>'].default_title 
    optionValues['<optionValueSKU>'].price 
Verwandte Themen