📥 Import ofert przez FTP - dokumentacja

Wgrywaj paczki .zip przez FTP - system automatycznie dodaje, aktualizuje i usuwa oferty. Obsługujemy 4 formaty XML: nasz natywny zaadresowani.pl oraz trzy popularne standardy polskie (oferty.net, Gratka, Otodom). Format wybierasz w Panelu konta → Import FTP.

O imporcie FTP

Import pozwala synchronizować Twoją bazę ofert z portalem bez ręcznego dodawania - wystarczy że Twój system CRM eksportuje paczki ZIP w jednym z obsługiwanych formatów, a my zajmiemy się resztą. Co kilka minut nasz cron skanuje katalog FTP i automatycznie przetwarza nowe paczki.

Nie masz jeszcze formatu? Polecamy nasz natywny format zaadresowani.pl - jest najprostszy do napisania i najlepiej odwzorowuje funkcje portalu. Pozostałe formaty są przydatne jeśli już używasz ich do innych portali.

Kompatybilne CRM-y

Poniżej lista systemów CRM które obsługują integrację z zaadresowani.pl. Jeśli używasz jednego z nich - wystarczy że włączysz eksport w odpowiednim formacie, a paczki będą trafiać prosto do nas.

Domuly CRM

Domuly to nowoczesny, chmurowy system CRM stworzony specjalnie dla branży nieruchomości (deweloperów i biur nieruchomości), który integruje zarządzanie ofertami, klientami oraz procesem sprzedaży w jednym miejscu. Pozwala automatyzować pracę, obsługiwać rezerwacje i eksportować oferty na portale ogłoszeniowe.

Strona producenta →
EstiCRM

EstiCRM to chmurowy system CRM dla branży nieruchomości, który integruje zarządzanie ofertami, klientami i sprzedażą. Pozwala automatyzować procesy, eksportować oferty na portale ogłoszeniowe, zarządzać dokumentami oraz skuteczniej obsługiwać klientów na każdym etapie transakcji.

Strona producenta →
Agencja5000

Grupa Morizon-Gratka dostarcza rozwiązania dla branży nieruchomości, obejmujące portale ogłoszeniowe oraz narzędzia wspierające pracę biur nieruchomości i deweloperów. W ramach ekosystemu oferuje m.in. system CRM Agencja5000, integracje z portalami nieruchomości oraz rozwiązania umożliwiające promocję ofert i skuteczne dotarcie do potencjalnych klientów.

Strona producenta →

Twój CRM nie jest na liście, ale eksportuje w jednym z obsługiwanych formatów (zaadresowani.pl, oferty.net, Gratka, Otodom)? Też się sprawdzi - wybierz odpowiedni format w ustawieniach konta i zacznij importować. Jeśli chcesz żeby Twój CRM trafił do tej listy, napisz na biuro@zaadresowani.pl.

Jak uzyskać dostęp

  1. Zaloguj się na konto biura lub dewelopera w portalu zaadresowani.pl.
  2. Wejdź w Panel konta → Import FTP i kliknij Wyślij zgłoszenie.
  3. Administrator portalu utworzy dla Ciebie indywidualne konto FTP i prześle dane logowania mailem.
  4. W panelu konta wybierz format danych (domyślnie zaadresowani.pl) i zacznij wgrywać paczki.

Jak działa import

  1. Detekcja - co kilka minut cron skanuje katalogi klientów. Paczka jest pomijana, jeśli była zmodyfikowana w ostatnich 30 sekundach.
  2. Idempotencja - system liczy SHA-256 paczki. Ten sam plik nie jest importowany dwukrotnie.
  3. Walidacja - sprawdzenie poprawności XML i obecności wymaganych pól (zależnie od formatu).
  4. Parsowanie - każda oferta przetwarzana po kolei, z podziałem na: dodaj / aktualizuj / usuń / dezaktywuj.
  5. Zdjęcia - z dwóch trybów: snapshot (pełna lista per oferta) lub incremental (operacje per zdjęcie). Diff po SHA-256 - kopiujemy tylko nowe pliki.
  6. Tryb calosc - po imporcie wygaszamy oferty których nie było w paczce (status inactive, odwracalne).
  7. Archiwizacja - paczki przeniesione do processed/ lub failed/ po stronie serwera.
  8. Powiadomienie - e-mail z podsumowaniem (dodane / zaktualizowane / usunięte / pominięte ze względu na limit / błędy).

Struktura paczki ZIP

  • Jeden plik .xml w paczce - zawiera wszystkie oferty.
  • Zdjęcia luzem (bez podkatalogów).
  • Nazwy plików zdjęć - bez polskich znaków diakrytycznych, unikalne w obrębie paczki.
CechaWartość
Kodowanie XMLUTF-8 (lub ISO-8859-2 dla formatu Gratka)
Maks. liczba plików w ZIP50 000
Maks. rozmiar pojedynczego pliku200 MB
Dozwolone rozszerzeniaxml, jpg, jpeg, png, webp, gif
Limit zdjęć per ofertaz pakietu klienta - patrz Limity

Format 1: zaadresowani.pl (natywny, zalecany) ⭐

Nasz format zaprojektowany pod kątem maksymalnej czytelności. Wszystkie tagi po polsku w lowercase, wartości słownikowe jako jasne stringi (cegla, blok, do_zamieszkania) - bez liczbowych ID-ków ze słowników. Najprostszy do napisania w Twoim CRM.

Korzeń pliku

XML<?xml version="1.0" encoding="UTF-8"?> <zaadresowani wersja="1.0"> <meta> <agencja>Nazwa biura</agencja> <data>2026-04-26 14:30:00</data> <tryb>roznica</tryb> <!-- calosc | roznica --> <generator>Mój CRM v2.5</generator> </meta> <!-- Opcjonalne: inwestycje deweloperskie --> <inwestycje> <inwestycja id="OS-SLONECZNE">...</inwestycja> </inwestycje> <oferty> <oferta akcja="dodaj">...</oferta> </oferty> </zaadresowani>

Inwestycje deweloperskie (opcjonalne) 🏗️

Jeśli sprzedajesz mieszkania w ramach inwestycji (osiedle, budynek wielomieszkaniowy), możesz dodać blok <inwestycje> z definicją inwestycji, a w każdej ofercie referencję <inwestycja_ref>. Dzięki temu portal pokaże mieszkania zgrupowane pod nazwą inwestycji, z mapą terenu, logiem i wspólnymi danymi.

Klucz id jest Twoim identyfikatorem - przy kolejnym imporcie ten sam id = aktualizacja istniejącej inwestycji (po parze konto + id). Może być dowolny string, np. OS-1, UUID, czy slug.

XML<inwestycje> <inwestycja id="OS-SLONECZNE"> <!-- Twoje wewn. id --> <nazwa>Osiedle Słoneczne</nazwa> <opis>Nowoczesna inwestycja na Mokotowie...</opis> <typ>mieszkaniowa</typ> <!-- mieszkaniowa | komercyjna | mieszana --> <forma_wlasnosci>pelna</forma_wlasnosci> <strona_www>https://osiedle-sloneczne.pl</strona_www> <data_oddania>2026 Q4</data_oddania> <liczba_pieter>5</liczba_pieter> <logo>logo_osiedle.jpg</logo> <!-- nazwa pliku w paczce ZIP --> <lokalizacja> <wojewodztwo>mazowieckie</wojewodztwo> <miasto>Warszawa</miasto> <dzielnica>Mokotów</dzielnica> <ulica>Słoneczna 1</ulica> <wspolrzedne> <szerokosc>52.2018</szerokosc> <dlugosc>21.0376</dlugosc> </wspolrzedne> </lokalizacja> <!-- Zakresy (opcjonalne, do pokazania "od ... do ...") --> <cena_od>450000</cena_od> <cena_do>980000</cena_do> <powierzchnia_od>35</powierzchnia_od> <powierzchnia_do>110</powierzchnia_do> <pokoje_od>1</pokoje_od> <pokoje_do>4</pokoje_do> <!-- Etapy realizacji (opcjonalne) --> <etapy> <etap nazwa="Etap I" data_oddania="2026 Q4" status="w_realizacji"/> <etap nazwa="Etap II" data_oddania="2027 Q2" status="planowany"/> </etapy> </inwestycja> </inwestycje>

W ofercie linkujemy do inwestycji przez <inwestycja_ref>:

XML<oferta akcja="dodaj"> <symbol>OF-A21</symbol> <inwestycja_ref>OS-SLONECZNE</inwestycja_ref> <!-- ID z bloku <inwestycje> --> <typ>mieszkanie</typ> <transakcja>sprzedaz</transakcja> <cena waluta="PLN">490000</cena> <powierzchnia>42.5</powierzchnia> ... </oferta>
Wskazówki praktyczne:
  • Inwestycję wystarczy zdefiniować raz (przy pierwszym imporcie), kolejne paczki mogą zawierać tylko zmiany ofert + ten sam <inwestycja_ref>.
  • Jeśli zmienisz dane inwestycji (np. przesunie się data_oddania) i wyślesz blok <inwestycje> z tym samym id, zostanie zaktualizowana.
  • Logo wystarczy raz w paczce ZIP - przy kolejnych importach pomijasz, system zachowuje wcześniejsze.
  • Status etap: planowany | w_realizacji | gotowy | sprzedany.
  • Inwestycje pokazują się w /inwestycje i na profilu dewelopera, oferty na /oferty z linkiem do "macierzystej" inwestycji.

Pełny przykład oferty

XML<oferta akcja="dodaj"> <!-- dodaj | aktualizuj | usun | dezaktywuj --> <symbol>OF-12345</symbol> <typ>mieszkanie</typ> <!-- mieszkanie | dom | dzialka | lokal | pokoj | garaz --> <transakcja>sprzedaz</transakcja> <!-- sprzedaz | wynajem --> <rynek>wtorny</rynek> <!-- pierwotny | wtorny --> <tytul>Słoneczne 3 pokoje na Mokotowie</tytul> <opis>Pełny opis ogłoszenia...</opis> <cena waluta="PLN">650000</cena> <powierzchnia>62.5</powierzchnia> <lokalizacja> <wojewodztwo>mazowieckie</wojewodztwo> <miasto>Warszawa</miasto> <dzielnica>Mokotów</dzielnica> <ulica>Puławska 100</ulica> <kod_pocztowy>00-001</kod_pocztowy> <wspolrzedne> <szerokosc>52.2018</szerokosc> <dlugosc>21.0376</dlugosc> </wspolrzedne> </lokalizacja> <budynek> <typ>blok</typ> <material>cegla</material> <rok_budowy>2010</rok_budowy> <pietro>4</pietro> <liczba_pieter>5</liczba_pieter> <stan_wykonczenia>do_zamieszkania</stan_wykonczenia> </budynek> <parametry> <pokoje>3</pokoje> <forma_wlasnosci>pelna_wlasnosc</forma_wlasnosci> </parametry> <udogodnienia> <udogodnienie>balkon</udogodnienie> <udogodnienie>winda</udogodnienie> <udogodnienie>piwnica</udogodnienie> </udogodnienia> <media> <element>prad</element> <element>woda</element> <element>internet</element> </media> <ogrzewanie> <typ>miejskie</typ> <typ>kominek</typ> </ogrzewanie> <wyposazenie> <element>pralka</element> <element>lodowka</element> <element>klimatyzacja</element> </wyposazenie> <kontakt> <imie_nazwisko>Jan Kowalski</imie_nazwisko> <email>jan@biuro.pl</email> <telefon>600100200</telefon> </kontakt> <zdjecia> <zdjecie kolejnosc="1">foto1.jpg</zdjecie> <zdjecie kolejnosc="2">foto2.jpg</zdjecie> </zdjecia> </oferta>

Wartości słownikowe

Format używa tych samych kluczy co nasza baza - co widzisz w XML, to widzisz w panelu konta. Brak ID-ków, brak konwersji.

Dostępność pól per typ nieruchomości

Nie wszystkie pola mają sens dla każdego typu - np. ogrzewanie dla mieszkania ale nie dla działki. Tabela pokazuje co warto wypełnić:

Polemieszkaniedomlokal/biuro/hala/magazyndziałkapokójgaraż
rynek----
budynek/typ--
budynek/material----
budynek/stan_wykonczenia----
parametry/pokoje✓ (liczba pomieszczeń)--
parametry/forma_wlasnosci----
udogodnienia----
media---
ogrzewanie----
wyposazenie✓ (kategoria Ogólne)-✓ (Kuchnia/Łazienka/Ogólne)-

Pola pominięte dla danego typu są ignorowane przy imporcie - nie powodują błędu.

typ - typ nieruchomości

Klucz w XMLEtykieta
mieszkanieMieszkanie
domDom
dzialkaDziałka
lokalLokal użytkowy
pokojPokój (tylko wynajem)
garazGaraż

Dla biura, hali i magazynu używaj <typ>lokal</typ> + <budynek><typ>biurowiec</typ></budynek> (lub hala / magazyn).

transakcja

KluczEtykieta
sprzedazSprzedaż
wynajemWynajem

rynek (tylko mieszkanie i dom)

KluczEtykieta
pierwotnyPierwotny
wtornyWtórny

budynek/typ (rodzaj budynku) - różne wartości per typ nieruchomości

Lista zależy od typu nieruchomości - np. dla mieszkania nie ma sensu "siedlisko", a dla domu "loft".

KluczEtykietamieszkaniedomlokal/biurohala/magazyn
apartamentowiecApartamentowiec--
blizniakBliźniak---
blokBlok mieszkalny--
dom_wolnostojacyDom wolnostojący--
dom_wielorodzinnyDom wielorodzinny---
dworek_palacDworek / pałac--
kamienicaKamienica-
dom_letniskowyDom letniskowy---
rezydencjaRezydencja-
dom_szeregowyDom szeregowy---
budynek_wolnostojacyBudynek wolnostojący--
kompleks_budynkowKompleks budynków--
halaHala--
garazGaraż---
biurowiecBiurowiec---
magazynMagazyn--
gospodarstwo_rolneGospodarstwo rolne---
dom_z_funkcja_uslugowaDom z funkcją usługową-
siedliskoSiedlisko---
obiekt_handlowo_uslugowyObiekt handlowo-usługowy--
loftLoft--
obiekt_biurowo_handlowo_uslugowyObiekt biurowo-handlowo-usługowy--
centrum_handloweCentrum handlowe--
pietro_domuPiętro domu---
czesc_domuCzęść domu---
oficynaOficyna--

budynek/material - materiał budowy (mieszkanie, dom)

KluczEtykieta
ceglaCegła
wielka_plytaWielka płyta
pustakPustak
pustak_ceramicznyPustak ceramiczny
drewnoDrewno
keramzytKeramzyt
betonBeton
silikatSilikat
beton_komorkowyBeton komórkowy
inneInne

budynek/stan_wykonczenia (mieszkanie, dom)

KluczEtykieta
do_wykonczeniaDo wykończenia
do_zamieszkaniaDo zamieszkania
wysoki_standardWysoki standard
deweloperskiStan deweloperski
po_remonciePo remoncie

parametry/forma_wlasnosci (mieszkanie, dom)

KluczEtykieta
pelna_wlasnoscPełna własność
spoldzielcze_wlSpółdzielcze własnościowe
spoldzielcze_lokSpółdzielcze lokatorskie
uzytkowanie_wieczysteUżytkowanie wieczyste
udzialUdział

udogodnienia/udogodnienie - różne wartości per typ

KluczEtykietamieszkaniedom
balkonBalkon
ogrodekOgródek
piwnicaPiwnica
ogrodzenieOgrodzenie-
garazGaraż-

media/element - różne wartości per typ

KluczEtykietamieszkaniedomlokalbiurohalamagazyn
pradPrąd-
wodaWoda-
gazGaz---
internetInternet---
telewizjaTelewizja----
telefonTelefon--
kanalizacjaKanalizacja-
szamboSzambo----
oczyszczalniaOczyszczalnia----

ogrzewanie/typ (mieszkanie, dom)

KluczEtykieta
elektryczneElektryczne
gazoweGazowe
miejskieMiejskie / sieciowe
pompa_cieplaPompa ciepła
olejoweOlejowe
wegloweWęglowe
kominekKominek
podlogowePodłogowe
kolektoryKolektory słoneczne
biomasaBiomasa
pelletyPellety
brakBrak ogrzewania

wyposazenie/element - pełna lista per kategoria

Wyposażenie podzielone jest na kategorie. Dla mieszkania i domu dostępne są wszystkie. Dla pokoju - Kuchnia/Łazienka/Ogólne. Dla lokalu/biura - tylko Ogólne.

🍳 Kuchnia - mieszkanie, dom, pokój
KluczEtykieta
lodowkaLodówka
zamrazarkaZamrażarka
kuchenkaKuchenka
kuchenka_indukcyjnaKuchenka indukcyjna
zmywarkaZmywarka
mikrofalowkaMikrofalówka
okapOkap
ekspresEkspres do kawy
tosterToster
czajnikCzajnik elektryczny
🛋️ Salon - mieszkanie, dom
KluczEtykieta
telewizorTelewizor
telewizor_smartSmart TV
kanapaKanapa
fotelFotel
stol_jadalnyStół jadalny
biurko_salonBiurko
klimatyzacjaKlimatyzacja
internet_salonWi-Fi
roletyRolety / żaluzje
netflixNetflix / streaming
🛏️ Sypialnia - mieszkanie, dom
KluczEtykieta
lozkoŁóżko
lozko_dwuosoboweŁóżko 2-osobowe
szafaSzafa
szafa_wnekowaSzafa wnękowa
biurkoBiurko
lustroLustro
komodaKomoda
zasonyZasłony
klimatyzacja_sypialniaKlimatyzacja
rolety_sypialniaRolety zaciemniające
🛁 Łazienka - mieszkanie, dom, pokój
KluczEtykieta
pralkaPralka
suszarkaSuszarka ubrań
pralko_suszarkaPralko-suszarka
wannaWanna
prysznicPrysznic
kabina_prysznicowaKabina prysznicowa
suszarka_do_wlosowSuszarka do włosów
szafka_lazienkaSzafka łazienkowa
lustro_lazienkaLustro z oświetleniem
bidetBidet
🏢 Ogólne - mieszkanie, dom, lokal, biuro, pokój
KluczEtykieta
windaWinda
garaz_miejsceGaraż / parking
rower_stojakStojak na rowery
domofonDomofon
wideodomofonWideodomofon
monitoringMonitoring
alarmAlarm
rolety_zewnRolety zewnętrzne
balkon_tarasBalkon / taras
ogrodekOgródek
piwnicaPiwnica / komórka
suszarniaSuszarnia

Wymagane pola

  • <symbol> - unikalny identyfikator z Twojego CRM
  • <lokalizacja><miasto>
  • <cena>
  • <powierzchnia>

Pozostałe pola są opcjonalne. Dla operacji usun i dezaktywuj wystarczy podać <symbol>.

Format 2: oferty.net (domy.pl)

Standard domy.pl/eksport (wersja 0.4.x). Korzeń <plik> z meta-headerem, listą działów per typ × transakcja, polami jako <param nazwa="…" typ="…">.

Szkielet XML

XML<plik> <header> <agencja>Nazwa</agencja> <data>2026-04-26 14:30:00</data> <wersja>0.4.5</wersja> <cel>oferty.net</cel> <zawartosc_pliku>roznica</zawartosc_pliku> </header> <lista_ofert> <dzial tab="mieszkania" typ="sprzedaz"> <oferta> <id>CRM-12345</id> <cena waluta="PLN">450000</cena> <param nazwa="powierzchnia" typ="real">68.5</param> <param nazwa="miasto" typ="text">Poznań</param> ... </oferta> <oferta_usun><id>CRM-100</id></oferta_usun> </dzial> </lista_ofert> </plik>

Pełna specyfikacja: https://domy.pl/eksport. Wszystkie pola jako <param nazwa="…"> wewnątrz <oferta>. Tryb calosc/roznica w headerze. Działy: mieszkania, domy, dzialki, lokale, pokoje.

Zdjęcia w trzech wariantach (parser autodetektuje):

  • A - <param nazwa="zdjecie1..15"> wewnątrz <oferta> (oficjalna spec, max 15)
  • B - globalny blok <zdjecia> jako siostra <lista_ofert> z atrybutem <akcja>d|u</akcja> (Domuly, bez limitu)
  • C - <zdjecia><zdjecie nazwa="…"/> wewnątrz <oferta> (intuicyjny, bez limitu)

Format 3: Gratka

Format eksportu na Gratka.pl. Korzeń <dane>, każda oferta jako <record> z polami w postaci bezpośrednich tagów. Pola słownikowe (np. id_material, id_stan_mieszkania_nowy) jako liczbowe ID - bez znajomości słowników Gratki nie wszystkie zostaną zmapowane na nasze klucze (klient może uzupełnić ręcznie po imporcie).

Szkielet XML

XML<?xml version="1.0" encoding="ISO-8859-2"?> <dane> <actions><export>full</export></actions> <!-- full | inc --> <firma><kod_offline>...</kod_offline><katalog>...</katalog></firma> <record> <action>insert</action> <!-- insert | update | delete --> <id_rubryka>1</id_rubryka> <!-- 1=mieszk., 2=domy, 3=działki, ... --> <id_podrubryka>1</id_podrubryka> <!-- 1=sprzedaż, 2=wynajem --> <numer_oferty>OF-12345</numer_oferty> <cena_calkowita>450000</cena_calkowita> <miasto>Poznań</miasto> <powierzchnia>68.5</powierzchnia> ... <zdjecia><z1>true</z1><z2>true</z2>...<z12>false</z12></zdjecia> </record> </dane>

Cechy charakterystyczne:

  • Encoding często ISO-8859-2 (Latin-2) - parser automatycznie konwertuje do UTF-8
  • Limit zdjęć 12 per oferta (<z1><z12> jako flagi true/false)
  • Pliki zdjęć w paczce nazwane {numer_oferty}_{N}.jpg (z fallbackiem na {id_inspert}_{N}.jpg)
  • Tryb full = snapshot, inc = incremental

Format 4: Otodom

Format eksportu na Otodom.pl (wersja 170130). Korzeń <otoDom>, oferty jako <Insertion> w bloku <Insertions>. Bardzo silnie typowane słownikami liczbowymi (BuildingType, BuildingMaterial, ConstructionStatus itp.).

Szkielet XML

XML<otoDom> <Agency>biuro@example.pl</Agency> <Date>2026-04-26</Date> <ImportType>incremental</ImportType> <!-- full | incremental --> <App>Mój CRM</App> <Insertions> <Insertion> <ID>OF-12345</ID> <Action>0</Action> <!-- 0=update/dodaj, 1=dezaktywuj, 2=usuń --> <ObjectName>0</ObjectName> <!-- 0=Flat, 1=House, 2=Terrain, 3=Room, ... --> <OfferType>0</OfferType> <!-- 0=sell, 1=rent --> <Price>650000</Price> <PriceCurrency>1</PriceCurrency> <!-- 1=PLN, 2=EUR, 3=GBP, 4=USD --> <Area>62.5</Area> <FlatDetails> <BuildingType>5</BuildingType> <!-- 5=apartamentowiec --> ... </FlatDetails> <Photos> <Photo><Position>1</Position><File>1.jpg</File></Photo> </Photos> </Insertion> </Insertions> </otoDom>

Cechy charakterystyczne:

  • Akcje jako liczby: Action = 0 (insert/update), 1 (dezaktywuj), 2 (usuń)
  • Limit zdjęć 20 per oferta
  • Aktualne słowniki: https://www.otodom.pl/api/lite/dictionaries
  • Pełna spec: dokumentacja "Otodom Import" wersja 170130

Tryby: całość vs różnica

Każdy z formatów rozróżnia dwa tryby paczki (różne nazwy, ta sama logika):

FormatSnapshotIncremental
zaadresowani.pl<tryb>calosc</tryb><tryb>roznica</tryb>
oferty.net<zawartosc_pliku>calosc</zawartosc_pliku><zawartosc_pliku>roznica</zawartosc_pliku>
Gratka<export>full</export><export>inc</export>
Otodom<ImportType>full</ImportType><ImportType>incremental</ImportType>

Snapshot (calosc / full)

Paczka zawiera wszystkie aktualne oferty. Po imporcie oferty na portalu, których nie ma w paczce, są wygaszane (status inactive - odwracalne). To bezpieczna semantyka - kolejna paczka snapshot przywróci zaginione oferty.

Incremental (roznica / inc)

Paczka zawiera tylko zmiany względem ostatniego eksportu. Operacje są jawne - dodaj/aktualizuj/usuń/dezaktywuj. Oferty niewymienione w paczce pozostają bez zmian. Najbezpieczniejszy tryb dla codziennego eksportu.

Akcje na ofertach

Akcjazaadresowani.ploferty.netGratkaOtodom
Dodaj / aktualizujakcja="dodaj"<oferta><action>insert</action><Action>0</Action>
Hard deleteakcja="usun"<oferta_usun><action>delete</action><Action>2</Action>
Soft delete (dezaktywacja)akcja="dezaktywuj"tryb calosc (auto)-<Action>1</Action>

System rozróżnia: hard delete = trwałe usunięcie (rekord + zdjęcia), soft delete = wygaszenie (status inactive, klient może wznowić).

Zdjęcia

Pliki zdjęć w paczce ZIP - luzem w głównym katalogu. Każdy format ma własny sposób referowania nazw plików.

FormatSchemat zapisu w XMLMaks. w XML
zaadresowani.pl<zdjecia><zdjecie kolejnosc="N">plik.jpg</zdjecie>bez limitu
oferty.net (A)<param nazwa="zdjecieN">plik.jpg</param>15 (twarda spec)
oferty.net (B)globalny <zdjecia> z <akcja>d|u</akcja>bez limitu
oferty.net (C)<zdjecia><zdjecie nazwa="…"/>bez limitu
Gratka<zdjecia><z1>true</z1>…</zdjecia> + pliki {numer_oferty}_{N}.jpg12 (twarda spec)
Otodom<Photos><Photo><File>…</File></Photo></Photos>20 (twarda spec)

Kolumna "Maks. w XML" to ile zdjęć da się fizycznie zadeklarować w pliku danego formatu - wynika z jego specyfikacji. Np. oferty.net Wariant A definiuje tagi zdjecie1zdjecie15 i nic więcej.

Faktyczny limit zdjęć określa Twój pakiet - nie format XML.
System najpierw sprawdza ile zdjęć dostajesz w swoim pakiecie (np. 10 bezpłatnych + 10 po dokupie = max 20). Jeśli paczka zawiera więcej zdjęć dla oferty niż przewiduje pakiet - nadwyżka zostaje pominięta, a Ty otrzymasz mail: "Pominięto X zdjęć - wykup dodatkowe w panelu konta i wgraj paczkę ponownie".

Przykład: klient z pakietem Starter (10 zdjęć) wgrywa paczkę Otodom z 20 zdjęciami → system zaimportuje pierwsze 10, pozostałe 10 pominie. Limit 20 z Otodom to tylko ograniczenie samego XML.

Aktualny limit zdjęć dla Twojego konta zobaczysz w Panelu konta → Mój pakiet w sekcji "Zdjęcia / oferta".

Diff po SHA-256 - zdjęcia o niezmienionej zawartości nie są kopiowane ponownie przy kolejnych importach. Oszczędza dysk i transfer.

Limity i pakiety

Liczba aktywnych ofert i zdjęć per oferta jest ograniczona przez pakiet:

  • Limit ofert - np. starter agency = 5, pro = 30, premium = ∞. Po wyczerpaniu nowe oferty z paczki są pomijane (skipped_by_limit).
  • Limit zdjęć / oferta - z pakietu lub fallback z roli (agency = 10 + 10 po dokupie). Nadwyżka pomijana.
  • Aktualizacje (już istniejących) i usunięcia nie wliczają się do limitu.
  • Wygaszone oferty (status inactive) zwalniają slot pakietu - można dodać kolejną.

Walidacja i typowe błędy

Statystyki w mailu z podsumowaniem importu:

StatystykaZnaczenie
DodaneLiczba nowych ofert utworzonych w bazie.
ZaktualizowaneLiczba istniejących ofert których pola zmieniono.
UsunięteSuma: hard delete + wygaszone (soft delete).
Pominięte (limit)Nowe oferty, które nie zmieściły się w limicie pakietu.
BłędyOferty których nie udało się zaimportować - szczegóły w logu i historii runu.

Każdy run ma stronę szczegółów z listą ofert i ich operacji - w panelu klienta i admina.

Upload manualny (alternatywa dla FTP)

Jeśli nie chcesz konfigurować klienta FTP - np. do testowego importu pojedynczej paczki - wgraj plik bezpośrednio z przeglądarki w Panelu konta → Import FTP:

  • Maksymalny rozmiar: 500 MB.
  • Paczka trafia do tej samej kolejki - wynik w historii w ciągu kilku minut.
  • Wymaga aktywnego konta FTP.