best_sales
ChatGPTคืนอันดับขายดีจาก API /Report/GetBestSales - salesType รองรับทั้งชื่อ (product/category/contact หรือ customer/...) หรือค่าตัวเลขโดยตรง (0..11) - dateAfter/dateBefore เป็นรูปแบบ YYYY-MM-DD (ถ้าเว้นไว้ API จะใช้ค่า default)
contacts
ChatGPTค้นหาลูกค้า/ผู้ติดต่อจาก /Contact/GetContacts คืน id/name/code/phone/email/address ฯลฯ ระบุ keyword (ชื่อ/บริษัท) ค้นได้เลยโดยไม่จำเป็นต้องรู้เบอร์โทร หรือระบุ phone ถ้ารู้เบอร์แน่นอน
forecast_stockout
ChatGPTประเมินสินค้าที่จะหมดสต็อกภายใน withinDays วัน โดยคำนวณอัตราขายเฉลี่ยต่อวันจากยอดขายย้อนหลัง velocityLookbackDays วัน แล้วเสนอจำนวนที่ควรสั่งเพิ่มให้พอใช้ไปอีก reorderCoverageDays วัน ⚠️ ข้อจำกัด (ต้องแจ้งผู้ใช้ด้วยเสมอ): เป็นการประมาณจากยอดขายย้อนหลังเฉลี่ยเท่านั้น ไม่รู้ seasonality/ lead time/safety stock จริง และสินค้าที่ไม่มียอดขายเลยในช่วงย้อนหลังจะไม่ถูกประเมิน (คำนวณอัตราขาย ไม่ได้ แม้สต็อกจะน้อยก็ตาม)
list_categories
ChatGPTรายชื่อหมวดหมู่สินค้าทั้งหมดของร้าน
list_payment_methods
ChatGPTรายชื่อช่องทางการชำระเงิน (payment method) ที่ร้านเปิดรับ
list_sales_channels
ChatGPTรายชื่อช่องทางการขาย (sales channel) ที่ร้านเปิดใช้งาน เช่น Shopee/Lazada/หน้าร้าน
list_shipping_channels
ChatGPTรายชื่อช่องทางขนส่ง (shipping channel) ที่ร้านใช้ เช่น DHL/Kerry/Flash — แค่รายชื่อช่องทาง ไม่มีรายละเอียด tracking/สถานะขนส่งจริง ถ้าต้องการสถานะการขนส่งจริงให้ใช้ shipment_transactions แทน
list_warehouses
ChatGPTรายชื่อคลังสินค้าทั้งหมดของร้าน (ใช้ warehouseCode/warehouseId คู่กับ tool อื่นที่กรองตามคลังได้)
merchant_profile
ChatGPTข้อมูลโปรไฟล์ร้านค้า (ชื่อร้าน/ที่อยู่/ข้อมูลติดต่อ ฯลฯ)
orders
ChatGPTดึงข้อมูลออร์เดอร์ — ระบุ orderIds/orderNumbers/keyword เพื่อค้นเฉพาะรายการ หรือเว้นไว้เพื่อ ดึงตามช่วงวันที่ (dateAfter/dateBefore) แทน กรองเพิ่มได้ด้วย customerIdList/salesChannel/ warehouseCodeList/productIdList/productName/fromAmount/toAmount ใช้ productIdList เมื่อคำถามถามหาออเดอร์ที่มีสินค้าตาม product ID ที่ระบุ (เช่น "สินค้า ID นี้ ขายไปกับออเดอร์ไหนบ้าง") — กรองได้ทั้งแบบระบุ orderIds/keyword หรือช่วงวันที่ก็ได้ ⚠️ keyword ค้นได้แค่ field เหล่านี้: order number, reference name, shipping name/channel, sales channel, ชื่อ/เบอร์โทร/อีเมลลูกค้า, tracking no, tag — ไม่ค้นชื่อสินค้า/SKU เลยแม้แต่น้อย (นี่คือข้อเท็จจริงจากฝั่ง API ไม่ใช่แค่ความเสี่ยง) ดังนั้นถ้าถามหาออเดอร์/ลูกค้าที่ซื้อสินค้าด้วย "ชื่อ/ประเภทสินค้า" (ไม่ใช่ product ID ตรงๆ) เช่น "ใครซื้อเครื่อง POS บ้าง" ห้ามใช้ keyword เด็ดขาด ให้ใส่ชื่อ/ประเภทสินค้านั้นใน productName แทน (tool นี้จะหา product ID ที่เกี่ยวข้องเองอัตโนมัติแล้วกรองให้) เทคนิคที่มีประโยชน์: ถ้าต้องการ "ลูกค้าที่ซื้อเยอะที่สุด N คน แต่ละคนซื้ออะไรไปบ้าง" ให้เรียก best_sales(salesType="contact", limit=N) ก่อนเพื่อได้ contact ID ที่ซื้อเยอะสุด แล้วเอา ID เหล่านั้นมาใส่ใน customerIdList ของ tool นี้ต่อ (ในช่วงเวลาเดียวกัน) จะได้ order ของลูกค้ากลุ่มนั้นครบ
products
ChatGPTคืนรายการสินค้าจาก /Product/GetProducts (ข้อมูลสดตรงจาก API แบบ exact match) ใช้ tool นี้เสมอเมื่อคำถามระบุ SKU/barcode/product ID ตรงๆ — ระบุ productIds/skuList/barcode เพื่อดึงเฉพาะรายการนั้น (แม่นยำกว่า tool search ที่เป็น semantic search มาก) หรือเว้นพารามิเตอร์ เหล่านี้ไว้เพื่อดึงตามช่วงวันที่อัปเดต (dateAfter/dateBefore) แทน
purchase_orders
ChatGPTดึงใบสั่งซื้อ (purchase orders) จาก /PurchaseOrder/GetPurchaseOrders — ผลลัพธ์ใน data มี list/count/ totalAmount/totalPaymentAmount ให้พร้อม
quotations
ChatGPTดึงใบเสนอราคา (quotations) จาก /Quotation/GetQuotations — ผลลัพธ์ใน data มี list/count/totalAmount ให้พร้อม
return_orders
ChatGPTดึงรายการคืนสินค้า (return orders) จาก /ReturnOrder/GetReturnOrders — ผลลัพธ์ใน data มี list/count/ totalAmount/totalPaymentAmount ให้พร้อม ใช้ referenceId (คือ order ID ของ sales order ต้นทาง) เมื่อคำถามถามหารายการรับคืนของ order ใด order หนึ่งโดยเฉพาะ (เช่น "order นี้มีรับคืนไหม") แทนการดึงทั้งหมดแล้วมากรองเอง
return_purchase_orders
ChatGPTดึงรายการคืนใบสั่งซื้อ (return purchase orders) จาก /ReturnPurchaseOrder/GetReturnPurchaseOrders — ผลลัพธ์ใน data มี list/count/totalAmount/totalPaymentAmount ให้พร้อม
scan_stock
ChatGPTสแกนสต็อกทั้งแคตตาล็อก (เฉพาะสินค้าที่มีสต็อกจริง ไม่นับสินค้าบริการ) แล้วเรียงตามจำนวนคงเหลือ — order="asc" (น้อยไปมาก) สำหรับคำถาม "เหลือน้อย/ใกล้หมดสต็อก" (ใช้คู่กับ threshold เช่น <= 5 ชิ้น), order="desc" (มากไปน้อย) สำหรับคำถาม "มีสต็อกมากที่สุด" — ใช้แทน semantic search เสมอสำหรับคำถาม แนวสแกนทั้งแคตตาล็อกด้วยตัวเลขสต็อกจริง เพราะต้องกรอง/เรียงด้วยตัวเลขจริง ไม่ใช่ความหมายคล้ายกัน
search
ChatGPTค้นหาสินค้า — ถ้าคำถามมีลักษณะเป็นรหัส/บาร์โค้ด/SKU ตรงๆ (เช่น "barcode SMD3", "SKU P932") จะลองดึงข้อมูลแบบ exact match จาก API ให้ก่อนเสมอ (แม่นยำกว่ามาก) ก่อนจะ fallback ไป semantic search ใน Pinecone ถ้าไม่เจอ — เรียก tool นี้ได้ตรงๆ ไม่ต้องแยกไปเรียก products เองก็ได้
search_meta
ChatGPTค้นหา catalog/meta ใน Pinecone (category/warehouse/saleschannel/shipping/payment/merchant)
shipment_transactions
ChatGPTเช็คสถานะการขนส่ง/tracking จาก /Shipment/GetShipmentTransactions — ใช้ tool นี้เสมอเมื่อคำถามระบุ tracking number/shipment ID ตรงๆ (ระบุ trackingNoList) เพื่อดูสถานะ ผู้ให้บริการขนส่ง (carrier), ค่าส่ง, ที่อยู่ผู้รับ หรือเว้นพารามิเตอร์นี้ไว้เพื่อดึงตามช่วงวันที่สร้าง/อัปเดตแทน
stock_by_product_ids
ChatGPTเช็คสต็อกสดจาก API ตาม product ID — คืน stock/price รวมทุกคลัง พร้อม byWarehouse breakdown แยกทีละคลังเสมอ (ไม่ต้องเดา/ระบุคลังล่วงหน้า) ให้เลือกดูคลังที่ต้องการเองจากผลลัพธ์ได้เลย
total_sales
ChatGPTคืนซีรีส์ยอดขายรวม (volumn) ตามกลุ่มเวลาที่กำหนด
trend_values
ChatGPTดึงค่า trend ตามช่วงเวลาจาก /Report/GetTrendValues trendType (ใช้ค่าใดค่าหนึ่งเท่านั้น): Amount, Count, PaymentAmount, ShippingAmount, DiscountBill, Voucher, ShippingVoucher, Rebate, ExpenseCost, CommissionCost, ShippingCost, Vat, ProductCount, StockCount, ProductDiscountAmount groupType (ใช้ค่าใดค่าหนึ่งเท่านั้น): All, Date, Month, Quarter, Year