rtgx

Internetový objednávkový systém

Popis projektu

Objednávkový systém tovarov a služieb koncipovaný ako modul CMS Typo3. Mal by umožňovať všetky bežné funkcie internetových obchodov ako kategorizované zoznamy produktov, objednávanie produktov, nákupný košík, registráciu a prihlasovanie užívateľov, online platby, kreditný systém, systém zliav, prepojiteľnosť s inými systémami pomocou XML, import a export databázy vo formátoch XML a CSV, štatistiky a iné. Pre obsluhu by malo byť možné prehľadným spôsobom spracovávať zoznam objednávok, prideľovať im stavy, uskutočnovať zmeny položiek apod. Modul bude plne multilanguage (názvy polí, statické dáta, firemné údaje...).

Terajšie moduly tomuto systému plne nevyhovujú a ich rozširovanie je časovo náročné. Tiež nie vždy sa dá dosiahnuť želaný výsledok. Preto nový modul by mal byt jednoducho rozširovateľný (modulárny) a konfigurovateľný. Všetky výstupy budú generované pomocou XHTML validných šablón (zoznamy, detaily, maily...). Názvy polí tabuliek všetky hlásenia systému (FE aj BE) a iné dynamické texty budú riešené multijazične (konfigurované cez štandardné locallng.xml súbory - odporúčané vývojármi typo3). Musí byť ľahko reprodukovateľný, tozn. s minimálnymi nastaveniami zístaľ funkčnú aplikáciu. Na jednej inštalácii Typo3 môže súčasne fungovať viac obchodov (vyvstáva tu otázka zdieľania produktov, ale nemyslím, že by to bol vhodný spôsob riešenia obchodu, je to veľmi špecifická záležitosť, viď. bonshop.at).

Kompatibilita, systémové požiadavky

PHP 5 (použitie tried, dedičnosti, polymotfizmu, abstrakcie)
MySQL 4.1.XX (jadro InnoDB, kvôli transakciám)
Typo3 4.1 (vnorené vkladanie záznamov v BE - IRRE Inline Relational Record Editing)

Typy modulu

Backend

  • spracovanie produktov, objednávok...

  • spravovanie užívateľov, zliav...

  • import a export dát modulu (produkty, užívatelia, objednávky)

  • prehľadné sledovanie zmien záznamov obchodu (produkty, užívatelia, objednávky...)

  • iné rozhrania pre externé aplikácie (ERP)

Frontend

  • produkty, kategórie produktov, vyhľadávanie, objednávanie, prehľady objednávok, generovanie predfaktúr (napr. PDF)...

  • užívatelia - registrácia, prihlasovanie...

Užívatelia

  • admin: vytvára obchody, upravuje kód, vytvára layouty

  • editor: spravuje obsah webu, produkty kategórie

  • order management: spravuje užívateľov a ich objednávky

  • customer: registruje sa a upravuje svoje údaje, nakupuje produky, vracia produkty, ruší objednávky, prezerá svoje objednávky, platí za produkty

Implementácia

Produkt a artikel, kategórie

Kategórie produktov sú organizované v stromovej štruktúre. Kategória má názov, podtitul, popis (RTE), obrázok, rodičovskú kategóriu a obrázok. triedenie kategórií v zoznamoch je konfigurovateľné. V BE sa zobrazuje ako strom stránok. Tu je otázaka či sa ako kategórie použijú stránky, alebo sa vytvorí nová tabuľka, pre ktorú sa vyrobí nový rendering stromu v BE (podobný ako stránky). Požitie stránok (pages) ako kategórií produktov je bežné v najrozžírenejších ishop moduloch, zjednodušuje to programovanie aj prácu s kategóriami v BE, sprehľadňuje pohľady na produkty.

Produkt má prideleného výrobcu (samostaný záznam v DB). Zaradené aj do vyhľadávania a triedenia podľa výrobcov.

Produkt má pridelené príznaky (napr.: Novinka, Akcia, Výpredaj - samostatná tabuľka?), podľa ktorých sa možu filtrovať zoznamy produktov (aj kombinovane). Výhodnejšie je použitie samostatnej tabuľky (pozri nižšie tx_rtgshop_type), potom bude rozširovanie o ďalšie príznaky produktu prakticky neobmedzené.

Každý produkt musí mať minimálne jeden (alebo viac) priradených artiklov. Artikel už má priradené konkrétne číslo, EAN, cenu apod. Treba zvážiť, či produkt môže mať priradených viac kategórií (podľa mňa to nie je vhodné, ak bude užívateľ prechádzať ponukov produktov, nebude asi veľmi potešený, keď sa mu rovnaký produkt zobrazí viackrát, kategórie v eshope by mala byť jednoznačná). Tu sa potom vkladajú variácie produktu (napr. farebné, rozdielna výbava...) - artikel je vlastne variantou produktu. Ak niektoré údaje artikel neobsahuje, zoberú sa z rodičovského produktu.

Cena bude zadaná trikrát: nákupná, aktuálna (povinná), pôvodná (prepočítavanie použije aktuálnu cenu a globálnu daň, ak nebude mať produkt nastavenú vlastnú daňovú sadzbu, resp. podľa skupiny produktov). Ceny je možné zadávať s daňou alebo bez dane, podľa globálneho nastavenia. Každý artikel bude uchovávať svoj aktuálny stav skladu. Uvažujem modul spracovať tak, aby dokázal pracovať s rôznami menami po načítaní aktuálneho kurzového lístka (prechod na EURO sa blíži). Globálne by sa určila finančná mena, do ktorej sa majú ceny prepočítať (všetko ostatné by prebehlo automaticky, s možnosťou upraviť prepočítavací vzorec napr.: +0.025% a pod.). Samozrejme taktiež musí byť dané, v ktorej mene sú zadávané ceny produktov (artiklov).

Je možný import produktov z modulu tt_products, XML, CSV alebo iných DB (po nakonfigurovaní prevodu resp. napojení na inú DB). Export produktov je možný do XML a CSV (obrázky zvlášť).

Otázne je zaradenie produktov do indexovaného vyhľadávania, lebo v podstate sa stránky so zoznamom produktov budú indexovať, problém bude len v detailnom pohľade na produkt.

Objednávky

Užívateľ má možnosť v každom momente získať aktuálny prehľad a stav svojich objednávok, prípadne ich stornovať (ak to stav objednávky umožňuje). Môže vrátiť produkt v zákonom stanovenej lehote (úprava objednávky). Vyhľadáva vo svojich objednávkach podľa rôznych kritérií (produkt, cena...). Možnosť tlače ktorejkoľvek užívateľovej objednávky alebo jej export do PDF. Objednávka môže byť v podstate aj platnou predfaktúrou, ak bude obsahovať požadované účtovné údaje (odošle sa mailom užívateľovi v ZIP súbore chránenom heslom z registrácie).

Každá objednávka má priradený stav s definovanou postupnosťou zmien tohoto stavu (objednané, čaká na sklad, zaplatené, odoslané, zrušené...). Stavy sú konfigurovateľné. (Neviem či neukladať objednávky podľa prideleného stavu do rôznych adresárov, ale po naprogramovaní filtra na vyhľadávanie v BE to asi nebude potrebné)

Objednávka po vystavení musí byť editovateľná (okrem užívateľa): zmena počtu produktov, ceny, adresy... Samozrejme o každej zmene bude vedený záznam (log), ktorý bude dostupný pre order management.

Do objednávky sa do adresných údajov doplnia užívateľove údaje z registrácie, ak je prihlásený. Môže byť zadaná aj zvlášť dodacia adresa, ak je iná ako adresa, na ktorú sa objednávka vystaví. Po ukončení objednávky možnosť tlače odj. alebo jej uloženie v PDF formáte.

Bude voliteľná možnosť povoliť nakupovanie len registrovaným užívateľom. Neregistrovaní budú mať možnosť len prezerať produkty.

Nákupný košík

Ukazuje prehľadný stav objednávaných produktov s možnosťou zmeny počtu alebo úplného odstránenia produktu z košíka. Bude aj zjdednodušený pohľad na celkovú sumu a počet produktov (resp. stručný zoznam). Umožní nakupovať produkty za kredity získané predošlými nákupmi namiesto peňazí (prihlásený užívateľ).

Má zabudované rozhranie pre hook-ovanie funkcií na prepočet cien v košíku.

Systém zliav

Zľavy sa viažu na kategórie, produkty, užívateľov, množstvo... Zľavy sú prideľované automaticky alebo manuálne order management-om. Dobrým príkladom je activeone shop.

Užívatelia

Po zaregistrovaní môžu upravovať svoje osobné (firemné - fakturačné) údaje, rôzne doručovacie adresy (výber sa uskutoční pri objednávke), získajú prehľad o pridelených kreditoch, za ktoré môžu získať produkty, ktoré sa dajú zaplatiť kreditmi. Posielajú správy order management-u. Prehliadajú, vyhľadávajú, upravujú a rušia svoje objednávky. Posielajú linky na produkty priateľom (tipafriend, html mail).

Štatistiky

Všetky štatistiky dostupné len vybranej skupine (skupinám) BE užívateľov. Napr.: predaj podľa produktov, kategórií, užívateľov, cien... ;filter podľa dátumu, stavu... (best products/ top seller, top ordering hours/days). S týmto súvisí aj vyhľadávanie s triedenie záznamov objednávok a užívateľov v týchto výstupoch (podobne ako úprava tt_products pre KT platform).

ToDo list

  • duálne zobrazovanie cien v dvoch menách (defaultne pre Euro)
  • spracovávať flexform dáta (nie sú všetky využívané - spraviť analýzu potrieb)
  • pid.system do typoscript setup, stránka (sysfolder), ktorá obsahuje základné nastavenia obchodu
  • pre výpočet poplatku za dopravu zadávať externý script ako pro platbách (payments)
  • chybové hlásenia formulára pre objednávku do localang.xml
  • zľavy na celkovú sumu objednávky podľa užívateľa (v percentách)
  • print verzia pre objednávky, faktúry a dodacie listy (neskôr PDF)
  • ako ďalej s multijazyčnosťou produktov a ostaných tabuliek?
  • zapisovať poplatky (ceny) na objednávku, aby sa pri zmene v BE neprejavili na už vystavených objednávkach
  • vyhľadávanie podľa kategórie (select box)
  • online platby TatraPay a CardPay (podľa tubby.sk - po otestovaní)
  • bodové hodnotenie a komentáre k produktom, možnosť obmedziť len na prihlásených užívateľov; obmedziť hodnotenie pre jedného prihláseného užívateľa? (voliteľne)
  • v zozname produktov generovať okrem formulára na objednanie aj link pre objednanie jedného kusa produktu, so skokom do košíka
  • dokončenie vypracovania notifikačného emailu pre užívateľa po zmene stavu jeho objednávky
  • optimalizácia dotazov SQL (menej spojení, číselníky selektovať globálne)

Záznamy

  • dynamicky generované SQL pre tabuľky použité v pohľade podľa typoscriptu
  • k povtrdzujúcemu mailu objednávky prikladať faktúru v PDF, ak bude hotový export

Náhľady z backendu pripravovaného eShop-u

Atribút
Atribút
Kategória
Kategória
Varianta
Varianta
Ďalší atribút
Ďalší atribút
Daňová hladina
Daňová hladina
Dostupnosť
Dostupnosť
Doprava
Doprava
Platba
Platba
Objednávka, základné údaje
Objednávka, základné údaje
Objednávka, fakturačná adresa
Objednávka, fakturačná adresa
 
Žiadne dokumenty ani odkazy k tejto stránke.