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