Specyfikacja: darmowy sklep internetowy

Wersja PREMIUM 2.0 • PHP 5.6 + MySQL + AJAX • pełne zarządzanie z panelu admina. Licencja dotyczy obowiązkowego raz dziennie wchodzenia na stronę producenta oraz wyświetlenia na dole strony banneru zmiennego producenta. Zezwala się przerabiać skrypt i umieszczać pod ilu się chce mieć domenami, zachowując uprzednie zasady licencji.

1. Założenia ogólne

Instalacja: wrzucasz pliki → otwierasz install.php → 3 kroki → sklep działa.

2. Architektura

Przegladarka HTML5 + JS + AJAX .htaccess ladne URL-e → index.php index.php router + widoki HTML ajax.php endpointy JSON MySQL utf8mb4 / InnoDB admin.php panel administratora adres fetch JSON
Rys. 1 — przepływ: adres bez .php → index.php (strona) lub ajax.php (akcje JSON). Admin korzysta z tej samej bazy.

Routing (ładne adresy)

URLWidok
domena.pl/strona główna (bannery, kategorie, nowości)
domena.pl/telefonykategoria — slug z tabeli categories
domena.pl/smartfon-x200produkt — slug z products
domena.pl/koszyk /konto /zamow /szukajstrony specjalne

Kolejność dopasowania w routerze: strony specjalne → kategoria (slug) → produkt (slug) → 404.

3. Strona klienta (front)

3.1 Strona główna

3.2 Listing kategorii

LOGO Szukaj produktu... Koszyk (3) Konto Elektronika ▾ Odziez ▾ Dom i ogrod ▾ Sport ▾ SLIDER / BANNER (slot top, link) Sortowanie: cena | nazwa | nowosci Widok: siatka/lista Strony: 1 2 3 ... foto Produkt A 99,00 zl-20% Do koszyka foto Produkt B 149,00 zl Do koszyka foto Produkt C 59,00 zl Do koszyka foto Produkt D 219,00 zl Do koszyka
Rys. 2 — makieta listingu: header (logo, szukaj, koszyk, konto), mega-menu, banner, toolbar, siatka kart z badge'ami i przyciskiem AJAX.

4. Produkt i parametry

4.1 Karta produktu

galeria (max 10 zdjec) Nazwa produktu Cena przed obnizka: 1299,00 zl 649,50 zl -50% ID produktu: 7 Kod producenta: SX200-PL Dostepnosc: 15 szt. | Gwarancja: 24 mies. | Zwrot: 14 dni Do koszyka ▸ Rozmiar 14 cm PODOBNE (ID±n) Prod. #699,00 zl Prod. #8119,00 zl Prod. #579,00 zl Prod. #9149,00 zl
Rys. 3b — strona produktu: cena przed obniżką (przekreślona), cena aktualna, badge -50%, ID + kod producenta, a z boku „Podobne produkty" dobrane po sąsiednich ID.
ADMIN - produkt Cena promocyjna (zl) 649.50 Promocja czasowa 24h ▾ 1h 2h 3h 5h 10h 12h 18h 24h 2 dni 3 dni 4 dni 5 dni 6 dni 7 dni 14 dni 21 dni 30 dni zapis -50% KARTA PRODUKTU Cena przed promocja: 1299,00 zl 649,50 zl ⏱ konczy sie za: 1d 05:32:18 licznik tyka co sekunde w JS (dni : godziny : minuty : sekundy) tabela products promo_price = 649.50 promo_ends = 1717435938 (unix timestamp od 1970) bez cronow! if promo_ends > time() cena = promo_price else cena = normalna zapis (teraz) promo_ends (24h) cena normalna cena promocyjna 649,50 zl
Rys. 3c — promocja czasowa: admin ustawia cenę promo + czas z listy → zapis promo_ends = time() + czas → karta pokazuje dwie ceny i licznik → po promo_ends cena sama wraca do normalnej (warunek w SQL/PHP, bez cronów).

4.2 Parametry — dowolna ilość, edytowalne w adminie

Każdy produkt ma własną listę parametrów: nazwa + wartość + jednostka (np. Rozmiar: 14 cm). W adminie wiersze dodaje się przyciskiem „+ Dodaj parametr", kolejność zmieniają strzałki ↑ ↓, X usuwa. Na karcie produktu — pasiasta tabela ze strzałką ▸ przy nazwie.

ADMIN — edytor parametrow ParametrWartoscJedn. Rozmiar14cm Kolorczarny- Waga189g Bateria5000mAh + Dodaj parametr ↑ ↓ zmiana kolejnosci X usuwa wiersz zapis: cala lista naraz FRONT — tabela parametrow ▸ Rozmiar14 cm ▸ Kolorczarny ▸ Waga189 g ▸ Bateria5000 mAh ▸ Ekran6.5 cali paski co drugi wiersz, hover podswietla, jednostka wyszarzona
Rys. 3 — parametry: lewy panel admina (nazwa|wartość|jednostka, strzałki kolejności), prawy widok klienta (pasiasta tabela).

5. Koszyk i checkout

Listing"Do koszyka" KoszykAJAX, sesja Logowanie /rejestracja (AJAX) Checkoutadres+dostawa Zamowieniestatus + e-mail PDF po zalogowaniu koszyk sesji przypina sie do konta - zawartosc sie nie gubi
Rys. 4 — flow: od kliknięcia „Do koszyka" na liście do złożonego zamówienia; logowanie w środku ścieżki bez utraty koszyka.

6. Panel admina

Pulpit Produkty Kategorie Bannery Zamowienia CMS Marketing Dostawa Platnosci Ustawienia Wyloguj DRZEWO KATEGORII ▾ Elektronika [ed][↑][↓][x] ▾ Telefony [ed][↑][↓][x] Smartfony [ed][↑][↓][x] Akcesoria [ed][↑][↓][x] ▾ Dom i ogrod [ed][↑][↓][x] Narzedzia [ed][↑][↓][x] + nowa kategoria • dowolna glebokosc usuniecie: dzieci i produkty przenosi poziom wyzej SLOTS BANNEROWE / WYGLAD top — slider glowny side — blok boczny middle — listing footer — nad stopka kazdy banner: obrazek (desktop+mobile) + LINK + daty + kolejnosc + liczba klikniec logo / favicon / logo mobilne — upload podmienia grafike na calej stronie edytor wygladu: kolory, fonty, zaokraglenia — bez kodu + custom CSS/JS
Rys. 5 — admin: drzewo kategorii ze strzałkami kolejności i nieskończonym zagnieżdżeniem; sloty bannerowe i podmiana grafiki.

Moduły admina

ModułZakres
Pulpitwykresy sprzedaży, konwersja, top produkty/kategorie, porzucone koszyki, niskie stany
ProduktyCRUD, kod producenta, promocja czasowa (cena promo + czas z listy 1h–30 dni), checkbox negocjacji przy 2+ szt., warianty, atrybuty, do 10 zdjęć (drag&drop, watermark), masowe akcje, inline edit, flagi, SEO meta, harmonogram publikacji; lista pokazuje ID, kod, cenę, znizkę -% i znacznik PROMO z datą końca
Negocjacjeoferty cenowe klientów (produkt, sztuki, łączna kwota, kontakt) ze statusami i usuwaniem
Kategoriedrzewo bez limitu poziomów, drag&drop, obrazki, SEO, usuwanie z decyzją o produktach
Bannery i wyglądsloty, linki, terminy, statystyka kliknięć, logo/favicon upload, edytor kolorów i fontów
Zamówieniastatusy (edytowalne), historia, notatki, faktury PDF, zwroty RMA, eksport Excel, auto e-maile
Kliencigrupy (detal/hurt/VIP) z osobnymi cenami, blokady, historia, eksport z podziałem na zgody
Marketingkupony, reguły promocji (2+1, rabat ilościowy, happy hours), punkty, polecania, newsletter, porzucone koszyki
CMSstrony WYSIWYG, menu builder, blog, popupy, bloki HTML, stopka, regulaminy z wersjonowaniem
Dostawa/Płatnościstrefy, limity wagi, darmowa od kwoty, metody + hooki bramek
Ustawieniafirma, waluty, VAT, e-maile (edytor szablonów), SEO globalne, integracje (GA4/Pixel), backup, tryb konserwacji
Adminirole: superadmin/sprzedaż/magazyn/marketing/treści, log akcji
Pracownicykonta do moderator.php z funkcjami-checkboxami (kategorie, podkategorie, produkty, zamówienia, blokady użytkowników, oferty wielosztukowe, promocje czasowe/zwykłe, usuwanie, edycja tekstów/cen, bannery) + stawka zł/h
Statystykisprzedano szt., towar w szt., przychód, koszt towaru, transport, stałe opłaty, liczba pracowników, wypłaty, zysk/strata, „brakuje do wyjścia na zero"
Powierzone kategorieadmin przypisuje checkboxami kategorie/podkategorie pracownikowi (emp_cats); raport sprzedaży w zł z jego kategorii (podkategorie liczone automatycznie)
Tabela pracownikóww adminie i moderatorze: paginacja po 10, sortowanie nagłówkami — sprzedaż, ocena (emp_ratings), godziny, wypłata

Przy produkcie z powierzonej kategorii widnieje „Opiekun produktu: #N Imię" z oceną; link ?pracownik=N otwiera pływający box (miejsce pod przyszły czat). W Ustawieniach: symbol waluty sklepu i edytowalne kursy walut (po linii EUR=4.30).

Program partnerski (program-partnerski.php)

Pracownik (moderator.php) — licznik czasu pracy

Zalogowaniework_sessions start Ping co 60 s przerwa > 2 min = nie liczone work_seconds += aktywne s tylko czas na stronie Wylogowanielogout_at = koniec Wyplatastawka x pelne h suma aktywnych sekund / 3600 = pelne godziny -> wyplata; admin widzi licznik kazdego pracownika
Rys. 7 — ewidencja czasu: logowanie otwiera sesję, ping co 60 s dolicza tylko aktywne sekundy (przerwa nie jest liczona), wylogowanie zamyka sesję; wypłata = stawka × pełne godziny.

7. Excel / CSV — import i eksport

8. Baza danych (MySQL InnoDB utf8mb4)

categories id, parent_id, name,slug, sort, active parent_id → drzewo ∞ products id, cat_id, name, slug, code, price, discount, stock, warranty_m, return_d, active, created product_images product_id, file, sort (≤10) product_params product_id, name, value,unit, sort — bez limitu users email, pass(bcrypt),name, role cart_items session_id, user_id,product_id, qty orders / order_items user_id, total, status,pozycje: qty, price banners / settings slot, file, link, activesettings: k/v (logo...) + tabele premium: variants, attributes, offers (negocjacje), coupons, reviews, banners, pages, menu, blog, newsletter, shipments, returns, roles...
Rys. 6 — kluczowe relacje: categories.parent_id = drzewo bez limitu; product_params bez limitu na produkt; koszyk po sesji i koncie.

9. SEO i wydajność

10. Bezpieczeństwo i RODO

11. Struktura plików

Plik/katalogRola
index.phpfront controller + widoki (ładne URL-e)
ajax.phpendpointy JSON — listing, koszyk, auth, zamówienie
admin.phpcały panel admina (+ pracownicy, statystyki, użytkownicy)
moderator.phppanel pracownika: logowanie, uprawnienia, licznik czasu pracy
program-partnerski.phpprogram partnerski: regulamin, rejestracja, panel statystyk, wybór produktów
install.phpinstalator: tabele + admin + demo
config.phpbaza, BASE_URL, uploady
includes/db.php / func.phpmysqli + helpery (slug PL, koszyk, drzewo kategorii)
assets/app.js / style.cssAJAX fetch, toasty, RWD
/uploadszdjęcia produktów, bannery, logo
/excel /cronszablony importu, eksporty, zadania cykliczne

12. Wymagania minimalne

Po instalacji: zmień hasło admina, usuń install.php, ustaw BASE_URL i dane DB w config.php.

Kliknij i zobacz DEMO