0

私はopencartバージョン2.3.0.2を使用しています..

ここで、クーポンの値を除いてすべての値を取得し、税の値が間違って表示され、値も間違って表示されます。

クーポンを適用する前に各商品の単価と、クーポンの値を適用した後に単位割引が必要です。

以下に何かをコーディングしましたが、単位割引で正しい値を取得できません..以下のコードを使用して合計割引額を取得し、クーポン値を適用するときに個別の割引税と割引額が必要です

$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'];
             }
            }

           }
4

1 に答える 1

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
}

これはコード例です。さらに詳しく知りたい場合は、支払いゲートウェイがどのようにそれを行ったかを確認してください. このすべてを機能させるための鍵は、製品を反復するときに割引を準備することです.

于 2017-07-05T09:22:08.317 に答える