minishop2 доп.стоимость у метода оплаты.
При указании дополнительной стоимость на способ оплаты -5%, считается вместе с наценкой за доставку, подскажите как сделать что бы доп.стоимость начислялась только на сумму товара а доставка прибавлялась отдельно, думаю так логичней изначально сделать.
Комментарии: 6
Напишите свой класс заказа docs.modx.pro/components/minishop2/development/service/order
в нем измените метод getCost
в нем измените метод getCost
Спасибо, подскажите для этой задачи что именно прописать в getCost?
что именно прописать в getCost?Думайте самостоятельно.
Сначала выполните все шаги для подключения своего класса заказа, затем добавьте в него родной метод, а после измените его под вашу логику.
Видимо не хватает думалки) За вознаграждение есть вариант помочь?
напишите в скайп, контакты в профиле
Может кому пригодиться, исправленный метод getCost:
public function getCost($with_cart = true, $only_cost = false) {
$response = $this->ms2->invokeEvent('msOnBeforeGetOrderCost', array(
'order' => $this,
'cart' => $this->ms2->cart,
'with_cart' => $with_cart,
'only_cost' => $only_cost,
));
if (!$response['success']) {return $this->error($response['message']);}
$cart = $this->ms2->cart->status();
$cost = $with_cart
? $cart['total_cost']
: 0;
$add_price = 0;
/* @var msDelivery $delivery */
if (!empty($this->order['delivery']) && $delivery = $this->modx->getObject('msDelivery', $this->order['delivery'])) {
//$cost = $delivery->getCost($this, $cost);
$add_price += $delivery->getCost($this, $cost) - $cost;
$deliveryCost = $delivery->getCost($this, 0);
// $deliveryCost = $delivery->getCost($this, 0);//Добавил переменную где получаем price доставки
}
/* @var msPayment $payment */
if (!empty($this->order['payment']) && $payment = $this->modx->getObject('msPayment', $this->order['payment'])) {
$add_price += $payment->getCost($this, $cost) - $cost;
//$cost = $payment->getCost($this, $cost);
}
$cost += $add_price;
$response = $this->ms2->invokeEvent('msOnGetOrderCost', array(
'order' => $this,
'cart' => $this->ms2->cart,
'with_cart' => $with_cart,
'only_cost' => $only_cost,
'cost' => $cost
));
if (!$response['success']) {return $this->error($response['message']);}
$cost = $response['data']['cost'];
return $only_cost
? $cost
: $this->success('', array('cost' => $cost, 'delivery_cost'=>$deliveryCost));//Добавил deliveryCost
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.