Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据所选自定义选项的值,在Magento中设置简单产品的自定义重量_Magento - Fatal编程技术网

根据所选自定义选项的值,在Magento中设置简单产品的自定义重量

根据所选自定义选项的值,在Magento中设置简单产品的自定义重量,magento,Magento,我有一个Magento网站,为一家销售定制标志的公司提供服务。我设置了自定义选项,以便客户可以选择他们需要的材料和尺寸。我的问题是,我需要能够根据选择的材料和尺寸动态计算标志的重量。我已经用javascript计算了权重,现在我正试图使用checkout\u product\u add\u after事件将其传递给Magento 我已经设置了一个名为Weight的自定义选项,它是一个文本输入字段。我用javascript隐藏输入字段,并传入计算出的权重。我可以使用自定义模块访问重量,并使用set

我有一个Magento网站,为一家销售定制标志的公司提供服务。我设置了自定义选项,以便客户可以选择他们需要的材料和尺寸。我的问题是,我需要能够根据选择的材料和尺寸动态计算标志的重量。我已经用javascript计算了权重,现在我正试图使用checkout\u product\u add\u after事件将其传递给Magento

我已经设置了一个名为Weight的自定义选项,它是一个文本输入字段。我用javascript隐藏输入字段,并传入计算出的权重。我可以使用自定义模块访问重量,并使用setWeight()方法设置重量,但是当我进行结账时,重量没有更新,运费也没有更改。我试着在报价单和产品上设置权重,但都不起作用

以下是my 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();

  }
}
看一看@

我想您可能需要将商店id设置为Admin

Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
您是否考虑过多个客户在几秒钟内购买同一商品的可能性,第一个人可能/将获得最后一个人的重量,或者如果客户在结账时更改zipcode并需要重新计算发货量

我认为您可以做的是创建一个定制的装运模块(通过扩展当前模块),然后为每个行项目添加一个定制重量,并使用此定制重量来帮助计算装运成本


看看@

将店铺id设置为Admin确实有效!不过,我没有想到你提出的问题。如果我设置报价项而不是产品的权重,是否会遇到同样的问题?使用为订单行项目添加自定义字段的发布解决方案,我假设需要设置报价项目而不是产品的权重,对吗?谢谢你的帮助!报价是按订单报价的,不是每个人都喜欢的全局产品,所以您不应该有这个问题