Method: Spree::Product#default_variant
- Defined in:
- app/models/spree/product.rb
#default_variant ⇒ Spree::Variant
Returns default Variant for Product If track_inventory_levels is enabled it will try to find the first Variant in stock or backorderable, if there’s none it will return first Variant sorted by position attribute If track_inventory_levels is disabled it will return first Variant sorted by position attribute
331 332 333 334 335 336 337 |
# File 'app/models/spree/product.rb', line 331 def default_variant @default_variant ||= if Spree::Config[:track_inventory_levels] && has_variants? && available_variant = variants.detect(&:purchasable?) available_variant else has_variants? ? variants.first : find_or_build_master end end |