Criar um produto para download
Criado para:
- Iniciante
- Desenvolvedor
- Usuário
Saiba como criar um produto para download usando a REST API e o administrador do Adobe Commerce.
Para quem é este vídeo?
- Gerentes de sites
- Merchandisers de comércio eletrônico
- Novos desenvolvedores do Adobe Commerce que desejam aprender como criar produtos no Adobe Commerce usando a REST API
Conteúdo de vídeo
Domínios baixáveis permitidos
Você deve especificar quais domínios têm permissão para downloads. Os domínios são adicionados ao arquivo env.php
do projeto através da linha de comando. O arquivo env.php
detalha os domínios permitidos para conter conteúdo baixável. Ocorre um erro se um produto baixável for criado usando a API REST before. O arquivo php.env
é atualizado:
{
"message": "Link URL's domain is not in list of downloadable_domains in env.php."
}
Para definir o domínio, conecte-se ao servidor: bin/magento downloadable:domains:add www.example.com
Após a conclusão, o env.php
é modificado dentro da matriz downloadable_domains.
'downloadable_domains' => [
'www.example.com'
],
Agora que o domínio foi adicionado ao env.php
, você pode criar um produto para download no Administrador do Adobe Commerce ou usando a API REST.
Consulte Referência de configuração para saber mais.
null
.Deprecated Functionality: number_format(): Passing null to parameter #1 ($num) of type float is deprecated in /app/vendor/magento/module-downloadable/Ui/DataProvider/Product/Form/Modifier/Data/Links.php on line 228
.
Para corrigir esse erro, use a API do link de atualização: POST V1/products/{sku}/downloadable-links.
Consulte a seção Atualizar um link de download de produto usando cURL para obter mais informações.
Criar um produto para download usando cURL (download do servidor remoto)
Este exemplo mostra como criar um produto para download usando cURL quando o arquivo para download não estiver no mesmo servidor. Esse caso de uso é típico se o arquivo for armazenado em um bucket do S3 ou outro gerenciador de ativos digitais.
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: PHPSESSID=b78cae2338f12d846d233d4e9486607e; private_content_version=564dde2976849891583a9a649073f01' \
--data '{
"product": {
"sku": "POSTMAN-download-product-1",
"name": "POSTMAN download product-1",
"attribute_set_id": 4,
"price": 9.9,
"status": 1,
"visibility": 4,
"type_id": "downloadable",
"extension_attributes": {
"website_ids": [
1
],
"downloadable_product_links": [
{
"title": "My url link",
"sort_order": 1,
"is_shareable": 1,
"price": 0,
"number_of_downloads": 0,
"link_type": "url",
"link_url": "{{location.url.where.file.exists}}/some-file.zip",
"sample_type": "url",
"sample_url": "{{location.url.where.file.exists}}/sample-file.zip"
}
],
"downloadable_product_samples": []
},
"product_links": [],
"options": [],
"media_gallery_entries": [],
"tier_prices": []
}
}
'
Criar um produto para download usando o cURL (download do servidor de aplicativos Commerce)
Este exemplo demonstra como usar o cURL para criar um produto para download do Adobe Commerce Admin quando o arquivo é armazenado no mesmo servidor que o aplicativo do Adobe Commerce.
Nesse caso de uso, quando o administrador que gerencia o catálogo escolhe upload file
, o arquivo é transferido para o diretório pub/media/downloadable/files/links/
. A automação cria e move os arquivos para seus respectivos locais com base no seguinte padrão:
- Cada arquivo carregado é armazenado em uma pasta com base nos dois primeiros caracteres do nome do arquivo.
- Quando o upload é iniciado, o aplicativo do Commerce cria ou usa pastas existentes para transferir o arquivo.
- Ao baixar o arquivo, a seção
link_file
do caminho usa a parte do caminho anexada ao diretóriopub/media/downloadable/files/links/
.
Por exemplo, se o arquivo carregado for nomeado como download-example.zip
:
-
O arquivo foi carregado para o caminho
pub/media/downloadable/files/links/d/o/
.
Os subdiretórios/d
e/d/o
serão criados se não existirem. -
O caminho final para o arquivo é
/pub/media/downloadable/files/links/d/o/download-example.zip
. -
O valor
link_url
para este exemplo éd/o/download-example.zip
curl --location '{{your.url.here}}/rest/default/V1/products' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: PHPSESSID=571f5ebe48857569cd56bde5d65f83a2; private_content_version=9f3286b427812be6aec0b04cae33ba35' \
--data '{
"product": {
"sku": "sample-local-download-file",
"name": "A downloadable product with locally hosted download file",
"attribute_set_id": 4,
"price": 33,
"status": 1,
"visibility": 4,
"type_id": "downloadable",
"extension_attributes": {
"website_ids": [
1
],
"downloadable_product_links": [
{
"title": "an api version of already upload file",
"sort_order": 1,
"is_shareable": 1,
"price": 0,
"number_of_downloads": 0,
"link_type": "file",
"link_file": "/d/o/downloadable-file-demo-file-upload.zip",
"sample_type": null
}
],
"downloadable_product_samples": []
},
"product_links": [],
"options": [],
"media_gallery_entries": [],
"tier_prices": []
}
}'
Obter um produto usando o curl
curl --location '{{your.url.here}}/rest/default/V1/products/POSTMAN-download-product-1' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: PHPSESSID=b78cae2338f12d846d233d4e9486607e; private_content_version=564dde2976849891583a9a649073f01e'
Atualizar o produto usando o Postman
Usar o ponto de extremidade rest/all/V1/products/{sku}/downloadable-links
O SKU
é a ID do produto gerada quando o produto foi criado. Por exemplo, na amostra de código abaixo, é o número 39, mas certifique-se de que esteja atualizado para usar a ID do seu site. Isso atualiza os links dos produtos baixáveis.
{
"link": {
"id": 39,
"title": "My swagger update",
"sort_order": 0,
"is_shareable": 0,
"price": 0,
"number_of_downloads": 0,
"link_type": "url",
"link_file": "{{your.url.here}}/some-file.zip",
"link_url": "{{your.url.here}}/some-file.zip",
"link_file_content": {
"file_data": "{{your.url.here}}/some-file.zip",
"extension_attributes": {}
}
},
"isGlobalScopeContent": true
}
Atualizar um link de download de produto usando CURL
Ao atualizar um link de download de produto usando cURL, o URL inclui a SKU do produto que está sendo atualizado. No código a seguir, o SKU é abcd12345
. Ao enviar o comando, altere o valor para corresponder ao SKU do produto que deseja atualizar.
curl --location '{{your.url.here}}/rest/all/V1/products/abcd12345/downloadable-links' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{Your Bearer Token}}' \
--header 'Cookie: PHPSESSID=fa5d76f4568982adf369f758e8cb9544; private_content_version=564dde2976849891583a9a649073f01e' \
--data '{
"link": {
"id": {{The ID of the download link for example 39}},
"title": "My update",
"sort_order": 0,
"is_shareable": 0,
"price": 0,
"number_of_downloads": 0,
"link_type": "url",
"link_file": "{{your.url.here}}/some-file.zip",
"link_url": "{{your.url.here}}/some-file.zip",
"link_file_content": {
"file_data": "{{your.url.here}}/some-file.zip",
"extension_attributes": {}
}
},
"isGlobalScopeContent": true
}'