Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль Модуль подсказок Dadata, автозаполнение полей Ф.И.О, Адреса, данные по ИНН [Поддержка]


Recommended Posts

Поделитесь советом пожалуйста, использую этот стандартный конфиг для Simple: https://opencartforum.com/files/tutorials/611-esli-ne-znaete-kakie-nastroyki-vybrat-simple/

 

Мне надо жестко ограничить город по которому будет осуществляться поиск адресов, как описано в документации: https://confluence.hflabs.ru/pages/viewpage.action?pageId=1023737934 

 

Пример:

 

    "locations": [{
        "region": "москва"
    }]

 

Пробовал прописать его в этой функции, но не помогло: 

 

    function setConstraints(sgt, kladr_id) {
        var restrict_value = false;
        var locations = null;
        if (kladr_id) {
            locations = {
                kladr_id: kladr_id
            };
            restrict_value = true;
        }
        sgt.setOptions({
            constraints: {
                locations: locations
            },
            restrict_value: restrict_value
        });
    }

 

Надіслати
Поділитися на інших сайтах


В 16.09.2021 в 15:17, donnie сказал:

Поделитесь советом пожалуйста, использую этот стандартный конфиг для Simple: https://opencartforum.com/files/tutorials/611-esli-ne-znaete-kakie-nastroyki-vybrat-simple/

 

Мне надо жестко ограничить город по которому будет осуществляться поиск адресов, как описано в документации: https://confluence.hflabs.ru/pages/viewpage.action?pageId=1023737934 

 

Пример:

 



    "locations": [{
        "region": "москва"
    }]

 

Пробовал прописать его в этой функции, но не помогло: 

 



    function setConstraints(sgt, kladr_id) {
        var restrict_value = false;
        var locations = null;
        if (kladr_id) {
            locations = {
                kladr_id: kladr_id
            };
            restrict_value = true;
        }
        sgt.setOptions({
            constraints: {
                locations: locations
            },
            restrict_value: restrict_value
        });
    }

 

попробуйте

 

function setConstraints(sgt, kladr_id) {
        sgt.setOptions({
            constraints: {
                locations: [{
			"city": "Город по которому нужна фильтрация"
		}]
            },
            restrict_value: true
        });
    }

 

Надіслати
Поділитися на інших сайтах

51 минуту назад, Sha сказал:

попробуйте

 


function setConstraints(sgt, kladr_id) {
        sgt.setOptions({
            constraints: {
                locations: [{
			"city": "Москва"
		}]
            },
            restrict_value: true
        });
    }

 

 

Не помогает. У нас одно поле "адрес доставки", полей регион, город, индекс нет. Возможно поэтому функция setConstraints вообще не вызывается? 

Надіслати
Поділитися на інших сайтах


1 час назад, donnie сказал:

 

Не помогает. У нас одно поле "адрес доставки", полей регион, город, индекс нет. Возможно поэтому функция setConstraints вообще не вызывается? 

отправьте в личку доступы, посмотрим по месту.

Надіслати
Поділитися на інших сайтах

В 16.09.2021 в 20:49, Sha сказал:

отправьте в личку доступы, посмотрим по месту.

помогите настроить, я у вас купил этот модуль так и не смог настроить =(( даже и не пользовался им.

Надіслати
Поділитися на інших сайтах


1 час назад, 26rus сказал:

помогите настроить, я у вас купил этот модуль так и не смог настроить =(( даже и не пользовался им.

отправьте в личку доступы, посмотрим по месту)))

Надіслати
Поділитися на інших сайтах

Пропадает значения поля города если вести Саратов или Ростов, но если вести Москва или Сан-Петербург нормально работает 

Змінено користувачем Maminoschas
Надіслати
Поділитися на інших сайтах


2 часа назад, Maminoschas сказал:

Пропадает значения поля города если вести Саратов или Ростов, но если вести Москва или Сан-Петербург нормально работает 

Попробовать отключить перезагрузку в simple на данном поле.

 

Если не справитесь- напишите в личку, и мы постараемся вам помочь.
но техподдержка только купившим модуль, вас я не вижу в списке покупателей.

Надіслати
Поділитися на інших сайтах

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

Надіслати
Поділитися на інших сайтах


Приветствую 

Сделал настройки как в фак, нет реакции в полях. Возможно какая то мелочь, но не пойму сам. Кто уже прошёл, и сможет в админке глянуть? 

Может что-то с полями. Вставлял разный код, один раз даже строка появлялась про адрес) но в полях заполнения нет

Надіслати
Поділитися на інших сайтах


  • 1 month later...
1 час назад, dmitriikochetkov сказал:

Куда копать?

- обратить внимание на классы полей,

- проверить схемы,

- посмотреть (F12) выводится ли вообще на этой странице dadata

Надіслати
Поділитися на інших сайтах

Использует кто этот модуль на странице регистрации симплы/стандартной? Покажите, пожалуйста настройки.

 

И кто-то сталкивался с отображением конкретных городов. Решил автор вопрос? Покажите, пожалуйста, настройки. У меня такая ерунда на селах и деревнях.

Надіслати
Поділитися на інших сайтах


Цитата

Решил вопрос

- проверив схемы,

 

а так-же такими настройками кода

Спойлер

 


function checkAddress($city, $address, $postcode, $region) {
    // Если инпут города нету выходим
    if (!$city.length) return;
    var type = 'ADDRESS';
    $city.suggestions({
      token: token,
      type: type,
      bounds: "city-settlement",
      geoLocation: false,
      minChars: 2,
      triggerSelectOnBlur: false,
      onSelect: enforceCity,
      onSelectNothing: enforceCity,
      formatSelected: formatCitySelected,
      beforeRender: inputChanged
    });

    $address.suggestions({
      token: token,
      type: type,
      minChars: 2,
      triggerSelectOnBlur: false,
      onSelect: restrictAddressValue,
      formatSelected: formatSelected,
      beforeRender: inputChanged
    }); 

    var cityChanged = 0;
    function inputChanged() {
    	cityChanged = 1
    }
  
    // Если на поле адрес есть перезагрузка поля
    var p = $postcode.val() || "";
      
    $city.on("suggestions-fixdata",
      function(e, suggestion) {
      	$postcode.val(p)
      }
    );

    // $city.suggestions().fixData();

    function setConstraints(sgt, kladr_id) {
        var restrict_value = false;
        var locations = null;
        if (kladr_id) {
            locations = {
                kladr_id: kladr_id
            };
            restrict_value = true;
        }
        sgt.setOptions({
            constraints: {
                locations: locations
            },
            restrict_value: restrict_value
        });
    }

    function enforceCity(suggestion, changed) {
      console.log('changed ' + changed);

      if (changed) 
        $(this)
          .val(
          $(this)
            .val()
            .trim()
        );

        var sgt = $address.suggestions();
        sgt.clear();
        if (suggestion) {
            setConstraints(sgt, suggestion.data.kladr_id);
            formatRegion(suggestion.data);
        } else {
            setConstraints(sgt, null);
        }

      	if (cityChanged) 
      		reloadAll()
    }

    function formatCitySelected(suggestion) {
        var address = suggestion.data;
        if (address.city_with_type === address.region_with_type) {
            return address.settlement || address.city || "";
        } else {
            return join([
                address.city,
                address.settlement
            ]);
        }
    }

    function formatRegion(address) {
      if (typeof address.postal_code !== 'undefined' && address.postal_code)
        $postcode.val(address.postal_code || '');
      
        if ($region.length) {
            var result = address.region.replace(/\s{0,1}[-\/].+/gi, '').toLowerCase();
            $region.find('option').each(function (i, o) {
                if ($(o).text().toLowerCase().search(result) >= 0) $(this).attr('selected', true);
                else $(this).attr('selected', false);
            });
        }
    }

    function restrictAddressValue(suggestion) {
      	var citySgt = $city.suggestions();
        var addressSgt = $address.suggestions();
        if (!citySgt.currentValue) {
            citySgt.setSuggestion(suggestion);
            var city_kladr_id = suggestion.data.kladr_id.substr(0, 13);
            setConstraints(addressSgt, city_kladr_id);
        }

      	if (cityChanged) 
          reloadAll()
    }

    function formatSelected(suggestion) {
        var addressValue = makeAddressString(suggestion.data);
        return addressValue;
    }

    function makeAddressString(address) {
        formatRegion(address);

        return join([
            address.street_with_type,
            join([address.house_type, address.house,
                address.block_type, address.block
            ], " "),
            join([address.flat_type, address.flat], " ")
        ]);
    }
 
    function join(arr) {
        var separator = arguments.length > 1 ? arguments[1] : ", ";
        return arr.filter(function (n) {
            return n
        }).join(separator);
    }
}

var $city = $('#shipping_address_city');
var $address = $('#shipping_address_1');
var $postcode = $('#shipping_address_postcode');
var $zoneId = $('#shipping_address_zone_id');
checkAddress($city, $address, $postcode, $zoneId);

function initName($surname, $name) {
    if (!$surname.length || !$name.length) return;
    var self = {};
    self.$surname = $surname;
    self.$name = $name;
    var fioParts = ["SURNAME", "NAME"];
    $.each([$surname, $name], function (index, $el) {
        var sgt = $el.suggestions({
            token: token,
            type: "NAME",
            triggerSelectOnSpace: false,
            hint: "",
            noCache: true,
            params: {
                // каждому полю --- соответствующая подсказка
                parts: [fioParts[index]]
            }
        });
    });
};

var $surname = $('#shipping_address_lastname');
var $name = $('#shipping_address_firstname');
initName($surname, $name);

var $email = $('#customer_email');
if ($email.length) {
    $email.suggestions({
        token: token,
        type: "EMAIL",
    });
}};

 

 

 

 

Надіслати
Поділитися на інших сайтах

В 16.09.2021 в 20:54, donnie сказал:

 

Не помогает. У нас одно поле "адрес доставки", полей регион, город, индекс нет. Возможно поэтому функция setConstraints вообще не вызывается? 

 

привет. как то решили задачу? тоже все в одном поле

Надіслати
Поділитися на інших сайтах


11 часов назад, Tobolskiy сказал:

 

привет. как то решили задачу? тоже все в одном поле

 

11 часов назад, Tobolskiy сказал:

Возможно повторюсь, а есть ли возможность сделать что бы работало и в админке тоже для нужных полей? =)

есть.

Надіслати
Поділитися на інших сайтах

Здравствуйте. Модуль очень интересен. Вопрос: возможно ли ограничить зону доставки с помощью этого модуля? Скажем чтобы подсказки выпадали только по определенному городу Московской области + близлежащие СНТ, поселки и адрес можно было выбрать только из списка без возможности ввести произвольный адрес. Заранее спасибо за ответ. 

Надіслати
Поділитися на інших сайтах


4 часа назад, rebel_rebel сказал:

Здравствуйте. Модуль очень интересен. Вопрос: возможно ли ограничить зону доставки с помощью этого модуля? Скажем чтобы подсказки выпадали только по определенному городу Московской области + близлежащие СНТ, поселки и адрес можно было выбрать только из списка без возможности ввести произвольный адрес. Заранее спасибо за ответ. 

Да можно, платно в личку.

Надіслати
Поділитися на інших сайтах

  • 2 months later...

Добрый день, используя модуль столкнулся со следующей проблемой. Пример, ввожу в строку - Никольск, выбираю Пензенская область, г. Никольск - в форму город попадает Никольск, Никольский р-н. Доставка почтой отображается, сдек не отображается, стираю Никольский р-н, сдек начинает отображать доставку. Сталкивались с таким и может знаете как исправить?

Надіслати
Поділитися на інших сайтах


14 минут назад, Eitmean сказал:

Добрый день, используя модуль столкнулся со следующей проблемой. Пример, ввожу в строку - Никольск, выбираю Пензенская область, г. Никольск - в форму город попадает Никольск, Никольский р-н. Доставка почтой отображается, сдек не отображается, стираю Никольский р-н, сдек начинает отображать доставку. Сталкивались с таким и может знаете как исправить?

 

Почему решили что дело в дадата?

У меня считает и сдек и почта

Спойлер

2022-01-28_18-39-23.thumb.png.872b18dd6579f0cdca9012edb6d6e6b0.png

 

Надіслати
Поділитися на інших сайтах


Так у Вас в поле городе Попал именно Никольск, а у меня попадает Никольск, Никольский р-н. Вот и хочу понять почему район туда попадает при автозаполнении. 

Надіслати
Поділитися на інших сайтах


2 часа назад, Eitmean сказал:

а у меня попадает Никольск, Никольский р-н.

 

formatCity

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.