2import { useState } from "react";
3import Link from "next/link";
4import { Icon } from '@/contexts/IconContext';
6export default function PosHelpPage() {
7 const [activeGuide, setActiveGuide] = useState<string>("overview");
10 { id: "overview", title: "Store POS Overview", icon: "info" },
11 { id: "sales", title: "Processing Sales", icon: "point_of_sale" },
12 { id: "returns", title: "Returns & Refunds", icon: "keyboard_return" },
13 { id: "products", title: "Product Lookup", icon: "search" },
14 { id: "customers", title: "Customer Information", icon: "badge" },
15 { id: "payment", title: "Payment Methods", icon: "payment" },
16 { id: "reports", title: "Daily Reports", icon: "receipt_long" },
17 { id: "troubleshooting", title: "Troubleshooting", icon: "build" },
18 { id: "faq", title: "FAQ", icon: "help" },
22 <div className="min-h-screen bg-bg">
24 <div className="relative overflow-hidden py-12 px-6 bg-gradient-to-r from-brand to-brand2">
25 {/* Animated circles */}
26 <div className="absolute top-0 right-0 w-64 h-64 bg-white/10 rounded-full -mr-32 -mt-32 animate-pulse"></div>
27 <div className="absolute bottom-0 left-0 w-48 h-48 bg-white/10 rounded-full -ml-24 -mb-24 animate-pulse" style={{ animationDelay: '1s' }}></div>
28 <div className="absolute top-1/2 right-1/4 w-32 h-32 bg-white/5 rounded-full animate-pulse" style={{ animationDelay: '0.5s' }}></div>
30 <div className="max-w-7xl mx-auto relative z-10">
31 <h1 className="text-4xl font-bold text-white mb-3 flex items-center gap-3">
32 <Icon name="help" size={40} />
35 <p className="text-xl text-white/90">Your guide to daily POS operations</p>
39 <div className="max-w-7xl mx-auto py-8 px-6">
40 <div className="grid grid-cols-1 lg:grid-cols-4 gap-6">
41 {/* Sidebar Navigation */}
42 <div className="lg:col-span-1">
43 <div className="bg-surface rounded-lg shadow-sm p-4 sticky top-6">
44 <h3 className="font-semibold text-text mb-3">Help Topics</h3>
45 <nav className="space-y-1">
46 {guides.map((guide) => (
49 onClick={() => setActiveGuide(guide.id)}
50 className={`w-full text-left px-3 py-2 rounded-md text-sm transition-colors flex items-center gap-2 ${
51 activeGuide === guide.id
52 ? "bg-brand/10 text-brand font-medium"
53 : "text-text hover:bg-surface-2"
56 <Icon name={guide.icon} size={18} />
62 <div className="mt-6 pt-6 border-t border-border">
63 <p className="text-xs text-muted mb-2">Need more help?</p>
66 className="text-sm text-brand hover:text-brand/80 flex items-center gap-1"
68 <Icon name="phone" size={18} />
76 <div className="lg:col-span-3">
77 <div className="bg-surface rounded-lg shadow-sm p-8">
78 {activeGuide === "overview" && (
79 <div className="space-y-6">
80 <h2 className="text-3xl font-bold text-text">Store POS Overview</h2>
82 <div className="bg-success/10 border border-success/30 rounded-lg p-5">
83 <h3 className="text-lg font-semibold text-text mb-2 flex items-center gap-2">
84 <Icon name="store" size={24} />
85 Welcome to your Store POS System
87 <p className="text-text mb-3">
88 This help center is designed specifically for store staff. Use the sidebar to navigate
89 through different topics, or scroll down for quick answers to common questions.
91 <p className="text-sm text-muted">
92 Your POS system is powered by Fieldpine technology, providing you with reliable and
93 efficient point of sale operations.
97 <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
98 <div className="p-5 bg-surface-2 rounded-lg border border-border">
99 <Icon name="point_of_sale" size={32} className="mb-2 text-brand" />
100 <h4 className="font-semibold text-text mb-1">Process Sales</h4>
101 <p className="text-sm text-muted">Learn how to ring up sales, scan items, and complete transactions</p>
104 <div className="p-5 bg-surface-2 rounded-lg border border-border">
105 <Icon name="keyboard_return" size={32} className="mb-2 text-brand" />
106 <h4 className="font-semibold text-text mb-1">Handle Returns</h4>
107 <p className="text-sm text-muted">Step-by-step guide for processing customer returns</p>
110 <div className="p-5 bg-surface-2 rounded-lg border border-border">
111 <Icon name="search" size={32} className="mb-2 text-brand" />
112 <h4 className="font-semibold text-text mb-1">Find Products</h4>
113 <p className="text-sm text-muted">Quick product search and price lookups</p>
116 <div className="p-5 bg-surface-2 rounded-lg border border-border">
117 <Icon name="receipt_long" size={32} className="mb-2 text-brand" />
118 <h4 className="font-semibold text-text mb-1">View Reports</h4>
119 <p className="text-sm text-muted">Check your daily sales and performance</p>
123 <div className="bg-info/10 border border-info/30 rounded-lg p-5">
124 <h3 className="text-sm font-semibold text-text mb-2 flex items-center gap-2">
125 <Icon name="tips_and_updates" size={20} />
128 <ul className="text-sm text-text space-y-2 list-disc pl-5">
129 <li>Use the search bar (Ctrl+K) to quickly find products</li>
130 <li>Double-click on products to view detailed information</li>
131 <li>Press F1 at any time to open this help center</li>
132 <li>Your dashboard shows today's sales at a glance</li>
138 {activeGuide === "sales" && (
139 <div className="space-y-6">
140 <h2 className="text-3xl font-bold text-text">Processing Sales</h2>
142 <div className="space-y-4">
144 <h3 className="text-xl font-semibold text-text mb-2 flex items-center gap-2">
145 <Icon name="looks_one" size={24} />
148 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
149 <li>Navigate to <strong>Point of Sale → Sales</strong> from the menu</li>
150 <li>The sales screen will open with a blank transaction</li>
151 <li>Begin scanning items or searching for products manually</li>
156 <h3 className="text-xl font-semibold text-text mb-2 flex items-center gap-2">
157 <Icon name="looks_two" size={24} />
160 <p className="text-text mb-2">You can add items to the sale in multiple ways:</p>
161 <ul className="list-disc list-inside space-y-2 ml-4 text-text">
162 <li><strong>Scan barcode:</strong> Use your barcode scanner to scan product barcodes</li>
163 <li><strong>Manual search:</strong> Type the product name or code in the search box</li>
164 <li><strong>Browse:</strong> Click on products from the product grid</li>
165 <li><strong>Quick keys:</strong> Use keyboard shortcuts for common items</li>
170 <h3 className="text-xl font-semibold text-text mb-2 flex items-center gap-2">
171 <Icon name="looks_3" size={24} />
174 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
175 <li>Review the items and total on screen</li>
176 <li>Click the <strong>Pay</strong> button or press F12</li>
177 <li>Select the payment method (Cash, Card, etc.)</li>
178 <li>Enter the amount tendered (for cash sales)</li>
179 <li>Click <strong>Complete Sale</strong></li>
180 <li>A receipt will print automatically</li>
184 <div className="bg-warn/10 border border-warn/30 rounded-lg p-4">
185 <h4 className="font-semibold text-text mb-2 flex items-center gap-2">
186 <Icon name="warning" size={20} />
189 <ul className="text-sm text-text space-y-2 list-disc pl-5">
190 <li>Always verify the total before completing payment</li>
191 <li>Check that the customer receives the correct change</li>
192 <li>If you make a mistake, void the line item and re-scan</li>
193 <li>Never leave a transaction open when stepping away from the POS</li>
200 {activeGuide === "returns" && (
201 <div className="space-y-6">
202 <h2 className="text-3xl font-bold text-text">Returns & Refunds</h2>
204 <div className="space-y-4">
206 <h3 className="text-xl font-semibold text-text mb-2">Processing a Return</h3>
207 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
208 <li>Ask the customer for their original receipt</li>
209 <li>Navigate to <strong>Point of Sale → Sales</strong></li>
210 <li>Click the <strong>Return</strong> button</li>
211 <li>Scan the items being returned or enter them manually</li>
212 <li>Verify the return reason (optional)</li>
213 <li>Select the refund method (same as original payment)</li>
214 <li>Complete the transaction</li>
218 <div className="bg-danger/10 border border-danger/30 rounded-lg p-5">
219 <h4 className="font-semibold text-text mb-2 flex items-center gap-2">
220 <Icon name="error" size={20} />
223 <ul className="text-sm text-text space-y-2 list-disc pl-5">
224 <li>Returns accepted within 30 days with receipt</li>
225 <li>Items must be in original condition</li>
226 <li>Refunds issued to original payment method</li>
227 <li>Check with manager for returns without receipt</li>
232 <h3 className="text-xl font-semibold text-text mb-2">Exchange Items</h3>
233 <p className="text-text">For exchanges:</p>
234 <ol className="list-decimal list-inside space-y-2 ml-4 mt-2 text-text">
235 <li>Process the return as described above</li>
236 <li>Start a new sale for the replacement item</li>
237 <li>Apply any credit from the return to the new sale</li>
244 {activeGuide === "products" && (
245 <div className="space-y-6">
246 <h2 className="text-3xl font-bold text-text">Product Lookup</h2>
248 <div className="space-y-4">
250 <h3 className="text-xl font-semibold text-text mb-2">Finding a Product</h3>
251 <p className="text-text mb-2">Navigate to <strong>Point of Sale → Products</strong> to search for items:</p>
252 <ul className="list-disc list-inside space-y-2 ml-4 text-text">
253 <li><strong>Search by name:</strong> Type any part of the product name</li>
254 <li><strong>Search by code:</strong> Enter the product code or SKU</li>
255 <li><strong>Scan barcode:</strong> Scan the product to look it up instantly</li>
256 <li><strong>Browse categories:</strong> Use department filters to narrow results</li>
261 <h3 className="text-xl font-semibold mb-2 text-text">Checking Stock Levels</h3>
262 <p className="mb-2 text-text">To check if an item is in stock:</p>
263 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
264 <li>Go to <strong>Point of Sale → Stock Levels</strong></li>
265 <li>Search for the product</li>
266 <li>View current stock quantity and location</li>
267 <li>Check if more stock is on order</li>
272 <h3 className="text-xl font-semibold mb-2 text-text">Price Checks</h3>
273 <p className="text-text">
274 When a customer asks for a price, use the product search to quickly look up the
275 current price. The system will show:
277 <ul className="list-disc list-inside space-y-1 ml-4 mt-2 text-text">
278 <li>Regular retail price</li>
279 <li>Any active discounts or promotions</li>
280 <li>Special prices (if applicable)</li>
287 {activeGuide === "customers" && (
288 <div className="space-y-6">
289 <h2 className="text-3xl font-bold text-text">Customer Information</h2>
291 <div className="space-y-4">
293 <h3 className="text-xl font-semibold mb-2 text-text">Looking Up Customer Details</h3>
294 <p className="mb-2 text-text">During a sale, you can add customer information:</p>
295 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
296 <li>Click the <strong>Customer</strong> button on the sales screen</li>
297 <li>Search by name, phone, or email</li>
298 <li>Select the customer from the results</li>
299 <li>Their details will be linked to this sale</li>
304 <h3 className="text-xl font-semibold mb-2 text-text">Adding New Customers</h3>
305 <p className="mb-2 text-text">If the customer is not in the system:</p>
306 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
307 <li>Click <strong>Add New Customer</strong></li>
308 <li>Enter their name and contact details</li>
309 <li>Ask if they want to join the loyalty program</li>
310 <li>Save the customer record</li>
314 <div className="bg-info/10 border border-info/30 rounded-lg p-5">
315 <h4 className="font-semibold mb-2 flex items-center gap-2 text-text">
316 <Icon name="info" size={20} />
319 <p className="text-sm text-text">
320 Always ask permission before collecting customer information. Let customers know
321 that their details will only be used for purchase history and loyalty rewards.
328 {activeGuide === "payment" && (
329 <div className="space-y-6">
330 <h2 className="text-3xl font-bold text-text">Payment Methods</h2>
332 <div className="space-y-4">
334 <h3 className="text-xl font-semibold text-text mb-2">Accepted Payment Types</h3>
335 <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
336 <div className="p-5 bg-surface-2 rounded-lg border border-border">
337 <div className="flex items-center gap-2 mb-2">
338 <Icon name="payments" size={20} className="text-brand" />
339 <strong className="text-text">Cash</strong>
341 <p className="text-sm text-muted">Count change carefully and verify notes</p>
343 <div className="p-5 bg-surface-2 rounded-lg border border-border">
344 <div className="flex items-center gap-2 mb-2">
345 <Icon name="credit_card" size={20} className="text-brand" />
346 <strong className="text-text">EFTPOS/Credit Card</strong>
348 <p className="text-sm text-muted">Insert, tap, or swipe card</p>
350 <div className="p-5 bg-surface-2 rounded-lg border border-border">
351 <div className="flex items-center gap-2 mb-2">
352 <Icon name="phone_iphone" size={20} className="text-brand" />
353 <strong className="text-text">Mobile Payment</strong>
355 <p className="text-sm text-muted">Apple Pay, Google Pay, Samsung Pay</p>
357 <div className="p-5 bg-surface-2 rounded-lg border border-border">
358 <div className="flex items-center gap-2 mb-2">
359 <Icon name="card_giftcard" size={20} className="text-brand" />
360 <strong className="text-text">Gift Cards</strong>
362 <p className="text-sm text-muted">Scan or enter gift card number</p>
368 <h3 className="text-xl font-semibold mb-2 text-text">Split Payments</h3>
369 <p className="text-text">
370 Customers can pay using multiple payment methods:
372 <ol className="list-decimal list-inside space-y-2 ml-4 mt-2 text-text">
373 <li>After clicking Pay, select the first payment method</li>
374 <li>Enter the amount for that payment</li>
375 <li>Click <strong>Add Payment</strong></li>
376 <li>Select the second payment method for the remaining balance</li>
377 <li>Complete the transaction</li>
381 <div className="bg-warn/10 border border-warn/30 rounded-lg p-5">
382 <h4 className="font-semibold text-text mb-3 flex items-center gap-2">
383 <Icon name="warning" size={20} />
386 <ul className="text-sm text-text space-y-2 list-disc pl-5">
387 <li>Always wait for "Approved" message before completing sale</li>
388 <li>For declined cards, ask customer to try another payment method</li>
389 <li>Never manually enter card numbers unless authorized</li>
390 <li>Signature required for purchases over $100 (check store policy)</li>
397 {activeGuide === "reports" && (
398 <div className="space-y-6">
399 <h2 className="text-3xl font-bold text-text">Daily Reports</h2>
401 <div className="space-y-4">
403 <h3 className="text-xl font-semibold mb-2 text-text">Viewing Your Sales</h3>
404 <p className="mb-2 text-text">To check your daily performance:</p>
405 <ol className="list-decimal list-inside space-y-2 ml-4 text-text">
406 <li>Go to <strong>Point of Sale → Sales Report</strong></li>
407 <li>View today's total sales, transactions, and averages</li>
408 <li>See breakdown by payment method</li>
409 <li>Check your personal sales performance</li>
414 <h3 className="text-xl font-semibold mb-2 text-text">Monthly Summary</h3>
415 <p className="mb-2 text-text">For monthly performance data:</p>
416 <ul className="list-disc list-inside space-y-2 ml-4 text-text">
417 <li>Navigate to <strong>Point of Sale → Monthly Report</strong></li>
418 <li>View sales trends over the month</li>
419 <li>Compare performance to previous months</li>
420 <li>See top-selling products</li>
425 <h3 className="text-xl font-semibold mb-2 text-text">Dashboard Overview</h3>
426 <p className="text-text">
427 The <strong>Home</strong> page shows your key metrics at a glance:
429 <ul className="list-disc list-inside space-y-1 ml-4 mt-2 text-text">
430 <li>Today's sales total</li>
431 <li>Number of transactions</li>
432 <li>Average transaction value</li>
433 <li>Payment method breakdown</li>
434 <li>Hourly sales chart</li>
441 {activeGuide === "troubleshooting" && (
442 <div className="space-y-6">
443 <h2 className="text-3xl font-bold text-text">Troubleshooting</h2>
445 <div className="space-y-4">
447 <h3 className="text-xl font-semibold mb-2 text-text">Common Issues</h3>
449 <div className="space-y-4">
450 <div className="p-4 rounded-lg border bg-surface-2 border border-border">
451 <h4 className="font-semibold mb-2 text-text">Barcode Scanner Not Working</h4>
452 <ul className="text-sm space-y-1 ml-4 list-disc">
453 <li>Check USB cable connection</li>
454 <li>Try scanning a different barcode</li>
455 <li>Restart the scanner (unplug and replug)</li>
456 <li>Enter the barcode number manually as a backup</li>
460 <div className="p-4 rounded-lg border bg-surface-2 border border-border">
461 <h4 className="font-semibold mb-2 text-text">Receipt Printer Not Printing</h4>
462 <ul className="text-sm space-y-1 ml-4 list-disc">
463 <li>Check paper roll - ensure it's loaded correctly</li>
464 <li>Verify printer is powered on</li>
465 <li>Check for paper jams</li>
466 <li>Try restarting the printer</li>
470 <div className="p-4 rounded-lg border bg-surface-2 border border-border">
471 <h4 className="font-semibold mb-2 text-text">EFTPOS Terminal Issues</h4>
472 <ul className="text-sm space-y-1 ml-4 list-disc">
473 <li>Ensure terminal is connected to power and network</li>
474 <li>Check communication cable to POS</li>
475 <li>Try a manual payment entry if tap/insert fails</li>
476 <li>Contact bank support for persistent issues</li>
480 <div className="p-4 rounded-lg border bg-surface-2 border border-border">
481 <h4 className="font-semibold mb-2 text-text">Product Not Found</h4>
482 <ul className="text-sm space-y-1 ml-4 list-disc">
483 <li>Try different search terms</li>
484 <li>Check for typos in product code</li>
485 <li>Look up by barcode if available</li>
486 <li>Ask manager about special order items</li>
490 <div className="p-4 rounded-lg border bg-surface-2 border border-border">
491 <h4 className="font-semibold mb-2 text-text">System Running Slow</h4>
492 <ul className="text-sm space-y-1 ml-4 list-disc">
493 <li>Check internet connection</li>
494 <li>Close unnecessary browser tabs</li>
495 <li>Clear browser cache if problem persists</li>
496 <li>Report to IT if issue continues</li>
502 <div className="bg-danger/10 border border-danger/30 rounded-lg p-5">
503 <h4 className="font-semibold mb-2 flex items-center gap-2 text-text">
504 <Icon name="phone" size={20} />
507 <p className="text-sm text-text">
508 If you can't resolve an issue, contact your manager or call technical support at
509 <strong> 1300-123-456</strong>. Have your store name and terminal number ready.
516 {activeGuide === "faq" && (
517 <div className="space-y-6">
518 <h2 className="text-3xl font-bold text-text">Frequently Asked Questions</h2>
520 <div className="space-y-4">
521 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
522 <summary className="font-semibold cursor-pointer text-text">
523 How do I void an item after scanning it?
525 <p className="mt-2 text-sm text-muted">
526 Click on the item in the transaction list and press the "Remove" or "Void" button.
527 You can also use the Delete key on your keyboard.
531 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
532 <summary className="font-semibold cursor-pointer text-text">
533 Can I cancel a sale after starting it?
535 <p className="mt-2 text-sm text-muted">
536 Yes, use the "Cancel" or "Void Transaction" button before completing payment.
537 This will clear all items and start fresh. Once payment is complete, you'll need
538 to process a return instead.
542 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
543 <summary className="font-semibold cursor-pointer text-text">
544 What if a customer wants a discount?
546 <p className="mt-2 text-sm text-muted">
547 Check your store's discount policy. If authorized, select the item and click
548 "Discount" to apply a percentage or dollar amount off. Manager approval may be
549 required for discounts over a certain amount.
553 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
554 <summary className="font-semibold cursor-pointer text-text">
555 How do I open the cash drawer?
557 <p className="mt-2 text-sm text-muted">
558 The cash drawer automatically opens when you complete a cash sale. To open it
559 manually (for change, etc.), use the "No Sale" function - this requires manager
560 authorization and will be logged.
564 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
565 <summary className="font-semibold cursor-pointer text-text">
566 What should I do at the end of my shift?
568 <p className="mt-2 text-sm text-muted">
569 Your manager will guide you through the end-of-shift process, which typically includes:
570 counting your cash drawer, reconciling transactions, and logging out of the system.
571 Never leave the POS logged in when you're not present.
575 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
576 <summary className="font-semibold cursor-pointer text-text">
577 How do I look up a previous transaction?
579 <p className="mt-2 text-sm text-muted">
580 Go to Point of Sale → Sales Report and use the transaction search feature. You can
581 search by receipt number, date/time, customer name, or transaction amount. This is
582 helpful for processing returns or answering customer questions.
586 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
587 <summary className="font-semibold cursor-pointer text-text">
588 Can I change the quantity of an item?
590 <p className="mt-2 text-sm text-muted">
591 Yes, after scanning or adding an item, click on it in the transaction list and use
592 the quantity field to update. You can also scan the same item multiple times to
593 increase quantity automatically.
597 <details className="p-4 rounded-lg border bg-surface-2 border border-border">
598 <summary className="font-semibold cursor-pointer text-text">
599 What if the price on screen doesn't match the shelf tag?
601 <p className="mt-2 text-sm text-muted">
602 Follow your store's price accuracy policy. Typically, you should honor the lower
603 price and notify your manager so they can update the pricing or signage. Use the
604 price override function with manager approval if needed.
616 <div className="py-8 px-6 mt-12 bg-surface border-t border-border">
617 <div className="max-w-7xl mx-auto text-center">
618 <p className="text-sm text-muted mb-2">
619 Need additional help? Contact your store manager or technical support.
621 <p className="text-xs text-muted">
622 Powered by Fieldpine Technology