No native speaker. I think that the first “liaison” (i.e. between nous and avons) is obligatory.
The sound z is produced: nuz‿avɔ̃.
The second “liaison” (i.e. between avons et acheté) belongs to the so-called facultative “liaisons”. Some natives will make the “liaison”, that is, they will produce the sound z as: nuz‿avɔ̃z‿aʃte but I tend to believe most of them will not make this “liaison”, at least in colloquial French.
See the recent question:
and the references therein.
The second liaison is not obligatory in "Nous avons acheté". The first one is.