Jeśli rzeczywiście korzystania z obiektu (nie magento API), są to zachowania znalazłem. Mam nadzieję, że aplikacja ma sens, niezależnie od tego, w jaki sposób pozyskujesz dane.
// 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();
W tym przykładzie zastąpiłoby to wszystkie poprzednie ceny grupowe dla produktu, więc jak mądry.
$product->setData('group_price',array());
$product->save();
spowoduje usunięcie wyceny grupy.
Inne zachowanie, które zauważyłem w związku z ustawianiem identyfikatora sklepu w aktualizowanym produkcie spowoduje dodanie ceny do grupy. W ten sposób, jeśli przesyłasz pakiet cen grupowych dla określonego sklepu, nie musisz się martwić o utratę zestawu cen grupowych względem innego sklepu.
// 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();
Jest to wygodne, jeśli masz do czynienia z partiami cen grupowych w jednym sklepie, ale nie ma to wpływu na ceny innych grup sklepów. Nie wiem, czy to najprostszy mechanizm, ale jak dla mnie zadziałało.
Ta odpowiedź nie jest bardzo pomocna. Gdzie to zrobić, przekaż tę tablicę, ponieważ jeśli użyję niektórych metod API produktów, to zignoruje ona tablicę cen grupowych, a jednocześnie zapamiętuje tablicę cen poziomów, która jest podobna. – feeela