2

Mageを使用してMagentoの顧客グループの価格を更新しようとしています(SOAP V2 APIで更新する方法が見つからないため)。StackOverflowの例を見つけましたが、うまくいきません。私が使用しているコードは次のとおりです。

<?php
  include_once '../App/Mage.php';
  Mage::app();

  $productID = $_GET["id"];
  $product = Mage::getModel('catalog/product')->load($productID);


  $groupPricingData = array(array('price_id'=>1,'website_id'=>0, 
                                'cust_group'=>3, 'price'=>666));


  $product->setData('group_price',$groupPricingData);
  $product->save();

  echo "true"; 

?>

顧客価格がすでに設定されている製品を使用すると、次のエラーが発生します。既存の価格のない製品を試してみると、エラーは発生しませんが、顧客グループの価格は作成されません。

SCREAM: Error suppression ignored for 
( ! ) Fatal error: Uncaught exception 'Mage_Eav_Model_Entity_Attribute_Exception' with
message 'SQLSTATE[23000]: Integrity constraint violation: 1062
Duplicate entry '24-0-3-0' for key 'CC12C83765B562314470A24F2BDD0F36'' in      
C:\wamp\www\magento\app\code\core\Mage\Core\Model\Config.php on line 1348 
( ! ) Mage_Eav_Model_Entity_Attribute_Exception: SQLSTATE[23000]: 
Integrity constraint violation: 1062 Duplicate entry '24-0-3-0' for   
key 'CC12C83765B562314470A24F2BDD0F36' in    
C:\wamp\www\magento\app\code\core\Mage\Core\Model\Config.php on line 1348 
4

2 に答える 2

1

マグミグループの価格には、この拡張機能を使用してみてください。

https://github.com/tim-bezhashvyly/magmi-grouped-price-plugin

于 2013-03-18T12:00:01.020 に答える
1

Magento製品レコードのグループ価格を適切に「更新」する方法についての回答をWebで探していましたが、失敗しました。Magentoのソースコードを注いでも、私はどこにも行きません。ただし、このエラーが発生しないように、既存のグループ価格をクリアする方法について2つの解決策を見つけました。

1-既存のグループ価格データを削除するための直接SQLクエリ

$coreResource = Mage::getSingleton('core/resource');
$conn         = $coreResource->getConnection('core_write');
$table_name   = $coreResource->getTableName('catalog_product_entity_group_price');
$conn->delete($table_name, array('entity_id = '.$product->getId()));

2-製品のグループ価格を空に設定し、製品を保存します。

$product->setData('group_price', array())->save();

グループ価格データを設定して製品を保存する前にこれらのいずれかを実行すると(両方を実行する必要はありません)、製品の既存のグループ価格が効果的に削除されるため、整合性制約違反を回避できます。アプローチ1は、通常、直接SQLクエリを作成せず、代わりにモデルクラスに依存して、このロジックをカプセル化するためのメソッドを既に構築しているため、大雑把に感じますが、私のテスト環境(Magento 1.9)では機能します。アプローチ2の方が安全に思えるかもしれませんが、既存のグループ価格を更新/削除するだけで製品レコード全体が保存されるため、リソースを大量に消費します。さらに、既存のグループ価格を「削除するために節約」しているため、冗長な節約が必要です。

グループ価格データも「catalog_product_index_group_price」に保存されるため、後で製品価格のインデックスを再作成することをお勧めします。

于 2014-07-23T17:00:47.720 に答える