Magento 1.9.1.1 Промежуточный итог оплаты показывает двойную цену
0 SKP [2016-07-25 16:14:00]
Моя проверка Промежуточный итог и дедушка показывают, что цена товара в корзине удваивается.
Я установил "Разрешить доставку в несколько адресов" как "Нет" и "Максимальное количество разрешенных для доставки в несколько адресов" как "0",
Также я обновил код в файле cart.php.
Но все же я получаю недооценку.
РЕДАКТИРОВАТЬ:
Я обновил приведенный ниже код в файле app/code/core/Mage/Checkout/Model/cart.php.
$addresses = $this->getQuote()->getAllAddresses();
if (count($addresses) > 2) {
for($i = 2; $i < count($addresses); $i++) {
$address = $addresses[$i]; $address->isDeleted(true);
}
}
Но все же я получаю недооценку
благодаря
magento
1 ответ
3 Matt Coffey [2017-03-15 18:28:00]
Похоже, что причиной этого является только несколько адресов доставки. У вас может быть несколько адресов фактурирования, и только одна отправка, а итоговые суммы, похоже, не удваиваются. Таким образом, существует вероятность того, что у клиента могут быть две записи о доставке в таблице sales_flat_quote_address и нет адреса фактуры (возможно, крайне редко). Или два адреса доставки в первых двух местах (lower address_id) и выставление счетов в последнем. В любом случае код, который вы указали, не будет исправлять проблему удвоения. В первом случае, потому что есть только две записи, поэтому второй адрес доставки не будет удален. Во втором случае, поскольку 3-я запись является платежным адресом, она будет удалена, все еще оставляя два адреса доставки. Чтобы это исправление работало в этих редких случаях, и поскольку это просто кажется более подходящим, я изменил код, чтобы выглядеть так:
$addresses = $this->getQuote()->getAllShippingAddresses();
if (count($addresses) > 1) {
for($i = 1; $i < count($addresses); $i++) {
$address = $addresses[$i];
$address->isDeleted(true);
}
}
Этот код будет вытаскивать только адреса доставки для рассматриваемого объекта. Затем он удалит любые дополнительные записи после первого.