I have different items that require certain shipping methods. Is there a way to set a shipping method per item or per category? I may need to do both

For instance

All blue marbles should be a flat rate shipping charge of $15
All red marbles should be a flat rate shipping charge of $20

There is one Red marbel that is larger than the rest and it should be a flat rate of $30