+ Ответить в теме
Показано с 1 по 6 из 6
  1. #1
    Сообщество ViArts Driver - весьма и весьма положительная личность Driver - весьма и весьма положительная личность Driver - весьма и весьма положительная личность
    Регистрация
    27.06.2011
    Адрес
    Новосибирск
    Возраст
    48
    Сообщений
    231
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    23 Всего
    Загрузки
    56
    Закачек
    0
    Вес репутации
    13

    По умолчанию Дополнительные поля профиля для доставки

    Давным-давно создал дополнительное поле для оформления заказов пользователя Отчество. Ему соответствует тег {field_29}. Для доставки этому регистрационному тегу должен соответствовать тег {delivery_field_29}.
    Где я могу прописать дополнительное поле для доставки?
    Без этого тега письма пользователю, создаваемые из корзины покупок заказа №Х (Управление > Заказы > Продажи / Заказы > Заказ №Х) выходят куцыми, без отчества.
    Не трогайте оголенные провода мокрыми руками! Они от этого ржавеют и портятся...
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  2. #2
    Модератор Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек
    Регистрация
    02.11.2012
    Сообщений
    37
    Сказали 'Спасибо' за это сообщение. :
    1 за это сообщение
    36 Всего
    Загрузки
    22
    Закачек
    0
    Вес репутации
    7

    По умолчанию Re: Дополнительные поля профиля для доставки

    Если я правильно понял вопрос, то доп. поля создаются в "Настройки > Оформление заказа > Доп. поля". Добавляете поле, и указываете его тип - "Данные для доставки".
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  3. Сказали спасибо:

    Driver (26.09.2013)

  4. #3
    Сообщество ViArts Driver - весьма и весьма положительная личность Driver - весьма и весьма положительная личность Driver - весьма и весьма положительная личность
    Регистрация
    27.06.2011
    Адрес
    Новосибирск
    Возраст
    48
    Сообщений
    231
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    23 Всего
    Загрузки
    56
    Закачек
    0
    Вес репутации
    13

    По умолчанию Re: Дополнительные поля профиля для доставки

    Создал дополнительное обязательное поле для доставки Отчество. Номер поля 30.
    В данных для доставки это поле появилось. Мета-тег {field_30}. Мета-тег вставлен в шаблон письма.
    Отчество в данных для доставки указано.
    Но при создании письма подстановка отчества не происходит.

    P.S. При заполнении данных во время заказа Персональные данные автоматически переносятся в Данные для доставки (ставим галочку: Данные те же). А Отчество не переносится!
    Последний раз редактировалось Driver; 26.09.2013 в 06:03.
    Не трогайте оголенные провода мокрыми руками! Они от этого ржавеют и портятся...
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  5. #4
    Модератор Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек
    Регистрация
    02.11.2012
    Сообщений
    37
    Сказали 'Спасибо' за это сообщение. :
    2 за это сообщение
    36 Всего
    Загрузки
    22
    Закачек
    0
    Вес репутации
    7

    По умолчанию Re: Дополнительные поля профиля для доставки

    Цитата Сообщение от Driver Посмотреть сообщение
    При заполнении данных во время заказа Персональные данные автоматически переносятся в Данные для доставки (ставим галочку: Данные те же). А Отчество не переносится!
    Доп. поля скриптом не переносятся, только стандартные. Правьте функцию checkSame в файле js/ordering.js. Добавьте туда такие строки:

    orderForm.op_30.value = orderForm.op_29.value;
    refreshPage = true;


    где 29 и 30 - идентификаторы доп. полей.

    Ну а в тексте сообщения пользователю указываете тег {field_30}, его можно посмотреть в админке в подсказке. Подстановка происходит!
    Последний раз редактировалось Дебагер; 28.09.2013 в 22:53.
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  6. Сказали спасибо:

    Driver (Вчера) , yoko (29.09.2013)

  7. #5
    Сообщество ViArts Driver - весьма и весьма положительная личность Driver - весьма и весьма положительная личность Driver - весьма и весьма положительная личность
    Регистрация
    27.06.2011
    Адрес
    Новосибирск
    Возраст
    48
    Сообщений
    231
    Сказали 'Спасибо' за это сообщение. :
    0 за это сообщение
    23 Всего
    Загрузки
    56
    Закачек
    0
    Вес репутации
    13

    По умолчанию Re: Дополнительные поля профиля для доставки

    Нашел файл, нашел функцию. Добавил строки в то место, куда, как мне кажется, они должны быть добавлены.
    Как и ожидалось, чуда не случилось. Я ведь не волшебник. И даже не программист. Полагаю, что необходимо выполнить некие ритуальные пляски, с которыми знакомы только программисты и очень продвинутые пользователи.
    Не трогайте оголенные провода мокрыми руками! Они от этого ржавеют и портятся...
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  8. #6
    Модератор Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек Дебагер - очень-очень хороший человек
    Регистрация
    02.11.2012
    Сообщений
    37
    Сказали 'Спасибо' за это сообщение. :
    1 за это сообщение
    36 Всего
    Загрузки
    22
    Закачек
    0
    Вес репутации
    7

    По умолчанию Re: Дополнительные поля профиля для доставки

    Код:
    function checkSame()
    {
    	var refreshPage = false;
    	var orderForm = document.order_info;
    	var sameChecked = document.order_info.same_as_personal.checked;
    	if (sameChecked) {
    		var fieldName = "";
    		var fields = new Array("name", "first_name", "last_name", "company_id", "company_name", "email",
    			"address1", "address2", "city", "province", "address1",
    			"phone", "daytime_phone", "evening_phone", "cell_phone", "fax",
    			"phone_code", "daytime_phone_code", "evening_phone_code", "cell_phone_code", "fax_code");
    		for (var i = 0; i < fields.length; i++) {
    			fieldName = fields[i];
    			if (orderForm.elements[fieldName] && orderForm.elements["delivery_" + fieldName]) {
    				orderForm.elements["delivery_" + fieldName].value = orderForm.elements[fieldName].value;
    			}
    		}
    		if (orderForm.country_id && orderForm.delivery_country_id) {
    			if (orderForm.country_id.selectedIndex != orderForm.delivery_country_id.selectedIndex) {
    				orderForm.delivery_country_id.selectedIndex = orderForm.country_id.selectedIndex;
    				refreshPage = true;
    			}
    		}
    		if (orderForm.country_id && orderForm.delivery_country_id) {
    			if (orderForm.country_id.selectedIndex != orderForm.delivery_country_id.selectedIndex) {
    				orderForm.delivery_country_id.selectedIndex = orderForm.country_id.selectedIndex;
    				refreshPage = true;
    			}
    		}
    		if (orderForm.state_id && orderForm.delivery_state_id) {
    			if (orderForm.state_id.selectedIndex != orderForm.delivery_state_id.selectedIndex) {
    				orderForm.delivery_state_id.selectedIndex = orderForm.state_id.selectedIndex;
    				refreshPage = true;
    			}
    		}
    		if (orderForm.state_id && orderForm.delivery_state_id) {
    			if (orderForm.state_id.selectedIndex != orderForm.delivery_state_id.selectedIndex) {
    				orderForm.delivery_state_id.selectedIndex = orderForm.state_id.selectedIndex;
    				refreshPage = true;
    			}
    		}
    		if (orderForm.zip && orderForm.delivery_zip) {
    			if (orderForm.zip.value != orderForm.delivery_zip.value) {
    				orderForm.delivery_zip.value = orderForm.zip.value;
    				refreshPage = true;
    			}
    		}
    		if (orderForm.op_30 && orderForm.op_29) {
    			if (orderForm.op_30.value != orderForm.op_29.value) {
    				orderForm.op_30.value = orderForm.op_29.value;
    				refreshPage = true;
    			}
    		}
    	}
    	if (refreshPage) {
    		orderForm.operation.value = "refresh";
    		orderForm.submit();
    	}
    }
    Digg this Post!Bookmark Post in Technorati
    Ответить с цитированием Ответить с цитированием
    Спасибо

  9. Сказали спасибо:

    newshop (Вчера)


 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

     

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Back to top