我是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
主题。
谢谢!
答案 0 :(得分:1)
当产品添加到购物车时,您应该将值保存在数据库中,并且将在postProcess()函数的CartController.php类文件中完成。
我的建议:您应该创建一个单独的数据库表来保存自定义字段的值,并保留默认的购物车和产品对象,否则您将面临一些严重的问题PrestaShop的核心功能。
答案 1 :(得分:0)
在src / Adapter / Cart / CartPresenter.php方法中查找presentProduct我认为你需要的是什么。只需在$ rawProduct ['quantity_step'] ='value'
中添加新参数即可