Shopify DAWN 主题 - 在购物车页面添加自定义字段并在订单管理面板中显示结果

Shopify DAWN Theme - Add custom fields in Cart page and Show results in Orders Admin panel

尝试了另一位开发人员在 Shopify 主题购物车页面中添加自定义字段的解决方案,方法是从此处生成字段 - https://ui-elements-generator.myshopify.com/pages/cart-attribute,并将它们放置在我的购物车模板的表单标签中。它适用于 Debut 主题,但是,当我尝试在 Dawn 中对其进行测试时,表格显示但数据从未出现在我的订单(管理面板)中。

是否有 2.0 主题的替代解决方案,特别是 Shopify Dawn 主题?

UI 生成器 mise form="cart" 这将创造奇迹。无论元素在屏幕上的哪个位置,它都会将元素添加到购物车表单。

为什么要用那个?好吧,请记住 2.0 的原则是灵活使用块、应用程序块、在屏幕上移动它、以不同方式组织等等。form="cart" 在购物车页面上提供这种灵活性

我在我写的应用程序上使用类似的东西在订单上添加 PO 编号。

使用 UI 生成器的结果应该是:

    <p class="cart-attribute__field">
      <label for="long-custom-text">Long Custom Text</label>
      <textarea 
        required 
        form="cart" 
        class="required"
        id="long-custom-text" 
        name="attributes[Long Custom Text]"
      >
        {{ cart.attributes["Long Custom Text"] }}
      </textarea>
    </p>

另一个非常重要的部分是命名 braquets 内的部分是它在管理员端的显示方式以及您应该如何搜索订单信息 name="attributes[Long Custom Text]"

您可以更改方括号内的内容 Long Custom Text 但名称的其余部分应该在那里。

<input type="text" name="attributes[other custom Atribute]" form="cart" />
<input type="email" name="attributes[custom email]" form="cart" />

@chefjuanpi 的解决方案有效。我已经尝试过了并且有效。这是我创建的示例字段。

  <p class="cart-attribute__field">
      <label for="business-name">Business Name</label>
      <input form="cart" id="business-name" type="text" name="attributes[Business Name]" value="{{ cart.attributes["Business Name"] }}">
  </p>
  <p class="cart-attribute__field">
      <label for="tagline">Tagline</label><small>(If applicable)</small>
      <input form="cart" id="tagline" type="text" name="attributes[Tagline]" value="{{ cart.attributes["Tagline"] }}">
  </p>
  <p class="cart-attribute__field">
      <label for="colors">Colors</label>
      <input form="cart" id="colors" type="text" name="attributes[Colors]" value="{{ cart.attributes["Colors"] }}">
  </p>
  <p class="cart-attribute__field">
      <label for="upload">Upload Logo</label>
      <input form="cart" id="upload" type="file" name="attributes[Upload]" class="product-form__input">
  </p>