で利用可能です。うまくいけば、データをどのように取得しているかにかかわらず、アプリケーションは理にかなっています。
// get my product
$product = Mage::getModel('catalog/product')->load(x);
// the group data is expecting an array of arrays that look like..
// array ('website_id'=>y, 'cust_group'=>z, 'price'=>n)
$groupPricingData = array (
// for website 2, customer group 2
array ('website_id'=>2, 'cust_group'=>2, 'price'=>10),
// for all websites, not logged in
array ('website_id'=>0, 'cust_group'=>0, 'price'=>15)
);
$product->setData('group_price',$groupPricingData);
$product->save();
この例では、以前のすべてのグループ価格設定を置き換えるため、賢明に賢明です。
$product->setData('group_price',array());
$product->save();
はグループ価格設定を削除します。
更新している製品の店舗IDを設定することに関連して気づいた別の動作では、グループ価格が追加されます。この方法で、特定の店舗のグループ価格設定をアップロードしている場合、別の店舗に対して設定されたグループ価格設定を失うことを心配する必要はありません。
// add a pricing to store 4
$product = Mage::getModel('catalog/product')->setStoreId(4)->load(1234);
$product->setData('group_price',array (
array (
"website_id" => 3,
"cust_group" => 4,
"price" => 99
)));
$product->save();
// add a pricing to store 1
$product = Mage::getModel('catalog/product')->setStoreId(1)->load(1234);
$product->setData('group_price',array (
array (
"website_id" => 1,
"cust_group" => 2,
"price" => 105
)));
$product->save();
// remove group pricing from store 2
$product = Mage::getModel('catalog/product')->setStoreId(2)->load(1234);
$product->setData('group_price',array());
$product->save();
これにより、1つのストアでのグループの価格設定のバッチを扱っている場合には便利ですが、他の店舗のグループの価格設定に影響を与えることはありません何。私はこれが最も単純なメカニズムであるかどうかは分かりませんが、これまでのところ私のために働いています。
この回答は役に立ちません。その配列を渡す場所は、いくつかの製品APIメソッドを使用するとグループ価格配列を無視し、同じように設定されたティア価格配列を保存するためです。 – feeela