# Rozwiązania na zamówienie, skrojone pod potrzeby Twojej firmy

> Programowanie WWW na zamówienie: wtyczki WordPress i WooCommerce, integracje z ERP, importy i aplikacje skrojone pod Twój proces. Biblioteka realizacji.

URL: https://imcode.tech/pl/rozwiazania-na-zamowienie/
Română: https://imcode.ro/solutii-la-comanda/
English: https://imcode.tech/bespoke-solutions/
Italiano: https://imcode.tech/it/soluzioni-su-misura/
Deutsch: https://imcode.tech/de/massgeschneiderte-loesungen/
Español: https://imcode.tech/es/soluciones-a-medida/
Français: https://imcode.tech/fr/solutions-sur-mesure/
Magyar: https://imcode.tech/hu/egyedi-megoldasok/
Ελληνικά: https://imcode.tech/el/prosarmosmenes-lyseis/
العربية: https://imcode.tech/ar/hulul-makhsusa/
Updated: 2026-10-09

Gdy strona wizytówka nie wystarcza, budujemy brakujący element: integrację, wtyczkę, aplikację. Każdy element wychodzi od tego, czego potrzebuje klient, jak garnitur szyty na miarę, a nie zdjęty z wieszaka.

## Czym jest programowanie WWW na zamówienie

Piszemy kod specjalnie pod Twoją potrzebę: wtyczki WordPress i WooCommerce, integracje z ERP, kurierami i innymi usługami, API, importy produktów i aplikacje internetowe. Pakiety IMCode powstają seryjnie: ten sam typ strony w trzech rozmiarach. Rozwiązania na zamówienie wychodzą od konkretnego procesu w Twojej firmie, który gotowa wtyczka pokrywa w połowie albo wcale.

**Gotowa wtyczka lub usługa**

- Dopasowujesz swój proces do tego, co ona potrafi.
- Brakujące funkcje załatwia się obejściem albo kolejną wtyczką.

**Rozwiązanie na zamówienie**

- Zaczynamy od Twojego procesu i budujemy tylko to, czego potrzebuje.
- Łączy się bezpośrednio z systemami, których już używasz.

## Biblioteka realizacji

Poniżej są prawdziwe realizacje: projekty dla klientów i kilka narzędzi, z których korzystamy sami. Każda karta mówi, co było do rozwiązania i co zbudowaliśmy. Nazw klientów nie podajemy.

### Integracje z ERP i usługami zewnętrznymi

- **Stan magazynowy i cena zsynchronizowane z ERP**: Sklep miał podążać za stanem magazynowym i ceną z ERP klienta, bez ręcznych aktualizacji. Skrypt PHP działa co 5 minut. Czyta stan i cenę z usługi webowej ERP i zapisuje je w WooCommerce, także w każdym wariancie produktów zmiennych. Jeśli eksport przyjdzie pusty, skrypt nie zeruje stanów. Cache czyści się tylko dla produktów, które się zmieniły, a gdy ERP nie odpowiada kilka kontroli z rzędu, przychodzi e-mail. (PHP · SOAP · WooCommerce · cron)
- **Zamówienia wysyłane do zewnętrznego API, z automatycznym ponawianiem**: Wysyłka zamówień do zewnętrznego API siedziała w motywie i mogła się zepsuć przy zmianie wyglądu. Przenieśliśmy wysyłkę do wtyczki. Formularz wysyła zamówienie, a jeśli API nie odpowie, wtyczka sama ponawia próbę co 5 minut, najwyżej trzy razy. Punkty odbioru są trzymane w cache według okręgów, a dane dostępowe wyszły z kodu i leżą w stałych konfiguracyjnych. (WordPress · Contact Form 7 · REST API)
- **Rezerwacje wysyłane do zewnętrznego silnika rezerwacji**: Strona hotelu miała odsyłać gościa do zewnętrznego silnika rezerwacji, z już wypełnioną wyszukiwarką. Wtyczka przejmuje formularz wyszukiwania i przyciski rezerwacji z wtyczki hotelowej. Zamienia daty i liczbę gości na format silnika, po czym otwiera rezerwację w nowej karcie, w języku strony. (WordPress · WPML)
- **Miejscowości i kody pocztowe z identyfikatorami kurierów**: Rumuński checkout potrzebuje miejscowości i kodów pocztowych, które kurierzy rozpoznają. API z miejscowościami i kodami pocztowymi. Przy każdej miejscowości są identyfikatory używane przez FanCourier, Cargus i Sameday oraz wartości dodatkowych kilometrów. (API · dane)
- **Ceny w dwóch walutach, dopasowane do dziennego kursu**: Sklep z WPML Multicurrency sprzedawał w dolarach i peruwiańskich solach, a obie ceny miały nadążać za kursem. Wtyczka uruchamia się codziennie o 08:00, pobiera kurs z publicznego API i aktualizuje ceny produktów prostych i zmiennych. Panel trzyma ostatnie pięć przebiegów. Przy produktach zmiennych cena w drugiej walucie pojawia się jako przedział, a przy zmianie kursu albo ceny idzie e-mail. (WooCommerce · WPML Multicurrency · cron)
- **Wynik quizu wysyłany do CRM, tylko za zgodą**: Wyniki quizu miały trafiać do CRM marki, ale tylko dla osób, które zgodziły się na marketing. Kontakt tworzy się w TheMarketer dopiero po zaznaczeniu przez odwiedzającego zgody marketingowej, z dwustopniowym potwierdzeniem. Każdy wynik quizu dostaje etykietę, a nieudane wysyłki są ponawiane z crona. (WordPress · TheMarketer API · cron)

### Katalog, importy i feedy

- **Katalog online bez publicznej ceny**: Dystrybutor chciał katalogu online, nie sklepu, a cena nie mogła pojawiać się nigdzie w publicznym wyniku. Wtyczka usuwa cenę z HTML, z JSON-LD, z REST API i ze Store API. Importer uruchamiany z wiersza poleceń czyta Excel dystrybutora. Może najpierw zrobić przebieg próbny i da się go wznowić bez dublowania produktów. (WordPress · WooCommerce · WP-CLI)
- **Monitor feedu produktów**: Feed XML albo CSV dostawcy często się zmienia, a klient chciał widzieć, co się zmieniło. Dwie aplikacje PHP porównują feed produkt po produkcie, w stałych odstępach. Trzymają historię zmian cen i stanów, mają panel sterowania i wysyłają e-mail, gdy zmiana przekroczy próg. (PHP · cron)
- **Feedy od wielu dostawców, tłumaczone z AI**: Sklep z częściami samochodowymi dostawał produkty od wielu dostawców, w różnych feedach, i potrzebował kart produktów po rumuńsku. Osobny skrypt czyta każdy feed: CSV w Windows-1250 i dwa XML, z których jeden miał czasem niedozwolone znaki sterujące. Skrypty konwertują tekst na UTF-8 i usuwają znaki, które psują parser. Tłumacz wywołuje OpenAI ze słownikiem terminów technicznych z motoryzacji, żeby „coilover” czy „front lip” nie zostały po angielsku. Jeśli tłumaczenie produktu się nie uda, produkt trafia do eksportu z oryginalnym tekstem i jest ponawiany przy następnym uruchomieniu. (PHP · OpenAI · feedy XML i CSV)
- **Tabela karmienia, która na telefonie zamienia się w karty**: Tabela karmienia każdego produktu była trzymana jako JSON i miała się pojawić na stronie produktu. Mała wtyczka dodaje kartę „Tabela karmienia” i czyta pole JSON produktu. Na komputerze to pełna tabela, na tablecie przewija się poziomo, a na telefonie każdy wiersz staje się kartą. Działa bez JavaScriptu, samym CSS, i używa zmiennych kolorów motywu WoodMart. (WordPress · WoodMart · CSS)
- **Eksport z PubMed do XML dla WordPressa**: Rekordy z PubMed trzeba było zamienić na XML, który WordPress umie zaimportować, z autorami poprawnie powiązanymi z afiliacjami. Parser czyta siedem dodatkowych pól, między innymi status, daty i ISSN. Nowa procedura grupuje wiersze autorów z wierszami afiliacji i rozdziela nazwiska. Generator XML oraz strony mapowania i podglądu używają nowych pól. (PHP · XML · PubMed)

### Sklep: checkout, produkty, konfiguratory

- **Checkout dla osoby prywatnej albo firmy**: Sklepy w Rumunii potrzebują, żeby kupujący wybrał osobę prywatną albo firmę i podał poprawne dane podatkowe. Wtyczka WooCommerce waliduje CNP, CUI i IBAN. Miejscowości są na liście według okręgów, z wolnym polem na adresy zagraniczne. (WooCommerce)
- **Produkty nowe i po zwrocie, powiązane ze sobą**: Sklep sprzedaje ten sam model jako nowy i po zwrocie, z klasami zużycia, i chciał je powiązać, a nie dublować. Moduł WooCommerce łączy produkt nowy z produktem po zwrocie przez wspólny model. Klasa zużycia staje się wariantem. Strona pokazuje oszczędność względem nowego produktu, a gdy ten wyjdzie ze stanu, zmienia się canonical. (WooCommerce · REST · Rank Math)
- **Egzemplarze po zwrocie tworzone z istniejącego produktu**: Sklep sprzedawał unikalne egzemplarze po zwrocie obok produktu oryginalnego, ukryte w katalogu, z opisanymi wadami każdego egzemplarza. Asystent w panelu administracyjnym tworzy egzemplarz z istniejącego produktu albo wariantu: kopiuje jego tytuł, opis i zdjęcia i łączy go z produktem nadrzędnym. Egzemplarz nie pojawia się w sklepie, w wyszukiwarce ani wśród produktów podobnych. Jego wady są opisane na stronie produktu nadrzędnego. (WooCommerce · WoodMart)
- **Konfigurator 3D do opakowań personalizowanych**: Klienci personalizują pudełka na stronie produktu, a potem dodają do koszyka albo proszą o wycenę. Model 3D pokazuje kolor, tekst i obraz na każdej ściance pudełka. Cena przelicza się na serwerze. Zespół dostaje panel produkcyjny, z arkuszem A4 i archiwum ZIP. (WooCommerce · React Three Fiber)
- **Własne stany magazynowe: „Zapytaj o wycenę” i „Stan dostawcy”**: Sklep miał produkty sprzedawane na wycenę albo ze stanu dostawcy, a WooCommerce zna tylko trzy stany magazynowe. Moduł w motywie potomnym dodaje te dwa stany i traktuje je jak „na stanie”, bo inaczej produkt zniknąłby ze sklepu. „Zapytaj o wycenę” wyłącza kupowanie i pokazuje przycisk otwierający formularz wyceny. WoodMart ma standardowe stany wpisane na sztywno w kodzie, więc przepisaliśmy siatkę produktów, filtr stanu, kolumnę w panelu i warunki szacowanej dostawy tak, żeby je rozpoznawały. (WooCommerce · WoodMart · PHP)
- **Klasy VAT ustalane na podstawie kategorii produktu**: ERP sklepu przysyła cenę z VAT, ale nie stawkę, a żywność i reszta produktów mają różne stawki. Skrypt przypisał klasę z obniżoną stawką kategoriom żywności, a klasę standardową pozostałym produktom, także wariantom. Zdefiniował też stawkę dla nowej klasy, która wcześniej żadnej nie miała. Stare zamówienia zostały nietknięte, bo faktura wystawia się z ERP, a skrypt można uruchomić ponownie dla nowych produktów. (WooCommerce · PHP)
- **Zestawy produktów trafiające do koszyka jako osobne pozycje**: Sklep chciał „modeli” grupujących kilka produktów, a zamówienie miało wyglądać jak zamówienie produktów kupionych osobno, dla fakturowania, kuriera i feedów. „Model” to typ treści prezentacyjnych, nie produkt na sprzedaż. Po dodaniu do koszyka wtyczka tworzy prawdziwą pozycję dla każdego składnika, powiązane wspólnym identyfikatorem, a stan magazynowy zostaje ten z WooCommerce. Rabat zestawu i koszt personalizacji to opłaty koszykowe liczone na serwerze, nie kupony. (WooCommerce · WoodMart · PHP)
- **Pasek postępu dla prezentów w koszyku**: Sklep daje prezenty po przekroczeniu progów wartości koszyka, a kupujący nie miał jak zobaczyć, ile jeszcze musi dodać do następnego. Pasek w koszyku, w mini-koszyku i przy checkout pokazuje stopnie: zablokowany, następny, zdobyty. Próg liczy się od sumy częściowej po kuponach, bez dostawy, czyli od tej samej wartości, której używa wtyczka prezentów, więc pasek i przyznanie prezentu pokazują to samo. Teksty są po rumuńsku i angielsku. (WooCommerce · Free Gifts for WooCommerce · WPML)
- **Pliki AWB przy zamówieniu, z chronionym pobieraniem**: Pliki AWB zamówień leżały w katalogu uploadu, który dało się przeglądać i który nie miał żadnej kontroli dostępu. Przy pierwszym użyciu wtyczka kładzie w katalogu .htaccess i index.php, które blokują bezpośredni dostęp i uruchamianie skryptów. Pliki pobiera się przez link z nonce, po sprawdzeniu, czy proszący jest administratorem albo właścicielem zamówienia. Lista zamówień ma kolumnę „Pliki AWB”, a na ekranie zamówienia jest przycisk kopiujący link. (WooCommerce · PHP)

### Platformy i strony z własną logiką

- **Własny framework do strony z wieloma typami treści**: Profesjonalna strona miała 12 typów treści, każdy z własnymi polami, filtrami, importem i administracją. Wtyczka z ORM, routerem, wersjonowanym schematem i silnikiem filtrów napisanymi od zera. Dane leżą we własnych tabelach, nie we wpisach, a wtyczka udostępnia 52 endpointy REST. (PHP · WordPress)
- **Strona statyczna z własnym generatorem**: Firma od eventów chciała szybkiej strony, z pakietami różniącymi się menu, nie tylko ceną. Strony generują się ze skryptów Node, bez frameworka. Selektor pakietów jest renderowany na serwerze, a każda strona ma też wersję Markdown i JSON. Google Analytics startuje dopiero po zgodzie. Projekt ma pięć zestawów testów. (Node · HTML · JSON-LD)
- **Wtyczka do kursów z sesjami Zoom i płatnością ratalną**: Szkoła kursów chciała czegoś więcej niż listy: kursów na żywo i wideo sprzedawanych przez WooCommerce, z edycjami w różnych miastach. Każda edycja ma swoje daty. Sesje Zoom mają osobny link dla każdego kupującego, a kursy wideo ogląda się ze strony „moje kursy”. Płatność można rozłożyć na raty, z harmonogramem i przypomnieniami, a zniżka early bird tworzy się automatycznie jako kupon. (WordPress · WooCommerce · Zoom · Bunny CDN)
- **Oferty, które znikają same ze strony**: Strona publikuje nowe oferty co miesiąc, a stare miały znikać. Każda oferta ma datę wygaśnięcia i powiązane procedury. Cron przenosi wygasłe oferty do szkiców i usuwa produkty utworzone dla nich automatycznie. (WordPress · WooCommerce · cron)
- **Wydarzenia, program i menu PDF na stronie pensjonatu**: Pensjonat z wydarzeniami potrzebował stron wydarzeń ze szczegółami, programem, galerią i menu PDF, plus pokoi pogrupowanych według typu. Wtyczka dodaje typ „wydarzenie” i shortcode’y na szczegóły, program, galerię, dodatki i wideo. Menu PDF, które może mieć dziesiątki MB, ładuje się dopiero po kliknięciu. Pokoje mają dwie taksonomie: typ budynku i klasę pokoju. Wydarzenia ze starej strony przeniesiono, a stałe przekierowania zachowują stare adresy. (WordPress · Elementor · Rank Math)
- **Kursy wideo z dostępem przez kod wysłany e-mailem**: Akademia chciała kursów wideo sprzedawanych przez WooCommerce, do których wchodzi także osoba niezalogowana. Każda lekcja ma wideo na Bunny CDN. Po płatności kupujący dostaje e-mail z linkiem do strony „Moje kursy”. Niezalogowany wpisuje adres e-mail, dostaje 6-cyfrowy kod ważny 10 minut i przez 24 godziny widzi kursy z zamówień tego adresu. Administrator może dać dostęp także liście adresów bez zamówienia, na stałe albo na określoną liczbę dni. (WordPress · WooCommerce · Bunny CDN)
- **Sesje Zoom z przypomnieniami i nagraniami trzymanymi na CDN**: Kursy na żywo miały sesje Zoom rozłożone na kilka dni, a linki do nagrań Zoom wygasają. Sesje tworzą się przez API Zoom, z uwierzytelnieniem serwer-serwer, a przypomnienia startują z crona. Każdy kupujący widzi tylko sesje z pakietu, który kupił. Panel ma tabelę uczestników z przyciskiem ponownego wysłania. Nagrania są kopiowane na Bunny CDN i oglądane we własnym odtwarzaczu. (WordPress · WooCommerce · Zoom API · Bunny CDN)
- **Typ treści, który w WoodMart zachowuje się jak strona**: Nowy typ treści, zbudowany w Elementorze, wyświetlał się jak wpis na blogu, z tytułem, autorem i obrazkiem wyróżniającym nad treścią, a nie jak strona. Motyw WoodMart ma sprawdzenia typu „strona” wpisane na sztywno w kodzie, bez filtrów. Skopiowaliśmy szablon strony dla nowego typu i dodaliśmy typ do metaboxa motywu przez Reflection, bo jego lista jest właściwością prywatną. Cały kod jest w motywie potomnym, bez zmian w plikach motywu. (WordPress · Elementor · WoodMart)
- **Galeria przed/po z osobnym panelem do wgrywania**: Klinika chciała galerii przypadków przed/po, które zespół wgrywa partiami, układa i poprawia bez wchodzenia do WordPressa. Wtyczka WordPress wyświetla galerię, z ładowaniem stopniowym i swipe. Osobny panel PHP przyjmuje pliki ZIP albo foldery, optymalizuje zdjęcia i dopasowuje je do zabiegu. Zespół przenosi przypadki między zabiegami, usuwa je albo układa przeciąganiem. Ponownie wgrany przypadek zastępuje stary zestaw dopiero po tym, jak nowy zapisze się w całości, a cache strony czyści się i rozgrzewa samo. (WordPress · Elementor · PHP)

### Narzędzia z AI

- **Import produktów z partii, z AI i zatwierdzeniem przez człowieka**: Sklep z produktami po zwrocie dostawał partie CSV i chciał stron produktów po rumuńsku, bez pisania każdego produktu ręcznie. Aplikacja importuje partie i pobiera dane produktu. W jednym wywołaniu model AI tłumaczy na rumuński, proponuje stan i cenę. Operator zatwierdza każdy produkt, zanim trafi do sklepu. (Next.js · Supabase · OpenRouter · WooCommerce)
- **Mapa tematów dla podcastu**: Strona podcastu importuje odcinki, transkrypcje i okładki z kanału RSS i pokazuje je według tematów. Wtyczka pobiera odcinki z RSS według harmonogramu i rysuje mapę tematów z tagów i transkrypcji. Asystent AI proponuje scalenie zdublowanych tematów, a człowiek zatwierdza je w panelu. (WordPress · D3 · Gemini)
- **Asystent, który pisze treść nowego kursu**: Każdy nowy kurs ma wiele pól tekstowych do wypełnienia: opis, korzyści, najczęstsze pytania i inne. Asystent w panelu dostaje tytuł, typ kursu, miasto i trenera i prosi model OpenAI o napisanie opisu, korzyści, tego, czego uczy się kursant, najczęstszych pytań i grupy docelowej. Wynik trafia do pól kursu. (WordPress · OpenAI)
- **Okładki odcinków robione ze zdjęć rozmówców**: Każdy odcinek podcastu miał mieć kwadratową okładkę w tym samym stylu, na podstawie zdjęcia rozmówcy. Skrypt Python wysyła każde zdjęcie do Gemini, z promptem, który ustala format 1:1, każe zachować rysy twarzy i zabrania tekstu, logo i dodanych obiektów. Wynikiem jest PNG 1024 × 1024, a okładki ustawia się potem jako obrazek wyróżniający odcinków. Filtr bezpieczeństwa odrzuca część zdjęć, zwłaszcza bardzo małych, i te wysyła się ponownie z innym zdjęciem tej samej osoby. (Python · Gemini API · WordPress)
- **Quiz o skórze z analizą selfie i rekomendacjami produktów**: Marka kosmetyków dermatologicznych chciała prowadzonego quizu o problemach skóry, który kończy się rekomendowanymi produktami. Wtyczka WordPress z modułami, które włącza się albo wyłącza w ustawieniach. Ma quiz główny i po jednym na każdą dolegliwość, a odpowiedzi przechodzą z quizu do quizu, z krótkim terminem ważności. Analiza selfie działa przez endpoint REST: prosi odwiedzającego o zgodę, sprawdza wiek i plik, ogranicza liczbę zapytań i wywołuje model AI. Macierz zgodności z produktami wyświetla się przez shortcode. (WordPress · WooCommerce · REST · API AI)

### Administracja i utrzymanie

- **Monitorowanie rozmiaru bazy danych**: Baza danych sklepu WooCommerce rosła, a nikt tego nie zauważał. Wtyczka codziennie sprawdza rozmiar bazy i wysyła e-mailem pięć największych tabel. Druga wyłącza zapisywanie liczników filtrów w cache, gdy żądanie przychodzi z parametrami filtrowania. (WordPress · mu-plugin)
- **Przekierowania ze starej mapy witryny**: Przy migracji stare adresy, które już nie istnieją, trzeba było przekierować na nowe. Lokalne narzędzie czyta starą mapę witryny i CSV z Search Console, sprawdza kody odpowiedzi i dopasowuje martwe adresy do nowej mapy witryny. Zapisuje CSV dla Rank Math, Yoast albo Redirection. (Node · TypeScript)
- **Anulowanie kursu z e-mailem do wszystkich kupujących**: Gdy kurs jest odwołany, trzeba poinformować wszystkich, którzy go kupili. Na ekranie kursu metabox ma pole na powód i przycisk „Wyślij e-mail o anulowaniu”. Wtyczka szuka zamówień kursu zakończonych albo w realizacji, usuwa zdublowane adresy i wysyła wiadomość w szablonie e-maila WooCommerce, z powodem, jeśli go wpisano. (WordPress · WooCommerce)
- **Skrypt do masowego zmniejszania obrazów w bibliotece mediów**: Obrazy w bibliotece mediów strony WordPress trzeba było zmniejszyć hurtowo, bez zewnętrznych zależności. Jeden plik PHP, chroniony kluczem, skanuje katalog uploadu i pomija miniatury WordPressa. Rekompresuje JPEG-i i robi WebP obok każdego PNG, nie kasując oryginału. Ma przebieg próbny i pracuje partiami, żeby nie przekroczyć maksymalnego czasu PHP. Dziennik pokazuje, ile zaoszczędzono na każdym obrazie. (PHP · GD · AJAX)
- **Naprawione terminy atrybutów w sklepie w 15 językach**: W sklepie WPML w 15 językach część atrybutów produktów trafiła do złej grupy tłumaczeń. Przeskanowaliśmy cały katalog, powiązaliśmy błędne terminy niemieckie z właściwą grupą tłumaczeń i usunęliśmy terminy-sieroty. Końcowe skanowanie dało zero sierot i zero różnic względem kopii zapasowej. Termin, który wyglądał jak sierota, ale miał poprawny język, został bez zmian. (WPML · WooCommerce)

### Interfejs i efekty na stronie

- **Wideo w tle z Bunny Stream w Elementorze**: Strona firmowa chciała zapętlonego wideo w pierwszej sekcji, bez spowalniania ładowania. Przy ładowaniu widać tylko plakat, a wideo startuje, gdy strona jest wolna. Zatrzymuje się poza ekranem i respektuje ustawienia ograniczenia ruchu oraz oszczędzania danych. (Elementor · Bunny Stream)
- **Menu mega na telefonie, z zejściem po poziomach**: Menu mega z kategoriami, zrobione jako shortcode, nie było widać na telefonie, bo WoodMart ukrywa zawartość dropdownów w panelu mobilnym. Na telefonie shortcode pokazuje listę, która schodzi po poziomach, z animacją przesuwania. Bierze dane z paneli desktopowych, które i tak są na stronie, żeby nie powtarzać zapytań o kategorie. Podkategorie otwierają się jak akordeon, żeby było mniej dotknięć. (WoodMart · JavaScript · WooCommerce)
- **Animacje canvas do sekcji hero, wklejane w Elementorze**: Strona firmy doradczej chciała animowanych teł w sekcji hero, które redaktor mógłby wstawić bez pisania kodu. Trzy animacje na canvas: „Capital Flow”, „Network Connections” i „Layered Depth”. Każda ma dwa pliki: stronę podglądu i plik do wklejenia w widżecie HTML Elementora. Używają palety marki i mają cztery palety alternatywne. Strona demo pokazuje je wszystkie, do akceptacji klienta. (Elementor · Canvas · JavaScript)
- **Efekty tła sekcji, sterowane klasami CSS**: Strona firmowa chciała efektów tła na sekcjach, nakładanych wprost z Elementora. Plik CSS i plik JS w motywie potomnym dają efekty jako klasy CSS, które redaktor wpisuje w Elementorze: aurorę z siatką punktów, spotlight podążający za kursorem, animowaną linię gradientu i przewijający się pas tekstu. (Elementor · CSS · JavaScript)
- **Okno oferty, które zamykało się samo**: Na stronie produktu okno „Kup na raty” zamykało się samo po około 2 sekundach. Motyw wywołuje zamknięcie każdego popupu przy każdej zmianie slajdu, a na stronie działają dwie karuzele z autoplay. Owinęliśmy funkcję motywu, która wykonuje to wywołanie, z efektem tylko na czas wywołania i tylko jeśli popup jest otwarty. Dzięki temu zamykanie krzyżykiem, klawiszem ESC i kliknięciem w tło dalej działa. (JavaScript · WoodMart)

## Z czym pracujemy

Pracujemy głównie z WordPressem i WooCommerce, z wtyczkami i integracjami pisanymi od zera. Do osobnych aplikacji używamy PHP, Node i TypeScriptu, Reacta i Next.js. Funkcje AI wywołują API zewnętrznych dostawców; nie trenujemy własnych modeli.

Tak jak przy stronach IMCode, AI pomaga w pracy, a człowiek sprawdza wynik przed oddaniem.

## Jak zaczyna się projekt

1. **Wysyłasz zapytanie o wycenę**: Piszesz, jaki proces chcesz pokryć, czego używasz teraz i gdzie się zacina. Wystarczy krótki brief.
2. **Dostajesz wycenę**: Programowanie na zamówienie nie ma ceny katalogowej. Cena i termin pojawiają się w wycenie, po przeczytaniu briefu.
3. **Budujemy i oddajemy**: Budujemy element i łączymy go z Twoimi systemami. Człowiek sprawdza wynik, zanim Ci go oddamy.

## Pakiet IMCode czy rozwiązanie na zamówienie?

| Twoja sytuacja | Pasuje |
| --- | --- |
| Potrzebujesz strony wizytówki albo strony pod jedną ofertę | Pakiety IMCode |
| Twoja strona potrzebuje też integracji, wtyczki albo logiki, której nie ma gotowej | Rozwiązanie na zamówienie |
| Chcesz automatycznego procesu między stroną, ERP, kurierem albo inną usługą | Rozwiązanie na zamówienie |
| Masz problem, ale nie masz specyfikacji | Opisz nam problem, a odpiszemy, który wariant pasuje |

## Pytania o rozwiązania na zamówienie

### Co znaczy programowanie WWW na zamówienie?

Piszemy kod specjalnie pod Twoją potrzebę, zamiast zaczynać od szablonu: wtyczki WordPress i WooCommerce, integracje, API, importy i aplikacje internetowe.

### Ile kosztuje rozwiązanie na zamówienie?

Nie ma ceny katalogowej. Wysyłasz zapytanie o wycenę, a cena i termin pojawiają się w wycenie, po przeczytaniu briefu.

### Czym różni się od gotowej wtyczki?

Gotowa wtyczka ma funkcje pomyślane dla wielu użytkowników. Rozwiązanie na zamówienie zawiera tylko to, czego wymaga Twój proces, i łączy się z systemami, z których korzystasz.

### Czy używacie AI?

Tak, jako narzędzia do pracy, a człowiek sprawdza wynik. Gdy rozwiązanie zawiera funkcje AI, wywołujemy API zewnętrznych dostawców; nie używamy własnych modeli.

### Czy mogę zobaczyć nazwy klientów z biblioteki?

Nazw klientów nie publikujemy. To, co możemy pokazać publicznie, jest w bibliotece, bez nazw.

## Dalej

Wyślij zapytanie o wycenę albo zobacz pakiety i ceny.

imcode.tech to część [imcreative.dev](https://imcreative.dev/)
