私はmagento 1.7を使用しています。
Magentoで広告モジュールを作ろうとしています。
ユーザーは広告を製品として投稿でき、注文を支払ったときに広告 (製品) を有効にしたいと考えています。そのために、sales_order_invoice_save_after を聞いています。すべてが機能しますが、イベント リスナーで製品を保存しようとすると、保存機能が例外をスローします。
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
私の関数は次のようになります:
public function onInvoiceSaveAfter(Varien_Event_Observer $observer)
{
$event = $observer->getEvent();
$invoice = $event->getInvoice();
switch($invoice->getState())
{
case Mage_Sales_Model_Order_Invoice::STATE_PAID :
{
$order = $invoice->getOrder();
$items = $order->getAllItems();
//Update the product
$product = Mage::getModel('catalog/product')->load($item->getEntityId());
$product->setAdEndDate('2015-10-10 00:00:00');
$product->getResource()->saveAttribute($product, 'ad_end_date'); //Throws exception
}
}
誰でも私を助けてもらえますか?
どうすればそれを達成できますか?