Hi,
1. You could do it with a few custom fields and mass actions:
- a custom "category" field with two values "yes" and "no" and the name "catalogue_mode".
- a custom "product" field with the name "saved_quantity".
- a mass action with a trigger "after a category is updated", a filter on the column "catalogue_mode" equal to "yes", and an action "run MySQL query" with the MySQL query:
UPDATE #__hikashop_product SET saved_quantity = product_quantity, product_quantity=0 WHERE product_id IN (SELECT product_id FROM #__hikashop_product_category WHERE category_id={category_id})
- a mass action with a trigger "after a category is updated", a filter on the column "catalogue_mode" equal to "no", and an action "run MySQL query" with the MySQL query:
UPDATE #__hikashop_product SET product_quantity = saved_quantity WHERE product_id IN (SELECT product_id FROM #__hikashop_product_category WHERE category_id={category_id})
2. This is a hidden option. You don't need to change the code for that. Go in your PHPMyAdmin, add a new entry to the hikashop_config table with the namekey default_stock_for_new_products and the value 0 and it will do it. And no worries with updates. The hidden option was made specifically for such cases.