Обсуждения купонов Aliexpress - Октябрь 2019 год

Статус
В этой теме нельзя размещать новые ответы.
А липучку/органайзер для кабелей в центовиках искать бесполезно ?
господи да купи ты любой кабель там везде эти липучки кладут.профит липучка за 1 цент+ кабель. хоть смекалку проявляйте емае..
 
Збс, один за палочки ватные предьявляет, другой за липучку. Совсем заняться нечем ...
 
С индиго слетает триал на второй день, хотя рега с промокодом на 10 дней. У всех так?
Тоже пару раз слетела, плюнул и нашел другой вариант. Триал на 10 дней и без привязки телеграмма. Хз, кто у кого копирует :)
 
профит липучка за 1 цент+ кабель.
Но там аж 5 метров, а с кабелями всего 50см приходит.

угрин вкладывает только кажется
Неа, и TOPK тоже у меня вкладывали.
наебали! открывай спор:D
Да вообще прям - жизнь под откос пошла☺☺☺
 
Скрипт для отображения списка вариантов товара с сортировкой по цене (UPDATE)

Первый пост с описанием и примерами тут

Небольшое обновление:
1. Список выводится даже когда в товаре 1 вариант.
2. Добавлена кнопка "Cart" - для добавления в корзину.

upload_2019-9-29_19-24-9.webp

upload_2019-9-29_19-24-21.webp

@LEzhka, L&M - ваши просьбы выполнены.

Выкладываю 2 варианта: с кнопками и без.
Без кнопок - в файле, т.к. пост ограничен по количеству символов.

Принимаются идеи по доработке.


Код:
// ==UserScript==
// @name         Show price combinations list - buttons
// @namespace    http://tampermonkey.net/
// @version      0.4
// @author       Dimokin
// @match        https://ru.aliexpress.com/item/*
// @match        https://www.aliexpress.com/item/*
// @grant        none
// @require http://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==
(function() {
    'use strict';
    var $ = window.jQuery;

    $(document).ready(function() {
        let startHTML = document.querySelector("html").outerHTML.split('window.runParams =')[1];
        let endHTML = startHTML.split('var GaData')[0];

        function strToObj(str) {
            var obj = {};
            if (str && typeof str === 'string') {
                var objStr = str.match(/\{(.)+\}/g);
                eval("obj =" + objStr);
            }

            return obj
        }

        let mainObject = strToObj(endHTML);

        console.log('mainObject', mainObject);

        mainObject.skuModule.skuPriceList.sort(function(a, b) {
            let priceField = a.skuVal.actSkuMultiCurrencyCalPrice ? 'actSkuMultiCurrencyCalPrice' : 'skuMultiCurrencyCalPrice';

            var keyA = parseFloat(a.skuVal[priceField]),
                keyB = parseFloat(b.skuVal[priceField]);

            if (keyA < keyB) return -1;
            if (keyA > keyB) return 1;
            return 0;
        });

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

        div.innerHTML += `
    <button class="price-toggle">
        Show/Hide
    </div>
    `;

        $(div).append('<div class="price-list"></div>');

        let pricesIndexes = [];

        mainObject.skuModule.skuPriceList.forEach(function(element) {
            let propsId = element.skuPropIds.split(',');
            let availableCount = element.skuVal.availQuantity;
            let propString = '';
            let propIndex = [];

            if (propsId.length) {
                propsId.forEach(function(prop, index) {
                    if (mainObject.skuModule.productSKUPropertyList && mainObject.skuModule.productSKUPropertyList.length) {
                        mainObject.skuModule.productSKUPropertyList.forEach(function(listItem) {
                            listItem.skuPropertyValues.forEach(function(skuProp, skuIndex) {
                                if (prop == skuProp.propertyValueId && availableCount > 0) {
                                    propString += skuProp.propertyValueDisplayName;
                                    propIndex.push(skuIndex);
                                }
                            });
                        });

                        if (index !== propsId.length - 1) {
                            propString += ' - '
                        }
                    }

                });
            }

            if (propIndex.length) {
                pricesIndexes.push(propIndex);
            }


            let priceField = element.skuVal.actSkuMultiCurrencyCalPrice ? 'actSkuMultiCurrencyCalPrice' : 'skuMultiCurrencyCalPrice';
            let price = element.skuVal[priceField]

            var oldHtml = $(div).find('.price-list').html();

            if (element.skuVal.availQuantity > 0) {
                $(div).find('.price-list').html(oldHtml + `
            <div class="price-row">
                <div class="price-row__left">${propString} </div>
                <div class="price-row__right">${price} ${mainObject.commonModule.currencyCode} <button class="buy" type="button">BUY</button> <button class="cart" type="button">CART</button></div>
            </div>
            `);
            }
        });


        var styles = `
        .prices {
        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;
        }

        .price-list {
        margin-top: 15px;
        }

        .price-row {
        display:flex;
        padding:3px;
        margin-bottom:0;
        justify-content: space-between;
        cursor:pointer;
        }

        .price-row:hover,.price-row.active {
        background: lightgrey;
        }

        .price-row__left {}

        .price-row__right {
        display: inline-flex;
        min-width: 190px;
        align-items: center;
        justify-content: flex-end;
        text-align: right;
        margin-left: 20px;
        width: 10%;
        flex-shrink: 0;
        }

        .price-row__right .buy{
        padding: 2px 6px;
        background-color: #ff4747;
        color: white;
        border: none;
        box-shadow: none;
        margin-left: 5px;
        }

        .price-row__right .cart{
        padding: 2px 6px;
        background-color: #ff9a00;
        color: white;
        border: none;
        box-shadow: none;
        margin-left: 5px;
        }

        .price-toggle {
        display: block;
        margin-right: auto;
        cursor:pointer;
        }`

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

        $(document).on("click", ".price-toggle", function() {
            $(div).find('.price-list').toggle();
            setTimeout($(window).trigger('resize'), 300);
        });


        let propertyLists = $('.product-sku').find('.sku-property-list');

        if (pricesIndexes.length) {
            pricesIndexes[0].forEach(function(price, priceIndex) {
                for (var i = 0; i < propertyLists.length; i++) {
                    if (i === priceIndex) {
                        let propIndex = pricesIndexes[0][priceIndex];
                        let prop = $('.sku-property-list').eq(i).find('.sku-property-item').eq(propIndex)

                        if (prop.hasClass("selected")) {} else {
                            prop.trigger('click');
                        }
                    }
                }
            });
        }



        $('.price-row').eq(0).addClass('active');


        $('.price-row').click(function(event) {
            let index = $(this).index();

            $('.price-row').each(function() {
                if ($(this).hasClass("active")) {
                    $(this).removeClass('active');
                }
            });

            $(this).addClass('active');

            let propertyLists = $('.product-sku').find('.sku-property-list');

            pricesIndexes[index].forEach(function(price, priceIndex) {
                for (var i = 0; i < propertyLists.length; i++) {
                    if (i === priceIndex) {
                        let propIndex = pricesIndexes[index][priceIndex];
                        let prop = $('.sku-property-list').eq(i).find('.sku-property-item').eq(propIndex)

                        if (prop.hasClass("selected")) {} else {
                            prop.trigger('click');
                        }
                    }
                }
            });
        });

        $('.price-row .buy').click(function(event) {
            setTimeout(function() {
                $('.product-action .buynow').trigger('click')
            }, 1000);

        });

        $('.price-row .cart').click(function(event) {
            setTimeout(function() {
                $('.product-action .addcart').trigger('click')
            }, 1000);

        });
    });
})();
 

Вложения

Да вообще прям - жизнь под откос пошла☺☺☺
Постояльцы этой ветки вряд ли конечно будут так делать, из-за такой шняги, ежу понятно это шютка:D но блин я реально видел отзывы в товарах за цент+монеты люди грозились открывать спор, что китаяц подзабил хуйца на отправку и монеты сгорели, вот здесь точно жизнь под откос, ссук тыща манет сгорела:D:D
 
Постояльцы этой ветки вряд ли конечно будут так делать, из-за такой шняги, ежу понятно это шютка:D но блин я реально видел отзывы в товарах за цент+монеты люди грозились открывать спор, что китаяц подзабил хуйца на отправку и монеты сгорели, вот здесь точно жизнь под откос, ссук тыща манет сгорела:D:D
А че, если я заказ за цент сделал, так продаван имеет право не отправлять посылку?
 
А че, если я заказ за цент сделал, так продаван имеет право не отправлять посылку?

прав таких у него нет, но узкоглазые еще те хитрецы...
хоть купи за 100500баксов он может не отправить посылку. но али за такое может дрюкнуть, особо не выгодно им так делать.
 
Может кому пригодится в автоматизации - кусочек кода для выбора нужного способа оплаты.

На странице оформления заказа:
1.Открыть панель разработчика - F12.
2. Зайди во вкладку Console.
3. Ввести строку кода с нужным способом оплаты:
Код:
document.querySelectorAll('[ae_button_type="webmoney"]')[0].click()
Код:
document.querySelectorAll('[ae_button_type="yandex_money"]')[0].click()
Код:
document.querySelectorAll('[ae_button_type="qiwi_money"]')[0].click()

Гифка пример


На странице корзины:
1.Открыть панель разработчика - F12.
2. Зайди во вкладку Console.
3. Ввести строку кода для добавления jQuery в консоль:
Код:
var script = document.createElement('script');script.src ="https://code.jquery.com/jquery-3.4.1.min.js";document.getElementsByTagName('head')[0].appendChild(script);
4. Ввести строку кода с нужным способом оплаты:
Код:
$("#poplay-order").contents().find('div[ae_button_type="webmoney"]').trigger('click');
Код:
$("#poplay-order").contents().find('div[ae_button_type="yandex_money"]').trigger('click');
Код:
$("#poplay-order").contents().find('div[ae_button_type="qiwi_money"]').trigger('click');

Гифка пример
 
прав таких у него нет, но узкоглазые еще те хитрецы...
хоть купи за 100500баксов он может не отправить посылку. но али за такое может дрюкнуть, особо не выгодно им так делать.
Вот и я о том же. А заказ за цент с монетами, так его поди еще выхвати, естественно захочется хитрожопого проучить.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху