diff --git a/faq.php b/faq.php new file mode 100644 index 0000000..1bcd5cb --- /dev/null +++ b/faq.php @@ -0,0 +1,88 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'FAQ', 'url' => 'https://tomsjavajive.com/faq.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
+
+ +
+

Frequently Asked Questions

+

Everything you need to know about Tom's Java Jive.

+
+ + [ + ['q' => 'How do I place an order?', 'a' => 'Browse our shop, add items to your cart, and proceed to checkout. We accept all major credit cards, debit cards, and PayPal.'], + ['q' => 'Can I modify or cancel my order?', 'a' => 'Orders can be modified or cancelled within 1 hour of placement. After that, orders enter processing and cannot be changed. Contact us immediately at hello@tomsjavajive.com if you need to make a change.'], + ['q' => 'Is my payment information secure?', 'a' => 'Yes. All payments are processed through Stripe, a PCI-DSS Level 1 certified payment processor. We never store your card details on our servers.'], + ['q' => 'Do you offer gift cards?', 'a' => 'Yes! Digital gift cards are available in our shop and are delivered by email. They never expire.'], + ], + 'Coffee & Products' => [ + ['q' => 'When is my coffee roasted?', 'a' => 'We roast to order — your beans are roasted within 24–48 hours of your order being placed, ensuring maximum freshness when they arrive.'], + ['q' => 'What grind sizes do you offer?', 'a' => 'We offer whole bean, coarse (French press/cold brew), medium (drip/pour-over), and fine (espresso). Select your preferred grind at checkout.'], + ['q' => 'How should I store my coffee?', 'a' => 'For maximum freshness, store your coffee in an airtight container in the freezer. Whole beans keep longer than ground coffee. If storing at room temperature, keep in a cool, dark place away from direct sunlight, heat, and moisture.'], + ['q' => 'Are your coffees organic or fair trade?', 'a' => 'Many of our single origin coffees are sourced from farms with organic and fair trade practices. Each product listing includes sourcing details.'], + ], + 'Coffee Freshness & Storage' => [ + ['q' => 'How long does coffee last?', 'a' => 'Properly stored coffee can last for months and even years, though flavor is best enjoyed within a few weeks of the roast date. Whole beans stay fresh longer than ground coffee because less surface area is exposed to air.'], + ['q' => 'How can I tell if my coffee has gone bad?', 'a' => 'The best way to tell is by smell. If the pleasant aroma is gone, the coffee has likely gone stale. Stale coffee won\'t harm you, but it will have little flavor. It may also appear a lighter brown rather than its usual deep, dark color.'], + ['q' => 'How should I store coffee beans to keep them fresh?', 'a' => 'Store beans in an airtight container in the freezer for maximum freshness. Whole beans keep longer than ground coffee because less surface area is exposed to air. Grind only the amount you plan to use each day to minimize unnecessary exposure.'], + ['q' => 'How should I store ground coffee?', 'a' => 'Store ground coffee in an airtight container in your freezer immediately after opening. Freezer storage doesn\'t freeze it solid — it\'s always ready to use without defrosting. Just scoop and brew.'], + ], + 'Account & Loyalty' => [ + ['q' => 'Do I need an account to order?', 'a' => 'No, you can check out as a guest. However, creating an account lets you track orders, earn loyalty points, save addresses, and view your order history.'], + ['q' => 'How does the loyalty program work?', 'a' => 'You earn 1 point for every $1 spent. Points can be redeemed for discounts on future orders. Points are credited once your order is delivered.'], + ['q' => 'How do I reset my password?', 'a' => 'Click "Forgot Password" on the login page and we\'ll email you a reset link.'], + ], + ]; + + foreach ($faqs as $category => $items): ?> +
+

+
+ $faq): ?> +
+ +
+ +
+
+ +
+
+ + +
+
+

Still have questions?

+

We're happy to help. Reach out and we'll get back to you within one business day.

+ Contact Us +
+
+ +
+
+ + + + diff --git a/includes/footer.php b/includes/footer.php index 83d32f2..03760f5 100644 --- a/includes/footer.php +++ b/includes/footer.php @@ -40,6 +40,7 @@
  • Shipping Info
  • Returns
  • Track Order
  • +
  • Privacy Policy
  • diff --git a/privacy.php b/privacy.php new file mode 100644 index 0000000..bac221c --- /dev/null +++ b/privacy.php @@ -0,0 +1,193 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Privacy Policy', 'url' => 'https://tomsjavajive.com/privacy.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
    +
    + +
    +

    Privacy Policy

    +

    Last updated:

    +
    + + +
    +

    Consent

    +

    By using our website, you hereby consent to our Privacy Policy and agree to its terms.

    +
    + + +
    +
    +

    At Tom's Java Jive, accessible from tomsjavajive.com, one of our main priorities is the privacy of our visitors and customers. This Privacy Policy document describes the types of information that is collected and recorded by Tom's Java Jive and how we use it.

    +

    If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us.

    +
    +
    + + '📋', + 'title' => 'Personal Information We Collect', + 'body' => ' +

    When you place an order or create an account on our website, we collect certain personal information including your name, email address, shipping address, phone number, and payment information. We also collect information about visitors to our site using the following technologies:

    + + ' + ], + [ + 'icon' => '🔍', + 'title' => 'How We Use Your Personal Information', + 'body' => ' +

    We use the personal information we collect to:

    + + ' + ], + [ + 'icon' => '🤝', + 'title' => 'Sharing Your Personal Information', + 'body' => ' +

    We may share your personal information with trusted third parties strictly to fulfill your order, including:

    + +

    We may also share your information to comply with applicable laws and regulations, to respond to a subpoena, search warrant, or other lawful request for information, or to otherwise protect our rights.

    + ' + ], + [ + 'icon' => '📢', + 'title' => 'Behavioural Advertising', + 'body' => ' +

    We may use your personal information to provide you with targeted advertisements or marketing communications we believe may be of interest to you. For more information about how targeted advertising works, visit the Network Advertising Initiative.

    +

    You can opt out of targeted advertising at aboutads.info/choices or through the Digital Advertising Alliance opt-out portal.

    + ' + ], + [ + 'icon' => '🍪', + 'title' => 'Cookies and Web Beacons', + 'body' => ' +

    Tom\'s Java Jive uses cookies to store information including your preferences and the pages you visited on our website. This information is used to optimize your experience by customizing our content based on your browser type and other information.

    +

    You can choose to disable cookies through your browser settings. For more information about managing cookies in your specific browser, please refer to your browser\'s documentation.

    + ' + ], + [ + 'icon' => '📁', + 'title' => 'Log Files', + 'body' => ' +

    Tom\'s Java Jive follows standard practice of using log files. These files log visitors when they visit our website. The information collected includes:

    + +

    This information is not linked to any personally identifiable data and is used for analyzing trends, administering the site, and gathering demographic information.

    + ' + ], + [ + 'icon' => '🇪🇺', + 'title' => 'General Data Protection Regulation (GDPR)', + 'body' => ' +

    Tom\'s Java Jive is a Data Controller of your personal information. Our legal basis for collecting and using your personal information includes:

    + +

    If you are a resident of the European Economic Area (EEA), you have the following data protection rights:

    + +

    To exercise any of these rights, please contact us. Please note that your information may be transferred outside of Europe, including to the United States.

    + ' + ], + [ + 'icon' => '🔒', + 'title' => 'Data Retention', + 'body' => ' +

    When you place an order through our site, we will maintain your order information for our records unless and until you ask us to delete it. We will retain and use your information to the extent necessary to comply with our legal obligations, resolve disputes, and enforce our policies.

    + ' + ], + [ + 'icon' => '🔗', + 'title' => 'Third-Party Privacy Policies', + 'body' => ' +

    Tom\'s Java Jive\'s Privacy Policy does not apply to other advertisers or third-party websites. We advise you to consult the respective privacy policies of any third-party services for more detailed information about their practices.

    +

    Third-party services we use may utilize technologies such as cookies, JavaScript, or web beacons in their advertisements or service delivery. Tom\'s Java Jive has no access to or control over cookies used by third-party providers.

    + ' + ], + [ + 'icon' => '🌐', + 'title' => 'Online Privacy Policy Only', + 'body' => ' +

    This Privacy Policy applies only to our online activities and is valid for visitors to our website with regard to information shared and/or collected through tomsjavajive.com. This policy does not apply to any information collected offline or via channels other than this website.

    + ' + ], + [ + 'icon' => '👶', + 'title' => "Children's Information", + 'body' => ' +

    Protecting children\'s privacy online is important to us. We encourage parents and guardians to observe, participate in, and monitor their children\'s online activity.

    +

    Tom\'s Java Jive does not knowingly collect any personally identifiable information from children under the age of 13. If you believe your child has provided such information on our website, please contact us immediately and we will promptly remove that information from our records.

    + ' + ], + [ + 'icon' => '🔄', + 'title' => 'Changes to This Policy', + 'body' => ' +

    We may update this Privacy Policy from time to time to reflect changes to our practices or for operational, legal, or regulatory reasons. When we do, we will update the date at the top of this page. We encourage you to review this policy periodically.

    + ' + ], + ]; + + foreach ($sections as $s): ?> +
    +
    +
    +
    +

    +
    + +
    +
    + + + +
    +
    +
    ✉️
    +

    Contact Us

    +

    For more information about our privacy practices, if you have questions, or if you would like to make a complaint, please reach out:

    +

    Tom's Java Jive

    +

    Weatherford, TX 76086

    +

    hello@tomsjavajive.com

    +
    +
    + +
    +
    + + diff --git a/returns.php b/returns.php new file mode 100644 index 0000000..8cf4520 --- /dev/null +++ b/returns.php @@ -0,0 +1,89 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Returns', 'url' => 'https://tomsjavajive.com/returns.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
    +
    + +
    +

    Returns & Refunds

    +

    Simple, transparent, and always focused on making things right.

    +
    + + +
    +
    +

    At Tom's Java Jive, we believe in keeping things simple and transparent — especially when it comes to our return policy. Here's how we handle issues, with a focus on making things right as quickly as possible.

    +
    +
    + + +
    +
    +
    +
    👤
    +

    Your Responsibility

    +
    +

    If there's a mistake on your end — such as providing an incorrect shipping address or ordering the wrong item — you'll be responsible for the cost of correcting it.

    +
    +
    What to do:
    +

    Simply place a new order and let us know about both the issue and your new order number. We'll prioritize the corrected order to get it on its way quickly.

    +
    +
    +
    + + +
    +
    +
    +
    +

    Our Responsibility

    +
    +

    We're all human, and occasionally mistakes happen on our end too. Our error rate is very low, but if we slip up — like sending the wrong grind, the wrong product, or using the wrong label — we fully take responsibility.

    +
    +
    What we'll do:
    +

    Contact us, place a new order, and send us a note about the mistake along with your new order number. We'll cover all costs for the replacement coffee and its shipping, and we'll get the corrected order out as fast as we can.

    +
    +
    +
    + + +
    +
    +
    +
    🤝
    +

    Shared Responsibility

    +
    +

    Sometimes issues arise that are beyond anyone's control — carrier mistakes, package theft, or items reported as undelivered. In these cases, you have flexibility in deciding the best course of action, whether that's filing a claim with the carrier or requesting a replacement.

    +
    +
    How it works:
    +

    If you choose to replace the order, you'll cover the shipping cost and we'll cover the coffee cost up to $25.00. Place a new order, email us with the details and your new order number, and we'll refund the coffee cost and expedite the replacement.

    +
    +
    +
    + + +
    +
    +

    How to Reach Us

    +
      +
    1. Email hello@tomsjavajive.com with your order number and a description of the issue.
    2. +
    3. If your order arrived damaged, include a photo — it helps us resolve things faster.
    4. +
    5. We'll respond within 1 business day with next steps.
    6. +
    7. Refunds are returned to your original payment method within 3–5 business days.
    8. +
    +
    +
    + +

    Have a question about your order? Contact us and we'll take care of you.

    + +
    +
    + + diff --git a/shipping.php b/shipping.php new file mode 100644 index 0000000..131e5ad --- /dev/null +++ b/shipping.php @@ -0,0 +1,111 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Shipping Info', 'url' => 'https://tomsjavajive.com/shipping.php'] +]; +require_once __DIR__ . '/includes/header.php'; +?> + +
    +
    + +
    +

    Shipping Information

    +

    Fresh-roasted coffee delivered right to your door.

    +
    + + +
    +
    🚚
    +

    Free Shipping on Orders Over $50

    +

    Applies to all domestic orders shipped within the contiguous United States.

    +
    + + +
    +
    +

    Shipping Rates

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    MethodDelivery TimeRate
    Standard Shipping3–5 business days after processing$5.99 (Free over $50)
    Expedited Shipping2–3 business days after processing$12.99
    Overnight ShippingNext business day after processing$24.99
    +
    +
    + + +
    +
    +

    Processing Time

    +

    Every order at Tom's Java Jive is made fresh to ship. Because we roast to order, please allow 1–2 business days for your coffee to be roasted, packaged, and handed off to the carrier. Delivery time is in addition to this processing time.

    +

    Orders placed before 12:00 PM CST Monday–Friday typically begin processing the same day.

    +
    +
    + + +
    +
    +

    What to Expect

    +
    + '☕', 'title' => 'Order Placed', 'desc' => 'You\'ll receive an order confirmation email immediately.'], + ['icon' => '🔥', 'title' => 'Roasted Fresh', 'desc' => 'Your beans are roasted to order within 1–2 business days.'], + ['icon' => '📦', 'title' => 'Packed & Shipped', 'desc' => 'Your order is carefully packaged and picked up by the carrier. You\'ll receive a tracking number by email.'], + ['icon' => '🚪', 'title' => 'Delivered', 'desc' => 'Fresh coffee arrives at your door, ready to brew.'], + ]; + foreach ($steps as $i => $step): ?> +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + +
    +
    +

    Additional Notes

    +
      +
    • We currently ship within the contiguous United States only. Hawaii, Alaska, and international shipping are not available at this time.
    • +
    • Shipping times may be delayed during holidays or peak seasons.
    • +
    • We are not responsible for delays caused by the carrier once the package has been handed off.
    • +
    • If your package is lost or damaged in transit, please contact us and we will make it right.
    • +
    +
    +
    + +

    Questions about your shipment? Track your order or contact us.

    + +
    +
    + + diff --git a/track-order.php b/track-order.php new file mode 100644 index 0000000..d387092 --- /dev/null +++ b/track-order.php @@ -0,0 +1,249 @@ + 'Home', 'url' => 'https://tomsjavajive.com'], + ['name' => 'Track Order', 'url' => 'https://tomsjavajive.com/track-order.php'] +]; +require_once __DIR__ . '/includes/header.php'; +require_once __DIR__ . '/includes/auth.php'; + +$order = null; +$error = null; +$searched = false; + +// Pre-fill from query string (e.g. from order confirmation email link) +$prefillOrder = $_GET['order'] ?? ''; +$prefillEmail = $_GET['email'] ?? ''; + +if ($_SERVER['REQUEST_METHOD'] === 'POST' || ($prefillOrder && $prefillEmail)) { + $searched = true; + $orderNum = trim($_POST['order_number'] ?? $prefillOrder); + $email = strtolower(trim($_POST['email'] ?? $prefillEmail)); + + if (empty($orderNum) || empty($email)) { + $error = 'Please enter both your order number and email address.'; + } else { + $order = db()->fetch( + "SELECT * FROM orders WHERE (order_number = :num OR order_id = :id) AND LOWER(customer_email) = :email", + ['num' => $orderNum, 'id' => $orderNum, 'email' => $email] + ); + if (!$order) { + $error = 'No order found with that order number and email. Please double-check and try again.'; + } + } +} + +// If logged in, also show their recent orders +$recentOrders = []; +if (CustomerAuth::isLoggedIn()) { + $user = CustomerAuth::getUser(); + $recentOrders = db()->fetchAll( + "SELECT * FROM orders WHERE customer_id = :cid ORDER BY created_at DESC LIMIT 5", + ['cid' => $user['customer_id']] + ); +} + +$statusSteps = ['pending','confirmed','processing','shipped','delivered']; +$statusLabels = [ + 'pending' => 'Order Received', + 'confirmed' => 'Confirmed', + 'processing' => 'Roasting & Packing', + 'shipped' => 'Shipped', + 'delivered' => 'Delivered', +]; +$statusIcons = [ + 'pending' => '📋', + 'confirmed' => '✅', + 'processing' => '☕', + 'shipped' => '🚚', + 'delivered' => '🏠', +]; +?> + +
    +
    + +
    +

    Track Your Order

    +

    Enter your order number and email to see your order status.

    +
    + + +
    +
    +
    +
    +
    + + +
    +
    + + +
    +
    + +
    +
    +
    + + +
    + +
    + + + + +
    +
    + +
    +
    +
    Order Number
    +
    +
    +
    +
    Placed
    +
    +
    +
    + + +
    +
    +
    Order Cancelled
    +
    If you have questions, please contact us.
    +
    + + +
    +
    + +
    + +
    + + $step): ?> + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + +
    +
    +
    Tracking Number
    +
    +
    + + + Track Shipment → + + +
    + +
    + 🔔 A tracking number will be emailed to you once your order ships. +
    + + + +
    +
    Items Ordered
    +
    + +
    + × + $ +
    + +
    + Total + $ +
    +
    +
    + + + +
    + Shipping to: + , + , + , + + +
    + +
    +
    + + + + +
    +
    +

    Your Recent Orders

    +
    + +
    +
    +
    +
    · $
    +
    +
    + + + +
    + + + +
    +
    +
    + +
    +
    +
    + + + +

    + Can't find your order? Contact us and we'll look it up for you. +

    + + +
    +
    + +