postpone JSON conversion just before creating the request
do not allow empty product