ImportOS · Документація

Розширення Margin

Chrome і Edge: собівартість під ключ, максимальна ставка й маржа поруч із лотом Copart та IAAI. Встановлення, налаштування, безпечний режим.

Розширення ImportOS Margin (Chrome і Edge, Manifest V3) показує поруч зі сторінкою лота Copart або IAAI, скільки це авто коштуватиме «під ключ» у вашій країні (Україна, Польща, Литва, Грузія, Німеччина), і яку максимальну ставку можна ставити, щоб лишилась потрібна маржа.

Панель Margin поруч із лотом
Панель Margin поруч із лотом · Скріншот-заглушка: замінюється реальним знімком

Безпечний режим: що розширення робить і чого не робить

  • Воно не логіниться на сайти, не читає cookies і не обходить жодного захисту.
  • Воно не робить власних запитів до Copart чи IAAI. Воно читає сторінку, яку ви вже відкрили у своєму браузері під своїм акаунтом.
  • Єдиний дозвіл — storage (налаштування). Широких дозволів на сайти немає: скрипт вставляється лише на сторінки лотів і списків.
  • Усі розрахунки йдуть локально. У поточній версії на сервер не надсилається нічого і немає аналітики.
  • Налаштування лежать у chrome.storage.sync вашого профілю, дрібний стан інтерфейсу (згорнута панель, ваші ціни продажу до 200 лотів) у chrome.storage.local.

Коли з'явиться інтеграція з Desk, надсилатимуться лише параметри лота (VIN, рік, марка й модель, двигун, пошкодження, title, пробіг, ставка, майданчик) і лише за вашою дією, ніколи не HTML сторінки. Політику приватності буде оновлено до цього.

Встановлення

Із теки збірки (розпаковане розширення)

Працює
$env:Path = "$env:APPDATA\npm;$env:Path"
pnpm install
pnpm --filter @importos/margin-extension build        # Chrome: .output/chrome-mv3
pnpm --filter @importos/margin-extension build:edge   # Edge:   .output/edge-mv3
  • Chrome: chrome://extensions → «Режим розробника» → «Завантажити розпаковане» → тека importos/apps/margin-extension/.output/chrome-mv3.
  • Edge: edge://extensions → «Завантажити розпаковане» → тека .output/edge-mv3.

Із магазину

Чекає на власника

Тексти лістингу (uk, pl, en), політика приватності й чернетка відповідей для форми Chrome Web Store готові. Не вистачає рішень власника: акаунт розробника Chrome Web Store (разова плата $5), URL політики приватності, категорія, остаточні знімки екрана. Тому прямого посилання на магазин поки немає.

Перший запуск і налаштування

Після встановлення відкривається сторінка налаштувань.

Курси валют. Розширення не завантажує курси з інтернету (це були б зайві дозволи). Введіть їх вручну: скільки одиниць валюти за 1 USD, і дату курсів. Для України потрібні EUR і UAH, для Польщі EUR і PLN, для Грузії EUR і GEL. Без курсів панель чесно просить їх задати й нічого не рахує. Якщо курси застаріли, панель попередить.

ГрупаЩо налаштовується
Загальнімова (uk, pl, en), тема панелі (світла, темна, як у системі)
Призначеннякраїна й місто доставки, валюта підсумку
Комісія і маржамодель комісії (не задано, фіксована, відсоток від ставки), сума, мінімум, цільова маржа, пороги «добра» / «прийнятна» / «ризиковано»
Аукціонканал ставки (онлайн, pre-bid, на майданчику), оплата (secured, unsecured)
Послуги й доставкастрахування, тип перевезення (за тарифами, контейнер, RoRo), чи враховувати оцінку ремонту за пошкодженням, чи враховувати реєстрацію
Тарифи логістикиваші перевизначення в JSON поверх типових
Курси валютручні курси й дата

Тарифи. Типові тарифи демонстраційні, а не ваші ціни, і панель підписує їх «типові». Введіть свої значення у вигляді JSON-перевизначення поверх типових (наприклад {"brokerFee":{"amount":150,"currency":"USD"}}), поставте позначку «ці тарифи мої», і попередження зникне. Невалідний JSON розширення відхиляє з поясненням і далі використовує типові тарифи.

Пороги маржі за замовчуванням: «добра» від 15 %, «прийнятна» від 8 %, «ризиковано» від 0 %, нижче це збиток або майже нуль. Їх можна змінити.

Як читати панель

  1. Дані зі сторінки: VIN, авто, двигун, паливо, пошкодження, title, пробіг, поточна ставка, Buy Now, дата торгів, майданчик. Чого немає, там стоїть тире.
  2. Куди веземо: країна й місто. Змінюються прямо в панелі.
  3. Параметри розрахунку: ставка, двигун (або батарея для електромобіля), паливо. Те, чого розширення не знайшло, ви вводите вручну. Поки чогось бракує, панель пише, чого саме, і нічого не рахує.
  4. Собівартість під ключ і діапазон з урахуванням ремонту, якщо є пошкодження.
  5. Розбивка статей: ціна лота, збори аукціону, доставка по США, морський фрахт, порт, мито, акциз, ПДВ, митний брокер, сертифікація, пенсійний збір (для України), реєстрація, ремонт (оцінка), страхування, ваша комісія. Для кожної статті є «Як рахували»: пояснення, формула й джерело. Статті, ставки яких не підтверджено офіційним джерелом, позначені «не підтверджено», типові тарифи «типове».
  6. Маржа та максимальна ставка. Введіть очікувану ціну продажу. Ціну продажу вводите ви: ринкової ціни в розширенні немає. Без неї панель показує мінімальну ціну продажу для цільової маржі. З нею: маржу, вердикт, достовірність у відсотках і максимальну ставку (крок $25). Якщо навіть при ставці $0 маржа нижча за ціль, панель так і скаже.
  7. Попередження: тип title (salvage, rebuilt, flood, non-repairable, bill of sale), вода чи вогонь, rollover, пошкодження рами, непідтверджений пробіг, згадки про airbags і relist. Частина попереджень береться з тексту сторінки, їх треба перевірити на самому лоті.
  8. Рядок про правила й курси: версія митних правил, дата курсів, чи тарифи ваші.

Списки результатів

На сторінці списку кожен лот отримує бейдж маржі: зелений (від порогу «добра»), жовтий (між «прийнятною» і «доброю»), червоний (нижче), сірий (даних недостатньо). У картках Copart і IAAI зазвичай немає двигуна й палива, тому в панелі списку ви задаєте орієнтир ціни продажу та припущення двигуна й палива. Бейдж рахується за ставкою з картки, а припущення позначено в підказці.

Коли сторінка змінилась

Сайти аукціонів час від часу змінюють розмітку. Якщо розширення не може надійно прочитати лот, воно показує повідомлення «Сторінка змінилась» і не рахує навмання. Кнопка «Скопіювати діагностику» копіює лише імена полів, версію селекторів і шлях URL, без вмісту сторінки. Надішліть її нам.

Звірка селекторів

Обов'язково перед публікацією в магазині

Селектори адаптерів Copart і IAAI та їхні фікстури синтетичні: написані за пам'яттю про розмітку й не звірені з живими сторінками (сайти віддають перевірку Incapsula неавтентифікованим запитам). Звірку може зробити лише власник у сесії брокера.

Це завдання для технічної людини. Кроки:

  1. Зберіть розпаковане розширення, відкрийте реальний лот Copart (потім IAAI) і сторінку списку.
  2. Якщо панель показує «сторінка змінилась» або дані частково порожні, натисніть «Скопіювати діагностику».
  3. У DevTools знайдіть реальні елементи полів: VIN, пошкодження, title, ставка, двигун, майданчик.
  4. Оновіть селектори в одному місці, в адаптері: packages/sources/src/adapters/ua-us/copart/index.ts (атрибути data-uname="lotdetail*", lotsearchCard) або .../iaai/index.ts (мітки .data-list__item, .bid-area). Цей код спільний зі Scout і health-монітором.
  5. Якщо змінилися картки списку або текстові блоки для airbags і relist, оновіть src/lib/selectors.ts розширення, виставте SELECTORS_VERSION, а після звірки SELECTORS_VERIFIED = true.
  6. Збережіть знеособлені знімки реальних сторінок як нові фікстури адаптера (без VIN, імен і телефонів) і позначте meta.verified = true.
  7. Прогоніть тести: pnpm --filter @core/sources test, pnpm --filter @importos/margin-extension test, pnpm --filter @importos/margin-extension test:e2e.

Також звірте URL-патерни в src/lib/sites.ts. Якщо сайт працює як SPA і ви заходите на лот з головної без перезавантаження, розширення може не спрацювати. Тоді патерни розширюють до всього домену, а зміну заносять у DECISIONS.md і в політику приватності.

Відомі обмеження

  • «Додати в Desk» і «Надіслати клієнту» неактивні У розробці.
  • Ринкової ціни з сервера немає, ціну продажу вводите ви У розробці.
  • Серверних курсів (НБУ, ЄЦБ) немає, лише ручні У розробці.
  • Вхід через Desk і синхронізація ваших тарифів з тенантом У розробці. Код підключення в Desk (Налаштування → Розширення) уже створюється, але поточна версія розширення його ще не приймає.
Розширення Margin на реальному лоті
▶ Розширення Margin на реальному лоті
Відео: у планах, ще не записане

На цій сторінці