Prestashop 产品自定义 - 保存到购物车
Posted
技术标签:
【中文标题】Prestashop 产品自定义 - 保存到购物车【英文标题】:Prestashop Product Customizations - Saving To Cart 【发布时间】:2016-04-03 14:14:31 【问题描述】:Prestashop 1.6
我创建了一个向产品页面添加表单的模块。我使用 prestashop 模块生成器创建了一个基本的基本模块。除了通过钩子将表单添加到产品页面之外,它什么也不做。
我正在使用默认引导主题。
该表单是通过一个 .tpl 文件生成的,该文件基于产品所属的类别(即,如果它属于 A 类,则显示表单 A)。表单如下所示:
<form id="engraving_selection">
<h3>Engraving Options</h3>
<input type="radio" name="engraving" value="Engrave-Different" id="engrave_different" checked="checked">Unique engraving for each item<br />
<input type="radio" name="engraving" value="Engrave-Same" id="engrave_same">The engraving would the same on each item<br />
<input type="radio" name="engraving" value="No-Engraving" id="no_engraving">I would not like engraving<br />
</form>
<form id="engraving_options">
<h4>Engraving Text</h4>
<div id="items">
<div class="item" data-position="1">
<h4 id="engraving-item">Item 1</h4>
<label>Engraving Line 1: </label>
<input type="text" class="engraving-input" name="line1-trophy" id="item1">
<br />
<label>Engraving Line 2: </label>
<input type="text" class="engraving-input" name="line2-trophy" id="item1">
<br />
<label>Engraving Line 3: </label>
<input type="text" class="engraving-input" name="line3-trophy" id="item1">
<br />
</div>
</div>
</form>
表单是一系列无线电输入,后跟 3 个文本输入。如果用户更改数量,则通过 javascript 相应地添加额外的 3 个输入(因此,如果用户将数量更改为“2”,则每个产品上会出现 2 个 3 个输入的集合)。
我想要一些关于保存这些输入和用户在用户单击“添加到购物车”时输入的信息的指导,以便以后(在用户结帐之前)可以检索/编辑它。
一些研究让我想到了 ajax-cart.js 和这个函数:
add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist)
传递该数据以便保存/检索的最佳方法是什么?
最终我希望它包含在订单中(显然)并与该订单一起保存到数据库中以供将来使用。
我知道插件 Attribute Wizard Pro 存在 - 但我希望扩展我的知识并自己制作一些东西。
如果有其他更清洁/更容易的方法来解决这个问题,我也愿意接受这些建议。
【问题讨论】:
【参考方案1】:您可以创建一个全新的解决方案,但这需要很长时间和很多行代码。
最好的选择是使用 Prestashop 内置产品 Customization 选项。
-
转到后台并选择一个
Product
Edit
> Customization
选项卡。
添加Text fields
编号,您认为该编号可以是一个产品的最大值。
在您的产品页面添加一些javascript
隐藏/显示这些文本字段输入(因为它们在默认情况下都是可见的)。
您可以将javascript
代码添加到:
themes/[your-theme]/product.js
文件(首选) - 它只会在产品页面上加载,
themes/[your-theme]/js/autoload/[any-file-name].js
- 它将加载到所有页面上。
请务必添加错误的免费代码:)
完成!
【讨论】:
感谢您的回答。我熟悉产品定制,但我需要的不仅仅是文本输入。我想自己写这篇文章是唯一的方法 - 或者转移到一个新平台。 很抱歉,我在您的问题中看不到任何可以被视为“不仅仅是文本输入”的内容:) 您能具体说明一下吗? 你是对的。我应该举个例子:pushpindesigns.com/tgpresta/prestashop/trophies/… 用户从单选列表中选择,文本输入是动态生成的。实际上,我的那部分工作正常,并且可以正常工作。我只是不知道如何将其适当地保存到数据库并将其添加到购物车中。 是的,这项任务中最复杂的部分是在适当的位置将数据添加到数据库中。但是 Prestashop 已经通过“自定义”选项做到了。因此,我仍然认为您应该将您的 javascript(在无线电开关上显示或隐藏文本输入,添加生成的文本或您需要的任何其他内容)附加到 Prestashop 部分,该部分已完成并且工作正常,它将文本输入链接到订单详细信息。跨度>以上是关于Prestashop 产品自定义 - 保存到购物车的主要内容,如果未能解决你的问题,请参考以下文章
如何在 prestashop 中添加自定义产品“排序依据”字段?
根据 prestashop 中的模块状态禁用覆盖的 tpl 文件