通过液体模板将自定义数据保存在shopify中

时间:2018-06-25 21:18:12

标签: shopify

我想在自定义页面上创建自定义问卷,然后将答案保存到已登录的客户中。

我制作了一个自定义页面,该页面连接到包含以下代码的自定义.liquid模板:

{% if customer %}
  
    {% form 'customer' %}
  
      {{ form.errors | default_errors }}
  
      {% if form.posted_successfully? %}
  
        <div class="form--success">
            <div class="success">Thank you, we have saved your questionaire and calculated your programme.</div>
        </div>
        <br><br>
        
      {% else %}
  
        ... my html form here
    
        <!-- Save -->
        <span class="input-group__btn">
            <button type="submit" name="commit" class="btn">
                <span>Save</span>
            </button>
        </span>
        <br><br>
  
      {% endif %}
  
    {% endform %}
  
{% else %}

    <div style="custom-error">
        Not logged in, this feature is available for registered customers only!
        <br>
        <a href="/account">Click here</a> to register/login now.
    </div>

{% endif %}

当我访问自定义页面时,我的html表单呈现。我想弄清楚的是如何将表单数据(最好将表单数据序列化为json)保存到自定义元字段上的已登录客户中;当您单击保存时。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

来自Shopify's Docs

  

自定义表单字段

     

要自定义表单字段,您需要先编辑the above examples中的代码,然后再将其保存到客户注册表单模板中。

     

名称属性

     

和元素具有设置为customer[note][Some Text]的名称属性很重要,其中“一些文本”标识该字段希望回答什么问题。 customer[note]值是必不可少的,因为这使得信息可以作为客户注释提交。没有它,将不会提交任何内容。您应该编辑的name属性的唯一部分是第二组方括号之间的文本。

因此,您可以尝试:

<input type="text" placeholder="" name="customer[note][Company]" required />

这将显示在他们的用户个人资料中,例如:

Depiction of Shopify Customer profile where "note" field is utilized

另一方面,您必须使用一些正则表达式,或者将note转储到.js变量中,并编写一个小的接口以通过键提取值。

(我知道(很难)通过这样的表单更新无法访问元字段。)