Hi,
If you are using XDM Streams you can set it.. but if you are using the old ACP SDK, and setting data using context variables and mapping, s.products actually has to be sent through the request directly using &&products=[entire formatted products string], and if you are passing events with your products (since you can't really read the events from the products string, you can pass those specific events using &&events=[events list]
Obviously Adobe is pushing people towards using XDM Streams, so if you are starting out, you should definitely go that route, even if you plan on using the XDM Stream a.tags (direct to AA schemas), you should be able to map to s.products schema....