If the attributes are different, then you would need to have two different designs. If the attributes and the rest of the CBC structure are identical, then you could potentially dynamically change the question header. In that case, you could randomize the respondents one of two ways: you could use quota control, or you could randomize a list. Lists are the easier of the two, so let me describe that, and you can write back if you want to know how to do the quota option.
First, create a list with two items. The first list item would have the
CBC question text for the first product, while the second list item would have the CBC question text for the second product. Let's call this list "QTextCBCList".
Next, create a constructed list. We'll call this list "QTextCBCListRand" and the parent list will be "QTextCBCList". The list building instructions would be:
So now we have a list with just one item: either the question text for the first product or the question text for the second product. Randomization like this won't guarantee an even split, but with enough respondents it should be fairly close. List building also potentially allows you to oversample one of the items, only include items as possibilities if they are aware of the product, etc.
Now go into your CBC exercise and add the following code to Header 1 or Header 2:
[% ListLabel (QTextCBCListRand,1) %]
This will display whatever the label is associated with the randomized list in position 1. Because we store the list members for the constructed list, you'll be able to tell afterwards which respondent saw the first product and which saw the second product. This is helpful in the analysis stage because it would allow you to filter out one group or the other in the off chance that you want to look at the two products separately.