Few days ago, I saw a question on Sitecore #commerce Slack channel. The question is:
Any idea on how we can forcefully download a csv file from a pipeline block?
In my previous blog post, I explained how to export Price Books. In case of Price Books, there was exported data in zip extension. Therefore, it is not a big deal to implement the export of any custom data from Sitecore Commerce in csv format. I have implemented a sample plugin and in the current blog post will share my knowledge how I did it.
Any idea on how we can forcefully download a csv file from a pipeline block?
In my previous blog post, I explained how to export Price Books. In case of Price Books, there was exported data in zip extension. Therefore, it is not a big deal to implement the export of any custom data from Sitecore Commerce in csv format. I have implemented a sample plugin and in the current blog post will share my knowledge how I did it.
The source code you can find here: https://github.com/Frog911/Plugin.Sample.Commerce.ExportCsv
First of all, you have to add reference to CsvHelper NuGet package.
Then we have to create IExportDataPipeline pipeline:
For this pipeline, we have to create ExportDataBlock:
Here we are using IStreamDataToCsvPipeline, which we also have to implement.
IStreamDataToCsvPipeline will contain StreamDataToCsvBlock, which will be responsible to build csv file for download.
And, of course, we have to register our pipelines.
How we are ready to use these pipelines in any custom endpoint and we can use Postman to test these logic.
I hope this blog post will be useful for someone who wants to implement such export data feature.
Stay tuned!