Witam, chciałbym w ramach poznania Symfony2 stworzyć projekt sklepu internetowego.
Jednak już na starcie nasuwa mi się kilka pytań sprzeczności, o które chciałbym zapytać użytkowników doświadczonych w temacie.
Na początek - co miałby zawierać sklep:
- Kategorie
- Koszyk
- Możliwość zakupu dla zalogowanych oraz niezalogowanych użytkowników
- Logowanie/rejestracja
- Dajmy na to Newsletter
- Wyszukiwarka produktów
Teraz jeżeli chodzi o strukturę mam pytania dotyczące:
1. Rozkład bundle
Googluje za tematem i widzę, że ile ludzi tyle opinii, a więc prosiłbym, aby ktoś doświadczony się wypowiedział w tym temacie.
Jedni proponują taki rozkład:
- UserBundle (obsługa logowania, rejestracji użytkowników)
- CategoryBundle (poszczególne kategorie dla produktów)
- ProductBundle (produkty i ich obsługa)
- BasketBundle (obsługa koszyka)
- NewsletterBundle (newsletter)
- OrderBundle (obsługa złożonych zamówień)
Inni zaś są zdania
Cały pakiet sklep zamknąłbym w pakiecie ShopBundle
Które z rozwiązań będzie najlepsze ?
Jak najlepiej ułożyć strukturę bundli, aby w późniejszym terminie (a i w trakcie programowania) nie siąść do tematu i nie stwierdzić ,,nic się tu kupy nie trzyma".
2. Zaprogramowanie koszyka
Jakie jest najczęściej stosowane rozwiązanie koszyka ?
- Trzymanie ID dodanego produktu w ciasteczkach (wtedy użytkownik niezalogowany po wróceniu do sklepu ma pełny koszyk - całkiem fajne)
- Trzymanie ID produktu w sesjach
- A może zrobić tabelę dla potencjalnych nabywców i w koszyku przetrzymywać tylko unikalny ID (ciacho) dla danego użytkownika, a informację o koszyku zawrzeć właśnie w tabeli ? - Zastanawiam się tylko, że to zrobi straszny ,,bajzel" w bazie danych.
- A może ktoś zna najbardziej optymalne rozwiązanie ?
3. Dynamiczna wymiana danych
Jeżeli chciałbym zrobić jakąś wymianę danych dynamicznie w jakiej postaci najbardziej optymalnie odsyłać zapytania:
- XML
- JSON
- ?
Chciałbym tutaj poinformować, że cały projekt chciałbym zrobić jak najbardziej optymalnie i głównie właśnie na to się nastawiam.
Z góry dziękuje za odpowiedzi.