Ответить Новая тема Новый опрос 
 Гонит модуль One page Checkout
DeepHouse
Новичок
Сообщений: 31
Регистрация: 11-11-2013


22-12-2013 10:10
Добрый день! Нужна помощь!!!
При оформлении заказа используется модуль One page Checkout. В нем отключены все лишние поля для заполнения. Покупки осуществляются без регистрации. Все максимально упрощено. Все работает, но вчера случайно обнаружил один очень неприятный баг. Описываю порядок действий:
При переходе в корзину, под списком товара, покупатель видит поля для заполнения. Скрин прилагаю:




На данном этапе все хорошо, все так и задумывалось. Нажимаем зеленую кнопку "Я подтверждаю свой заказ". Далее попадаем на страницу подтверждения заказа:



Если сейчас нажать желтую кнопку "Я подтверждаю свой заказ", то все пройдет хорошо, заказ сформируется, на почту придет письмо, и магазин будет готов к принятию нового заказа. Но если на данном этапе, вместо вышеупомянутой кнопки выбрать любое другое действие (выйти из корзины, добавить еще товар, и тд..), то при возвращении в корзину мы увидим кучу ненужных полей для заполнения, которые отключены в настройках модуля, но все равно отображаются. Так же появляется выбор другого адреса, и там можно выбрать адреса предыдущих покупателей, которые остались в кэшэ сайта. Этож ни какой анонимности! Выглядит так:




Сообщение отредактировано DeepHouse 22-12-2013 11:20 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
DeepHouse
Новичок
Сообщений: 31
Регистрация: 11-11-2013


22-12-2013 10:16
С этого момента, на сайте всегда, при входе в корзину, будет отображаться страница "Ваши адреса доставки". Что совершенно не нужно и не позволяет в дальнейшем оформить заказ. И так будет до тех пор, пока не очистить кэш браузера.



Почему так происходит? Помогите устранить. Нужно либо заставить модуль One page Checkout работать нормально, либо исключить этап подтверждения заказа. То есть, чтобы при нажатии на зеленую кнопку процесс оформления заказа завершался и происходило событие, соответствующее нажатию желтой кнопки. Второй вариант предпочтительнее, так как последний этап подтверждения заказа, по сути, не нужен.


Сообщение отредактировано DeepHouse 22-12-2013 11:19 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
DeepHouse
Новичок
Сообщений: 31
Регистрация: 11-11-2013


22-12-2013 14:31
Или может подскажите, как сделать, чтобы при загрузке страницы подтверждения заказа, автоматически срабатывало событие назначенное на желтую кнопку? Чтоб у покупателя не было возможности успеть нажать какой либо другой вариант.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
savvato11


Cпециалист
Сообщений: 289
Регистрация: 01-09-2012


22-12-2013 15:59
Цитата:
Я модуль One page Checkout тоже с дуру чуть не купил. Но благо добрые люди выложили в сеть

Напишите автору модуля, он подскажет
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
DeepHouse
Новичок
Сообщений: 31
Регистрация: 11-11-2013


23-12-2013 14:14
Если я все правильно понял, то код, отвечающий за запуск обработчика на странице подтверждения заказа, находится в файле validation.tpl и выглядит так:

<form action="{$link->getModuleLink('cashondelivery', 'validation', [], true)}" method="post">
<input type="hidden" name="confirm" value="1" />

<p>
<img src="{$this_path}cashondelivery.jpg" alt="{l s='Cash on delivery (COD) payment' mod='cashondelivery'}" style="float:left; margin: 0px 10px 5px 0px;" />
{l s='You have chosen the cash on delivery method.' mod='cashondelivery'}
{l s='The total amount of your order is' mod='cashondelivery'}
<span id="amount_{$currencies.0.id_currency}" class="price">{convertPrice price=$total}</span>
{if $use_taxes == 1}
{l s='(tax incl.)' mod='cashondelivery'}
{/if}
</p>

<p>
<b>{l s='Please confirm your order by clicking \'I confirm my order\'' mod='cashondelivery'}.</b>
</p>
<p class="cart_navigation">
<a href="{$link->getPageLink('order', true)}?step=3" class="button_large">{l s='Other payment methods' mod='cashondelivery'}</a>
<input type="submit" name="submit" value="{l s='I confirm my order' mod='cashondelivery'}" class="exclusive_large" />
</p>
</form>

То есть мы имеем форму, в которой по сути клиент ничего не заполняет, и мы имеем обработчик "{$link->getModuleLink('cashondelivery', 'validation', [], true)}", который запускается при нажатии кнопки подтверждения заказа.
Вопрос: как запустить этот обработчик сразу при загрузке страницы? Или как при загрузке страницы сэмулировать нажатие кнопки submit?



Сообщение отредактировано DeepHouse 23-12-2013 15:23 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
RAGE
Cпециалист
Сообщений: 145
Регистрация: 11-12-2011


23-12-2013 18:45

эти действа происходят в файле validation.php
там проверка:

Цитата:
if (Tools::getValue('confirm'))


если нажата кнопка подтверждения заказа - то формируется заказ и перекидывает на страницу уведомления об этом...

если не нажата кнопка - то выводится вышеупомянутая тобою форма для подтверждения...

поэтому если хочешь чтоб заказ формировался без подтверждения, то просто убери эту проверку...

 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
DeepHouse
Новичок
Сообщений: 31
Регистрация: 11-11-2013


23-12-2013 20:01
RAGE, от всего сердца, спасибо тебе, добрый человек!!!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос