Am decis să colectez într-un singur loc cum să implementezi un catalog cu un număr mare de atribute ale produsului (ca și pe Yandex.Market), argumentele pro și contra lor.
1. Un tip de material cu toate câmpurile posibile
2. Mai multe tipuri de materiale cu seturi diferite de câmpuri
3. Tip propriu al unei entități cu multe proprietăți ca atribute
- Toate datele dintr-un tabel
- Nu este potrivit pentru un număr foarte mare de atribute
- Nu este potrivit atunci când lista de atribute nu este cunoscută în prealabil (de exemplu, atunci când se analizează sau se importează)
- de codificare
- Relativ dificil de introdus date (fără widget-uri)
- Caracterizarea complexă (fără formatori)
- Adunarea grea a câmpurilor noi (modificați aspectul bazei de date, adăugați un widget la formular, tipăriți valoarea)
- Este imposibil să utilizați atribute multiple, trebuie să le faceți câmpuri sau să codificați manual logica
- Trebuie să suferiți cu căutare / filtrare
4. Un câmp compozit multi-valoare din două câmpuri - atribut, valoare (EAV)
Adăugați un câmp compozit cu mai multe valori la tipul de material Atribute. în care puteți selecta un atribut și puteți introduce valoarea acestuia:
Această metodă se numește EAV (entitate-atribut-value) și este utilizată în OpenCart și în multe alte CMS-uri.
Numele atributului poate fi fie un termen de taxonomie, fie pur și simplu un șir.
Puteți scrie câmpul fie dvs., fie utilizați module cum ar fi Colectarea câmpului, Multifield, Câmp dublu.
- de codificare
- Toate valorile atributelor vor fi de același tip - șiruri de caractere. Deși puteți veni cu cârje.
- Relativ dificil de introdus date (fără widget-uri)
- Relativ dificil de simulat (fără formatori)
- Este dificil să implementați căutarea / filtrarea după atribute
Concluzii: dacă nu există foarte multe atribute (mai multe duzini), atunci puteți folosi prima metodă, dacă până la o sută - apoi a doua, dacă există multe atribute sau nu sunt cunoscute în prealabil, apoi a patra.
Cine sa confruntat cu această problemă, scrie-ți propria soluție.
Folosesc metodele 1, 2.
Restul căilor, ca și mine, au dezavantaje care acoperă toate "+":
- Relativ dificil de introdus date (fără widget-uri)
- Relativ dificil de simulat (fără formatori)
- Este dificil să implementați căutarea / filtrarea după atribute
-
Aceasta este, dacă o mulțime de domenii în produs, și dezvoltatorul utilizează modul 3, 4 - va trebui să facă față mult și de a rezolva problemele enumerate mai sus.
Apoi, se pune întrebarea cu privire la oportunitatea de a folosi Drupal în sine ca un instrument pentru crearea unui catalog / magazin.
Pentru mine, "reteta" ideala este cache-ul 1 si 2 + avansat.
În mod tipic, pe site-urile mari nu se pronunță nimic manual, totul este importat dintr-o sursă externă, deci widget-urile nu sunt atât de importante. Ei bine, și pentru a forța căutarea api pentru a indexa datele dintr-un câmp compuse Cred că cumva este posibil, după care fațetele se câștigă.
Spuneți-mi, vă rog, cum ați făcut pe site-ul CCC specificat de dvs., astfel încât în căutarea de a introduce o parte a cuvântului nu numai descrierea bunurilor posibile, dar și imaginea a apărut?
Mulțumesc.
Tipul de material Produs. 40 de câmpuri comune pentru toate produsele.
Un modul auto-amorsare pentru clonarea tipurilor de materiale. Când este necesar, clonesc tipul de Bunuri și le termin pe noi câmpuri și grupuri. Mai exact, acest lucru fac managerii.
A realizat mai multe vizualizări ale șabloanelor pe câmpurile de tipul Bunuri.
Un modul de clonare Vizualizări cu auto-semnare care vă permite să specificați tipul de produs și acesta va adăuga din acesta toate câmpurile suplimentare pentru acest produs în câmp și filtrele deschise la acesta.
Și trăim acum trei ani. )
În cele din urmă, există ceva între prima și a doua cale.
Acum se adaugă automat. Dar este mai bine să faceți ieșirea blocului manual, deoarece la import se întâmplă diferite jamburi))
P.S. Nu pe subiect, dar voi semna: am început să folosesc recent
Panouri + panouri Omega + peste tot
Îi recomand foarte mult :) Nu am vrut să le pun trei ani, dar acum pot spune că singurele plusuri.
Pentru prima opțiune, cât de bine sau mai ușor este să filtrați după câmpuri, astfel încât pentru fiecare tip de produs să iasă filtrele?
Am încercat modulul Filtre dependente de Vizualizare împreună cu Filtrele mai bine expuse, nu funcționează, dă o eroare, ce altceva pot încerca? Sau vedeți opinii diferite pentru diferite tipuri de bunuri?
1. De fapt, el a lucrat cu un magazin în care sunt mii de bunuri și sute de atribute. Toate acestea au fost într-un singur tip de produs. Ca rezultat, avem sute de legături care ucid site-ul.
2. Opțiunea atunci când există mai multe tipuri de bunuri, dar un număr limitat de atribute. Și toate valorile atributelor sunt împinse în mai multe dicționare. Ca rezultat, dicționarul de creștere a taxonomiei, care mănâncă toată memoria php, deoarece toate tids sunt împinse în valorile permise ale câmpului. Cred că dacă câmpurile sunt text, atunci problema cu performanța va apărea mai târziu. Există un site în care există multe tipuri de bunuri și multe atribute. pentru că ele sunt textuale, nu se scufundă atât de mult. Întrebarea cu filtre fațet este rezolvată de bicicletă.
3. Acum mă uit la cea de-a 4-a opțiune și cred că ce surprize poate prezenta pe lângă evident (bicicleta pentru filtre fațete).
Prima și a doua versiune au lucrat cu crearea automată a câmpurilor și a tipurilor de materiale.
P.S.
Articolul nu are o etichetă de comerț, astfel încât să poată fi găsit.