iT邦幫忙

2025 iThome 鐵人賽

DAY 12
0
Software Development

《電商修仙術:AI × Magento 開發心法》系列 第 12

[Day 12] Magento開發練習:後台設定 + Plugin

  • 分享至 

  • xImage
  •  

前言

前幾天我們練習過,想要在產品名稱後面加上「(全館優惠)」,可以透過 PluginObserverPreference 來做到。

不過這有一個問題:
-每次要改字,或要調整內容,都要重新改程式、部署 Magento,這顯然不是一個好方法。

昨天我們學了如何透過 system.xml 在後台加一個設定欄位,並儲存起來。
今天就來把這兩個概念結合起來:用 後台欄位控制前台產品名稱的字尾,讓我們不需要再改程式,只要進後台就能直接修改。


目標

今天的目標不是新增一個全新的功能,而是把前幾天練習過的兩個技巧「串」在一起:

  1. Plugin 攔截產品名稱:在產品頁顯示時,自動加上字尾。
  2. 後台設定欄位:用 system.xml 建立設定值。

結合後,我們可以:

  1. 直接透過後台設定文字內容。
  2. 讓前台 PDP 自動讀取設定,而不需要再重新改程式或部署。

我給 Claude 的 Prompt

這是我下的 prompt,這邊比較不複雜,我就沒有下的比較精準:

請幫我在這邊用plugin加上的『(全館優惠)』改成不是寫死的狀態
幫我改成我在settingsdemo-my_wanted_field的值,讓他可以後台修改文字  

https://ithelp.ithome.com.tw/upload/images/20250912/20178403Hu2CL9sZ2s.jpg


Claude 修改

以下是 Claude 改的檔案,他幫我們把plugin的地方改掉,他把原本寫死程式的地方改成settingsHelper來取得,並且自動幫我們注入settingsHelper了:
https://ithelp.ithome.com.tw/upload/images/20250912/20178403yLiR8n5j6O.jpg

我們去看一下settingsHelper:
https://ithelp.ithome.com.tw/upload/images/20250912/20178403grOdoBmb7W.jpg

才發現!原來昨天在生成自訂欄位時,原來claude已經幫我寫好取得的helper了!

    /**
     * Get wanted value from configuration
     *
     * @param string|null $storeCode
     * @return string
     */
    public function getWantedValue(?string $storeCode = null): string
    {
        return (string) $this->scopeConfig->getValue(
            self::XML_PATH_MY_WANTED_FIELD,
            ScopeInterface::SCOPE_STORE,
            $storeCode
        );
    }

看起來程式碼寫得還不錯XD,可以直接來用。

*之後修改完成後一樣給Magento update一下


驗收流程

  1. 進入後台:
    Stores → Configuration → (後台加入自定義設定的位置)
    https://ithelp.ithome.com.tw/upload/images/20250912/20178403w7gclVdx1E.jpg

  2. 大功告成!前台進到任一產品頁 → 名稱自動加上字尾。
    https://ithelp.ithome.com.tw/upload/images/20250912/20178403KE9NH2enc8.jpg


心得

今天這個小練習,把「Plugin 攔截」和「後台設定欄位」結合起來了。
以前要改字尾,一定得改程式;現在只要去後台調整就好,這才是比較「實務」的做法。

這一步也再次體會到,Magento 的開發並不是只有「寫功能」而已,更重要的是要把功能做得可配置、可維護,讓使用者(或自己)後續不用再進程式碼,就能直接調整。

修仙路上,又多了一個小法術XD


上一篇
[Day 11] 什麼!? AI 3 分鐘幫我寫好 Magento 模組?— system.xml 後台設定篇
系列文
《電商修仙術:AI × Magento 開發心法》12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言