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 1.7在管理产品页面上添加自定义字段

根据 prestashop 中的模块状态禁用覆盖的 tpl 文件

使用 Prestashop 1.6 在模块中获取产品类别名称

prestashop 中的自定义价格计算

通过 WooCommerce 产品设置中的自定义复选框禁用添加到购物车按钮