cancel
Showing results for 
Search instead for 
Did you mean: 

Проблемы с оформлением заказа гостем

Проблемы с оформлением заказа гостем


Добрый день
Подскажите пожалуйста как решить проблему
при оформлении заказа гостем, на 2 шаге "Информация о плательщике" вываливается собщение "Имя не может быть пустым., Фамилия не может быть пустой",

при этом все имеющиеся поля были предварительно заполнены.

Из моих наблюдений после 2 шага если галка  "Использовать адрес плательщика" установлена то все информация в 3 шаге должна подтягивается из 2-го, но по некоторой причине этого не происходит.
в консоли никаких ошибок нет. В файлы php, js,  никто правки не вносил.
Установлен модуль "Customer Attributes meneger", проблема возникла после правок некоторых позиций. После обнаружения проблемы все правки востановили в первоначальное состояние но проблему это не решило. 
Буду благодарен за помошь.

9 REPLIES 9

Re: Проблемы с оформлением заказа гостем

Проблема возникает из-за расширения. Для некоторых полей почему-то не получают проверены.
Вы должны проверить, если ID и class из этих поле соответствует шаблон Magento по умолчанию

Re: Проблемы с оформлением заказа гостем

В начале у меня тоже быбо такое мнение, я сверил с базовой установкой с установленым этим модулем поля firstname, lastname полностью соответствуют, помимо этого даный модуль вообще не позволяет изменить код существующего атрибута, т.е. изменить код "firstname", "lastname"  сознательно хотел но у меня это не получилось, ID изменить также невозможно.

Можно совсем удалить адрибут, но тогда при повторном его создании он будет иметь другой ID.

Но сверяя из мускуля коды и  ID этих параметров - они полностью идентичны.
Открючение 
этого "Customer Attributes meneger" модуля так же не дало положителных результатов

Re: Проблемы с оформлением заказа гостем

У вас есть адресс где можно посмотреть?

Обычно это связанно с классами проверки, я думаю скорее всего првоерка стоит не та то поле, или ищет дополнительное или скрытое поле.

Re: Проблемы с оформлением заказа гостем

да конечно же
предварительно нужно что либо положить в корзину, 
glasstrend.ru/checkout/onepage

Re: Проблемы с оформлением заказа гостем

Вроде отправляет корректную информацию.

Возможно конфликт полей. Надо смотреть что принимает контроллер.

Но для начала убедитесь что выключен любой Кэш, и режим компиляции выключен. Он доступен в System->Tools->Compilation

 

Лог :

 

billing[address_id]	
billing[city]	Brooklyn
billing[confirm_password]	
billing[country_id]	RU
billing[customer_password...	
billing[email]	test@gmail.com
billing[fax]	
billing[firstname]	test
billing[lastname]	test
billing[postcode]	11229
billing[region]	
billing[region_id]	498
billing[save_in_address_b...	1
billing[street][]	street1
billing[telephone]	123123123
billing[use_for_shipping]	1

 

Re: Проблемы с оформлением заказа гостем

да это в дебагере я видел,
Компиляция отключена,
можете подсказать в каком контролере нужно отловить данные?

Re: Проблемы с оформлением заказа гостем

Проверка скорее всего в модели

Mage_Customer_Model_Customer::validate()

 

Глянуть трэйс и смотреть что и где теряется.


ET Web Solutions
extensions, custom work, support

Re: Проблемы с оформлением заказа гостем

вот фрагмент объект Mage_Sales_Model_Quote_Address
https://www.dropbox.com/s/ht17o8lwe9ozai9/Mage_Sales_Model_Quote_Address%20Object.txt?dl=0
правда для меня он мало информативный, у кого то есть идеи/предложения?

Re: Проблемы с оформлением заказа гостем

валидация происходит в функции saveBlling  -  app/code/core/Mage/Checkout/Model/Type/Onepage.php

 

1)  Проверьте какое из условий выдает ошибку

                $address->importCustomerAddress($customerAddress)->setSaveInAddressBook(0);
                $addressForm->setEntity($address);
                $addressErrors  = $addressForm->validateData($address->getData());
                if ($addressErrors !== true) {
                    return array('error' => 1, 'message' => $addressErrors);
                }

 

2)

        // validate billing address
        if (($validateRes = $address->validate()) !== true) {
            return array('error' => 1, 'message' => $validateRes);
        }

 

 

Для первого случая проверьте какой из атрибутов выдает ошибку в app/code/core/Mage/Eav/Model/Form.php  Line 390

 

    /**
     * Validate data array and return true or array of errors
     *
     * @param array $data
     * @return boolean|array
     */
    public function validateData(array $data)
    {
        $errors = array();
        foreach ($this->getAttributes() as $attribute) {
            if ($this->_isAttributeOmitted($attribute)) {
                continue;
            }
            $dataModel = $this->_getAttributeDataModel($attribute);
            $dataModel->setExtractedData($data);
            if (!isset($data[$attribute->getAttributeCode()])) {
                $data[$attribute->getAttributeCode()] = null;
            }
$result = $dataModel->validateValue($data[$attribute->getAttributeCode()]);
/* Check attribute Code & Result */ if ($result !== true) { $errors = array_merge($errors, $result); } } if (count($errors) == 0) { return true; } return $errors; }