Ben c'est pas magique non plus Il suffit pas de mettre une valeur quelque part dans $product pour que le système l'utilise.
Pour changer la valeur par défaut des caractéristiques, il va falloir faire comme ceci:
foreach( $this->element->main->characteristics as $key => $charac){
$new_default = 0;
foreach($characteristic->values as $k => $value){
if($value->characteristic_value==$_GET["couleur"]) $new_default = $value->characteristic_id;
}
if( $charac->characteristic_value=='Couleur coffret') $this->element->main->characteristics[$key]->default->characteristic_id = $new_default;
}
où 'Couleur coffret' est le nom de la caractéristique et 'bleu' un des valeurs.
Et ca c'est uniquement pour la valeur du dropdown. Pas pour l'affichage des informations où le bouton ajouter au panier...
Par contre, la manière standard pour que cela fonctionne correctement tout seul, c'est qu'au lieu de rajouter ?COULEUR=bleu dans votre URL, vous changez le &cid=XXX (où XXX est l'id du produit) en &cid=YYY (où YYY est l'id de la variante souhaitée).
Si par exemple la variante bleu a l'id 45, il faudra faire &cid=45 dans l'URL.
Vous pouvez retrouver les id des variantes e vos produits via le bouton "gérer les variantes" lorsque vous éditez un produit avec une caractéristique.