Родной чекаут в магенте состоит из нескольких шагов.
Моя задача заключается в том, что бы отправить кастомера на необходимый шаг чекаута.
Ситуация выглядит следующим образом:
В корзине лежат товары.
Кастомер нажимает кнопочку (которую мы создали)
И по волшебству оказывается к примеру на шаге выбора шиппинг метода.
Разумеется предыдущие шаги должны выполниться автоматически, т.е. мы за кастомера сабмитим биллинг и шиппинг адреса.
Пока я остановился на варианте: Повесить дополнительный блок на чекауте, в темплейте которого будет яваскрипт, который этим займется
Как пропустить шаги выбора адреса при оформлении заказа?
16.12.2011 13:02
На рынке уже имеется достаточное количество модулей, способных пропускать те или иные шаги при оформлении заказа.
Просто купите один из них и посмотрите, как он устроен внутри.
Решения там довольно длинные и сложные, чтобы публиковать их в форумном сообщении.
Просто купите один из них и посмотрите, как он устроен внутри.
Решения там довольно длинные и сложные, чтобы публиковать их в форумном сообщении.
16.12.2011 14:26
Речь идет не о том, как пропустить шаги, а как их автоматически заполнить.
Модуль должен автоматически пройти нужные шаги и работает только с залогиненными кастомерами у которых есть дефолтные адреса, что неимоверно упрощает задачу.
Модуль должен автоматически пройти нужные шаги и работает только с залогиненными кастомерами у которых есть дефолтные адреса, что неимоверно упрощает задачу.
16.12.2011 14:29
Я это и имел в виду.
О таких вещах спрашивают часто, готового короткого решения нет, хотя, очевидно, программированием или готовыми модулями задача решается.
О таких вещах спрашивают часто, готового короткого решения нет, хотя, очевидно, программированием или готовыми модулями задача решается.
23.12.2011 15:44
Решил проблемку следующим образом:
Зная id адреса мы его дописываем в урл и редиректим на него. Получается нечто такое:
domain.com/index.php/checkout/onepage/index/billing/2 - (billing - название параметра, 2 - id адреса)
В лайоуте своего модуля добавляем свой скрипт:
И сам код submitter.js:
собственно наш скрипт не проверяет какой параметр ему передают, а просто проверяет последнее значение.
но если кому надо, то допилить не сложно.
Зная id адреса мы его дописываем в урл и редиректим на него. Получается нечто такое:
domain.com/index.php/checkout/onepage/index/billing/2 - (billing - название параметра, 2 - id адреса)
В лайоуте своего модуля добавляем свой скрипт:
<checkout_onepage_index> <reference name="head"> <action method="addJs"> <script>mymodule/submitter.js</script> </action> </reference> </checkout_onepage_index>
И сам код submitter.js:
Submitter = Class.create( { initialize:function () { this.url = window.location.toString().split('/'); try { this.id = parseInt(this.url.last()) } catch (e) { } }, submitBilling:function () { if (this.id > 0) { try { $('billing-address-select').value = this.id; $('billing:use_for_shipping_no').click(); billing.save(); } catch (e) { setTimeout('mysubmitter.submitBilling()', 2); } } } } ); mysubmitter = new Submitter(); mysubmitter.submitBilling();
собственно наш скрипт не проверяет какой параметр ему передают, а просто проверяет последнее значение.
но если кому надо, то допилить не сложно.