# PMaxx — แผน Implementation ให้ลูกค้า (Pharmacy / Health e-Marketplace)

> สถานะ: ตัวแพลตฟอร์ม PMaxx พัฒนาเสร็จแล้ว — งานนี้คือการ **onboarding + integration ให้ลูกค้า 1 ราย** โดยจัดการให้ครบทั้ง data / API / payment / delivery / ช่องทาง LINE และวางแผนเผื่อ project ต่อยอด (LINE CRM, Same-day, Telemed)
>
> ⚠️ เอกสารนี้ไม่ใช่คำแนะนำทางกฎหมาย ส่วนที่เกี่ยวกับการขายยา/telemedicine ต้องยืนยันกับฝ่ายกฎหมาย + เภสัชกร/RA ของลูกค้าก่อนเสมอ

---

## 0. ภาพรวมสโคป (แบ่ง 2 ก้อน)

**ก้อน A — Core Go-live (ต้องเสร็จเพื่อเปิดขายได้):**
1. เพิ่มสินค้า 100 SKU เบื้องต้น
2. API สินค้าเชื่อม ERP Navision (product / stock / price) + middleware ส่ง order ออกจาก PMaxx → NAV **และดึงสถานะกลับ**
3. เชื่อม Payment Gateway — ChillPay
4. เชื่อม Delivery — Shippop
5. ช่องทาง LINE OA (สมัคร/ login) — เลือกทางเชื่อมที่สะอาดแทนของเดิมที่ไม่ work
6. Config พื้นฐาน + Compliance ขั้นต่ำ + ชั้น Reconciliation

**ก้อน B — Separate Projects (วางแผนเผื่อ ไม่บล็อก go-live):**
- LINE CRM เต็มรูปแบบ
- Same-day: สั่ง + ส่งยาภายในวัน
- Telemed: ปรึกษาแพทย์ออนไลน์ → ใบสั่งยา → สั่งซื้อ

---

## 1. Gap Analysis — สิ่งที่ยัง "ขาด" จากลิสต์เดิม

ลิสต์ที่ให้มาครอบคลุม "เส้นทางหลัก" แล้ว แต่ยังขาดชิ้นที่ทำให้ระบบ **ปิดลูปได้จริง** และ **ผ่าน compliance** — เรียงตามความเสี่ยง

### 1.1 🔴 Regulatory & Compliance (เสี่ยงสุด เพราะขายยา)
- **ใบอนุญาตขายยา (ขย.)** + **เภสัชกรประจำ** + มาตรฐาน GPP ของร้านลูกค้า
- แยกให้ชัดว่า SKU ไหน **ขายออนไลน์ได้** vs **ยาอันตราย / ยาควบคุมพิเศษ** ที่ต้องมีใบสั่งแพทย์ / เภสัชกรจ่าย — มีผลต่อ catalog + checkout (ต้องมี flow อัปโหลด/ตรวจใบสั่งยา)
- ข้อกำหนด **อย. / พ.ร.บ.ยา** และการโฆษณายา
- **PDPA** — ข้อมูลสุขภาพ = ข้อมูลอ่อนไหว ต้องมี consent ชัดเจน + มาตรการป้องกันสูงกว่าปกติ (โดยเฉพาะเมื่อทำ LINE CRM / Telemed)
- Telemed: แนวทาง **แพทยสภา**, ความชอบด้วยกฎหมายของ **e-prescription**, การยืนยันตัวตน/ใบอนุญาตแพทย์

### 1.2 🔴 Order / API — ขาด "ขากลับ" และ edge cases
- ในลิสต์มีแต่ **ส่ง order ออก** (PMaxx → NAV) แต่ยัง **ขาดสถานะกลับ** (NAV → PMaxx): shipped / invoiced / tracking / ยกเลิก
- **Stock & Price sync** ทิศทาง + ความถี่ยังไม่นิยาม (ปกติ NAV → PMaxx)
- **Idempotency** = ใช้ `External Document No.` = PMaxx Order ID กันสร้าง Sales Order ซ้ำใน NAV — ห้ามข้าม
- **Return / Refund / Cancel** ต้อง sync กลับ NAV + คืน stock
- **Reservation / กัน oversell** ตอนสต๊อกใกล้หมด (สำคัญมากถ้า NAV เก่าที่ push ไม่ได้ ต้อง poll)
- **Source of truth** ต่อ entity (ราคา/สต๊อก/ลูกค้า ใครเป็นเจ้าของ) ต้องเคาะก่อนเขียน mapping

### 1.3 🟠 Payment — ChillPay
- **Reconciliation / Settlement** — จับคู่ยอดที่ ChillPay จ่ายเข้ากับ order และโพสต์เข้า NAV
- **Refund API** + flow คืนเงิน (ผูกกับ return ใน 1.2)
- **Webhook สถานะจ่าย** (paid / failed / pending) + จัดการ pending / จ่ายไม่สำเร็จ / abandoned
- **e-Tax Invoice / ใบกำกับภาษีอิเล็กทรอนิกส์** — ออกให้ลูกค้า + ลง NAV
- ค่าธรรมเนียม (MDR) ลงบัญชีใน NAV, 3DS / security, ทดสอบบน sandbox

### 1.4 🟠 Delivery — Shippop
- **คำนวณค่าส่งตอน checkout** (rate quote) ตามน้ำหนัก/พื้นที่
- **COD + Reconciliation COD** — เงินไหลกลับผ่านขนส่ง ต้องกระทบยอด COD ↔ order ↔ NAV (จุดพลาดบ่อย)
- สร้าง shipment / label / tracking no. + **นัด pickup**
- **Webhook สถานะพัสดุ** → อัปเดต PMaxx + NAV
- ตรวจพื้นที่ให้บริการ / รหัสไปรษณีย์
- ⚠️ **Same-day มักอยู่นอก Shippop** → ต้องใช้ on-demand courier (Lalamove / Grab / Robinhood) = อยู่ใน project Same-day

### 1.5 🟠 Data & Reconciliation Layer (จุดแข็งของทีมเรา)
- Dashboard **กระทบยอดรายวัน**: PMaxx orders ↔ NAV Sales Order ↔ ChillPay payment ↔ Shippop shipment — **count และ sum ต้องตรง**
- ทำเป็น first-class ตั้งแต่วันแรก (บทเรียนเดิม: dashboard มักไม่ตรง backend) — ตรงนี้คือสิ่งที่กันปัญหาซ้ำรอย Fruit Ninja/J-Saller

### 1.6 🟡 LINE OA — ล้าง technical debt
- ของเดิม 2 ทางเชื่อมไม่ค่อย work → **เลือกทางเดียวให้สะอาด**: LIFF + Messaging API
- Link บัญชี LINE ↔ PMaxx account, สมัครผ่าน LINE, แจ้งเตือนสถานะออเดอร์, rich menu
- วาง data model ให้ต่อยอดเป็น LINE CRM ได้ (อย่าทำแบบ throwaway)

### 1.7 🟡 Finance / Tax end-to-end
- e-Tax invoice, VAT posting group ใน NAV, refund accounting, COD settlement เข้า NAV, marketplace commission (ถ้า multi-vendor)

### 1.8 🟡 Environments / DevOps / Security
- Sandbox/Staging ครบทุกตัว (NAV test, ChillPay sandbox, Shippop test, LINE test)
- Secret management, monitoring + alert + log รวมศูนย์, backup / DR, uptime ของ middleware
- **NAV on-prem** → ต้องจัด connectivity (VPN / gateway / IP whitelist)

### 1.9 🟡 Ops / Cutover / Handover
- UAT กับลูกค้า, training, **cutover plan + rollback**, initial data load, hypercare, support / SLA, runbook, และ **เจ้าของ catalog หลัง go-live** (sync จาก NAV หรือแก้มือ)

---

## 2. Workstream + Task Breakdown (ก้อน A)

**WS1 · Discovery & Compliance Setup**
- ยืนยันรุ่น/โฮสต์ NAV, ตรวจ web service ที่ publish ได้ + สิทธิ์, ตรวจ connectivity
- ตรวจว่า PMaxx มี module ChillPay / Shippop เดิมหรือต้อง custom
- เคาะ source of truth ต่อ entity + ทิศทาง/ความถี่ sync
- **Compliance review**: SKU กลุ่มไหนขายออนไลน์ได้, flow ใบสั่งยา, PDPA consent

**WS2 · Catalog & 100 SKU Onboarding**
- Template รับข้อมูลจากลูกค้า (Excel/CSV): ชื่อ, ราคา, ภาษี, หมวด, แบรนด์, ภาพ, เลขทะเบียนยา, flag ยาที่ต้องมีใบสั่ง
- Map **NAV Item No. ↔ PMaxx SKU** (+ variant, unit) → cross-reference table
- Import + QA ความถูกต้อง (นับ/ตรวจครบ 100)

**WS3 · NAV Product/Stock/Price API**
- ดึง item / price / stock-by-location (OData/SOAP หรือ REST ถ้า BC)
- classic NAV → scheduled pull ทุก x นาที; BC → webhook
- กัน oversell / reservation logic

**WS4 · Order Middleware (PMaxx → NAV) + สถานะกลับ**
- สร้าง Sales Header/Line ผ่าน published Codeunit
- **Idempotency = External Document No. = PMaxx Order ID**
- Dimensions / Location / Number series
- ดึงสถานะกลับ: Posted Shipment / Invoice → อัปเดต PMaxx
- Return / cancel / refund sync
- Retry / dead-letter / logging / alert

**WS5 · ChillPay**
- เชื่อม charge + webhook สถานะ, refund, e-Tax invoice, ลงค่าธรรมเนียม NAV, sandbox test

**WS6 · Shippop**
- Rate quote ตอน checkout, สร้าง shipment/label/tracking, pickup, **COD + reconciliation**, webhook สถานะ → PMaxx + NAV

**WS7 · LINE OA**
- เลือก LIFF + Messaging API, สมัคร/login, link account, แจ้งเตือนออเดอร์, rich menu (วาง schema เผื่อ CRM)

**WS8 · Reconciliation & Finance**
- Dashboard กระทบยอดรายวัน (orders ↔ NAV ↔ ChillPay ↔ Shippop), e-Tax, VAT, COD settlement

**WS9 · Env / DevOps / Security** — sandbox, secret, monitoring, backup, connectivity NAV

**WS10 · UAT / Cutover / Hypercare** — E2E test, initial load, go-live checklist, rollback, hypercare, handover

---

## 3. Timeline (ก้อน A — ประมาณการหยาบ)

สมมติ **classic NAV on-prem** (เคสที่งานหนักสุด) + ทีมเล็ก ปรับได้เมื่อรู้รุ่น NAV จริง + ขนาดทีม

| Phase | สัปดาห์ | งานหลัก |
|---|---|---|
| **0 · Discovery & Compliance** | 1–2 | ยืนยัน NAV + PMaxx module, source of truth, compliance/SKU rules, connectivity |
| **1 · Catalog 100 SKU** | 2–4 | template, SKU↔Item mapping, import + QA |
| **2 · NAV product/stock/price API** | 3–6 | pull item/price/stock, oversell guard, middleware skeleton |
| **3 · Order flow + สถานะกลับ** | 5–8 | order→NAV, idempotency, สถานะ/refund/cancel กลับ |
| **4 · ChillPay + Shippop + LINE OA** | 6–9 | payment + delivery + COD + สมัคร/แจ้งเตือน LINE |
| **5 · Reconciliation + e-Tax + UAT** | 9–11 | dashboard กระทบยอด, ใบกำกับภาษี, UAT ลูกค้า |
| **6 · Cutover + Hypercare** | 11–12 | initial load, go-live, เฝ้าระวัง |

**รวม core go-live ≈ 3 เดือน** (ถ้า Business Central cloud จะสั้นลงจากตัด connectivity + web service infra)

**Critical path:** Catalog + SKU mapping → NAV API → Order flow → Payment/Delivery → Reconciliation → Go-live
Compliance (Phase 0) ต้องเคลียร์ก่อน ไม่งั้นกระทบ catalog + checkout ทั้งหมด

---

## 4. Separate Projects (ก้อน B — วางแผนเผื่อ)

### 4.1 LINE CRM (แยก project)
- รวมโปรไฟล์ลูกค้า (LINE ↔ PMaxx ↔ NAV customer), segmentation, broadcast, chat/แชทบอท, loyalty/แต้ม, consent PDPA
- ต่อยอดจาก WS7 (ถ้าวาง schema ดีตั้งแต่แรก จะไม่ต้องรื้อ)
- Phase คร่าว: unify data → segment/consent → broadcast/loyalty → automation

### 4.2 Same-day (สั่ง + ส่งยาภายในวัน)
- **On-demand courier** (Lalamove/Grab/Robinhood) — คนละตัวกับ Shippop
- Workflow เภสัชกรตรวจ → แพ็ก → จ่ายงานคนขับ, cut-off time, รัศมีให้บริการ
- Inventory ระดับสาขา (สาขาไหน fulfill), cold chain สำหรับยาบางชนิด, tracking real-time

### 4.3 Telemed
- Video consult + จองคิวหมอ + medical record + **e-prescription**
- ปิดลูป: ปรึกษา → สั่งยา → Same-day delivery (ผูก 3 project เข้าด้วยกัน)
- Regulatory หนัก (แพทยสภา, PDPA health data), payment consult + payout หมอ

> ทั้ง 3 project ใช้ **แกนร่วม**: LINE (ช่องทาง) + ระบบร้านยา/เภสัชกร (fulfillment) → แนะนำลำดับ: LINE CRM → Same-day → Telemed เพราะ Telemed ต้องพึ่ง Same-day + LINE ที่พร้อมก่อน

---

## 5. Open Decisions (ต้องเคาะก่อนล็อกตัวเลข)
1. **NAV รุ่น/โฮสต์** — classic NAV on-prem หรือ Business Central cloud/on-prem (กระทบ effort มากสุด)
2. ความถี่ stock sync + expectation real-time (กัน oversell)
3. PMaxx มี module ChillPay / Shippop เดิมไหม หรือ custom
4. Source of truth ต่อ entity (ราคา/สต๊อก/ลูกค้า)
5. SKU กลุ่มไหนขายออนไลน์ได้ (compliance) + ต้องมี flow ใบสั่งยาไหม
6. เปิด COD ไหม (กระทบ reconciliation)
7. ลูกค้ารายนี้เป็น single-merchant หรือ multi-vendor

---

## 6. ข้อเสนอ / Next Step
1. ล็อกสโคปก้อน A + จัด **compliance review** เป็นอย่างแรก (เป็น blocker)
2. เคาะ 7 ข้อใน Open Decisions → ผมปรับ timeline ให้แม่น
3. แตกแผนนี้เป็น **PM tasks จริง (AI Intranet)** พร้อม dependency / **Gantt** / หรือ **PRD ต่อ WS** — เลือกได้
