Buonasera

vorrei richiedere il vostro supporto per la risoluzione di un problema che mi sta facendo perdere tanto ma tanto tempo (oltre che pazienza).

Sto sviluppando un sito e-commerce con drupal utilizzando il modulo commerce di drupal.

Ho diversi articoli di cui devo inserire delle varianti (esempio numero, taglia, colore).

Ogni prodotto fortunatamente ha solo una possibile variante, o ha il numero o la taglia o il colore.

L'unico modo che ho trovato per far funzionare correttamente la variante è inserire un field (field_varianti) nel Line Item Type come tipo Elenco(testo) in cui ho elencato tutte le possibili varianti e ho spuntato la selezione "Enable this field to function as an attribute field on Add to Cart forms."

In questo caso mi viene riportato il field_varianti su ogni prodotto con tutte le varianti e l'aggiunta dell'articolo al carrello funziona correttamente.

Il problema è che io vorrei far visualizzare il field_varianti solo sui prodotti che hanno varianti e solo le varianti relative all'articolo.

Così ho creato un altro campo field_varianti2 nel Product Type. in questo caso quando inserisco un Product seleziono solo le varianti che voglio visualizzare con l'articolo relativo (ma non si aggiungono al carrello e non sono associate al campo field_varianti).

Non ho trovato nessun modo di collegare i due campi o far funzionare field_varianti2 come il campo creato nel Line Item Type.

Ho provato una piccola scappatoia ovvero aggiungere una funzione in cck.module

function cck_prova($entity_type, $entity, $field, $instance, $form_state) {

$pro = $instance->data['context']['product_ids'][0];

 $sql = "SELECT field_variantiproduct_value FROM field_data_field_variantiproduct WHERE entity_id =".$pro;
    $rows = db_query($sql, array());

    foreach ($rows as $row) {
        $options[$row->field_variantiproduct_value] = t($row->field_variantiproduct_value);
    }

if(isset($options)){
return $options;
}
else return;

}

Seleziona l'id dell'articolo, esegue una query per trovare quali sono le varianti di quell'articolo e le inserisce in un array da restituire che sostituisce il contenuto di field_varianti.

Fa un 'ciclo' su tutti i prodotti visibili nella pagina se l'articolo non ha varianti continua, appena trova il primo che ha varianti esegue la return e mi riporta le stesse varianti sui successivi articoli (anche se magari non ne hanno).
Se non metto la return ovviamente non mi riporta niente.

Non so come uscirne.

Ringrazio in anticipo per l'aiuto.

E se avete altre idee ben accette.

Grazie

Luca