
Dopo una giornata di vane ricerche su google per trovare una soluzione ad un problema importante per CPL Fabbrika come era l'impossibilità di dare un ordine personalizzato ai prodotti figlio in virtuemart ho pensato di fare da me...
L'unica soluzione quasi utile che avevo trovato era quella di ordinare i prodotti per SKU (codice prodotto) in una query di ricerca, aggiungendo al codice prodotto di ogni prodotto figlio un attributo ordinabile. Visto che gli SKU nel nostro caso derivano direttamente dal software gestionale e non sono modificabili e non erano stati pensati per questo scopo si è dovuta trovare un'altra strada... beh niente di più semplice.. ho aggiunto manualmente un campo alla tabella jos_vm_product chiamandolo taglie, usando un editor sql (sequel pro), ho poi assegnato un valore numerico corrispondente alla posizione che il singolo prodotto figlio avrebbe dovuto assumere e ho aggiunto alle query di ricerca nel file ps_product_attribute.php la chiave di ordinamento per TAGLIA crescente.
Vediamo nel concreto problema e soluzione:
Problema
- Prodotto padre Maglietta
- Prodotto figlio taglia L
- Prodotto figlio taglia M
- Prodotto figlio taglia S
- Prodotto figlio taglia XL
Soluzione
- Prodotto padre Maglietta
- Prodotto figlio taglia L -> taglia 3
- Prodotto figlio taglia M -> taglia 2
- Prodotto figlio taglia S -> taglia 1
- Prodotto figlio taglia XL -> taglia 4
e nelle 4 occasioni in cui compare questa query:
"SELECT product_id,product_name FROM #__{vm}_product WHERE product_parent_id='$product_id' AND product_publish='Y'";
l'ho sostituita con:
"SELECT product_id,product_name FROM #__{vm}_product WHERE product_parent_id='$product_id' AND product_publish='Y' ORDER BY taglia ASC, product_sku ASC" ;
Ammetto che non è una soluzione molto pulita ma per il poco tempo a disposizione è stata decisamente la migliore che abbia trovato. Se avete risolto in altro modo fatemelo sapere!!!