You have a few options. Either give your post type a custom permission or work within the existing permissions (such as post)
In my opinion the best way to go about this would be to set a custom capability type when you register the post type. A good one to use in your case may be ‘product’
Then you can assign the capabilities you would like.
// get the "author" role object
$role = get_role( 'designer' );
// add "edit_products" to this role object
$role->add_cap( 'edit_products' );
Now if you don’t want to assign all the capabilities manually in a custom plugin or functions.php file you can use the Members Plugin for an awesome GUI for this.
As mentioned, you could also use the core “edit_posts” instead of assigning a new capability type just depends on how much you care to limit the role. For example, if they are allowed to edit post and products or just products.
Here is a chart from the codex of capabilities:
[edit_post] => "edit_{$capability_type}"
[read_post] => "read_{$capability_type}"
[delete_post] => "delete_{$capability_type}"
[edit_posts] => "edit_{$capability_type}s"
[edit_others_posts] => "edit_others_{$capability_type}s"
[publish_posts] => "publish_{$capability_type}s"
[read_private_posts] => "read_private_{$capability_type}s"
[delete_posts] => "delete_{$capability_type}s"
[delete_private_posts] => "delete_private_{$capability_type}s"
[delete_published_posts] => "delete_published_{$capability_type}s"
[delete_others_posts] => "delete_others_{$capability_type}s"
[edit_private_posts] => "edit_private_{$capability_type}s"
[edit_published_posts] => "edit_published_{$capability_type}s