2012-11-07 51 views
0

我想一些(但不是全部)的價格從一個商店更新到另一個。例如,一行襯衫應該是第二家商店的價格的1.2倍Magento的 - 更新價格腳本 - 多個商店

我想更新一些項目組,只是基於實體標籤,但我一直在努力從magento提取所有數據(我可以提供什麼拿出下面的代碼)。我缺少的是價格和實體標籤。我知道他們住的是什麼桌子,但不確定訪問它們的正確magento語法,例如Mage :: getModel('catalog/product'),我試圖用Magento友好代碼實現這一點,而不是查詢

使用企業1.11沒有看在這個階段購買插件,任何意見極大的讚賞

$mageFilename = 'app/Mage.php'; 
require_once $mageFilename; 
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); #important 
$product_id = '8782'; 
$collection = Mage::getModel('catalog/product') 
     ->load($product_id); 
     echo "Collection: " . $collection->getName(); 
     echo "<br>"; 
     echo "Attribute Set: " . $collection->getAttributeSetId() . " SKU: " . $collection->getSku(); 
     echo "<br>"; 
     echo "Entity ID: " . $collection->getEntity_id() . " Product Type (Attribute Label): " . $collection->getProducttype(); 

回答

3

只是澄清:

在你顯示的示例中,$集合對象是不是一個真正的「收藏」。 這是一個「目錄/產品」對象的實例。

要修改一個目錄/產品對象的價格,你會看做這樣的事情:

$product = Mage::getModel('catalog/product')->load($product_id); 
$product->setPrice($product->getPrice() * 1.2) 
     ->save(); 

如果你想這樣做了一堆的產品,你可能會想使用 '目錄/產品的對象的集合,並且適用於一些屬性過濾器(其歸結爲添加 WHERE子句的最終生成的SQL)。 (Here's one summary的magento收集查詢 語法。)

我不確定你的意思是「實體標籤」。這是您附加到產品的自定義屬性嗎?

一般的例子,將這種價格變化的所有產品具有一定的SKU:

$product_collection = Mage::getModel('catalog/product')->getCollection() 
                 ->addAttributeToFilter('sku', array('like' => 'FOO01-%')); 

foreach($product_collection as $product) { 

    $new_price = calcNewPrice($product->getPrice()); 
    $product->setPrice($new_price) 
      ->save(); 

}  

在哪裏,如果你整個商店去爲價格Calcs(計算),「calcNewPrice」可能是這個樣子:

function calcNewPrice($product) { 
    $other_store_product = Mage::getModel('catalog/product')->setStoreId($other_store_id) 
                  ->load($product->getId()); 
    if ($other_store_product) { 
     return $other_store_product->getPrice() * 1.2; 
    } 
    // else ??? 
} 

希望這有助於。

+0

謝謝,讓我走近3步。我的意思是屬性標籤,而不是實體,很抱歉,它在後端的Catalog/Attributes/manage屬性中找到。 它存在於表eav_attribute_option_value和價值的標題下,如果我可以訪問這些數據,我可以用它作爲一組進行編輯的價格 非常感謝您的幫助迄今爲止 –

+0

發現了2個值我一直在尋找拖網後論壇,原來這返回正確的值 回聲「屬性文本:」。 $ collection-> getAttributeText('producttype')。 「選項ID:」。 $收藏 - >的getData( 'producttype'); 在這裏,我希望用getAttributeText找到的產品組,使用相應的選項代碼,隨着catalog_product_index_eav錶店鋪ID匹配它得到ENTITY_ID和使用這些valuse來更新catalog_product_entity_decimal表的價格。 任何人都可以看到任何潛在的問題? –

+0

他們有任何方式更新/創建每個網站或每個商店的數量? – Kailas