2015-08-19 40 views
0

我已在名为obs的ps_cart_product中创建了一个新字段。当客户将产品添加到购物车时,如果产品符合某些预先定义的标准,则会从ps_cart_product获取更多的附加信息。从Prestashop后台的订单详细信息中获取数据库值

在这一点上,所有的作品完美。

现在我试图从backoffice中的订单详细信息中收到obs字段的值,但没有成功。我打印了smarty数组$产品,但找不到obs字段。我在哪里可以找到正确的数据库查询,以便我可以添加自定义字段?

感谢您的时间和合作。

回答

1

为了从购物车产品中检索“obs”列,您必须编辑(或覆盖)/classes/Cart.php中的Cart-> getProducts()方法。

此方法包含一个SQL查询:

$sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, pl.`name`, p.`is_virtual`, [...] 

简单地增加 “cp.obs,” 应该做的工作。

您可能还想检查Order类(/classes/order/Order.php)中的getProducts()和getProductsDetail()。

+0

完美!谢谢。我编辑了/classes/Cart.php并添加了 'LEFT JOIN'._DB_PREFIX _。'cart_product cp ON(cp.id_product = p.id_product AND ps.id_shop = od.id_shop)' getProductsDetail函数。现在我可以使用smart数组和obs数据。还有一个问题。你知道prestashop在ps_order_detail表中插入数据的位置吗?我也想在这个表上添加一个自定义字段。非常感谢您的帮助 –

+1

是的,在/classes/PaymentModule.php中,在validateOrder()方法中搜索“//使用购物车为当前订单插入新的订单明细列表”。 –

+0

感谢布鲁诺。你的帮助非常有用。不幸的是,我仍然无法找到查询部分。 –

相关问题