在app / code / local / Mage / Catalog / Product / Type / Configurable / Price.php中,我试图获取心愿单中关联产品的属性值。我尝试了几种方法,但我似乎只能为父产品生成数据。
最新尝试
$customer = Mage::getSingleton('customer/session')->getCustomer();
if($customer->getId()) {
$wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($customer, true);
$wishListItemCollection = $wishlist->getItemCollection();
foreach ($wishListItemCollection as $wlitem) {
$wishitem = Mage::getModel('catalog/product')->setStoreId($wlitem->getStoreId())->load($wlitem->getProductId());
//echo $wishitem->getId() . '<br>';
if($product->getId() == $wishitem->getId()) { //if the current product id equals the wishlist product id
echo $wishitem->getSku()."</br>";
}
}
}
这只会让我成为父母产品的sku。我最终想要得到的是我为可配置产品添加的2个属性的属性值(不是超级属性),但看起来Price.php中的$ product只有父产品集合。
其他尝试:
$item_s = Mage::getModel('wishlist/item')->loadWithOptions($product->getId(), 'simple_product')->getOptionsByCode();
$simple_product = $item_s['simple_product']->getData();
$simple_product_id = $simple_product['product_id'];
$sim_product = Mage::getModel('catalog/product')->load($simple_product_id);
print_r($sim_product);
这只会导致页面出错。
另外:
$_item = Mage::getModel('catalog/product')->load($product->getId());
//echo $_item->getData('ppuom');
//print_r($_item);
$simpleProduct = $_item->getOptionsByCode()['simple_product']->getItem()->getProduct();
print_r($simpleProduct);
答案 0 :(得分:2)
似乎你大部分都在那里。我在Magento网站上对此进行了测试,这对我有用。实际上非常简单,你只需抓住该系列的正确型号即可。此外,您似乎正在改变定价?!?!请注意,您的愿望清单项目包含逻辑中使用的必要属性。
$_item = Mage::getModel('catalog/product')->load($product->getId());
$attribute1 = $_item->getData('attribute1_code'); //see admin for attribute code
$attribute2 = $_item->getData('attribute2_code'); //see admin for attribute code
或强>
更改模板的心愿单文件,而不是代码文件夹中的定价逻辑。您可以访问所需的所有数据,并且不会干扰price.php文件,该文件在购物车和网站的其他关键区域中非常依赖。无论如何,当愿望清单中的价格被移动到购物车时,它将重新计算。