Creare un prodotto scaricabile
Scopri come creare un prodotto scaricabile utilizzando l’API REST e l’amministratore Adobe Commerce.
A chi serve questo video?
- Gestori di siti Web
- eCommerce merchandisers
- Nuovi sviluppatori di Adobe Commerce che desiderano imparare a creare prodotti in Adobe Commerce utilizzando l’API REST
Contenuto video
Domini scaricabili consentiti
È necessario specificare quali domini sono consentiti per consentire i download. I domini vengono aggiunti al file env.php del progetto tramite la riga di comando. Il file env.php descrive i domini che possono contenere contenuto scaricabile. Si verifica un errore se viene creato un prodotto scaricabile utilizzando l'API REST prima dell'aggiornamento del file php.env:
{
"message": "Link URL's domain is not in list of downloadable_domains in env.php."
}
Per impostare il dominio, connettersi al server: bin/magento downloadable:domains:add www.example.com
Una volta completato, env.php viene modificato all'interno dell'array downloadable_domains.
'downloadable_domains' => [
'www.example.com'
],
Ora che il dominio è stato aggiunto a env.php, è possibile creare un prodotto scaricabile in Adobe Commerce Admin o utilizzando l'API REST.
Per ulteriori informazioni, consulta Riferimento configurazione.
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.
Per correggere l'errore, utilizzare l'API del collegamento di aggiornamento: POST V1/products/{sku}/downloadable-links.
Per ulteriori informazioni, consulta la sezione Aggiornare un collegamento di download del prodotto utilizzando cURL.
Creare un prodotto scaricabile utilizzando cURL (download dal server remoto)
Questo esempio mostra come creare un prodotto scaricabile utilizzando cURL quando il file da scaricare non si trova sullo stesso server. Questo caso d’uso è tipico se il file viene memorizzato in un bucket S3 o in un altro gestore di risorse digitali.
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": []
}
}
'
Creare un prodotto scaricabile utilizzando cURL (download dal server applicazioni Commerce)
Questo esempio illustra come utilizzare cURL per creare un prodotto scaricabile dall’amministratore di Adobe Commerce quando il file viene memorizzato sullo stesso server dell’applicazione Adobe Commerce.
In questo caso d'uso, quando l'amministratore che gestisce il catalogo sceglie upload file, il file viene trasferito alla directory pub/media/downloadable/files/links/. L’automazione crea e sposta i file nelle rispettive posizioni in base al seguente pattern:
- Ogni file caricato viene memorizzato in una cartella in base ai primi due caratteri del nome del file.
- Quando il caricamento viene avviato, l'applicazione Commerce crea o utilizza cartelle esistenti per trasferire il file.
- Durante il download del file, la sezione
link_filedel percorso utilizza la parte del percorso aggiunta alla directorypub/media/downloadable/files/links/.
Ad esempio, se il file caricato è denominato download-example.zip:
-
Il file è stato caricato nel percorso
pub/media/downloadable/files/links/d/o/.
Le sottodirectory/de/d/ovengono create se non esistono. -
Il percorso finale del file è
/pub/media/downloadable/files/links/d/o/download-example.zip. -
Il valore
link_urlper questo esempio è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": []
}
}'
Ottieni un prodotto utilizzando 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'
Aggiornare il prodotto utilizzando Postman update-downloadable-links
Usa l'endpoint rest/all/V1/products/{sku}/downloadable-linksSKU è l'ID prodotto generato al momento della creazione del prodotto. Ad esempio, nell’esempio di codice seguente, è il numero 39, ma assicurati che sia aggiornato per utilizzare l’ID dal tuo sito web. Questo aggiorna i collegamenti per i prodotti scaricabili.
{
"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
}
Aggiornare un collegamento per il download di prodotti utilizzando CURL
Quando aggiorni un collegamento per il download di un prodotto utilizzando cURL, l’URL include lo SKU del prodotto che viene aggiornato. Nell'esempio di codice seguente, lo SKU è abcd12345. Quando invii il comando, modifica il valore in modo che corrisponda allo SKU del prodotto che desideri aggiornare.
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
}'