カスタム看板を販売する会社の Magento サイトを持っています。お客様が必要な素材とサイズを選択できるように、カスタムオプションを設定しています。私の問題は、選択した素材とサイズに基づいて看板の重量を動的に計算できる必要があることです。javascript を使用して重量を計算しましたが、checkout_product_add_after イベントを使用して Magento に渡そうとしています。
テキスト入力フィールドである Weight というカスタム オプションを設定しました。入力フィールドを JavaScript で非表示にし、計算された重みを渡します。カスタム モジュールで重量にアクセスし、setWeight() メソッドを使用して重量を設定できますが、チェックアウトに進むと、重量が更新されておらず、配送料も変更されていません。見積もりアイテムと製品の両方に重量を設定しようとしましたが、どちらも機能しません。
私の Observer.php ファイルのコードは次のとおりです。
<?php
class XM_CustomWeight_Model_Observer {
public function set_custom_weight($observer) {
$event = $observer->getEvent();
$product = $event->getProduct();
$options = $product->getCustomOptions();
$last = end($options);
$weight = $last->getValue();
$product->setWeight($weight);
$product->save();
}
}
誰かがこの問題に遭遇し、良い解決策を見つけたことがありますか? 助けてくれてありがとう!