/contact
{% form 'contact_submit' %}
Stores the message for the merchant (admin inbox + notification email + contact.submitted webhook). Honeypot + rate limits apply.
Form fields
-
nameOptional Sender name.
-
emailRequired Sender email (reply-to).
-
phoneOptional Sender phone.
-
subjectOptional Message subject.
-
bodyRequired The message.
-
websiteOptional Honeypot — must stay empty; bots that fill it are dropped.
-
_formatOptional Set to json when submitting with fetch; omit for the normal browser redirect.
Validation
Valid email and non-empty body; CSRF and honeypot enforced. The message row, merchant notification, and contact webhook are committed in one transaction.
Limits
Name 100 runes; subject 200; body 5000; phone retained up to 40 runes. A submission is rejected when 60 messages already exist for the store in the preceding hour.
Response
{
success:true,
response,
message_id
}
honeypot success has an empty message_id.