You can try this solution. The easiest way would be to create 2 different simple products.
For example, the first being a bag of 3 for $10, and the second being a case of 10 for $20.
However, if your issue is inventory control, and you don't inventory bags and cases separately, that would become more complex.
If your quantities followed suit (ex. 2 in a bag, and 10 in a box), you could potentially use tiered pricing along with qty increments, but with 3 in a bag and 10 in a box, that won't work. The increments don't align (3, 6, 9, 12 vs 10, 20, etc.)
The best native solution would be to create bundled products. You'd start by making a simple product of the individual item, which you would set to not be visible individually.
In other words, it wouldn't have its own product display page available, so no one could try to buy just 1 unit. Then you would create a bundle for the bag of 3 with a fixed quantity of 3 units. Finally, you'd create another bundle for the box of 10, with a fixed quantity of 10 units.
Read the Magento user guide and check out how you can create a product bundle.
If still not solved contact us.
If solved, then click kudos and accept it as a solution.