如何在Prestashop购物车中获取和使用自定义值

时间:2018-01-30 16:13:25

标签: php prestashop prestashop-1.7

我是Prestashop的新手并且不太熟悉它的结构,但我确实设法使用教程设置了一个名为quantity_step的自定义产品字段,该数据输入将用于确定步长。

在产品页面模板product-add-to-cart.tpl中,获取自定义字段{$product.quantity_step}

的值绝对没问题
<input
  type="text"
  name="qty"
  id="quantity_wanted"
  value="{$product.quantity_wanted}"
  class="input-group"
  step="{$product.quantity_step}" 
  min="{$product.minimal_quantity}"
  aria-label="{l s='Quantity' d='Shop.Theme.Actions'}"
/>

另一方面,我似乎无法在购物车模板cart-detailed-product-line.tpl中使用它:

<input
  class="js-cart-line-product-quantity"
  data-down-url="{$product.down_quantity_url}"
  data-up-url="{$product.up_quantity_url}"
  data-update-url="{$product.update_quantity_url}"
  data-product-id="{$product.id_product}"
  type="text"
  value="{$product.quantity}"
  name="product-quantity-spin"
  step="{$product.quantity_step}"
  min="{$product.minimal_quantity}"
/>

我的自定义字段返回null,而内置字段{$product.minimal_quantity}当然正在运行。

我有一种强烈的感觉,我需要在某处更改某个文件以将我的自定义值添加到{$product} - 对象,我找不到该文件,因为我不知道该找什么: (

如果有帮助,我使用classic主题。

谢谢!

2 个答案:

答案 0 :(得分:1)

当产品添加到购物车时,您应该将值保存在数据库中,并且将在postProcess()函数的CartController.php类文件中完成。

我的建议:您应该创建一个单独的数据库表来保存自定义字段的值,并保留默认的购物车和产品对象,否则您将面临一些严重的问题PrestaShop的核心功能。

答案 1 :(得分:0)

在src / Adapter / Cart / CartPresenter.php方法中查找presentProduct我认为你需要的是什么。只需在$ rawProduct ['quantity_step'] ='value'

中添加新参数即可