Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Изменение порядка шагов One Page Checkout и обязательности полей
 
barabaska
Jr. Member
 
Total Posts:  3
Joined:  2012-10-05
 

Здравствуйте.
Возникла задача поменять порядок шагов при оформлении заказа: нужно чтобы 1) перед биллинговой информацией у пользователя запрашивалась инфа по способу доставки, и если он выберет “самовывоз”, то уже 2) в биллинговой информации исключить обязательное заполнение некоторых полей (Ñ‚.к. нужны будут по сути только имейл/телефон).

Подозреваю, что не получится просто поснимать посредством JS с полей ввода классы “required-entry”, какой-нибудь php-валидатор тоже придется перекрыть.
Научите, где поковырять.

 
Magento Community Magento Community
Magento Community
Magento Community
 
andrich
Jr. Member
 
Total Posts:  15
Joined:  2012-10-02
 

Очень полезная доработочка, при самовывозе достаточно номер телефона указать и всё. Покупатели на самом деле удивляются, зачем вводить полный адрес, при самовывозе… глупость!

 
Magento Community Magento Community
Magento Community
Magento Community
 
Rugento
Guru
 
Avatar
Total Posts:  540
Joined:  2008-11-15
Russia, Vologda
 

Для самовывоза есть решение http://www.rugento.ru/onepage-checkout-module.html

 
Magento Community Magento Community
Magento Community
Magento Community
 
dimaosna
Sr. Member
 
Avatar
Total Posts:  251
Joined:  2011-10-26
 

Тарифы на доставку в нескольких магазинах.
Для доставки в одном городе, в различных зонах города, с разными ценами
Включает много методов доставки, как вам нужно, с дополнительным “уведомление по электронной почте”.
Thebod Shippingrates

 
Magento Community Magento Community
Magento Community
Magento Community
 
barabaska
Jr. Member
 
Total Posts:  3
Joined:  2012-10-05
 
dimaosna - 28 March 2013 08:08 AM

Тарифы на доставку в нескольких магазинах.
Для доставки в одном городе, в различных зонах города, с разными ценами
Включает много методов доставки, как вам нужно, с дополнительным “уведомление по электронной почте”.
Thebod Shippingrates

Спасибо, хорошее расширение, я уже использую его: удобно добавлять варианты получения товара и задавать зависимости для способов оплаты, но нельзя поставить в зависимость необходимость заполнения адреса. Magento заставляет покупателя в любом случае указывать адрес, хотя в этом совершенно нет необходимости и это даже абсурдно при самовывозе. Я вижу в этом очень существенный минус для конверсии посетителя в покупателя.
Я просто не понимаю, почему нет свободных расширений с подобным функционалом или инструкций на эту тему, неужели всех устраивает такой подход? Придется, видимо, как-нибудь выделить несколько дней и разобраться с устройством и принципом работы модулей magento, чтобы написать свой.

 
Magento Community Magento Community
Magento Community
Magento Community
 
Sergiy Stotskiy
Member
 
Avatar
Total Posts:  53
Joined:  2011-02-27
 

Ð’ Мадженто этот Ñ„-нал очень страшно сделан… Но к счастью в там есть так сказать backdoor. Ð’Ñ‹ можете написать модель в которой сами провалидируете все а потом:

$quote->getShippingAddress()->setShouldIgnoreValidation(true);
$quote->getBillingAddress()->setShouldIgnoreValidation(true);

Валидация в PHP жесткая изменить ее невозможно без переписывания валидатора. Т.е., если Вам нужно для Onepage checkout-a, то надо переписать Mage_Checkout_Model_Type_Onepage::saveBilling и Mage_Checkout_Model_Type_Onepage::saveShipping.

Ни в коем случае не вздумайте юзать мадженто реврайты для подмены класса. Моя рекомендация:

Пишите свой контроллер наследуйтесь от Mage_Checkout_OnepageController, переопределите метод

public function getOnepage()
    
{
        
return Mage::getSingleton('my_checkout/page');
    
}

Поставьте свой контроллер первым в роутинге когда юзер идет на checkout/onepage (в config.xml):

<frontend>
  <
routers>
        <
checkout>
                 <
args>
                     <
modules>
                         <
my_checkout before="Mage_Checkout">My_Checkout</my_checkout>
                     </
modules>
                 </
args>
             </
checkout>
        </
routers>
</
frontend>

Теперь все запросы будут попадать на Ваш контроллер, он должен называться My_Checkout_OnepageController
Думаю дальше ничего сложного, вьюху можете поменять как душе угодно.

 
Magento Community Magento Community
Magento Community
Magento Community
 
barabaska
Jr. Member
 
Total Posts:  3
Joined:  2012-10-05
 

Sergiy Stotskiy, спасибо за толковые советы!
Печально, что все так печально )

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top