QuoteServices API

整理 quote_servicesquote_service_categoriesservice_certificates、template / feedback / vendor report 等服務側 API。

建議閱讀順序

目的文件
quote_services 已深入調查的流程details/quote_services/README.md
quote_service_categories 已深入調查的流程details/quote_service_categories/README.md
Endpoint方法認證來源說明新專案對應狀態備註
/quote_feedbacks/sent[/sort:{sort}].jsonGET使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteFeedbacksController.php:38使用者送出的 feedback 清單QuoteFeedbacks::sent()已補 action + routing + PHPUnit正式 legacy access log 有 GET 200 共 213 筆;本地保留 raw array、sort、nested comments / attachments、service photo、Redis session cache、inactive-user guard、auth side effects 與專用 legacy info/warning log。PHP 8.2 測試 10 tests, 76 assertions;待 new staging 複驗。調查與前端截圖見 details/quote_feedbacks/sent.md
/quote_service_categories/add...POST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:134新增 pro service categoryQuoteServiceCategories::add()已補 action + routing + PHPUnitLegacy 9930 / 130 baseline 與 2026-07-23 new staging 9930 / 700 response / DB 已確認;duplicate rollback、PHP 5.6 numeric-string parity 已補。Nginx rewrite 造成專用 log 遺失 named parameters 的修正已完成 staging 部署後複驗:專用與 generic log 均保留完整 path,且沒有產生短版 channel。本地 add 測試 17 tests, 147 assertions,完整 QSC regression 27 tests, 234 assertions。調查見 details/quote_service_categories/add.md
/quote_service_categories/job_preference_form.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:316job preference form schema未找到未找到新專案 QuoteServiceCategories 沒有同名 method。
/quote_service_categories/pricing_form/{quote_category_id}.jsonGETAPI key;client 也會帶 sessionapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:400pricing form schemaQuoteServiceCategories::pricing_form()已補 action parity + routing + PHPUnit正式流量高;2026-06-18 查到多個 category path 200,包含 201 895 筆、206 829 筆。new 保留既有 top-level new = 1。調查見 details/quote_service_categories/pricing_form.md
/quote_service_categories/edit/.json, /quote_service_categories/edit/{quote_service_category_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:488編輯 / 建立 pro service category settingQuoteServiceCategories::edit()已補 action + routing + PHPUnit正式流量高;legacy validateSave() 會更新多張表,已補主流程、budget pending、log、pricing rows、auto quote branch。本地測試通過,legacy staging baseline 已補。調查見 details/quote_service_categories/edit.md
/quote_service_categories/pricing_preview.json待確認API keyapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:603pricing preview未找到未找到mapping 檔有舊路徑規則,但 QuoteServiceCategories::pricing_preview() method 未找到。
/quote_service_categories/nearme.json待確認API keyapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:679nearme未找到未找到新專案 QuoteServiceCategories 沒有同名 method。
/quote_services/add.jsonPOSTAPI key;session optionalapp/Plugin/Quotes/Controller/QuoteServicesController.php:1009新增 pro service;支援 session、登入、註冊、social pathQuoteServices::add()已補 action + routing + PHPUnit2026-06-12 正式機有 POST 200 合計 2209 筆、OPTIONS 200 合計 887 筆;同次未見 legacy HTML path /quote_services/add 流量。已完整搬 user resolve、service insert、category mapping、external review URL、activity、queue、notification side effect。調查見 details/quote_services/add.md
/quote_services/edit/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:1734編輯 pro serviceQuoteServices::edit()已補 action + routing + PHPUnit已補主 service explicit update allowlist、contact full sync、attachment/photo DB write、content review、profile score、activity、service_update queue、category mapping rebuild、rematch queue。縮圖產生仍列為切換前待確認。調查見 details/quote_services/edit.md
/quote_services/update.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:2415更新 service未找到未找到新專案 QuoteServices 沒有 update()
/quote_services/search_adm.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:2563search;名稱偏內部未找到未找到新專案沒有 QuoteServices::search_adm();看起來偏舊內部 action。
/quote_services/quote_feedbacks_each_category.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:2893每分類 quote feedback未找到未找到新專案有 Endpoint/V1/QuoteServices.php,但沒有 quote_feedbacks_each_category()
/quote_services/static_fields.jsonGET全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3117static fieldsQuoteServices::static_fields()已補 action + routing + PHPUnit正式機有 GET 200 合計 7006 筆;legacy 實際固定回 {"StaticFormField":[]},不讀寫 DB。調查見 details/quote_services/static_fields.md
/quote_services/add_quote_faq.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServicesController.php:3176新增 quote FAQ未找到未找到新專案 QuoteServices 沒有 add_quote_faq()
/quote_services/change_status/archive/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3452封存 pro serviceQuoteServices::change_status_archive()已補 action + routing + PHPUnit正式機有少量前台流量;會更新 is_archived、寫 ArchiveService activity、送 greserve_archived / service_update task event。調查見 details/quote_services/change_status/archive.md
/quote_services/change_status/profile_ready/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3452pro profile readyQuoteServices::change_status_profile_ready()已補 action + routing + PHPUnit會進 _handle_profile_ready() 相容流程:啟用 service、設 onboard,並依 start_identity_free_credit_user_id / free credit event 決定是否排 queue、寫 wallet、送 Pro_Ready event。調查見 details/quote_services/change_status/profile_ready.md
/quote_services/change_status/activate/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3452啟用 pro service未找到低優先2026-06-11 正式機 quote_services/change_status/ log 未見 activate 前台流量;若補齊 umbrella 再拆獨立文件。
/quote_services/change_status/deactivate/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3452停用 pro service未找到低優先2026-06-11 正式機 quote_services/change_status/ log 未見 deactivate 前台流量;若補齊 umbrella 再拆獨立文件。
/quote_services/change_status/unarchive/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3452取消封存 pro service未找到低優先2026-06-11 正式機 quote_services/change_status/ log 未見 unarchive 前台流量;若補齊 umbrella 再拆獨立文件。
/quote_services/external_review/link/{quote_service_id}.jsonGET使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3571取得外部評價邀請連結QuoteServices::external_review_link()已補 action + routing + PHPUnit正式機有 GET 200 合計 4433 筆;已有 external_review_url 直接回傳,空值時建立 security_hashes 並寫回 service。調查見 details/quote_services/external_review/link.md
/quote_services/external_review/invite/{quote_service_id}.jsonPOST使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3673寄送外部評價邀請 emailQuoteServices::external_review_invite()已補 action + routing + PHPUnitlegacy 會用 email / emails 建立 External_Review event queue,template key 390 External Review Invite,且依賴 mail.icon.star_full。正式機 external_review 統計未見 invite path,但 legacy 有完整分支,已一起補齊。調查見 details/quote_services/external_review/invite.md
/quote_services/external_review/submit.jsonPOST使用者 session 或外部 review 輸入app/Plugin/Quotes/Controller/QuoteServicesController.php:3620提交外部評價QuoteServices::external_review_submit()已補 action + routing + PHPUnit正式機有 POST 200 合計 125 筆;支援 session user 與 User[...] 外部登入 / 註冊,成功建立 quote_feedbacksQuoteService / AddReview activity。調查見 details/quote_services/external_review/submit.md
/quote_services/fix_user_review_count.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServicesController.php:3607看起來偏維護工具未找到未找到新專案 QuoteServices 沒有同名 method。
/quote_services/tag.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:4644tag未找到未找到新專案 QuoteServices 沒有 tag()
/quote_templates/view.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteTemplatesController.php:81template detail未找到未找到新專案 QuoteTemplates 目前只看到 index()
/quote_vendor_categories/view.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteVendorCategoriesController.php:368vendor category detail未找到未找到新專案有 Endpoint/V1/QuoteVendorCategories.php,但沒有 view()
/quote_vendor_categories/pro_selection_list/quote_category_id:{id}.jsonGETAPI keyapp/Plugin/Quotes/Controller/QuoteVendorCategoriesController.php:399-458pro selection listQuoteVendorCategories::pro_selection_list()已補 action + routing + PHPUnit30/60 天各 1 call 且唯一流量為 4xx,未確認 caller,疑似未使用;已補 Legacy parity,待保留/退役決策。詳見 details/quote_vendor_categories/pro_selection_list.md
/service_certificates/view.json待確認使用者 sessionapp/Controller/ServiceCertificatesController.php:369服務證照ServiceCertificates::view()同路徑已存在新專案 Endpoint/V1/ServiceCertificates.php 有同名 action。
/quote_feedbacks/recommend.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteFeedbacksController.php:352推薦 feedbackQuoteFeedbacks::recommend()同路徑已存在新專案 Endpoint/V1/QuoteFeedbacks.php 有同名 action。
/quote_feedbacks/review.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteFeedbacksController.php:376review feedbackQuoteFeedbacks::review()同路徑已存在新專案 Endpoint/V1/QuoteFeedbacks.php 有同名 action。
/quote_reports/add.json待確認使用者 session + API keyapp/Plugin/Quotes/Controller/QuoteReportsController.php:127新增 reportQuoteReportTopics::index() / QuoteReviewConsumers::add()可能需改路徑新專案沒有 QuoteReports::add();只看到 report topics 與 consumer review 相關 endpoint。
/quote_service_categories/index.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:531pro service category 清單QuoteServiceCategories::index()同路徑已存在新專案 Endpoint/V1/QuoteServiceCategories.php 有同名 action。
/quote_service_categories/view.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServiceCategoriesController.php:570pro service category detailQuoteServiceCategories::view()同路徑已存在新專案 Endpoint/V1/QuoteServiceCategories.php 有同名 action。
/quote_services/index.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServicesController.php:61pro service 清單QuoteServices::index_myservices()可能需改路徑新專案 mapping 是 /quote_services/index/type:myservices...index_myservices();未找到同名 index()
/quote_services/view.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServicesController.php:2254pro service detailQuoteServices::view()同路徑已存在新專案 Endpoint/V1/QuoteServices.php 有同名 action。
/quote_services/profile.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:2465pro profileService::index() / QuoteServices::view()可能需改路徑新專案沒有 QuoteServices::profile();pro profile 可能已拆到 ServiceQuoteServices::view(),需確認 payload。
/quote_services/search.jsonGET全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:2729pro searchQuoteServices::search()已補 action + routing + PHPUnit2026-06-17 legacy 正式 log 有少量 /quote_services/search.json?keyword=.../quote_services/search/tag:{tag}.json 200;目前 web-app active pro list 已走 /quote_services/pro_list...。本次補 legacy compatibility,包含 no-tag / missing-tag / keyword fallback。調查見 details/quote_services/search.md
/quote_services/quote_feedbacks.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:2861quote feedbackQuoteServices::quote_feedbacks()同路徑已存在新專案 Endpoint/V1/QuoteServices.php 有同名 action。
/quote_services/quote_feedbacks_public.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteServicesController.php:3006public quote feedbackQuoteServices::quote_feedbacks_public()同路徑已存在新專案 Endpoint/V1/QuoteServices.php 有同名 action。
/quote_services/quote_faq.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteServicesController.php:3292quote FAQQuoteServices::quote_faq()同路徑已存在新專案 Endpoint/V1/QuoteServices.php 有同名 action。
/quote_templates/index.json待確認使用者 sessionapp/Plugin/Quotes/Controller/QuoteTemplatesController.php:23template 清單QuoteTemplates::index()同路徑已存在新專案 Endpoint/V1/QuoteTemplates.php 有同名 action。
/quote_vendor_categories/index.json待確認全域 API keyapp/Plugin/Quotes/Controller/QuoteVendorCategoriesController.php:374vendor category 清單QuoteVendorCategories::index()同路徑已存在新專案 Endpoint/V1/QuoteVendorCategories.php 有同名 action。