I think what is probably happening is that, when the program starts, all string variables are empty until they're told to be otherwise.
Both shop$ and R$ are empty ("")
Because R$ refers to shop BEFORE it's changed, it just returns "" at the end of the label. (continued)