Prestashop定制/计算产品价格

Bri*_*esh 6 prestashop prestashop-1.5

我有帆布横幅印刷网站.我希望客户输入宽度和高度,并使用我自己的自定义表格,我正在计算和显示价格.现在我想将计算价格移动到购物车,然后从那里移动到订单生成.我已经检查了购物车的prestashop表,但它正在存储产品ID并加入Products表以获取价格.反正有没有达到我的要求?

Alt*_*ain 3

默认情况下,prestashop 中不提供此功能,目前我不知道有任何模块可以在不超载核心功能的情况下实现此功能。我只为您提供理论和一些文件参考。请尝试一下。

让我们考虑以下一般假设:

a) 测量单位为英寸。

b) 每英寸价格为 5 美元

c) 您还需要一个价格计算公式,在本例中,它是

finalPrice = width x height x 5  //width and height are formula variables
Run Code Online (Sandbox Code Playgroud)

现在对于 prestashop 您可以执行以下步骤:

1)更新购物车表并添加三个字段:宽度、高度和最终价格。(字段数量可能会根据您的公式变量而有所不同。)

2) 重载购物车类并添加宽度、高度和 Final_price 属性。此外,您还需要重写从购物车中获取所有产品的方法,并检查购物车产品是否具有自定义价格或宽度和高度。所有税费、运费也可以在那里应用。

3)如果您使用ajax添加到购物车功能,那么您将需要稍微修改blockcart模块。您可能需要修改 ajax-cart.js 以获取宽度、高度和最终价格值以发布到购物车控制器。此外,blockcart-json.tpl 可能需要一些修改,因为此文件用于填充购物车块内容。此外,您可能需要修改 blockcart.tpl 文件,您可以在其中显示 blockcart 中的宽度和高度等。这样您就可以在 blockcart 中显示变量。

4)现在下一步是将产品添加到购物车。数据已发布到 CartController,因此您需要覆盖它,并从发布的数据接收宽度、高度和最终价格。您需要进行适当的检查,检查宽度、高度和最终价格是否可用,以检测自定义价格产品。

5) 您需要重写 OrderController 以使用宽度、高度和最终价格填充购物车页面产品列表。

6) 在所有上述理论中,我们已将产品添加到购物车,并使用宽度、高度和最终价格数据填充块车和购物车页面。现在下一步是完成订单。为此,您需要使用订单类、订单控制器和购物车类。和 order_product 表。在订单产品表中添加与 cart_products 表相同的字段,用于宽度、高度和最终价格。然后修改订单类并将这些属性添加到订单类中。

7) 您将需要重写 PaymentModule 类并在 validateOrder 方法中进行更改。此方法处理订购步骤中的最后一步,保存订单,向客户以及站点管理员(如果启用)发送电子邮件。因此,您需要在订单产品数据库插入代码中添加宽度、高度和最终价格信息。此外,您还需要将这些变量提供给电子邮件模板,以便客户也可以在电子邮件中获取产品的宽度、高度和最终价格。

8) 您还需要修改订单历史记录部分,以便客户也可以在他/她的订单历史记录中看到所有这些详细信息。

9) 您需要在管理订单控制器中进行更改,以便在管理员的订单视图部分中显示这些数据。

10) 最后(实际上不是最终的:P),您需要在 pdf 发票生成中进行更改,以便宽度、高度和最终价格也显示在 pdf 发票中。

注意:以上理论是根据我在 prestashop 中使用类似功能的经验得出的,根据您的要求,可能对您有用,也可能对您不起作用

试试这个,我希望你能成功:) ..

祝你好运...