[ Wtyczki ]

Importery aukcji Copart i IAAI do WordPressa

Oferta z aukcji na stronie dealera bez ręcznego wpisywania: scraper w Pythonie na VPS zasila własną bazę, a wtyczka WordPressa czyta ją tylko do odczytu.

Live · 2026 · Python · PHP · WordPress · MySQL · systemd

Zrzut ekranu projektu Importery aukcji Copart i IAAI do WordPressa

O projekcie

Dwie niezależne wtyczki WordPressa zbudowane na tym samym wzorcu: „Nasze auta” z ofertą samochodów z aukcji IAAI i Copart oraz „Nasze motory” z motocyklami poleasingowymi. Obie są wdrożone u klienta i działają obok siebie na jednej stronie — osobne bazy, brak kolizji, wygląd dziedziczony z aktywnego motywu.

Kluczowa decyzja to rozdzielenie pobierania od pokazywania. Wtyczka sama nie pobiera niczego: tworzy podstronę, wpina ją w menu, czyta bazę tylko do odczytu i renderuje katalog z filtrami, paginacją, cache i danymi strukturalnymi. Pobieraniem zajmuje się osobny program w Pythonie uruchamiany na serwerze VPS z timera systemd: crawl, normalizacja, deduplikacja, audyt i zapis do własnej bazy MySQL. WP-cron tego nie zrobi, bo nie uruchomi Pythona.

Skutek dla klienta: strona serwuje ostatnie dobre dane także wtedy, gdy pobieranie się wywali, a błąd scrapera nie potrafi położyć witryny. Zdjęcia pojazdów są hotlinkowane ze źródła, więc hosting zajmuje 0 MB niezależnie od tego, czy w katalogu jest pięćdziesiąt czy pięć tysięcy pozycji.

Do produktu należy komplet dokumentacji dla osoby nietechnicznej — instrukcje krok po kroku w PDF — oraz klikalne demo w WordPress Playground: jeden link stawia WordPressa z wgraną wtyczką w przeglądarce klienta, bez instalowania czegokolwiek. Kolorowe kafle zamiast zdjęć są właściwością dema, nie produktu.

Problem

Dealer sprowadzający auta z aukcji chciał mieć na stronie aktualną ofertę bez ręcznego przepisywania ogłoszeń i bez zapychania hostingu tysiącami zdjęć.

Rozwiązanie

Program w Pythonie na VPS utrzymuje własną bazę ofert, a wtyczka WordPressa czyta ją tylko do odczytu i renderuje katalog z filtrami. Zdjęcia hotlinkowane, pobieranie odseparowane od strony.

Funkcje

  • podstrona katalogu tworzy się sama po włączeniu wtyczki i wpina w menu
  • karty pojazdów: zdjęcie, cena Buy Now, przebieg w kilometrach i milach, rodzaj uszkodzenia
  • plakietki Copart, IAAI, Run & Drive i Key Available; filtry źródła, marki, rocznika i uszkodzenia
  • sortowanie, paginacja, cache i dane strukturalne Schema.org
  • scraper: crawl, normalizacja, deduplikacja i audyt przed zapisem do bazy
  • zdjęcia hotlinkowane — 0 MB na dysku klienta
  • dokumentacja dla osoby nietechnicznej: 23 pliki PDF
  • demo w WordPress Playground do wysłania klientowi jednym linkiem

Moduły

  • iaai-importer

    wtyczka WordPress

    Podstrona „Nasze auta” — samochody z dwóch źródeł, IAAI i Copart, rozróżnianych kolumną w bazie.

    • czyta osobną bazę MySQL wyłącznie do odczytu; dane dostępu w stałych `wp-config.php`
    • filtry źródła, marki, rocznika i typu uszkodzenia, sortowanie i paginacja
    • dziedziczy motyw witryny — u klienta wygląda jak reszta strony, nie jak doklejony moduł
    • procedura odinstalowania sprząta po sobie; wersja 0.30.6
  • motocykle-poleasingowe

    wtyczka WordPress

    Podstrona „Nasze motory” — motocykle z serwisu poleasingowego, ta sama architektura.

    • osobna baza i osobne stałe konfiguracyjne — obie wtyczki działają obok siebie bez kolizji
    • własna oś wersji: 0.12.6
  • scraper

    program w Pythonie na VPS

    Jedyny element, który pobiera dane — poza WordPressem, z timera systemd albo crona.

    • crawl → normalizacja → deduplikacja → audyt → zapis do bazy
    • błąd pobierania nie dotyka strony: wtyczka serwuje ostatnie dobre dane
    • instalacja i automatyzacja opisane w `deploy/`, testy w pytest

Architektura

Podział
monorepo z dwoma podprojektami; każdy: wtyczka PHP, scraper Python, deploy, schemat bazy, dokumentacja
Rozmiar
7 958 linii Pythona w 47 plikach i 3 634 linie PHP w 21 plikach
Historia
134 commity, 126 anotowanych tagów, 4 wydania; dziennik zmian budowany z tagów
Dane
osobna baza MySQL ze schematem w `db/schema.sql`; WordPress nie pisze do niej nigdy
Zdjęcia
hotlinkowane z serwerów aukcji — 0 MB na hostingu klienta
Demo
WordPress Playground z osobnego repozytorium `iaai-importer-demo`
Licencja
GPL-2.0-or-later, zgodna z licencją WordPressa

Technologie

  • Python
  • PHP
  • WordPress
  • MySQL
  • systemd

Autor

  • Zdjęcie: Krzysztof LeszczyńskiKrzysztof LeszczyńskiAutomation & Plugins

[ Kontakt ]

Chcesz podobne rozwiązanie w swojej firmie?

Opowiedz nam o swoim pomyśle — wrócimy z konkretną propozycją i wyceną.

Automatic AI

hello@automaticai.pl · automaticai.pl