将文件添加到产品
Adobe Commerce as a Cloud Service支持“文件”产品属性输入类型,允许商家将文件(如PDF、手册、证书和数据表)直接附加到产品。 文件存储在Amazon S3媒体存储中,可通过使用GraphQL的店面或通过REST API的集成访问。
有三种方法可以将文件上传到产品文件属性:
先决条件
在上载文件之前,必须创建一个文件属性并将其分配给属性集。
通过管理员上传文件
在您创建文件属性并将其分配给属性集后,可以直接从产品编辑页面上传文件。
-
在 管理员 侧边栏上,转到Catalog > Products。
-
打开要编辑的产品。
-
找到文件属性字段并单击 Upload 以选择文件。
管理员中的
- 单击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列中包含file属性:
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"
}
]
}