Se si sta in realtà utilizza l'oggetto di Magento (non l'API), questi sono i comportamenti che ho trovato. Speriamo che l'applicazione abbia senso, indipendentemente da come stai acquisendo i dati.
// 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();
In questo esempio, sostituirebbe tutti i prezzi di gruppo precedenti per il prodotto, quindi in modo saggio.
$product->setData('group_price',array());
$product->save();
rimuoverà i prezzi di gruppo.
Un altro comportamento che ho notato relativo all'impostazione dell'id del negozio sul prodotto che si sta aggiornando causerà l'aggiunta del prezzo del gruppo. In questo modo se stai caricando un gruppo di prezzi di gruppo per un negozio specifico, non devi preoccuparti di perdere il set di prezzi di gruppo contro un altro negozio.
// 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();
Questo è conveniente se avete a che fare con lotti di pricing gruppo su un singolo negozio, ma non quello di influire su altri prezzi negozi del gruppo. Non so se questo è il meccanismo più semplice, ma ha funzionato finora per me.
Questa risposta non è molto utile. Dove passare quell'array, perché se utilizzo alcuni metodi API dei prodotti, ignora l'array dei prezzi di gruppo, mentre salva l'array dei prezzi di livello, che è configurato in modo simile. – feeela