2012-08-16 99 views
0

我的Magento網站上的一些產品具有自定義選項(不屬性)。對於一種產品有黃金或白銀可供選擇,它有一個下拉這兩個選項。 如何獲取用戶選擇顯示在購物車頁面上的產品名稱旁邊的選項名稱?在購物車中顯示Magento自定義選項值

+0

使用會話保存自定義選項並將其存入購物車。 – Kalpesh 2012-08-20 09:59:46

回答

0

負載使用下面的代碼的產品:

$product = Mage::getModel('catalog/product')->load($product_id); 

,然後讓這個自定義選項:

$options = $product->getProductOptions(); 

希望這是有幫助的,

逾越節

+0

我在cart.pthml中使用它,它不在前端顯示選項:'」><? php echo $ this - > __('Product Name')?> <?php $ product = Mage :: getModel('catalog/product') - > load($ product_id); $ options = $ product-> getProductOptions(); ?> ' – 2012-08-16 18:29:49

+0

也許它需要回顯出來 – pzirkind 2012-08-16 20:01:32

+0

產品選項是默認 – Mufaddal 2012-08-17 05:30:00

1

如果不顯示,那麼你應該試試這個。

$product = Mage::getModel('catalog/product')->load($product_id); 
$options = $product->getProductOptions(); 
foreach ($options as $option){ print_r($option->getValues()); } 

你會發現期權價值

+0

我把這段代碼放在我的循環中:default/template/checkout/cart/item/default.phtml,除了切斷剩餘的產品外,它什麼也沒做。 – 2012-09-05 23:43:05

+1

嘗試在默認/ template/checkout/cart/item/default.phtml中找到此代碼$ _options = $ this-> getOptionList(),這會爲您的購物車頁面中的產品提取選定的選項。 – Mufaddal 2012-09-06 06:24:37

4

使用下面的代碼,你可以得到的產品定製選項的值。

$productOptions= $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); 
+1

這是爲了簡單的產品選項,而不是可配置的產品正確嗎? – 2012-09-05 23:43:27

+0

我認爲這是屬性不是選項 – 2012-09-05 23:47:05

+0

你好Sam試試這可能對你有幫助! http://www.magentocommerce.com/boards/viewthread/65107/或http://www.richardcastera.com/blog/magento-add-a-product-with-custom-options-to-the-cart-through -url-querystring – drsndodiya 2012-09-06 05:03:34

7

要獲取它們被設置爲「AddtoCart的時間嘗試用下面的代碼車頁面產品定製選項的值。

$cart = Mage::helper('checkout/cart')->getCart()->getQuote()->getAllItems(); 

/* cart item loop */ 
foreach($cart as $item) { 

    /* This will get custom option value of cart item */ 
    $_customOptions = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct()); 

    /* Each custom option loop */ 
    foreach($_customOptions['options'] as $_option){ 
     echo $_option['label'] .'=>'. $_option['value']."<br/>"; 
     // Do your further logic here 
    } 
} 
+0

thnx rakesh這真的是救生員 – 2015-03-04 14:16:01

+1

我們怎麼能得到價格? – 2016-04-20 10:14:15

+0

如何獲得特定客戶? – 2016-12-21 13:09:54

2

如果選擇Mage_Catalog_Model_Product_Type_Configurable :: getOrderOptions($產品)去了別人的建議,確保你不把它在禁用產品作爲版本CE 1.9。*(可能在其他版本),這導致了一個討厭的函數調用null。除非您沒有添加從購物車中清除已禁用產品的自定義模塊,否則這可能會讓您的網站因爲每個將稍後禁用的產品添加到購物車中的客戶而崩潰。

幸運的是,如果您使用或擴展Magento的購物車項目渲染器Mage_Checkout_Block_Cart_Item_Renderer,則無需擔心。它提供了方法getOptionList()將返回所有選擇的選項數組給你,定製選項包括:

//$this = Mage_Checkout_Block_Cart_Item_Renderer 
$options = $this->getOptionList(); 

這種方法getOptionList()調用Mage_Catalog_Helper_Product_Configuration,這將是你的答案,如果你不使用Magento渲染器或者如果你想要一個只有自定義選項的列表。

這裏是你如何可以通過直接調用助手得到的選擇的自定義選項的陣列的例子:

$_item = $this->getItem(); // item can represent a simple, configurable or grouped product 
$helper = Mage::helper('catalog/product_configuration'); 

if($onlyCustomOptions){ 
    // get an array of only custom options 
    $options = $helper->getCustomOptions($_item); 
} else { 
    // get an array of configurable & custom options 
    $options = $helper->getOptions($_item); 
} 

(注:$選項將是一個空數組,如果該項目沒有選項)

+0

應該是被接受的答案,Magento方式的簡單和最佳用法 – ehretf 2017-08-01 14:48:38

相關問題