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

Статус
В этой теме нельзя размещать новые ответы.
А липучку/органайзер для кабелей в центовиках искать бесполезно ?
господи да купи ты любой кабель там везде эти липучки кладут.профит липучка за 1 цент+ кабель. хоть смекалку проявляйте емае..
 


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

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

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

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

upload_2019-9-29_19-24-9.png

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

@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);

        });
    });
})();
 

Вложения

  • Show price combinations list - без кнопок.txt
    6,7 KB · Просмотры: 68
  • Show price combinations list - с кнопками.txt
    7,6 KB · Просмотры: 74
Да вообще прям - жизнь под откос пошла☺☺☺
Постояльцы этой ветки вряд ли конечно будут так делать, из-за такой шняги, ежу понятно это шютка:D но блин я реально видел отзывы в товарах за цент+монеты люди грозились открывать спор, что китаяц подзабил хуйца на отправку и монеты сгорели, вот здесь точно жизнь под откос, ссук тыща манет сгорела:D:D
 
Постояльцы этой ветки вряд ли конечно будут так делать, из-за такой шняги, ежу понятно это шютка:D но блин я реально видел отзывы в товарах за цент+монеты люди грозились открывать спор, что китаяц подзабил хуйца на отправку и монеты сгорели, вот здесь точно жизнь под откос, ссук тыща манет сгорела:D:D
А че, если я заказ за цент сделал, так продаван имеет право не отправлять посылку?
 
А че, если я заказ за цент сделал, так продаван имеет право не отправлять посылку?

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

На странице оформления заказа:
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баксов он может не отправить посылку. но али за такое может дрюкнуть, особо не выгодно им так делать.
Вот и я о том же. А заказ за цент с монетами, так его поди еще выхвати, естественно захочется хитрожопого проучить.
 
Статус
В этой теме нельзя размещать новые ответы.