LordBelial 0 Опубликовано 2 апреля, 2014 Жалоба Share Опубликовано 2 апреля, 2014 Не знаю, что делал но сайт перестал выводить стоимость доставки указанную в FlatRate. Как следствие он её и не плюсует при оформлении заказа. Т.е. он считает, что цена доставки 0, в то время как она указана 150. Кеш сбрасывал (и в магазине и в app\tmp\cache\smarty_templates_c) Что может быть и как исправить? ============================== Второй вопрос: Когда сам пишешь модуль доставки, то при установки в админке он просит какой-то фаил install. Что это за фаил? Что в нем писать? И куда сувать? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 апреля, 2014 Жалоба Share Опубликовано 2 апреля, 2014 А другие модули доставки считают? Может это всё из-за того, что убрали страницу подтверждения!? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 апреля, 2014 Жалоба Share Опубликовано 2 апреля, 2014 По поводу своего модуля доставки. Вот для этого специально был сделан тестовый модуль, что б свои модули писать на его основе. Скачайте - http://support.vamshop.ru/modules/wfdownloads/singlefile.php?cid=2&lid=2 и используйте в качестве примера. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 2 апреля, 2014 Автор Жалоба Share Опубликовано 2 апреля, 2014 Но у этого примерочного модуля нет файла install, который, как я понял, при необходимости, создает дополнительные таблицы в базе данных Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 апреля, 2014 Жалоба Share Опубликовано 2 апреля, 2014 Пчоему нет!? В контроллере есть и install и uninstall Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 2 апреля, 2014 Автор Жалоба Share Опубликовано 2 апреля, 2014 Значит я не заметил =) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 апреля, 2014 Жалоба Share Опубликовано 2 апреля, 2014 Например стандартный модуль /app/Plugins/Shipping/Controller/FlatRateController.php Да и в любом другом тоже обязательно должно быть, это ж установка (install) и удаление (uninstall) модуля в админке, без этих методов просто ничего работать не будет. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 6 апреля, 2014 Автор Жалоба Share Опубликовано 6 апреля, 2014 Другие модули доставки то же не выводят стоимость доставки. На экспериментальном движке (где ни чего не изменено), убрал подтверждения заказа, поменяв в /app/Vendor/smarty/vam_plugins/function.checkout.php 'checkout_form_action' => BASE . '/orders/confirmation/' на: 'checkout_form_action' => BASE . '/orders/place_order/' Но там все сработало. Т.е. в письме он вывел стоимость доставки и подсчитал её. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 апреля, 2014 Жалоба Share Опубликовано 6 апреля, 2014 Может ещё у себя что-то правили в коде? Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 6 апреля, 2014 Автор Жалоба Share Опубликовано 6 апреля, 2014 Может, но, что я не помню :rolleyes: . Перестанавливать магазин не хочется. Поэтому хочу понять цепочку работы модулей доставки при формировании заказа. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 6 апреля, 2014 Автор Жалоба Share Опубликовано 6 апреля, 2014 $order['Order']['shipping'] берётся из сессии или из какой-то таблицы? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 апреля, 2014 Жалоба Share Опубликовано 7 апреля, 2014 В заке и корзине участвуют: /app/Controller/Component/OrderBaseComponent.php /app/Controller/CartController.php /app/Controller/OrderController.php /app/Vendor/smarty/vam_plugins/function.shopping_cart.php Попробуйте сравнить эти файлы с оригиналами. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 просто заменил все четыре файла не помогло :( Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 Удалил из админки все модули доставки, потом установил только FlatRate. Оформил заказ - цену доставки он вывел правильно и подсчитал. Далее установил FreeShipping и сделал оформление заказа с этим способом доставки. Но назавание доставки вывел правильно, а вместо 0 он вывел цену указанную в FlatRate и подсчитал заказ в месте с ней. Поменял галочки "По умолчанию" и тогда при выборе любого способа из способов он стал выводить цену 0 за доставку. Получается так, что какой способ доставки по умолчанию поставишь, тот и будет подсчитываться в заказе не зависимо от того какой способ выбирает пользователь. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 Сбрасывал кеш - не помогает. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 апреля, 2014 Жалоба Share Опубликовано 7 апреля, 2014 По умолчанию да, выбирается доставка по умолчанию. Но ведь потом, когда при оформлении заказа выбирается доставка, на странице подтверждения уже будет та доставка, что выбрана была при оформлении. Если Вы страницу подтверждения удалили, то новое значение доставки и не запишется. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 Куда записывается значение доставки? Я так думаю, что можно переделать. Что на прямую он брал значение из базы данных и записывал его в заказ при оформлении. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 апреля, 2014 Жалоба Share Опубликовано 7 апреля, 2014 Заказ появляется сразу же как добавляется хотя бы один товар в корзину. По идее, данные в базу должны писаться в методе purchase_product в /app/Controller/CartController.php Там же и идёт запрос модулей доставки и оплаты по умолчанию, можно наверное вручную там задать нужный модуль. Но опять же, что-то мне кажется, что все эти глюки из-за удалённой страницы подтверждения заказа. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 Все правильно это "глюк" из-за удалённой страницы подтверждения заказа. (проверял на не переделанном движке, как только убираешь подтверждения заказа тут же появляется такой глюк) И все же у меня стоит задача в одну страницу оформления товара. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 апреля, 2014 Жалоба Share Опубликовано 7 апреля, 2014 Попробуйте в purchase_product поменять: $default_shipping = $this->Order->ShippingMethod->find('first', array('conditions' => array('default' => '1'))); $new_order['Order']['shipping_method_id'] = $default_shipping['ShippingMethod']['id']; на что-то типа: //$default_shipping = $this->Order->ShippingMethod->find('first', array('conditions' => array('default' => '1'))); $new_order['Order']['shipping_method_id'] = X; где X - id номер нужного модуля доставки. Но дело ведь вряд ли в этом. Если нужен расчёт доставки и Вы убрали переход на confirmation страницу, то, тогда, по идее, нужно править /app/Controller/OrderController.php Метод place_order, добавлять там запись в базу стоимость доставки. Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 Попробуйте в purchase_product поменять: $default_shipping = $this->Order->ShippingMethod->find('first', array('conditions' => array('default' => '1'))); $new_order['Order']['shipping_method_id'] = $default_shipping['ShippingMethod']['id']; на что-то типа: //$default_shipping = $this->Order->ShippingMethod->find('first', array('conditions' => array('default' => '1'))); $new_order['Order']['shipping_method_id'] = X; где X - id номер нужного модуля доставки. Но дело ведь вряд ли в этом. Если нужен расчёт доставки и Вы убрали переход на confirmation страницу, то, тогда, по идее, нужно править /app/Controller/OrderController.php Метод place_order, добавлять там запись в базу стоимость доставки. В данном случае поможет если используется только один метод доставка, а у меня их несколько. Т.е. мне он не подайте. :( Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 7 апреля, 2014 Автор Жалоба Share Опубликовано 7 апреля, 2014 Т.е. он, кончено же работать будет, но мне надо, если пользователь выбрал "самовывоз", но в стоимость доставки выводит 0, если "доставка по СПб", то в стоимость доставки 150 руб., если "доставка по Ленобласти", то в стоимость доставки 250 руб. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 апреля, 2014 Жалоба Share Опубликовано 7 апреля, 2014 Это всё нужно прописывать в place_order в /app/Controller/OrderController.php Там оконсательно заказ пишется в базу, т.е. смотрите в place_order, что там сидит в $_POST массиве и добавляйте условия для записи доставки в базу. В общем, смотрите как сделано по умолчанию в случае с confirmation и делайте так же в place_order, раз удалили у себя страницу подтверждения (confirmation). Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 8 апреля, 2014 Автор Жалоба Share Опубликовано 8 апреля, 2014 Дело в том, что он все данные передает правильно, включая название выбранной доставки, кроме суммы выбранной доставки, которую он берёт из доставки выбранной по умолчанию. В $_POST сидит то же самое.Единственное, что в сумму доставки в подтверждении он выводит через 'shipping_total' => $CurrencyBase->display_price($order['Order']['shipping']) Пробовал в place_order в /app/Controller/OrderController.php , но не помогло. Хотя, возможно я не так сделал. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 апреля, 2014 Жалоба Share Опубликовано 8 апреля, 2014 Ну попробуйте задать вручную эту shipping_total, для начала, что б Ваше значение писалось в базу. А затем уже нужно будет, зная id модуля (он через POST передаётся), когда выбираете при оформлении, уже делать расчёт доставки и записывать значение в базу. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения