根据所选自定义选项的值,在Magento中设置简单产品的自定义重量
我有一个Magento网站,为一家销售定制标志的公司提供服务。我设置了自定义选项,以便客户可以选择他们需要的材料和尺寸。我的问题是,我需要能够根据选择的材料和尺寸动态计算标志的重量。我已经用javascript计算了权重,现在我正试图使用checkout\u product\u add\u after事件将其传递给Magento 我已经设置了一个名为Weight的自定义选项,它是一个文本输入字段。我用javascript隐藏输入字段,并传入计算出的权重。我可以使用自定义模块访问重量,并使用setWeight()方法设置重量,但是当我进行结账时,重量没有更新,运费也没有更改。我试着在报价单和产品上设置权重,但都不起作用 以下是my Observer.php文件中的代码:根据所选自定义选项的值,在Magento中设置简单产品的自定义重量,magento,Magento,我有一个Magento网站,为一家销售定制标志的公司提供服务。我设置了自定义选项,以便客户可以选择他们需要的材料和尺寸。我的问题是,我需要能够根据选择的材料和尺寸动态计算标志的重量。我已经用javascript计算了权重,现在我正试图使用checkout\u product\u add\u after事件将其传递给Magento 我已经设置了一个名为Weight的自定义选项,它是一个文本输入字段。我用javascript隐藏输入字段,并传入计算出的权重。我可以使用自定义模块访问重量,并使用set
<?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();
}
}
看一看@
我想您可能需要将商店id设置为Admin
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
您是否考虑过多个客户在几秒钟内购买同一商品的可能性,第一个人可能/将获得最后一个人的重量,或者如果客户在结账时更改zipcode并需要重新计算发货量
我认为您可以做的是创建一个定制的装运模块(通过扩展当前模块),然后为每个行项目添加一个定制重量,并使用此定制重量来帮助计算装运成本
看看@将店铺id设置为Admin确实有效!不过,我没有想到你提出的问题。如果我设置报价项而不是产品的权重,是否会遇到同样的问题?使用为订单行项目添加自定义字段的发布解决方案,我假设需要设置报价项目而不是产品的权重,对吗?谢谢你的帮助!报价是按订单报价的,不是每个人都喜欢的全局产品,所以您不应该有这个问题