Skip to main content
Version: 1.0.0

Newsletter Form

This example documents a production-safe newsletter subscription form flow for YuiCraftPlugin storefronts.

Form Contract

The subscription endpoint expects:

  • POST request
  • valid CSRF token
  • subscriptions identifier
  • customer email
<form action="{{ url('shop/subscribe') }}" method="post">
{{ csrfInput() }}

{{ hiddenInput('subscriptions', 'newsletter') }}

<div class="form-elem">
<label for="newsletter-email">{{ "E-mail address"|t('yui') }}</label>
<input id="newsletter-email" name="email" type="email" required />
</div>

<button type="submit">{{ "Subscribe"|t('yui') }}</button>
</form>

Validation Requirements

Minimum validation baseline:

  1. email format validation
  2. required subscription key
  3. CSRF validation
  4. duplicate subscription handling
  5. clear success/error feedback to user

If form validation services (such as reCAPTCHA integration) are enabled in plugin settings, ensure the required script/tags are present on the page.

Placement Guidance

Good placement options:

  • footer subscription area
  • blog/article sidebar
  • dedicated account marketing/preferences section

Do not:

  • hide legal/consent text where required by local policy
  • submit via GET
  • cache response messages globally

Configuration Reference

Subscription keys and behaviors are configured in the backend marketing/subscription settings.

Reference: Subscription configurations

QA Checklist

  1. success path stores subscription
  2. duplicate submissions are handled gracefully
  3. invalid email returns clear error
  4. CSRF failures are handled correctly
  5. analytics/event tracking (if enabled) is consistent