Prestashop 产品定制 - 保存到购物车

Prestashop Product Customizations - Saving To Cart

Prestashop 1.6

我创建了一个向产品页面添加表单的模块。我使用 prestashop 模块生成器创建了一个基本的准系统模块。除了通过挂钩向产品页面添加表单外,它什么都不做。

我正在使用默认的 bootstrap 主题。

表格是通过 .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 个输入以在每个产品上进行自定义)。

我想要一些关于保存这些输入以及用户在单击 'add to cart' 时输入的信息的指导,以便以后(在用户结帐之前)可以检索/编辑这些信息。

一些研究让我找到了 ajax-cart.js,这个函数具体来说:

add : function(idProduct, idCombination, addedFromProductPage, callerElement, quantity, whishlist)

传递该数据的最佳方法是什么 saved/retrieved?

最终我希望将其包含在订单中(显然)并与该订单一起保存到数据库中以备将来使用。

我知道存在 Attribute Wizard Pro 插件 - 但我希望扩展我的知识并自己制作一些东西。

如果还有其他方法可以解决这个问题 cleaner/easier 我也愿意接受这些建议。

您可以创建一个全新的解决方案,但这将花费很长时间和很多行代码。

最好的选择是使用 Prestashop built-in 产品 自定义 选项。

  1. 转到后台并 select 一个 Product Edit > Customization 选项卡。
  2. 添加 Text fields 个您认为可以是一个产品的最大值。

  1. 向您的产品页面添加一些 javascript 隐藏/显示这些文本字段输入(因为它们在默认情况下都是可见的)。

    您可以将 javascript 代码添加到:

    • themes/[your-theme]/product.js 文件 (首选) - 它只会在产品页面上加载,
    • themes/[your-theme]/js/autoload/[any-file-name].js - 它将加载到所有页面。

    请务必添加无bug代码:)

完成!