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

Безпечний режим: що розширення робить і чого не робить
- Воно не логіниться на сайти, не читає 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 %, нижче це збиток або майже нуль. Їх можна змінити.
Як читати панель
- Дані зі сторінки: VIN, авто, двигун, паливо, пошкодження, title, пробіг, поточна ставка, Buy Now, дата торгів, майданчик. Чого немає, там стоїть тире.
- Куди веземо: країна й місто. Змінюються прямо в панелі.
- Параметри розрахунку: ставка, двигун (або батарея для електромобіля), паливо. Те, чого розширення не знайшло, ви вводите вручну. Поки чогось бракує, панель пише, чого саме, і нічого не рахує.
- Собівартість під ключ і діапазон з урахуванням ремонту, якщо є пошкодження.
- Розбивка статей: ціна лота, збори аукціону, доставка по США, морський фрахт, порт, мито, акциз, ПДВ, митний брокер, сертифікація, пенсійний збір (для України), реєстрація, ремонт (оцінка), страхування, ваша комісія. Для кожної статті є «Як рахували»: пояснення, формула й джерело. Статті, ставки яких не підтверджено офіційним джерелом, позначені «не підтверджено», типові тарифи «типове».
- Маржа та максимальна ставка. Введіть очікувану ціну продажу. Ціну продажу вводите ви: ринкової ціни в розширенні немає. Без неї панель показує мінімальну ціну продажу для цільової маржі. З нею: маржу, вердикт, достовірність у відсотках і максимальну ставку (крок $25). Якщо навіть при ставці $0 маржа нижча за ціль, панель так і скаже.
- Попередження: тип title (salvage, rebuilt, flood, non-repairable, bill of sale), вода чи вогонь, rollover, пошкодження рами, непідтверджений пробіг, згадки про airbags і relist. Частина попереджень береться з тексту сторінки, їх треба перевірити на самому лоті.
- Рядок про правила й курси: версія митних правил, дата курсів, чи тарифи ваші.
Списки результатів
На сторінці списку кожен лот отримує бейдж маржі: зелений (від порогу «добра»), жовтий (між «прийнятною» і «доброю»), червоний (нижче), сірий (даних недостатньо). У картках Copart і IAAI зазвичай немає двигуна й палива, тому в панелі списку ви задаєте орієнтир ціни продажу та припущення двигуна й палива. Бейдж рахується за ставкою з картки, а припущення позначено в підказці.
Коли сторінка змінилась
Сайти аукціонів час від часу змінюють розмітку. Якщо розширення не може надійно прочитати лот, воно показує повідомлення «Сторінка змінилась» і не рахує навмання. Кнопка «Скопіювати діагностику» копіює лише імена полів, версію селекторів і шлях URL, без вмісту сторінки. Надішліть її нам.
Звірка селекторів
Обов'язково перед публікацією в магазині
Селектори адаптерів Copart і IAAI та їхні фікстури синтетичні: написані за пам'яттю про розмітку й не звірені з живими сторінками (сайти віддають перевірку Incapsula неавтентифікованим запитам). Звірку може зробити лише власник у сесії брокера.
Це завдання для технічної людини. Кроки:
- Зберіть розпаковане розширення, відкрийте реальний лот Copart (потім IAAI) і сторінку списку.
- Якщо панель показує «сторінка змінилась» або дані частково порожні, натисніть «Скопіювати діагностику».
- У DevTools знайдіть реальні елементи полів: VIN, пошкодження, title, ставка, двигун, майданчик.
- Оновіть селектори в одному місці, в адаптері:
packages/sources/src/adapters/ua-us/copart/index.ts(атрибутиdata-uname="lotdetail*",lotsearchCard) або.../iaai/index.ts(мітки.data-list__item,.bid-area). Цей код спільний зі Scout і health-монітором. - Якщо змінилися картки списку або текстові блоки для airbags і relist, оновіть
src/lib/selectors.tsрозширення, виставтеSELECTORS_VERSION, а після звіркиSELECTORS_VERIFIED = true. - Збережіть знеособлені знімки реальних сторінок як нові фікстури адаптера (без VIN, імен і телефонів) і позначте
meta.verified = true. - Прогоніть тести:
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 (Налаштування → Розширення) уже створюється, але поточна версія розширення його ще не приймає.
