Перейти к содержанию
Форум поддержки пользователей VamShop

Пропала стоимость доставки


Рекомендуемые сообщения

Наверное в place_order, в /app/Controller/OrdersController.php
Перед строкой:
// Save the order
$this->Order->save($order);
можно, для начала, попробовать добавить что-то типа:
$order['Order']['shipping'] = 111;
и смотреть, запишется ли в заказ доставка стоимостью 111.
 
А затем уже править код, добавлять расчёт доставки, т.е. известен id номер выбранного модуля доставки, зная id модуля, можно расчёт получить.
Ссылка на сообщение
Поделиться на другие сайты

Да, данная конструкция записывает стоимость заказа в доставку.

Но пока не могу сообразить как вывести стоимость доставки через id выбранного способа доставки.

Ссылка на сообщение
Поделиться на другие сайты

Получается, что id мы берём из таблицы shipping_methods , а стоимость надо взять из таблицы shipping_method_values

Ссылка на сообщение
Поделиться на другие сайты

Смотрите /app/Controller/Component/OrderBaseComponent.php

 

Метод get_order_shipping

 

Там как раз выводится calculate метод, который и возвращает стоимость доставки.

 

Вот по аналогии используйте calculate в OrdersController.php

Ссылка на сообщение
Поделиться на другие сайты

Кстати, можно ещё попробовать в /app/Vendor/smarty/vam_plugins/function.checkout.php раскомментировать вот эти строки:

//   'cost_plain' => $MethodBase->calculate(),
//   'cost' => $CurrencyBase->display_price($MethodBase->calculate())
Ссылка на сообщение
Поделиться на другие сайты

ещё вчера пробовал их раскоментировать

не помогает :(

и с /app/Controller/Component/OrderBaseComponent.php метод get_order_shipping не могу разобраться :(

Как он берёт значение value из базы shipping_method_values ?

Ссылка на сообщение
Поделиться на другие сайты
В общем, глянул код.
 
Доставка сохраняется именно на странице подтверждения.
 
Что б сохранялась и без этой страницы.
 
Попробуйте в /app/Controller/OrdersController.php после:
public function place_order ()
{
global $config;
добавить:
App::uses('PaymentMethodBaseComponent', 'Controller/Component');
$PaymentMethodBase =& new PaymentMethodBaseComponent(new ComponentCollection());
 
$PaymentMethodBase->save_customer_data();
 
Хотя конечно тоже не факт, что сработает.
Ссылка на сообщение
Поделиться на другие сайты

Да, проверил, вроде бы работает, т.е. доставку берёт именно ту, что была выбрана при оформлении заказа.

 

Попробуйте.

 

Все остальные правки можно удалить, главное только вот эту правку сделать.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...