您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Update minimum available price
// ==UserScript== // @name Aliexpress min price // @namespace https://greasyfork.org/en/scripts/374715-aliexpress-min-price // @version 0.3 // @author Mateusz Kula // @description Update minimum available price // @icon https://kulam.pl/script/aliexpress-min%20price/icon.jpg // @icon64 https://kulam.pl/script/aliexpress-min%20price/icon.jpg // @supportURL https://kulam.pl/kontakt // @match https://*.aliexpress.com/* // @match http://*.aliexpress.com/* // @match http://aliexpress.com/* // @match https://aliexpress.com/* // @grant GM_registerMenuCommand // @grant unsafeWindow // @homepageURL https://kulam.pl // ==/UserScript== var displaySwitch = true; //show min price [true/false] var replaceSwitch = false; //deprecated! replace aliexpress min price [true/false] var alertSwitch = true; //show min price and quantity, [true/false] var showCheapestVariantName = true;//show names of cheaper item var cheapestVariantName = []; var skuProducts = unsafeWindow.runParams.data.skuModule.skuPriceList; if (alertSwitch || displaySwitch || showCheapestVariantName) { var first = true; for (var counter = 0; counter < skuProducts.length; counter++) { if (+skuProducts[counter].skuVal.availQuantity > 0) { var price = null; if (skuProducts[counter].skuVal.skuActivityAmount && skuProducts[counter].skuVal.skuActivityAmount.value) { price = 'skuActivityAmount'; } else { price = 'skuAmount'; } if (first)//set first available item price as min { var mini = +skuProducts[counter].skuVal[price].value; var quantity = +skuProducts[counter].skuVal.availQuantity; first = false; cheapestVariantName.push(skuProducts[counter].skuAttr); } else { if (+skuProducts[counter].skuVal[price].value <= mini)//found lower/the same price price { if (+skuProducts[counter].skuVal[price].value < mini)//lower price { mini = +skuProducts[counter].skuVal[price].value; quantity = +skuProducts[counter].skuVal.availQuantity; cheapestVariantName = []; cheapestVariantName.push(skuProducts[counter].skuAttr); } else//same price { quantity += +skuProducts[counter].skuVal.availQuantity; cheapestVariantName.push(skuProducts[counter].skuAttr); } } } } } } var cheapestProductsNames = parseItemsAttr(cheapestVariantName); if (displaySwitch && +mini > 0) { var productPriceCurrent = document.querySelector('.product-info div.product-price-current,.product-info .uniform-banner-box-price'); var miniNode = document.createElement("span"); miniNode.innerHTML = ('<span id="aliminprice" style="cursor: help;">[' + mini + '] </span>'); miniNode.title = cheapestProductsNames; productPriceCurrent.insertBefore(miniNode, productPriceCurrent.childNodes[0]); } function parseItemsAttr(cheapestVariantName) { //arrayOfItems example: ["14:200002984#Shape28;5:361386;154:1433"] var items = cheapestVariantName.map(parseItemAttr); /* items example: [ [ {"Id":"14","ValueId":"200002984"},{"Id":"5","ValueId":"361386"},{"Id":"154","ValueId":"1433"} ] ] */ var productsNamesArray = items.map(findProductNames); //productNames example: ["Shape28:M:3PCS","Shape30:L:3PCS"] var productNamesS = productsNamesArray.join(", \n"); return productNamesS; } function parseItemAttr(e, i) { //e example: 14:200002984#Shape28;5:361386;154:1433 const properties = e.split(";").map(formatProp); return properties; } function formatProp(e, i) { var temp = e.split(":"); var prop = { Id: temp[0], ValueId: temp[1].split("#")[0] } return prop; } function findProductNames(e, i) { //e example: {"Id":"14","ValueId":"200002984"},{"Id":"5","ValueId":"361386"},{"Id":"154","ValueId":"1433"} var productNames = e.map(productName) return productNames.join(" + "); } function productName(e, i) { //e example: {"Id":"14","ValueId":"200002984"} //search var productSKUPropertyList = unsafeWindow.runParams.data.skuModule.productSKUPropertyList; var productSKUPropertyListElement = productSKUPropertyList.find(({ skuPropertyId }) => skuPropertyId == e.Id); var skuPropertyValues = productSKUPropertyListElement.skuPropertyValues.find(({ propertyValueId }) => propertyValueId == e.ValueId); return skuPropertyValues.propertyValueDisplayName; } function formatSkuAttr(skuAttr) { let name = ""; const specs = skuAttr.split(';'); specs.forEach(function (spec) { const specName = spec.split('#'); if (specName.length == 2) { name += specName[1] + " | "; } else { name += "name not found "; } }); return name } GM_registerMenuCommand('Ali min price', function find() { if (alertSwitch) { var minPriceAlertMessage = ""; if (first == true) { minPriceAlertMessage = "not found\n"; } else { minPriceAlertMessage = "minimum price: " + mini + "\nquantity: " + quantity + "\n Variants:\n" + cheapestProductsNames; } alert(minPriceAlertMessage); } }, 'q');