Adding quantities and variations to listings

I'm currently adding a few extra features to the Etsy app but for for clothing. I am trying to add variations such as 3 x size smalls, 4 x size large. With each variation being added when a product is listed and able to be edited from the manage listing page. I have created a sizes scaffold with size:string, quantity: integer. product has_many sizes, size belongs_product Am I going in the right direction with this? Thanks in advance.

Posted over 5 years ago by otis smart
Posted over 5 years ago by Alex Yang

Are the sizes and quantities being added to help sellers manage their inventory? Just trying to get some context on how these will change the flow of the site.

If I'm understanding your vision correctly, I can see this working in a couple different ways. If you anticipate having clothing needing different sizing standards (e.g. S/M/L, 0/2/4/6, ...), I recommend using the Sizes scaffolds approach you've done already. I think you're going in the right direction with this.

On the other hand, if all the clothes on your site will be one of only a few possible sizes (e.g. XS, S, M, L, XL), I recommend adding a few extra columns to your Listing/Product database. For example, if you add 5 extra columns, each corresponding to one of the 5 sizes, then the default number to be filled in each column can be zero. But sellers can then increase or decrease those numbers as inventory in those sizes changes. Another possibility would be to replace the zero with "N/A" if that item of clothing isn't produced in that specific size (for example if a shirt only has S/M/L). This approach allows you to keep all Listing/Product related info in the same database.

Posted over 5 years ago by otis s

Yes the sizes and quantities are being added to manage their inventory, and there will be a size drop down select list that will also show on the listings show page when customers want to select a size.

I think the second suggestion with the extra 5 columns sounds better than what I started so I'll do it that way

thanks for the help.