Обсуждение купонов Aliexpress - Май 2020 год

Статус
В этой теме нельзя размещать новые ответы.


Скрипт для отслеживания в Google Sheets
Берет данные отслеживания с https://global.cainiao.com

1. В гугл-таблицах переходите: Инструменты-Редактор скриптов
2. Копируете скрипт, сохраняете и назначаете любое имя проекту
3. Проверяете переменные в 10-14 и 139-140 строках:
10 var trackingNumbersColumn = "A"; // Колонка с вашими трек-кодами
11 var retrackColumn = "B"; // Колонка для перемаркированных треков (консолидация или просто новый трек)
12 var dateTimeColumn = "C"; // Колонка с временем статуса
13 var statusColumn = "D"; // Колонка со статусом
14 var startRowForTrack = 2; // Строка, в которой записан первый трек-код
Это переменные для отслеживания с произвольным диапозоном:
139 var startRowForSelTrack = 2; // Номер строки с первым трек-кодом
140 var endRowForSelTrack = 100; // Номер строки с последним трек-кодом
4. Возвращаетесь к самой таблице, обновляете страницу и наверху (рядом с меню "Справка") появляется вкладка с отслеживанием "Track". Функции:
Tracking all track codes (to the first empty cell) - отслеживает все треки по порядку
(начиная со строки startRowForTrack, заданной в 3 шаге), до первой пустой ячейки
Tracking selection track code - отслеживает выбранный трек-код (выбарете ячейку с трек-кодом и запускаете скрипт)
Custom tracking range - Отслеживаете треки в выбранном диапозоне (диапазон задан переменными startRowForSelTrack и endRowForSelTrack в 3 шаге)
5. Чтобы каждый раз не выбирать скрипт наверху в меню, можно добавить в таблицу любую картинку и назначить ей скрипт
- нажимаете на вставленную картинку, потом на появившиеся три точки, в меню выбираете "Назначить скрипт", вводите имя одной из трех функций:
trackingAllToTheFirstEmpty (все треки по порядку)
trackingSelected (один выбранный трек)
trackingAllCustom (выбранный диапозон)

Сам скрипт и пример таблицы можно взять тут, но нужно скопировать себе, чтобы был виден сам скрипт и можно было редактировать (Файл - Создать копию):
https://docs.google.com/spreadsheets/d/1ddK7UAiS3-QsqmKkfgsWM_OT7NhWMZQA0Ct1K2uJVnA/edit?usp=sharing

Код:
function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{name : "Tracking all track codes (to the first empty cell)", functionName : "trackingAllToTheFirstEmpty"}, {name : "Tracking selection track code",functionName : "trackingSelected"},
  {name: "Custom tracking range", functionName : "trackingAllCustom"}];
  sheet.addMenu("Track", entries);
};


// Set required values
var trackingNumbersColumn = "A";  // Column with tracks
var retrackColumn = "B";  // Column with new tracks (consolidation tracks and retracks);
var dateTimeColumn = "C";  // Column with date;
var statusColumn = "D";  // Column with statuses;
var startRowForTrack = 2;  // Row number with the first track code


function colorStatus (status, nRow) {
    if (status == "Arrival at local delivery office" || status == "Arrival at Delivery Office") {
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + nRow).setFontColor("green").setFontWeight('bold');
    }
    else if (status == "Shipment cancelled") {
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + nRow).setFontColor("red").setFontWeight('bold');
    }
    else if (status == "Tracking error") {
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + nRow).setFontColor("red").setFontWeight('bold');
    }
    else if (status == "No tracking information is available now") {
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + nRow).setFontColor("orange").setFontWeight('bold');
    }
    else if (status.match(/Вручение/) != null) {
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + nRow).setFontColor("gray").setFontWeight('bold');
    }
  }


function tracking(trackCode) {
  var result = {"lastDateTime":"-", "lastStatus":"-"};

  if (trackCode != "") {
    var url = 'https://global.cainiao.com/detail.htm?mailNoList=' + trackCode;
    var response = UrlFetchApp.fetch(url);
    var html = UrlFetchApp.fetch(url).getContentText();
    var retrack = '';
    var lastDateTime = '';
    var lastStatus = '';
    var statuses = html.match('id="waybill_list_val_box"[^<]+</textarea>');
    statuses = statuses.toString(); 
 
    if (statuses.match(/\d{4}-\d{2}-\d{2}/g) == null) {
      lastStatus = 'Tracking error';
    }
    else if (statuses.match(/\d{4}-\d{2}-\d{2}/g).length < 2) {
      lastStatus = 'No tracking information is available now';
    }
    else {
      var lastStatusAndTime = statuses.match(/latestTrackingInfo&quot;[^}]+[^&]+/);
      lastStatusAndTime = lastStatusAndTime.toString();
//    lastStatus = lastStatusAndTime.match(/;[А-яA-z0-9\s/.\(\)-\/]+&quot;,/g)[0].slice(1, -7);
      lastStatus = lastStatusAndTime.match(/;[^&]+&quot;,/g)[0].slice(1, -7);
      lastDateTime = lastStatusAndTime.match(/\d{4}-\d{2}-\d{2}/);
      var s = new RegExp(trackCode + '[^&]');
      var parceRetrack = statuses.match(s);
      if (parceRetrack != null) {
        retrack = statuses.match(/[:|(][A-z0-9]+\)/).toString().slice(1, -1);
      }
    }
  }
 
  else {
    var ui = SpreadsheetApp.getUi();
    var response = ui.alert("Error", "Не указан трек-код", ui.ButtonSet.OK);
  }

    result = {"retrack":retrack, "lastDateTime":lastDateTime, "lastStatus":lastStatus};
    return result;
}


function trackingSelected() {

  var selRowNumber = SpreadsheetApp.getActiveSheet().getActiveCell().getRow();
  var selectedTrackCode = SpreadsheetApp.getCurrentCell().getValue();

  if (selectedTrackCode != "") {
    var trackingOutput = tracking(selectedTrackCode);
    var lastDateTime = trackingOutput["lastDateTime"];
    var lastStatus = trackingOutput["lastStatus"];
    var retrack = trackingOutput["retrack"];
 
    SpreadsheetApp.getActiveSheet().getRange(retrackColumn + selRowNumber).setValue(retrack);
    SpreadsheetApp.getActiveSheet().getRange(dateTimeColumn + selRowNumber).setValue(lastDateTime);
    SpreadsheetApp.getActiveSheet().getRange(statusColumn + selRowNumber).setValue(lastStatus);
 
    colorStatus(lastStatus, selRowNumber); 
  }
  else {
    var ui = SpreadsheetApp.getUi();
    var response = ui.alert("Error", "No track code", ui.ButtonSet.OK);
  }
}


function trackingAllToTheFirstEmpty() {
  var currentTrackCode = "";

  SpreadsheetApp.getActiveSheet().getRange(trackingNumbersColumn + startRowForTrack).activate();

  var rowNumber = startRowForTrack;
  while (SpreadsheetApp.getCurrentCell().getValue() != "") {
 
    SpreadsheetApp.getActiveSheet().getRange(trackingNumbersColumn + rowNumber).activate();
    currentTrackCode = SpreadsheetApp.getCurrentCell().getValue();
 
    if (currentTrackCode != "") {     
      var trackingOutput = tracking(currentTrackCode);
      var lastDateTime = trackingOutput["lastDateTime"];
      var lastStatus = trackingOutput["lastStatus"];
      var retrack = trackingOutput["retrack"];
   
      SpreadsheetApp.getActiveSheet().getRange(retrackColumn + rowNumber).setValue(retrack);
      SpreadsheetApp.getActiveSheet().getRange(dateTimeColumn + rowNumber).setValue(lastDateTime);
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + rowNumber).setValue(lastStatus);
   
      colorStatus(lastStatus, rowNumber);
    }
    else {
      break;
    }
 
    rowNumber++;
  }
}


function trackingAllCustom() {

  // Set required values
  var startRowForSelTrack = 2; // Set the row number with the first track code
  var endRowForSelTrack = 100;  // Set the row number with the last track code

  var currentTrackCode = "";
  var rowNumber = startRowForSelTrack;

  SpreadsheetApp.getActiveSheet().getRange(trackingNumbersColumn + startRowForSelTrack).activate();

  for (startRowForSelTrack; startRowForSelTrack <= endRowForSelTrack; startRowForSelTrack++) {
 
    SpreadsheetApp.getActiveSheet().getRange(trackingNumbersColumn + rowNumber).activate();
    currentTrackCode = SpreadsheetApp.getCurrentCell().getValue();
 
    if (currentTrackCode != "") {     
      var trackingOutput = tracking(currentTrackCode);
      var lastDateTime = trackingOutput["lastDateTime"];
      var lastStatus = trackingOutput["lastStatus"];
      var retrack = trackingOutput["retrack"];
   
      SpreadsheetApp.getActiveSheet().getRange(retrackColumn + rowNumber).setValue(retrack);
      SpreadsheetApp.getActiveSheet().getRange(dateTimeColumn + rowNumber).setValue(lastDateTime);
      SpreadsheetApp.getActiveSheet().getRange(statusColumn + rowNumber).setValue(lastStatus);
   
      colorStatus(lastStatus, rowNumber);
    }
    rowNumber++;
  }
}
спасибо но тяжеловато
 
не сочти за хейтерство, рально труда вложено в таблицу. но как-то не логично, к примеру, 15,96 самый выгодный к товару от 28.9, а срабатывает от 53,18.
28.9 * 2. Покупай два товара по этой цене и будет выгода. Наверно из такого расчета делалось.
 
Друзья, уже 4я посылка за последний месяц, доставляемая Новой почтой Украины вида SF *** попадает под растаможку и получение полной информации о посылке. Им не важно какой товар.
Проблема в следующем: Товары делаю с разбивкой у продавца, поэтому предоставить Скриншот оплаты или выписку из банка по факту - нет возможности, как и показать им заказ из личного кабинета Алиэкспресс. Кто сталкивался с подобными ситуациями, как выходить из такой ситуации? Если не публично, то можно в личку. (некоторые советуют научиться фотошопу, но на сколько это актуально и безопасно?) Попробовал им передать скриншот другого заказа с другим товаром - статус - Несоответствующие документы. Так и зависли посылки уже на две недели. Одна из них свежая, прикладываю скриншот --Ссылка удалена--
твой разбивщик не правильно оформляет документы, может даже специально
 
  • Like
Реакции: Istera, @LEzhka и p2p54me
пускай шлет литокальщик
поноет и вышлет
тем более что он товар пополнял регулярно
неужели не видел как выгребают ажиотажно
тоже взял пяток лии пд4
посмотрим как оно будет
в прошлом году на аккумы тож както цена ниже плинтуса была при покупке от 3шт выходило с днв 70 центов помоему.
я два дня их тарил потом писал письма что ошибочка вышла я на письма не реагировал но в итоге все сам отправил и штук сто посылок приехали зелененькие литокалки самсунг
 
кто юзает ДНВ их клозит в последнее время или норм идут?
думал добыть их и поБАСячить трохи
3.99 с ПК вобще печаль из 10 1 проскочит остальные все на финиш
Набивай попутно и 3.99. Первым загонять заказ с ДНВ 3/4, потом уже с 3.99.
Естественно все через ВПН.
 
  • Like
Реакции: Evgen1981
затарка на Украину
купоны набиваю с статики с одного компа
впн не пробовал на ноуте
на телефоне с родных опсосов идет ведь 3.99
а с ноута басом финиш и с моб юзер агентов в ручную тоже финиш

щас решил попробовать так:
взял днв +3.99
оформил подожду до вечера как оно будет
может али нужна покупка чуть побольше чем за 20центов
затарка на Украину
купоны набиваю с статики с одного компа
впн не пробовал на ноуте
на телефоне с родных опсосов идет ведь 3.99
а с ноута басом финиш и с моб юзер агентов в ручную тоже финиш

щас решил попробовать так:
взял днв +3.99
оформил подожду до вечера как оно будет
может али нужна покупка чуть побольше чем за 20центов
может быть. заметил что в последнее время почти все заказы с добивкой финиш. другие заказы на акке живы, добивка жива, а основной товар (меньше 20 центов) финиш.
пробовал разные товары.
это вот буквально на неделе началось. раньше норм было.
---------Двойное сообщение соединено: ---------
Кому уже пришли письма от liitokala Official Store об отмене заказов? ))
мне уже отправил утренние.
 
  • Like
Реакции: Evgen1981
Кому нужна реальная зарядка-разрядка для 18650 и их быстрой проверки и отбраковки элементов по емкости скоро запилю проэкт как ее сделать бесплатно с помощью прямых рук.
Себе буду делать на 12 слотов. ВСЕ ЗАПЧАСТИ кроме текстолита ЦЕНТОВКИ
 
Подскажите, для 2,78/3 сколько должен стоить основной товар, чтоб доплата была 0,01?
 
Кому нужна реальная зарядка-разрядка для 18650 и их быстрой проверки и отбраковки элементов по емкости скоро запилю проэкт как ее сделать бесплатно с помощью прямых рук.
Себе буду делать на 12 слотов. ВСЕ ЗАПЧАСТИ кроме текстолита ЦЕНТОВКИ
У меня есть, как думаю и у всех кто сидит на этом форуме. Ну а остальным - может проще купить готовую?
Да и мое мнение - для обычного пользователя достаточно 2 или 4 слота.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.