Cześć!
Proszę o poradę czy sensownym jest wykorzystanie spree jako bazy pod sewris typlu c2c (Allegro, ebay, Etsy).
Może lepiej robić takie coś zupełnie od zera bądź znacie inne lepsze rozwiązania?
Zależy jakie masz konkretnie potrzeby ale generalnie odradzałbym użycie spree do tego. Oczywiście zalezy co dokładnie masz na myśli ale jeżeli myślisz o nim jako bazie takiego serwisu to możesz rzucić okiem na https://github.com/sharetribe/sharetribe
a jeżeli chodzi o “backend” który po stworzeniu producktu w sklepie wystawiał by na te platformy to zależy - jeżeli oprócz tego chcesz mieć sklep “firmowy” to tak. Jeżeli niewiele pomoże samo spree i chyba łatwiej będzie zrobić od 0 bez wgryzania się w dosyć skomplikowany model produktów spree
Dzięki za podpowiedź.
To ma być raczej standardowy sklep, z ta różnicą, że mamy 2 typy użytkowników. Standordowo - klient, który robi zakupy. Drugi rodzaj pozwala niejako ingerować w sklep dodając swoje produkty, które później zatwierdza administracja sklepu.
Mam jeszcze drugie pytanie, czy ktoś miał do czynienia z uruchamianiem Spree na Amazon’ie? Jest tam dostępny spree (klik). Pytanie czy dostajemy dostęp do kodu, bazy i gita?
Bez mocnej modyfikacji spree niestety nie da się tego zrobić. Nie ma kontroli dostępu na poziomie produktów a tego byś potrzebował żeby ludzie nie mogli modyfikować produktów dodanych przez innych. To byłby pierwszy problem który trzeba by było rozwiązać
Tak tak. Nie szukam rozwiązania, gdzie nic nie musiałbym robić - to byłoby zbyt piękne
Poza tym nie przesadzajmy - człowiek od coś musi w końcu programować
Czy podpięcie pod spree cancancan’a i rolify to droga przez mękę, czy normalny problem do rozwiązania?
Spree przynajmniej w wersji 3 już używa cancancan (1.10.1), w wcześniejszych wersjach np. 0.7 cancan (1.6.5)
Spree używa systemu uprawnień po prostu będziesz musiał napisać rozszerzenie które dosyć mocno modyfikuje backend tak żeby:
- Produkt miał swojego właściciela/wytwórcę
- Klienci mieli dostęp tylko do oktreślonych części sklepu (nowa rola)
- Upewnić się że klienci mogą modyfikować / przeglądać tylko swoje produkty
- Zmodyfikować kod tak żeby każda zmiana produktu resetowała pole available_at i klient nie mógł sam ustawić tego pola ( z tym że wtedy będzie lekki problem bo np zmiana opisu przedmiotu będzie go ukrywała w sklepie, a pewnie lepiej yło by żeby nadal widoczna była stara wersja).
Będziesz musiał przemyśleć logikę modyfikacji produktu i to bedzie największe wyzwanie. Możliwe że trzeba będzie wprowadzic wersjonowanie produktu i klas zależnych (Variant, option types. itd. itp.) Łatwiejszym rozwiązaniem było by chyba tylko zablokowanie możliwości edycji produktu już zatwierdzonego, a edycję robić na zasadzie klonowania, ale to z kolei skomplikuje potem raporty, chyba że pozwolisz na ustawianie tego samego SKU kilku produktom, ale to tworzy nowe problemu, itd. itp.
Tak czy tak powodzenia
WOW. Dzięki za pomoc. Właśnie tu chciałbym zrobić inaczej, na zasadzie nowego modelu (np ProductCanditate), aby oddzielić zarządzanie produktem, poza tym potrzebuję aby taki użytkownik-sprzedawca nie miał dostępu do spree, jedynie do panelu właśnie takich swoich produktów kandydatów (uniemożliwiam mu dodawanie taxonów czy taxonomii, wgląd w klientów itd.) Trzeba chyba jedynie wymyślić jakiś sposób, aby pracownik sklepu mógł łatwo takiego kandydata importować do właściwego modelu produktów spree)
To jest dobry pomysł (stworzenie ProducCandidate) ale jeżeli produkt będzie miał warianty opcje, itd. to dojdzie sporo modeli dodatkowych (VariantCandidate, VariantOptionTypeCandidate itd.) w dodatku nadal pozostaje sprawa edycji (chociaż to można by było rozwiązać poprzez tworzenie nowego kandydata po czym mergowanie go z istniejącym produktem).
Co do panelu możesz spokojnie takiego użytkownika wpuścić do panelu spree jeżeli tak będzie wygodnie, po prostu będziesz musiał ustawić odpowiednio uprawnienia dla roli w cancanie wtedy nie będzie miał dostępu do części panelu.