shopify-guides

Shopify Pre-Approval System: Selling Event Tickets with Manual Review and Custom Fields

Hey everyone! I love diving into the Shopify Community forums because it's where real store owners tackle real-world problems, and often, the solutions are incredibly creative. Recently, I came across a fantastic discussion that really highlighted how versatile Shopify can be, even for tricky scenarios like selling event tickets with a pre-approval process.

Our friend cmc.collective kicked off a thread with a challenge many event organizers might face: they were hosting car shows and needed a way for participants to reserve a spot. But here's the kicker – they couldn't just let anyone in. They needed to personally review a picture of the participant's vehicle, maybe get some additional details, and only then approve them and actually charge their card. Talk about a specific workflow!

Shopify admin payments settings with 'Manually capture payment for orders' highlighted
Shopify admin payments settings with 'Manually capture payment for orders' highlighted

The Challenge: Approval Before Payment & Custom Data Collection

The core problem was twofold:

  1. Conditional Charging: How do you take payment information but only process the charge if the applicant is approved?
  2. Custom Submissions: How do you collect a vehicle photo and other specific details (like "is it modified?") right on the product page, before checkout?

This isn't a standard "add to cart and buy" scenario, is it? But the community, as always, came through with some stellar advice, providing a robust, albeit manual, solution that leverages Shopify's core capabilities.

Solution 1: "Authorize Only" Payments for Conditional Charging

The first crucial piece of the puzzle, as suggested by community members like tim_1 and elaborated by askably_rod, is to use Shopify's "Authorize only" payment setting. This is a game-changer for conditional sales!

How "Authorize Only" Works:

  • When a customer checks out, their credit card is authorized. This means the funds are put on hold by their bank, confirming the money is available.
  • Your store doesn't actually capture the money yet. The order will show as "Payment pending" or "Authorized."
  • You, the store owner, can then review the order and decide whether to "capture" the payment (process the charge) or "void" the authorization (cancel the hold).

Setting Up "Authorize Only" Payments:

This is a straightforward process within your Shopify admin:

  1. From your Shopify admin, go to Settings > Payments.
  2. In the "Supported payment methods" section, find your primary credit card provider (e.g., Shopify Payments, Stripe, PayPal Pro) and click Manage.
  3. Under the "Payment capture method" or similar section, select Manually capture payment for orders.
  4. Save your changes.

Important Caveat: Authorization holds typically expire after a certain number of days (often 7 days, but this varies by payment provider). If you don't capture the payment within this window, the hold drops off, and you'd need to contact the customer for a new payment.

Solution 2: Custom Data Collection with Line Item Properties

To collect specific information like a vehicle photo or modification details, Shopify's Line Item Properties are your best friend. These allow you to add custom fields directly to your product page, and the data collected will be attached to the specific item in the order.

Implementing Custom Fields with Custom Liquid:

If you're on a modern OS 2.0 theme (like Dawn), you can easily add these fields using a Custom Liquid block:

  1. From your Shopify admin, go to Online Store > Themes.
  2. Click Customize next to your live theme.
  3. Navigate to the product page template for your car show ticket or custom item.
  4. In the product information section, click Add block and select Custom Liquid.
  5. Paste the following code (or a variation tailored to your needs) into the custom liquid block. This example is directly from the community thread, provided by askably_rod:

Any input field with name="properties[Your Label]" will automatically become a line item property. For file uploads, Shopify stores the file on its CDN and attaches a URL to the order, which you can then review.

The Accelerated Checkout Button Challenge

A common hurdle, as cmc.collective discovered, is that accelerated checkout buttons (like Shop Pay, Apple Pay, PayPal Express) often bypass the standard "Add to Cart" button's validation logic. This means a customer could potentially click "Buy Now" without uploading a required file or filling out custom fields.

Addressing the Bypass:

  • Theme Settings: The simplest approach is to check your theme settings. Many themes allow you to disable accelerated checkout buttons on product pages. They will still be available in the checkout process itself.
  • CSS/JavaScript Hiding: For more granular control, you can use CSS to hide these buttons until your custom fields are filled. This typically involves JavaScript to detect when a file is uploaded or a field is completed, then dynamically showing the buttons. This requires some coding expertise, as discussed by PaulNewton, who suggested using pointer-events:none in CSS or suppressing their JavaScript.
  • Accepting the Workflow: In some cases, if the pre-approval is critical, you might need to temporarily disable these buttons for that specific product to ensure all required information is submitted via the standard "Add to Cart" flow.

Your New Workflow for Event Tickets with Pre-Approval

Combining these solutions creates a robust workflow:

  1. Customer Submits: A participant visits your product page, uploads their vehicle photo, fills out required details via line item properties, and proceeds to checkout.
  2. Payment Authorization: Their payment method is authorized, but no money is captured yet.
  3. Manual Review: You receive the order. In your Shopify admin, you'll see the order with the payment status "Authorized" and all the custom details (including the link to the uploaded photo) attached to the line item.
  4. Approve or Reject:
    • If Approved: You go into the order details and click Capture payment. The funds are then transferred to your account, and you can fulfill the order (e.g., send a confirmation email with spot details).
    • If Rejected: You cancel the order and void the payment authorization. The hold on the customer's funds is released, and you can communicate the rejection.

This system gives you complete control over who gets to participate in your event while still leveraging Shopify's powerful e-commerce capabilities. It's a fantastic example of how a little customization can adapt Shopify to almost any business need.

If you're looking to implement complex custom workflows on your Shopify store, or if you're migrating from a platform that handled these scenarios differently, the team at Shopping Cart Mover is here to help. We specialize in seamless migrations and advanced Shopify setups, ensuring your store works exactly how you need it to.

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases