Hi,
By design, each product variant in Odoo is treated as a distinct record with its own internal ID and barcode. Even if the variants share the same SKU (default code), Odoo requires unique barcodes to distinguish them when scanning. When you scan a code, Odoo matches it to the first product record that uses that barcode or internal reference; hence, only one variant (the first one found) appears.
If your products have a single SKU but differ only by color, you can still sell them at the POS using variants, but you’ll need to choose the color manually on-screen rather than by scanning. Alternatively, you can assign unique barcodes per color variant (for example, by extending the base SKU with a color suffix like SKU001-RED, SKU001-BLUE, etc.), which ensures each variant can be scanned correctly.
Odoo doesn’t allow multiple variants to share the same barcode or SKU because the scanning logic expects a one-to-one relationship between barcode and product. The only way to scan variants directly is to assign each a unique code or barcode; otherwise, color selection must be done manually in the POS interface.
Hope it helps