Мне нужно экспортировать все товары с ценами из Magento 1.7.
Для простых продуктов это не проблема, но для конфигурируемых продуктов у меня есть такая проблема: экспортируемая цена - это цена, установленная для соответствующего простого продукта! Как вы знаете, Magento игнорирует эту цену и использует цену конфигурируемого продукта плюс корректировки для выбранных опций.
Я могу получить цену на родительский продукт, но как рассчитать разницу в зависимости от выбранных опций?
Мой код выглядит примерно так:
foreach($products as $p)
{
$price = $p->getPrice();
// I save it somewhere
// check if the item is sold in second shop
if (in_array($otherShopId, $p->getStoreIds()))
{
$otherConfProd = Mage::getModel('catalog/product')->setStoreId($otherShopId)->load($p->getId());
$otherPrice = $b2cConfProd->getPrice();
// I save it somewhere
unset($otherPrice);
}
if ($p->getTypeId() == "configurable"):
$_associatedProducts = $p->getTypeInstance()->getUsedProducts();
if (count($_associatedProducts))
{
foreach($_associatedProducts as $prod)
{
$p->getPrice(); //WRONG PRICE!!
// I save it somewhere
$size $prod->getAttributeText('size');
// I save it somewhere
if (in_array($otherShopId, $prod->getStoreIds()))
{
$otherProd = Mage::getModel('catalog/product')->setStoreId($otherShopId)->load($prod->getId());
$otherPrice = $otherProd->getPrice(); //WRONG PRICE!!
// I save it somewhere
unset($otherPrice);
$otherProd->clearInstance();
unset($otherProd);
}
}
if(isset($otherConfProd)) {
$otherConfProd->clearInstance();
unset($otherConfProd);
}
}
unset($_associatedProducts);
endif;
}
источник