如何从地址拦截器更改一个订单的 OrderStatus? Hybris 商业

How to change the OrderStatus of one Order from an Address Interceptor? Hybris Commerce

我在 Hybris Commerce 自定义项目中工作,这是我的案例:

1 - 我有一个 Interceptor 用于 AddressModel,当我插入或更新时它是 运行。

2 - 当我更新地址中的值时,我必须更改 Order.Status 值。

如果有人知道如何从 Address 获取 de OrderModel 来设置一个值,那就太好了!

在您的地址拦截器中,抓住 OrderModel 并使用模型服务来保存您的订单模型对象。

类似于modelService.save(order);

如果订单是地址的所有者,您可以通过addressModel.getOwner()从地址模型中获取所有者订单的句柄。否则,您可以选择使用 flexibleSearch.getModelByExample 或启动自定义灵活查询从数据库加载它。

希望对您有所帮助!

注意:Hybris 在订单创建期间将订单作为所有者保存到 Addeess 中。因此,可以通过调用 orderModel.getOwner() 来获取订单的交货或付款地址。

我的解决方案是..

 OrderModel orderModel = (OrderModel) addressModel.getOwner();

铸造你可以获得完整的对象并改变状态。我在设置我的值后保存它,使用模型服务:

orderModel.setValue(true);
modelService.save(orderModel);

谢谢大家!