Odoo PoS获得订购产品

时间:2016-06-16 09:12:35

标签: javascript python openerp product point-of-sale

我正在更新Point_Of_Sale中的 update_payment_summary 功能,此功能是 PaymentScreenWidget 的一部分。 现在我想从订单行中检索产品。

我试过

var order = this.pos.get('selectedOrder');
var orderlines = order.get('orderLines').models;

但是当我打印订单时,我得到 [object Object]

我是如何获得每个订单行的产品对象的?

2 个答案:

答案 0 :(得分:2)

使用get_orderlines()函数从特定订单中获取OrderLines。

var order = this.pos.get_order();
var products = _.map(order.get_orderlines(), function (line) {return line.product; });
console.log(products);

这里我使用Underscore.js来创建产品列表。

您可以使用产品列表迭代循环,

for(var i =0; i < products.length; i++)
    console.log(products[i].id);

答案 1 :(得分:2)

是的,它有显示对象的原因。

OrderlineCollection定义。

module.OrderlineCollection = Backbone.Collection.extend({
        model: module.Orderline,
});

订单模型中的订单行定义。

orderLines:     new module.OrderlineCollection()

因此,如果您观察上面的代码,则表明订单行是 OrderlineCollection 模型的对象,当您从订单模型获得订单时,它会为您提供 OrderlineCollection 的对象。

为了识别内部对象中的内容,您可以迭代它,或者您可以从该对象打印键值。

alert(orderline.forEach(function(k,v){k + " => + v}));

或者你可以遍历订单。

for (line in orderline){
    alert(line.product_id);
}