UPS送貨方法整合從SOAP移轉至RESTful API
注意: 如果您在2024年6月6日前上傳本文中三個修補程式:如果您因為未使用量度系統/SI測量(公斤和公分)而遇到此問題,應再次為您的Adobe Commerce/Magento Open Source 2.4.4+/2.4.5+/2.4.6+版本重新套用本文中發佈的這些更新的新修補程式,因為否則您將無法選取 公斤 和 公分 (在 管理員配置 的UPS配送方式中)。 這些新修補程式與先前發行的修補程式相容。 此問題將在預計於 2024年6月11日 發行的Adobe Commerce 2.4.7-p1版本的範圍內永久修正。
注意: 如果您在 2023年10月10日 之前上傳本文中的三個修補程式,您應該再次為您的Adobe Commerce/Magento Open Source 2.4.4+/2.4.5+/2.4.6+版本套用本文現在發佈的這些修補程式之一,因為否則您將無法在 管理員設定 中選取和設定特定的UPS送貨方法,您必須啟用所有方法。 這些新修補程式與先前發行的修補程式相容。
本文提供補丁程式以解決 Adobe Commerce 2.4.4 - 2.4.6-pX 的 United Parcel Service (UPS) 運送方法整合從 SOAP 移轉至 RESTful API 的問題。
自2024年6月起,Adobe Commerce商家將無法使用我們目前的UPS整合進行交易,因此我們將發佈此Hotfix,讓Adobe Commerce 2.4.4+/2.4.5+/2.4.6+商家可移轉至最新的UPS REST API。
此問題將在Adobe Commerce/Magento Open Source 2.4.7版中修正,該修正也將包含在2023年10月發行的2.4.7 beta2版中。
說明 description
受影響的產品和版本
雲端基礎結構與內部部署上的Adobe Commerce,以及Magento Open Source:
- 2.4.4
- 2.4.4畫素
- 2.4.5
- 2.4.5畫素
- 2.4.6
- 2.4.6畫素
原因
UPS已發行其API的安全性更新。
如果您有歐盟(其他來源可能會遇到相同的問題)作為「出貨來源」,這會導致UPS REST請求發生錯誤:
「出貨不能以KGS/IN、LBS/CM或OZS/CM作為測量單位。」
解決方法 resolution
根據UPS API安全性模型的最新更新,UPS已針對所有API實作OAuth 2.0安全性模型(如需詳細資訊,請參閱UPS開發人員入口網站存取金鑰移轉指南),以提升整體安全性,減少欺詐並提供增強的API功能。
這項變更會影響我們目前在Adobe Commerce中的UPS送貨方法整合實作,並要求我們修正目前的實作,並從SOAP API移轉至RESTful API,以便能夠支援OAuth 2.0驗證通訊協定。
解決方案
根據您的Adobe Commerce/Magento Open Source版本,使用以下附加修補程式:
若要解決2.4.4+、2.4.5+和2.4.6+版本中的問題,您必須在下方將對應的修補程式套用至您的Adobe Commerce/Magento Open Source版本。
修補
根據您的Adobe Commerce/Magento Open Source版本,使用以下附加修補程式:
若為版本2.4.4、2.4.4-pX:
若為版本2.4.5、2.4.5-pX:
若為版本2.4.6、2.4.6-pX:
如何套用修補程式
解壓縮檔案,並在我們的支援知識庫中參閱如何套用Adobe提供的撰寫器修補程式,以取得指示。
如何判斷是否已套用修補程式
考慮到無法輕鬆檢查問題是否已修補,您可能想要檢查是否已成功套用修補程式。 這會使用(例如:AC-9363)作為要檢查的修補程式。
您可以依照下列步驟執行此操作:
-
安裝品質修補工具。
-
執行命令:
vendor/bin/magento-patches -n status |grep "9363|Status"
-
您應該會看到類似以下的輸出,其中AC-9363傳回 已套用 狀態:
code language-none ║ Id│ Title│ Category │ Origin│ Status│ Details║ ║ N/A │ ../m2-hotfixes/AC-9363_USPS_Ground_Advantage_shipping_method_COMPOSER_patch.patch │ Other│ Local│ Applied│ Patch type: Custom
套用修補程式後
步驟1:在UPS開發人員入口網站中建立UPS應用程式
若要使用UPS REST API,您需要在UPS開發人員入口網站中建立應用程式,以產生所需的認證(使用者端ID和使用者端密碼)。 請依照下列步驟操作:
-
登入UPS開發人員入口網站
- 瀏覽至https://developer.ups.com/.
- 使用您的UPS帳戶認證登入。 如果您沒有帳戶,請按一下 註冊 按鈕以建立帳戶。
-
建立新的應用程式
- 登入後,請前往儀表板並按一下 建立應用程式。
- 為您的應用程式提供名稱(例如Adobe Commerce UPS整合)。
-
選取必要的API
-
在應用程式建立程式進行期間,出現提示時,請選取您的應用程式將會使用的API。 請確定您包含:
- 運費API:用於擷取運費。
- 傳輸時間API:用於估計傳送時間。
- 與您送貨需求相關的任何其他API (例如,追蹤API (如果適用))。
-
-
設定許可權
- 確認應用程式具有針對所選API啟用的必要許可權。
- 這通常會在建立應用程式期間完成,但您稍後可以在應用程式設定中檢閱和更新許可權。
-
產生認證
- 建立應用程式後,請導覽至 認證 區段。
- 複製 使用者端識別碼 和 使用者端密碼。 這些將用來設定Adobe Commerce中的UPS REST整合。
- 注意: 請保持這些認證的安全,並且不要公開共用它們。
-
測試應用程式
- 使用UPS開發人員入口網站的測試工具,驗證您的應用程式正常運作,並可從選取的API擷取資料。
步驟2:在Adobe Commerce中設定UPS REST
取得使用者端ID和使用者端密碼後,請繼續設定Adobe Commerce中的UPS REST整合。
請務必選取 UPS Type = "United Parcel Service REST"。