Answers.Body: <p>You could create a special product for the gift wrapping and offer to add it to the cart during the checkout process with a separate updateCart form.</p>
  
  <p>As for the notes, you can add a custom field to your order as described in the following: <a href="https://craftcms.stackexchange.com/questions/13104/how-can-i-update-custom-order-fields-in-the-frontend">How can I update custom order fields in the frontend</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-11T12:52:52.770Z
Answers.Text: Two very good answers here! I like the idea of it being a product especially as it makes more of a feature and could show what gift wrapping looks like. (This is for luxury products)
Answers.UserDisplayName: ToddPadwick
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-13T10:16:08.277Z
Answers.Text: Yep, lets you add variations and options for different gift wrapping too. :)
Answers.UserDisplayName: foamcow
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-11T00:46:40.320Z
Answers.LastActivityDate: 2017-11-11T00:46:40.320Z
Answers.UserDisplayName: foamcow
Answers.Body: <p>First, add a custom field to your orders, let's call it <code>orderNotes</code>.</p>
  
  <p>Then, in any <code>updateCart</code> form, you can use an input with <code>name="fields[orderNotes]"</code> to set the value of that field.</p>
  
  <p>(Line items persist on the cart until the end of checkout.  At that point they become a saved snapshot of those line items on the completed order.)</p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;form method="POST" &gt;
         {{ getCsrfInput() }}
         &lt;input type="hidden" name="action" value="commerce/cart/updateCart"&gt;
         &lt;input type="text" name="fields[orderNotes]"&gt;
         ...etc
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-11T00:38:31.843Z
Answers.LastActivityDate: 2017-11-11T00:38:31.843Z
Answers.UserDisplayName: Jeremy Daalder
Answers.Body: <p>You can also add it to the <code>cart.lineItems[].options</code>:</p>
  
  <pre><code>&lt;form method="POST" &gt;
      {{ getCsrfInput() }}
      &lt;input type="hidden" name="action" value="commerce/cart/updateCart"&gt;
      &lt;input type="hidden" name="purchasables[{{ purchasable.id }}][id]" value="{{ purchasable.id }}"&gt;
      &lt;input type="number" name="purchasables[{{ purchasable.id }}][qty]"&gt;
  
      // custom option
      &lt;input name="purchasables[{{ purchasable.id }}][options][giftWrapping]" value="YES!"&gt;
  
  &lt;/form&gt;
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-27T20:10:47.413Z
Answers.LastActivityDate: 2018-07-27T20:10:47.413Z
Answers.UserDisplayName: cornernote
Body: <p>My client has gift wrapping services but they apply to the entire order, not one single line item. </p>
  
  <p>How would I add notes or custom fields to the entire order, at the shipping stage of checkout? is this possible without a plugin?</p>
  
  <p>I tried to apply notes and giftwrapping options to the first line item by using the commerce/cart/updateLineItem form, on the cart.lineItems.first() but it didn't work. I presume that after the user proceeds to checkout the line Items no longer exist?</p>
  
Tags: <plugin-craftcommerce><custom-field><ecommerce><order>
Title: Option and notes fields after cart at checkout for order, not just line items
ThreadText: # Option and notes fields after cart at checkout for order, not just line items
  
  (Asked by: username_0 on 2017-11-10)
  
  My client has gift wrapping services but they apply to the entire order, not one single line item.
  
  How would I add notes or custom fields to the entire order, at the shipping stage of checkout? is this possible without a plugin?
  
  I tried to apply notes and giftwrapping options to the first line item by using the commerce/cart/updateLineItem form, on the cart.lineItems.first() but it didn't work. I presume that after the user proceeds to checkout the line Items no longer exist?
  
  **Tags:** plugin-craftcommerce, custom-field, ecommerce, order
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2017-11-11. Score: 2 | Accepted answer
  
  You could create a special product for the gift wrapping and offer to add it to the cart during the checkout process with a separate updateCart form.
  
  As for the notes, you can add a custom field to your order as described in the following: [How can I update custom order fields in the frontend](https://craftcms.stackexchange.com/questions/13104/how-can-i-update-custom-order-fields-in-the-frontend)
  
  > **Comments:**
  > **username_0**: Two very good answers here! I like the idea of it being a product especially as it makes more of a feature and could show what gift wrapping looks like. (This is for luxury products)  
  > **username_1**: Yep, lets you add variations and options for different gift wrapping too. :)  
  
  ---
  
  ### Answer by username_2 on 2017-11-11. Score: 3
  
  First, add a custom field to your orders, let's call it `orderNotes`.
  
  Then, in any `updateCart` form, you can use an input with `name="fields[orderNotes]"` to set the value of that field.
  
  (Line items persist on the cart until the end of checkout. At that point they become a saved snapshot of those line items on the completed order.)
  
  ```html
  <form method="POST" >
         {{ getCsrfInput() }}
         <input type="hidden" name="action" value="commerce/cart/updateCart">
         <input type="text" name="fields[orderNotes]">
         ...etc
  
  ```
  
  
  ---
  
  ### Answer by username_3 on 2018-07-27. Score: 1
  
  You can also add it to the `cart.lineItems[].options`:
  
  ```
  <form method="POST" >
      {{ getCsrfInput() }}
      <input type="hidden" name="action" value="commerce/cart/updateCart">
      <input type="hidden" name="purchasables[{{ purchasable.id }}][id]" value="{{ purchasable.id }}">
      <input type="number" name="purchasables[{{ purchasable.id }}][qty]">
  
      // custom option
      <input name="purchasables[{{ purchasable.id }}][options][giftWrapping]" value="YES!">
  
  </form>
  
  ```
  
  
  ---
  
  