將檔案新增至產品
Adobe Commerce as a Cloud Service支援「檔案」產品屬性輸入型別,可讓商家將檔案(例如PDF、手冊、憑證和資料表)直接附加至產品。 檔案儲存在Amazon S3媒體儲存空間,並可使用GraphQL透過店面或使用REST API的整合進行存取。
上傳檔案至產品檔案屬性的方式有三種:
先決條件
上傳檔案之前,您必須建立檔案屬性並將其指派給屬性集。
透過管理員上傳檔案
在您建立檔案屬性並將其指派給屬性集之後,您可以直接從產品編輯頁面上傳檔案。
-
在 管理員 側邊欄上,移至Catalog > Products。
-
開啟您要編輯的產品。
-
找到檔案屬性欄位,然後按一下 Upload 以選取檔案。
在Admin
- 按一下Save。
若要取代檔案,請刪除現有檔案並上傳新檔案。 上傳的檔案會儲存在Amazon S3媒體儲存空間。
透過REST API上傳
使用S3預先簽署的URL流程,以程式設計方式透過REST API上傳檔案。 此過程對產品檔案屬性的運作方式與其他媒體型別(例如類別影像和客戶屬性檔案)相同。
此程式包含四個步驟:
- 呼叫具有檔案名稱及產品檔案屬性
POST V1/media/initiate-upload的media_resource_type。 - 使用傳回的預簽署URL將檔案
PUT直接傳給Amazon S3。 - 呼叫
POST V1/media/finish-upload以確認上傳。 - 透過
PUT /V1/products/{sku}將傳回的金鑰指派給產品的檔案屬性,並將金鑰傳遞為自訂屬性值。
透過產品匯入上傳
您可以使用匯入API或管理員匯入UI,大量附加檔案至產品。 產品檔案屬性僅支援從外部URL匯入,其方式與產品影像匯入的方法2相同。 Commerce會從提供的URL下載檔案,並將其儲存至S3媒體儲存空間。
在專用欄中提供URL
使用屬性代碼作為CSV欄標題,使用完整URL作為值。 例如,如果屬性代碼為file_upload,CSV會如下所示:
sku,name,file_upload
ADB112,"My Product",https://example.com/files/manual.pdf
在additional_attributes中提供URL
或者,將檔案屬性包含在additional_attributes欄中:
sku,name,additional_attributes
ADB112,"My Product",file_upload=https://example.com/files/manual.pdf
在這兩種情況下,URL都必須可公開存取,且副檔名和大小必須符合設定的限制。
透過GraphQL擷取檔案
在Adobe Commerce as a Cloud Service中,目錄服務GraphQL端點會提供產品資料。 檔案屬性出現在attributes上的ProductView欄位中,value包含檔案的完整公用URL:
{
products(skus: ["ADB112"]) {
sku
name
attributes(roles: []) {
name
label
value
}
}
}
回應包含檔案屬性及其公用URL:
{
"data": {
"products": [
{
"sku": "ADB112",
"name": "Example product",
"attributes": [
{
"name": "file",
"label": "FILE",
"value": "https://<host>/media/catalog/product_file/manual.pdf",
}
]
}
]
}
}
透過REST API擷取檔案
透過REST API (GET /V1/products/{sku})擷取產品時,檔案屬性會出現在custom_attributes陣列中,其檔案名稱為值:
{
"custom_attributes": [
{
"attribute_code": "file_upload",
"value": "manual_7aa0b2d63f6d3dbf.pdf"
}
]
}