2016-12-29 5 views
0

私はopencartバージョン2.3.0.2を使用しています。クーポンの価値を適用するときのOpencart計算?

ここで、私はクーポン値が税額が間違っていて値が正しく表示されない場合を除き、すべての値を取得しています。

クーポンを適用する前に各商品単価を払い、クーポンの値を適用後に 単位を割引します。

$this->load->model('extension/total/coupon'); 

      $coupon_info = $this->model_extension_total_coupon->getCoupon($this->session->data['coupon']); 
      if(isset($coupon_info) && !empty($coupon_info)) 
      { 
      foreach($product as $taxpro) { 


       if($coupon_info['type'] == 'F') 
         { 
          $discount = $coupon_info['discount'] * ($taxpro['total']/$sub_total); 
         } else 
         if ($coupon_info['type'] == 'P') 
         { 
          $discount = $taxpro['total']/100 * $coupon_info['discount']; 
         } 

      $tax_rates = $this->tax->getRates($taxpro['total'] - ($taxpro['total'] - $discount), $taxpro['tax_class_id']); 
      foreach ($tax_rates as $tax_rate) 
          { 
           echo "<pre>"; print_r($total_data['taxes'][$tax_rate['tax_rate_id']]);echo "<pre>"; 
           if ($tax_rate['type'] == 'P') 
           { 

            $total_data['taxes'][$tax_rate['tax_rate_id']] -= $tax_rate['amount']; 
           } 



           echo "<pre>"; print_r($total_data['taxes'][$tax_rate['tax_rate_id']]); 
          } 


      foreach($tax_rates as $tax_coupon) 
      { 
       $protax = $tax_coupon['amount']; 

       $protax_unit = round($protax*$taxpro['quantity'],2); 
       $total_unit_tax += $protax_unit; 

       $coupon_tax += $tax_coupon['amount']; 
      } 
      } 

      } 

答えて

0
クーポン値を適用するとき、私は合計割引額を取得したコードイムの下に使用して ...単位の割引との正しい値を取得することができ、以下のものをコード化されたが、していない、私は個々の割引税および割引額を望みます

すべての商品を税金で保存する必要があります。私は

例を考える方法についてそれをより明確にするために多くのコードを省略しています

<?php 
$prepareDiscount = array(); 
foreach ($products as $product){ 
$prepareDiscount[$taxRateForProduct] = $productTotal; 

} 

次にあなたがprepareDiscounts配列を反復処理する必要があります。

$total = $totalfromOrder; 
$coupon_info = $this->model_extension_total_coupon->getCoupon($this->session->data['coupon']); 

foreach($prepareDiscount as $taxRate => $value){ 
$discountPercentForRate = $value/$total; 
$discountForRate = $discountPercentForRate * $coupon_info['discount']; 
// Now you have the taxRate And the part of the discount which have that rate 
} 

これは、サンプルコード。より深いところに興味があれば、決済ゲートウェイがそれをした方法を確認してください。このすべてを有効にするための鍵は、製品を反復するときに割引を準備することです。

関連する問題