Skip to content

Feature Request: Implement a Robust, Stripe & PayPal Compliant "Contact Us" Page #203

Description

@Liamn0244

🚀 Feature Request: Implement a Robust, Stripe & PayPal Compliant "Contact Us" Page

📝 Problem Description

Currently, clicking on the contact links (such as #contact) results in an un-implemented action or dead link on the Spree Next.js storefront. A professional, legally compliant "Contact Us" feature is essential for any production-ready e-commerce platform to handle support inquiries effectively and pass strict payment gateway (Stripe & PayPal) merchant audits.


💡 Proposed Solution

Implement a comprehensive, responsive "Contact Us" page (/contact) that integrates standard e-commerce workflows, anti-fraud barriers, and global legal compliance requirements.

⚖️ Payment Gateway & Legal Compliance Elements (Audit Ready):

  • 📋 High-Transparency Static Info Block: A dedicated side-panel explicitly displaying the merchant's Support Email Address (as plain, selectable text), Customer Service Phone Number, and Operating Hours (with Timezone). Stripe/PayPal audits explicitly reject form-only pages without visible, direct contact text.
  • 🏢 Corporate Address Placeholder: A clear placeholder to input the registered business name and physical mailing address, matching the legal entity declared in the payment provider account.
  • 🇪🇺 GDPR Consent Checkbox: An un-checked by default, mandatory checkbox stating: "I agree to the Privacy Policy and consent to having this website store my submitted information so they can respond to my inquiry." with a hyperlinked route to /privacy-policy.
  • 🔄 Cross-Link to Refund Policy: A highly visible anchor text linking back to the store's Return & Refund policy page, as payment inspectors evaluate if customers are redirected properly during dispute handling.

🛒 E-commerce & Form Features:

  • ✉️ Basic Contact Form: Fields for Name, Email Address, and Message with strict client-side validation.
  • 🏷️ Inquiry Categorization: A dropdown selector allowing users to choose categories (e.g., Order Status, Returns & Refunds, Product Inquiry, Technical Support) for seamless backend routing.
  • 📦 Order Association: A conditional field or text input allowing users to pin their query directly to a specific Order Number.
  • 📁 File Attachment Support: Allow users to upload screenshots/images (e.g., max 5MB, format: PNG/JPG) to provide visual proof of damaged goods or logistical issues.
  • 🔒 Anti-Spam Security: Integration placeholders for lightweight, privacy-friendly bot challenges like Cloudflare Turnstile or Google reCAPTCHA v3 to prevent malicious email flooding.
  • 🌍 i18n Readiness: Full support for multi-language text tokens to natively support Spree's multi-locale routing structure.

🎨 Visual & Technical Layout Suggestion

  • Layout: A balanced, split-screen desktop layout using Tailwind CSS that complies with Spree’s clean, minimalist black-and-white styling rules.
  • Left Column: Plain-text contact info block, operating hours, corporate address, and policy cross-links (Optimized for Stripe Reviewers).
  • Right Column: Interactive submission form card.
  • Backend: A Next.js API route placeholder (/api/contact) leveraging universal environment variables (like SMTP_HOST, SMTP_PORT) so self-hosters can immediately plug it into email automation engines (e.g., Resend, SendGrid, Postmark, or custom SMTP servers).

🗺️ Future Roadmap & Community Request

Since I currently don't have the bandwidth to implement this full-stack compliance feature and submit a Pull Request myself, could the core team consider adding this to the project's future roadmap?

Alternatively, if this is not on your immediate schedule, would it be possible to label this issue as good first issue or help wanted? It would serve as an exceptional, highly-valuable milestone for new open-source contributors looking to enhance the ecosystem's commercial readiness.

Thanks for maintaining this awesome project! 🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions