I know that both of the mean ~"a bargain", but what is the difference between them?
Also, are these words colloquialisms?
From the DRAE
- m. coloq. Cosa valiosa o apreciable que se adquiere a muy bajo precio o con poco esfuerzo.
Bien que se adquiere a un precio muy por debajo del que normalmente le corresponde.
So the only difference (according to these definitions) would be that "ganga" is supposed to be some kind of good. In practice, you can use both interchangeably for both goods and services.
Chollo is colloquial (see that is even included in the DRAE definition), and unlike
ganga, may not involve a price. If you win a trip in a lottery or raffle it could be a "chollo" (price) but not a "ganga" (a deal). Even if you had for example a very well paid job that requires little work you could say you have a "chollo" (valuable thing) but not a "ganga".