2012-08-06 54 views
0

也許有人有線索。我想在opencart中將零售價格四捨五入爲好數字。計算opencart的圓形零售價格

基本計算公式爲:(至極應該產生1,50€ - 2,00€ - €2,50等)

 $price = sprintf("%.2f", round($pice * 2)/2); 

我想i'dd做這樣的CONTROLER /產品/產品.php但這不起作用。我不想編輯所有主題.tpl,因此必須在opencart代碼中完成。

現在我有這個,但我得到的€0.49或0.99€

 $price_new = $this->tax->calculate($result['price'],      $result['tax_class_id'], $this->config->get('config_tax')); 
     $price_new_1 = count($price_new , 2)/2-0.01; 
    $price_complete = $this->currency->format($price_new_1); 
    $spec_price_new = $this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')); 
    $spec_price_new_1 = round($spec_price_new, 2)/2-0.01; 
    $spec_price_complete = $this->currency->format($spec_price_new_1); 

    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { 
       $price = $price_complete; 
      } else { 
       $price = false; 
      } 

      if ((float)$result['special']) { 
       $special = $spec_price_complete; 
      } else { 
       $special = false; 
      } 

較早嘗試超時值至極沒有導致價格..

 if (($this->config->get('config_customer_price') && $this->customer-      >isLogged()) || !$this->config->get('config_customer_price')) { 
      $price = sprintf("%.2f", round($this->currency->format($this- >tax->calculate($result['price'], $result['tax_class_id'], $this->config- >get('config_tax'))) * 2)/2); 

     } else { 
      $price = false; 
     } 

     if ((float)$result['special']) { 
      $special = sprintf("%.2f", round($this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')))* 2)/2); 
     } else { 
      $special = false; 
     } 

我也tryed這種方式:

 // round price calculation 
     $normaloldprice = $this->currency->format($this->tax- >calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
     $newprice = round($normaloldprice * 2)/2; 

     $specialoldprice = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
     $newspecialprice = round($specialoldwprice * 2)/2; 

     $oldtaxprice = $this->currency->format((float)$product_info['special'] ? $product_info['special'] :             $product_info['price']); 
     $newtaxprice = round($oldtaxprice * 2)/2; 
     // end round price calculation 

     if (($this->config->get('config_customer_price') &&   $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { 
      $this->data['price'] = $newprice; 
     } else { 
      $this->data['price'] = false; 
     } 

     if ((float)$product_info['special']) { 
      $this->data['special'] = $newspecialprice; 
     } else { 
      $this->data['special'] = false; 
     } 

     if ($this->config->get('config_tax')) { 
      $this->data['tax'] = $newtaxprice; 
     } else { 
      $this->data['tax'] = false; 
     } 

回答