Je l'ai résolu par sa propre méthode, pas sûr que son acceptable ou pas.send les valeurs de poste et l'ID du produit, le modèle retournera le prix.
$bundle_option = Mage::app()->getRequest()->getParam('bundle_option');
$bundle_option_array = call_user_func_array('array_merge', $bundle_option);
$price = Mage::Helper('airhotels/bundle')->getBundlePrice($productid,$bundle_option_array);
mon fichier d'aide est
public function getBundlePrice($productId,$bundle_option_array) {
$product = new Mage_Catalog_Model_Product();
$product->load($productId);
$price=0;
$selectionCollection = $product->getTypeInstance(true)->getSelectionsCollection($product->getTypeInstance(true)->getOptionsIds($product), $product);
foreach($selectionCollection as $option)
{
if (in_array($option->getSelectionId(), $bundle_option_array)){
$price += $option->price;
}
}
return $price;
}
Concept: Je construit un tableau 1-D du tableau 2-D (la question). de la fonction dans helper nous pouvons obtenir tous les id de sélection d'un produit bundle. En faisant correspondre (en utilisant in_array), nous pouvons calculer le prix de nos produits sélectionnés sur mesure.
Il y a un petit problème avec votre code, "price" ne correspondra pas toujours au prix de l'option spécifiée (par exemple, vous pouvez avoir un produit dans un bundle qui a un prix de 50 $ mais dans le bundle '' selection_price_value'' pourrait être défini sur $ 10). – mludd