首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Shopify捕获注册时的客户地址,并将其保存为默认地址以进行计费和发货?

如何使用Shopify捕获注册时的客户地址,并将其保存为默认地址以进行计费和发货?
EN

Stack Overflow用户
提问于 2014-11-12 04:28:54
回答 2查看 1.9K关注 0票数 3

我正在创建一个shopify网站,我正在尝试自定义它,以便当用户/客户注册时,他们可以将他们的地址信息放入其中,并将其保存为默认地址。Shopify目前有它,所以你可以注册,然后它会把你带到一个账户页面,在那里你可以选择添加地址。

我已经尝试在注册页面上制作表单元素,其工作原理与它们显示和获取数据的方式相同。但是我不知道如何让表单将地址数据提交到默认的地址数据位置。换句话说,我不知道如何让它将地址存储为默认地址。

我已经查看了实际地址页面的代码,并在注册部分尝试了id的名称和表单值的插件,但没有成功。我也尝试过使用与api customer reference关联的id和名称,但也没有成功。我真的找不到关于这个主题的文档。有一节是关于在注册时捕获附加信息的,但它被捕获为"Notes“,而不是地址。

非常感谢您的帮助。

EN

回答 2

Stack Overflow用户

发布于 2021-01-12 03:13:04

我使用地址注册表创建了第二个帐户页面(customers/account.new- address s.iquid):

代码语言:javascript
运行
复制
    {% assign formID = "" %}
    {% if formInfo.id %}
      {% assign formID = formInfo.id | prepend: "_"%}
    {% endif %}

    {% form 'customer_address', formInfo %}
      <div class="input-wrapper">
        <label for="customer_addresses_first_name{{ formID }}">{{ 'customer.addresses.first_name' | t }}</label>
        <input type="text" name="address[first_name]" value="{{form.first_name}}" id="customer_addresses_first_name{{ formID }}" />
      </div>
      <div class="input-wrapper">
        <label for="customer_addresses_last_name{{ formID }}">{{ 'customer.addresses.last_name' | t }}</label>
        <input type="text" name="address[last_name]" value="{{form.last_name}}" id="customer_addresses_last_name{{ formID }}" />
      </div>
      <div class="input-wrapper">
        <label for="customer_addresses_company{{ formID }}">{{ 'customer.addresses.company' | t }}</label>
        <input type="text" name="address[company]" value="{{form.company}}" id="customer_addresses_company{{ formID }}" />
      </div>
      <div class="input-wrapper">
        <label for="customer_addresses_address1{{ formID }}">{{ 'Street Address' }}</label>
        <input type="text" name="address[address1]" value="{{form.address1}}" id="customer_addresses_address1{{ formID }}" />
      </div>
      <div class="input-wrapper">
        <label for="customer_addresses_address2{{ formID }}">{{ 'Suburb' }}</label>
        <input type="text" name="address[address2]" value="{{form.address2}}" id="customer_addresses_address2{{ formID }}" />
      </div>
      <div class="input-wrapper">
        <label for="customer_addresses_city{{ formID }}">{{ 'customer.addresses.city' | t }}</label>
        <input type="text" name="address[city]" value="{{form.city}}" id="customer_addresses_city{{ formID }}" />
      </div>
      {% if isNew %}
        <div class="input-wrapper">
          <label for="address-country">{{ 'customer.addresses.country' | t }}</label>
          <div class="select-wrapper">
            <div class="selected-text"></div>
            <select id="address-country" name="address[country]" data-default="{{form.country}}">{{ country_option_tags }}</select>
          </div>
        </div>
        <div class="input-wrapper" id="address-province-container" style="display:none">
          <label for="address-province">{{ 'customer.addresses.province' | t }}</label>
          <div class="select-wrapper">
            <div class="selected-text"></div>
            <select id="address-province" class="new-address-province" name="address[province]" data-default="{{form.province}}"></select>
          </div>
        </div>
      {% else %}
        <div class="input-wrapper">
          <label for="address-country-{{form.id}}">{{ 'customer.addresses.country' | t }}</label>
          <div class="select-wrapper">
            <div class="selected-text"></div>
            <select id="address-country-{{form.id}}" name="address[country]" data-default="{{form.country}}">{{ country_option_tags }}</select>
          </div>
        </div>
        <div class="input-wrapper" id="address-province-container-{{ address.id }}" style="display:none">
          <label for="address-province-{{ address.id }}">{{ 'customer.addresses.province' | t }}</label>
          <div class="select-wrapper">
            <div class="selected-text"></div>
            <select id="address-province-{{ address.id }}" name="address[province]" data-default="{{form.province}}"></select>
          </div>
        </div>
      {% endif %}
      <div class="input-wrapper">
        <label for="customer_addresses_zip{{ formID }}">{{ 'customer.addresses.zip' | t }}</label>
        <input type="text" name="address[zip]" value="{{form.zip}}" id="customer_addresses_zip{{ formID }}" />
      </div>
      <div class="input-wrapper">
        <label for="customer_addresses_phone{{ formID }}">{{ 'customer.addresses.phone' | t }}</label>
        <input type="text" name="address[phone]" value="{{form.phone}}" id="customer_addresses_phone{{ formID }}" />
      </div>
      <div class="inline-input-wrapper">
        {% capture defaultAddressID %}
          {% if isNew %}
            address_default_address_new
          {% else %}
            address_default_address{{ formID }}
          {% endif %}
        {% endcapture %}
        <label for="{{ defaultAddressID | strip_newlines | strip}}">
          {{ form.set_as_default_checkbox }}
          <span class="inline-label">
            {{ 'customer.addresses.set_as_default' | t }}
          </span>
        </label>
      </div>
      <div class="input-wrapper cta-container">
        <input class="button" type="submit" id="submit{{ formID }}" value="{{ 'general.general.submit' | t }}">
        {% unless isNew %}
          <button class="cancel-edit button secondary">{{ 'customer.general.cancel' | t }}</button>
        {% endunless %}
        {% if customer.addresses.size > 0 and isNew %}
          <button class="toggle-new-address button secondary">{{ 'customer.general.cancel' | t }}</button>
        {% endif %}
      </div>
    {% endform %}

然后将以下代码添加到帐户页面(customers/account.iquid)的顶部,以便当客户在注册后访问帐户页面时,他们的个人资料中没有地址,他们将被重定向以添加地址:

代码语言:javascript
运行
复制
{% if customer.addresses.size == 0 %}
<meta content="0; url=/account?view=new-address" http-equiv="refresh" />
{% endif %}

view=new-address是指向我们上面创建的备用帐户页面的链接。

票数 1
EN

Stack Overflow用户

发布于 2022-02-15 22:05:36

如果不使用第三方应用程序,则无法在注册表上完成此操作。上面Muaaz提供的解决方案是我所知道的唯一解决办法,如果你可以使用2个表单,这是一个很好的解决方案。

您可以使用Shopify的tutorial来收集地址字段(或其他自定义字段),但这些字段仅保存到客户笔记中。地址字段不会另存为默认地址。

Customer Fields应用程序允许您收集地址字段并将该数据保存为客户的默认地址。这在Lite计划中可用,它允许您在注册期间收集任何标准的Shopify字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26873947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档