|
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | + <meta charset="UTF-8"> |
| 5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 | + <title>Checkout</title> |
| 7 | + |
| 8 | + <!-- JSON-LD structured data (cart detector source) --> |
| 9 | + <script type="application/ld+json"> |
| 10 | + { |
| 11 | + "@context": "https://schema.org", |
| 12 | + "@type": "Product", |
| 13 | + "name": "Premium Wireless Headphones", |
| 14 | + "image": "https://via.placeholder.com/100x100.png?text=Headphones", |
| 15 | + "offers": { "@type": "Offer", "price": "89.99", "priceCurrency": "USD" } |
| 16 | + } |
| 17 | + </script> |
| 18 | + <script type="application/ld+json"> |
| 19 | + { |
| 20 | + "@context": "https://schema.org", |
| 21 | + "@type": "Product", |
| 22 | + "name": "USB-C Charging Cable", |
| 23 | + "image": "https://via.placeholder.com/100x100.png?text=Cable", |
| 24 | + "offers": { "@type": "Offer", "price": "12.50", "priceCurrency": "USD" } |
| 25 | + } |
| 26 | + </script> |
| 27 | + |
| 28 | + <style> |
| 29 | + * { box-sizing: border-box; margin: 0; padding: 0; } |
| 30 | + body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #fff; color: #333; padding: 16px; } |
| 31 | + h1 { font-size: 18px; margin-bottom: 4px; } |
| 32 | + .subtitle { color: #888; font-size: 12px; margin-bottom: 20px; } |
| 33 | + .section { margin-bottom: 24px; } |
| 34 | + .section h2 { font-size: 14px; font-weight: 600; margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid #eee; color: #555; } |
| 35 | + .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; } |
| 36 | + .form-row.single { grid-template-columns: 1fr; } |
| 37 | + .form-row.triple { grid-template-columns: 1fr 1fr 1fr; } |
| 38 | + .form-group { display: flex; flex-direction: column; } |
| 39 | + .form-group label { font-size: 11px; font-weight: 500; color: #666; margin-bottom: 3px; } |
| 40 | + .form-group input, .form-group select { |
| 41 | + padding: 8px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; |
| 42 | + } |
| 43 | + .form-group input:focus, .form-group select:focus { outline: none; border-color: #007bff; } |
| 44 | + .cart-container { background: #fafafa; border: 1px solid #eee; border-radius: 8px; padding: 12px; } |
| 45 | + .cart-item { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid #eee; } |
| 46 | + .cart-item:last-child { border-bottom: none; } |
| 47 | + .cart-item .item-name { font-size: 13px; font-weight: 500; flex: 1; } |
| 48 | + .cart-item .item-price { font-size: 14px; font-weight: 600; } |
| 49 | + .cart-total { display: flex; justify-content: space-between; padding-top: 10px; margin-top: 6px; border-top: 2px solid #ddd; font-weight: 700; font-size: 15px; } |
| 50 | + </style> |
| 51 | +</head> |
| 52 | +<body> |
| 53 | + <h1>Checkout</h1> |
| 54 | + <p class="subtitle">Mock checkout page for testing Snapfill</p> |
| 55 | + |
| 56 | + <div class="section"> |
| 57 | + <h2>Order Summary</h2> |
| 58 | + <div class="cart-container" id="cart-container"> |
| 59 | + <div class="cart-item"> |
| 60 | + <div class="item-name">Premium Wireless Headphones</div> |
| 61 | + <div class="item-price">$89.99</div> |
| 62 | + </div> |
| 63 | + <div class="cart-item"> |
| 64 | + <div class="item-name">USB-C Charging Cable</div> |
| 65 | + <div class="item-price">$12.50</div> |
| 66 | + </div> |
| 67 | + <div class="cart-total"><span>Total</span><span>$102.49</span></div> |
| 68 | + </div> |
| 69 | + </div> |
| 70 | + |
| 71 | + <div class="section"> |
| 72 | + <h2>Shipping Address</h2> |
| 73 | + <div class="form-row"> |
| 74 | + <div class="form-group"><label for="ship-first">First Name</label><input type="text" id="ship-first" autocomplete="shipping given-name" placeholder="John"></div> |
| 75 | + <div class="form-group"><label for="ship-last">Last Name</label><input type="text" id="ship-last" autocomplete="shipping family-name" placeholder="Smith"></div> |
| 76 | + </div> |
| 77 | + <div class="form-row single"><div class="form-group"><label for="ship-email">Email</label><input type="email" id="ship-email" autocomplete="email" placeholder="john@example.com"></div></div> |
| 78 | + <div class="form-row single"><div class="form-group"><label for="ship-phone">Phone</label><input type="tel" id="ship-phone" autocomplete="tel" placeholder="+1 (555) 123-4567"></div></div> |
| 79 | + <div class="form-row single"><div class="form-group"><label for="ship-addr1">Address Line 1</label><input type="text" id="ship-addr1" autocomplete="shipping address-line1" placeholder="123 Main Street"></div></div> |
| 80 | + <div class="form-row single"><div class="form-group"><label for="ship-addr2">Address Line 2</label><input type="text" id="ship-addr2" autocomplete="shipping address-line2" placeholder="Apt 4B"></div></div> |
| 81 | + <div class="form-row triple"> |
| 82 | + <div class="form-group"><label for="ship-city">City</label><input type="text" id="ship-city" autocomplete="shipping address-level2" placeholder="New York"></div> |
| 83 | + <div class="form-group"><label for="ship-state">State</label> |
| 84 | + <select id="ship-state" autocomplete="shipping address-level1"><option value="">Select...</option><option value="NY">New York</option><option value="CA">California</option><option value="TX">Texas</option></select> |
| 85 | + </div> |
| 86 | + <div class="form-group"><label for="ship-zip">ZIP Code</label><input type="text" id="ship-zip" autocomplete="shipping postal-code" placeholder="10001"></div> |
| 87 | + </div> |
| 88 | + <div class="form-row single"> |
| 89 | + <div class="form-group"><label for="ship-country">Country</label> |
| 90 | + <select id="ship-country" autocomplete="shipping country"><option value="">Select...</option><option value="US">United States</option><option value="AU">Australia</option><option value="GB">United Kingdom</option></select> |
| 91 | + </div> |
| 92 | + </div> |
| 93 | + </div> |
| 94 | + |
| 95 | + <div class="section"> |
| 96 | + <h2>Payment Details</h2> |
| 97 | + <div class="form-row single"><div class="form-group"><label for="cardNumber">Card Number</label><input type="text" id="cardNumber" name="cardNumber" placeholder="4111 1111 1111 1111" maxlength="19"></div></div> |
| 98 | + <div class="form-row single"><div class="form-group"><label for="nameOnCard">Name on Card</label><input type="text" id="nameOnCard" name="nameOnCard" placeholder="JOHN SMITH"></div></div> |
| 99 | + <div class="form-row triple"> |
| 100 | + <div class="form-group"><label for="expiryMonth">Exp Month</label> |
| 101 | + <select id="expiryMonth" name="expiryMonth"><option value="">MM</option><option value="01">01</option><option value="06">06</option><option value="12">12</option></select> |
| 102 | + </div> |
| 103 | + <div class="form-group"><label for="expiryYear">Exp Year</label> |
| 104 | + <select id="expiryYear" name="expiryYear"><option value="">YYYY</option><option value="2026">2026</option><option value="2028">2028</option><option value="2030">2030</option></select> |
| 105 | + </div> |
| 106 | + <div class="form-group"><label for="securityCode">Security Code</label><input type="text" id="securityCode" name="securityCode" placeholder="123" maxlength="4"></div> |
| 107 | + </div> |
| 108 | + </div> |
| 109 | +</body> |
| 110 | +</html> |
0 commit comments