Do something like this?
<form action="{% url satchmo_smart_add %}" method="post">
<input type="hidden" name="quantity" id="quantity" value="1" />
<input type="hidden" name="productname" id="productname"
value="{{product.slug}}" />
<input type="submit" class="button submit" id="submit" name="addcart"
value="Order Product"/>
</form>
Passing a product.slug & quantity to satchmo_smart_add should be all you
need to get an item in the cart.
As for adding details to the cart, you are right on the money as far as
using a listener. It is the cleanest & most maintainable way to take
care of that need, and exactly what signals are for -- which is why I
documented it in that blog post.
Really, you shouldn't have to do much of anything special to get an item
into the Cart.
As for your need on the multicolor options, your select box looks fine
to me. You don't have to create a form for every element. If you do want
to create a Django form, you may wind up having to create a custom view
(note, I said custom view, not modify Satchmo's views).
Customizing Satchmo for your needs is always going to lead you down the
path of writing code. The more you want to customize, the more you will
be coding.
Happy coding!