如何在 Prestashop 中更改购物车中的产品名称?

How to change product name in the cart in Prestashop?

我想更改购物车中某些产品的名称。我能够更改购物车中某些产品的价格。但是我无法更改购物车中某些产品的名称。

我该怎么做?可能吗。感谢您的帮助。

为了您更好地理解,下面是 cart->getProducts() 操作的一些结果。

产品的名称,只要它们在购物车中,都是从产品对象中读取的,因此您必须覆盖 cart->getProducts()方法,如果你想动态地改变他们的名字。

但请记住,一旦购物车成为订单,产品名称就会被复制/存储在 orderDetail 对象中,您可以通过重命名“product_name"字段一旦你知道原来的 id_cart / id_order.

我用下面的代码解决了这个问题。如果你遇到这个问题,你可以自己编辑下面的代码。并且您必须在 validateOrder 函数或验证订单后执行这些操作。

        $order = Order::getByCartId($cart->id);

        $order_details = OrderDetail::getList($order->id);


        foreach ($order_details as $order_detail) {
            if ($order_detail['product_name'] === 'Installment' && (string)$order_detail['product_price'] == (string)$installment_fee) {
                $order_detail_id = $order_detail['id_order_detail'];
            }
        }

        if (!is_null($order_detail_id)) {
            $order_detail = new OrderDetail($order_detail_id);
            $order_detail->product_name = 'Changed product name';
            $order_detail->save();
        }