修正案です。こんな感じかな。
data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
public function checkInsertOrderProducts(&$objFormParam, $arrProductClassIds, $insert_product_class_id, $arrAddProductInfo)
{
if(!$arrProductClassIds || !in_array($insert_product_class_id, $arrProductClassIds)){
// added
$objTaxRule = new SC_Helper_TaxRule_Ex();
$arrTax = $objTaxRule->getTaxRule(0, $insert_product_class_id, 0, 0);
// added
$arrAddProducts = array();
$arrAddProductInfo['product_name'] = ($arrAddProductInfo['product_name'])?
$arrAddProductInfo['product_name']:$arrAddProductInfo['name'];
$arrAddProductInfo['price'] = ($arrAddProductInfo['price'])?
$arrAddProductInfo['price']:$arrAddProductInfo['price02'];
$arrAddProductInfo['quantity'] = 1;
/* changed
$arrAddProductInfo['tax_rate'] = ($objFormParam->getValue('order_tax_rate') == '')?
$this->arrInfo['tax'] :$objFormParam->getValue('order_tax_rate');
$arrAddProductInfo['tax_rule'] = ($objFormParam->getValue('order_tax_rule') == '')?
$this->arrInfo['tax_rule']:$objFormParam->getValue('order_tax_rule');
changed */
$order_tax_rate = $objFormParam->getValue('tax_rate');
$arrAddProductInfo['tax_rate'] = ($order_tax_rate[0] == '')?
$arrTax['tax_rate']:$order_tax_rate[0];
$order_tax_rule = $objFormParam->getValue('tax_rule');
$arrAddProductInfo['tax_rule'] = ($order_tax_rule[0] == '')?
$arrTax['tax_rule']:$order_tax_rule[0];
/* chenged */
foreach ($this->arrProductKeys as $insert_key) {
$value = $objFormParam->getValue($insert_key);
$arrAddProducts[$insert_key] = (is_array($value))? $value: array();
$arrAddProducts[$insert_key][] = $arrAddProductInfo[$insert_key];
}
return $arrAddProducts;
} else {
//受注商品の数量は、複数配送側の集計で出しているので、重複しても数量を増やさない。
return null;
}
}