TL; DR : C'è qualche motivo per cui i prodotti semplici associati a un prodotto configurabile devono trovarsi nello stesso set di attributi del prodotto configurabile stesso? Voglio dire, c'è qualche motivo tecnico ? Conosco la ragione del "buon senso". Se vendi un paio di scarpe, anche tutte le versioni a seconda del colore e delle dimensioni devono essere scarpe .
Versione lunga : avevo il compito di "unire" alcuni prodotti configurabili. Voglio dire da 2 o più per fare solo uno. Non volevo farli manualmente a causa della quantità di prodotti e non volevo esaminarli$product->load(..)->set...()->save()
a causa del tempo impiegato per eseguire lo script. Quindi ho messo in corto circuito il processo perché ero sicuro che nessuno dei prodotti semplici si sovrapponesse. C'era una combinazione unica di dimensioni e colore. L'ho fatto:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
dove $simpleProductIds
è presente una matrice di tutti gli ID prodotto semplici associati a tutti i prodotti configurabili che devono essere uniti.
Questo ha funzionato perfettamente per la maggior parte dei prodotti, ma ce n'erano alcuni che presentavano problemi.
Se ho chiamato
$productIds = $product->getTypeInstance()->getUsedProductIds()
Vorrei ottenere tutti i semplici ID prodotto, ma nel backend ne sono apparsi solo alcuni. Dopo aver scavato per un po 'di tempo, ho scoperto che gli unici mostrati erano quelli nello stesso set di attributi del prodotto configurabile. L'altro set di attributi è molto simile al primo, solo alcune differenze minori ma contiene gli attributi configurabili (dimensioni e colore).
E ora la cosa strana. Nel frontend mi aspettavo di vedere tutti i prodotti ($ productIds nel codice sopra) o solo i prodotti nello stesso set di attributi. Beh, c'era qualcosa tra.
- 20 ID prodotto associati - 5 taglie, 4 colori
- 10 prodotti associati nel backend - 5 taglie, 2 colori - gli altri 2 colori (10 prodotti) erano in un set di attributi diverso
- 15 combinazioni nel frontend - 5 taglie 3 colori (???)
Sono stato in grado di risolvere il problema modificando il set di attributi per i prodotti che non venivano visualizzati, ma sono ancora perplesso.
Nota : non provarlo a casa. Oppure puoi provarlo a casa ma non su un server live.