Auto-delete products using CSVI
Most of the times to remove products manually from shop which are no more in use is a tedious work. With CSVI and with the steps explained below, removing products which are not needed any more is going to be easy.
- First unpublish all products in your database.
To do this you can export only product_sku field from VirtueMart product export template. Save the exported file. Here is an example product export template Example_product_export_template.xml.
- Next create a VirtueMart product import template, add published and product_sku field to your template fields.
Set published field default value to 0 in template fields. Import the file you downloded from export template. Now all products are set to unpublished. Here is an example product import template for unpublishing all products Example_product_import_template.xml
- Create an import file with products you need keep in your shop.
This import file can just have product_sku field, no more fields are actually required as CSVI updates product only with product_sku field. You can even use the same file saved in previous step from export process, remove the product skus not needed and keep the product skus you need in shop.
- Unpublish all products
Create an import template and in template settings on Options tab set option "Unpublish before import" to Yes. CSVI will make all products to unpublished status before starting the import process with this option. Example import template Example_product_import_template_unpublish_before_import.xml
- Run the import of published products
Do the import with file having the product skus you need in the shop along with published field set to value Y. CSVI will automatically publish the products which are in the import file.
- Export unpublished products
Now do the export of the products which are in unpublished status. In the exported file add another field product_delete with value Y. Example export template is here Example_product_export_for_unpublished_products.xml
- Delete exported unpublished products
Import this file back again, all the products in the import file will be deleted. This way you are removing all the products which are no longer needed in the shop.
Setting up as cron job
The above process can also be set as a cron job so the unpublished products are deleted automatically. This setup needs two cron job routines.
- Create a product export template with action as export, component as VirtueMart and operation as Product.
- In the template settings, on source tab, set the destination as Save on server.
- On file tab, give a name to the file to be exported, say for example unpublished.csv.
- On the same file tab, set Field delimiter to ; (semi-colon) and Text enclosure to " (double quotes).
- On the same file tab set Export state to Unpublished.
- Add product_sku and product_delete as template fields for the template. In default value for product_delete field set it as Y.
- Save the template.
- Create a new VirtueMart product import template.
- On Source tab, set source as Load from server, in the load from server path fill the location same as set in Export template in Step 1.
- Save the template
- Set up a cron job to run the export template created on Step 1.
- Set up cron job to run the import created on Step 2. Make sure that this cron job runs after the cron job created for Step 1.
Now your products with unpublished are removed automatically. The article explains the process in VirtueMart but the same can be followed for HikaShop by using corresponding fields in HikaShop.