我有一个应用程序,它是一个T恤定制器,它本身非常好用。但我需要将它整合到prestashop中。因此,在用户使用该应用程序自定义T恤后,他必须单击添加到购物车,产品将添加到购物车中,并带有自定义价格和描述。
我需要的是将此输出作为自定义产品注入PrestaShop购物车,其中包含所有自定义信息以及生成的自定义产品图片,以显示在购物车中的详细信息旁边。
所以我已经完成了定制工具,我已经为Prestashop制作了一个自定义模块和页面,但我不知道如何将它与购物车集成。我的prestashop知识是有限的。
我该怎么做?
答案 0 :(得分:2)
在CartController.php
$this->context->cart->addTextFieldToProduct($this->id_product, $r["id_customization_field"], Product::CUSTOMIZE_TEXTFIELD, Tools::getValue('product_description'));
然后您只在自定义字段中保存自定义说明。但是,如何更改此定制的价格?
当然,您必须覆盖getPriceStatic
文件中的product.php
方法才能重新计算自定义价格。但是还有另一个问题:如果客户将相同的产品添加到购物车中但具有不同的定制和不同的定制价格会怎么样?
不同的自定义文本由您使用的方法处理,因此正确添加到购物车,但不同的价格计算只会覆盖第一个自定义价格,因为两个自定义都与同一产品相关联。
答案 1 :(得分:0)
我做了类似的事情。这是我处理它的方式。
我的模块独立工作。我通过定制器模块中的对象模型在数据库中存储了自定义。每个自定义都有一个ID。
Prestashop为每种产品提供定制服务。我在产品页面上将其隐藏在客户之外,但我用它来存储自定义的ID。这样,您就可以在购物车中看到每个自定义产品的自定义ID。
我在Cart对象中使用了_addCustomization方法来存储自定义ID。这是一个小例子:
$context = Context::getContext();
$result = $context->cart->_addCustomization($id_product, $id_product_attribute, 1, 1, $id_customization, 1);
希望我足够清楚。
这会帮助你吗?