https://pastein.ru/t/qK

  скопируйте уникальную ссылку для отправки


// ==UserScript==
// @name         Aliexpress address filler
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Andronio
// @match        ilogisticsaddress.aliexpress.com/addressList.htm*
// @match        ilogisticsaddress.aliexpress.ru/addressList.htm*
// @grant        none
// ==/UserScript==

/*
Выбираем свою страну: KZ, RU, BY, UA
Область и город так, как написано на страничке адреса
Если область или город не получается, то смотрим код страницы
и ищем свои данные.
Задаем порядок следования ваших данных. Например у меня:
телефон -> адрес -> имя, соответственно у меня порядок
будет 0, 1, 2
Разделитель может быть ":" или табуляция "\t"
*/

let myIndex     = "51922";
let myPhoneCode = "+380";
let myCountry   = "UA";
let myProvince  = "Dnipropetrovska";
let myCity      = "Kamyanske";

let orderPhone  = 2;
let orderAddr   = 1;
let orderName   = 0;



(function () {
    'use strict';

    var div = document.createElement('div');
    div.className = 'myBox';

    div.innerHTML += `
    <input type="text" id="namepass"></br>
    <input type="button" id="fillAddr" class="mybutton" value="Заполнить">
    `;

    // Стили
    var styles = `
    .myBox {
    position: fixed;
    top: 0;
    right: 0;
    background: white;
    box-shadow: 1px -1px 4px 1px;
    max-width: 40%;
    max-height: 400px;
    padding: 10px 20px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index:9999;
    }

    .mybutton {
    display: inline;
    padding: 5px 10px;
    margin-right:auto;
    cursor:pointer;
    }`

        var styleSheet = document.createElement("style")
        styleSheet.type = "text/css"
        styleSheet.innerText = styles
        document.head.append(styleSheet)
        document.body.append(div);

    let mybutton2 = document.getElementById("fillAddr");
    mybutton2.addEventListener('click', fillAddrFunc);
    let mytext = document.getElementById("namepass");
    mytext.addEventListener('keydown', event => {
        if (event.keyCode == "13") {
            document.getElementById('fillAddr').click();
        }
    });
    mytext.focus();
})();


let currMode = 0;
let myTemp = "";

// Функция заполения адреса
function fillAddrFunc() {

    let elemCountry = document.querySelector('select[name="country"]');
    let elemProvince = document.querySelector('.sa-province-wrapper > select');
    let elemCity = document.querySelector('.sa-city-wrapper > select');

    switch(currMode) {
        case 0:
            let namepass = document.getElementById("namepass");
            let mass;

            if (elemCountry.clientHeight == 0) return alert("Не видно поля адреса");
            if (namepass.value == "") return alert("Нет данных");
            if (/.+\t.+\t.+/.test(namepass.value)) {
                mass = namepass.value.split('\t');
            } else if (/.+:.+:.+/.test(namepass.value)) {
                mass = namepass.value.split(':');
            } else {
                namepass.value = "";
                return alert("Неправильный формат");
            }

            document.querySelector('input[name="contactPerson"]').value = mass[orderName];
            document.querySelector('input[name="address"]').value = mass[orderAddr];
            document.querySelector('input[name="zip"]').value = myIndex;
            document.querySelector('input[name="phoneCountry"]').value = myPhoneCode;
            document.querySelector('input[name="mobileNo"]').value = mass[orderPhone];
            elemCountry.value = myCountry;
            myTemp = elemProvince.options[1].text;
            elemCountry.dispatchEvent(new Event("change"));
            currMode = 1;
            return setTimeout(fillAddrFunc, 200);
            break;
        case 1:
            if (elemProvince.options[1].text == myTemp)
                return setTimeout(fillAddrFunc, 200);
            elemProvince.value = myProvince;
            elemProvince.dispatchEvent(new Event("change"));
            currMode = 2;
            return setTimeout(fillAddrFunc, 200);
            break;
        case 2:
            if (elemCity.length == 0)
                return setTimeout(fillAddrFunc, 200);
            elemCity.value = myCity;
            elemCity.dispatchEvent(new Event("change"));
            currMode = 3;
            return setTimeout(fillAddrFunc, 200);
            break;
        case 3:
            currMode = 0;
            document.querySelector('.sa-confirm').click();
            break;
        default:
            alert("Ошибка в программе");
    }
}