我有一个销售定制标志的公司的 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();
}
}
有没有人遇到过这个问题并找到了一个好的解决方案?谢谢你的帮助!