Hi there,
There are cart notes and cart attributes, those are 2 different things. What you’re using is a cart attribute.
Cart notes may look like that in your html and should include the same name attribute as below (only one per cart):
You can have multiple cart attributes though, it may look like that:
Also, I don’t think you are allowed to do {{ cart.attributes.gift-note }} since there’s a dash. I could double check, but just write it down the way I did in my example, this could be part of your problem.
You should make sure that those fields are inside the cart tag, and if not, that they have a form attribute with the id as value, otherwise they will just be ignored. More on that: the form attribute lets you associate a form element to a anywhere in the document, not just inside a . It can also override an ancestor element. Some examples.
Once you have checked that, you can also check how your theme submits the cart form. Most themes will not interact and let the form submit natively. Some themes will use javascript and submit the form using the new FormData object. You can verify if this FormData contains all the inputs you need, with a console.log such as this:
console.log(Object.fromEntries([...formData.keys()].map(key => [key, formData.getAll(key)])))
Some themes may also do some weird stuff to submit the cart, or some apps may override the theme behaviour and submit the cart in their own fashion, you have to dig in this case.
Anyways, you can easily check if the attribute is correctly submitted by checking the following url endpoint (no need to test order):
https://your-shopify-domain.myshopify.com/cart.json