You’re likely just doing a fancy regression, applying RNN to a (presumably) memoryless process. Well, it is one of the ways to smoothly encode time features…
That being said, various approaches may work. One-hot may be ok with big enough hidden width (roughly speaking, to encode regression coefficients for ALL groups), not sure how easy this will be to train. You can try training nn.Embeddings to express product (and/or location) similarities. You can try to feed such encoded group info through rnn’s initial hidden state.
You can also train one shared rnn, that would represent a function: num_of_store_visitors_multiplier(time,weather), and use its output as an input for a non-recurrent prediction module (function: sales(product,location,visitors_k,discount). Perhaps with another modeled input - demand(product,time). If something like that resembles the underlying process, the model should make use of this knowledge.