Ok now I do need some help - sorry this is becoming a bit of a monologue!
I decided in the end to set up a column called promo and then set a variable $promo on the detail page into which I could pass any number of parameters as different promos happen. The current one is on giftware and occasionwear so I've set the variable as follows:
<?php
if ((strpos($row_rsItems['ItemOccasion'], "occasion")) || ($row_rsItems['ItemGiftID']==1)) {
$promo=1;
}else {
$promo=0;
}?>
Then I can simply apply the promo discount if $promo =1. It does work but Im having trouble adding multiple items. If I add an item that is not in the promo to the cart, then subsequently add an item that does qualify as 'occasion wear' the variable is not resetting. The Gift parameter works fine its just the occasionwear one - I need to get this sorted quite urgently so any feedback gratefully received.