So, when are you spawning the store? Is it spawned before or after the conversation takes place with the merchant? Or, as I re-read your post, is it that you are trying to spawn the store a second time while the Merchant now addressed the PC by name? If it was spawned already, the store should still be there, and there is no need to spawn the store again. You just need to edit the Merchant's dialog to lock off the part of the dialog where the merchant did not know the PC's name. This would be accomplished via a Dialog Conditional Script, which TB12 did an excellent tut on
The only reason why the script wouldn't work with the "!" is if you had already spawned the store earlier, perhaps in an OnEnter script via script injection. In that case, it would not create a second shop of the same tag, as that is what the !GetIs... does... it makes sure that such a thing is NOT already in existence.
EDIT: Nice tut KS