feat: added product variants

This commit is contained in:
2026-07-23 11:37:37 +02:00
parent 5786c07077
commit 87405f31fa
22 changed files with 818 additions and 315 deletions
+35 -3
View File
@@ -9,10 +9,13 @@ from shop.models import (
Order,
OrderLine,
Product,
ProductAttribute,
ProductAttributeValue,
ProductBatch,
ProductCategory,
ProductPrice,
ProductImage,
ProductVariant,
Provider,
ShippingMethod,
ShopSettings,
@@ -21,6 +24,13 @@ from shop.models import (
)
class ProductPriceInline(admin.TabularInline):
model = ProductPrice
fk_name = 'variant'
fields = ('price', 'tax', 'current')
extra = 1
# Register your models here.
@admin.register(Product)
class ProductAdmin(ModelAdmin):
@@ -42,8 +52,8 @@ class TaxAdmin(ModelAdmin):
@admin.register(OrderLine)
class OrderLineAdmin(ModelAdmin):
autocomplete_fields = ('product',)
list_display = ('id', 'product', 'price', 'quantity')
autocomplete_fields = ('product', 'variant')
list_display = ('id', 'product', 'variant', 'price', 'quantity')
@admin.register(Order)
@@ -78,7 +88,7 @@ class CartAdmin(ModelAdmin):
@admin.register(CartItem)
class CartItemAdmin(ModelAdmin):
list_display = ('id', 'cart', 'product', 'quantity')
list_display = ('id', 'cart', 'product', 'variant', 'quantity')
@admin.register(ShippingMethod)
@@ -108,3 +118,25 @@ class ShopSettingsAdmin(ModelAdmin):
@admin.register(ProductImage)
class ProductImageAdmin(ModelAdmin):
list_display = ('id', 'original')
@admin.register(ProductAttribute)
class ProductAttributeAdmin(ModelAdmin):
search_fields = ('name',)
list_display = ('id', 'name')
@admin.register(ProductAttributeValue)
class ProductAttributeValueAdmin(ModelAdmin):
autocomplete_fields = ('attribute',)
search_fields = ('value',)
list_display = ('id', 'attribute', 'value')
@admin.register(ProductVariant)
class ProductVariantAdmin(ModelAdmin):
autocomplete_fields = ('product',)
filter_horizontal = ('attribute_values',)
search_fields = ('sku', 'product__name')
list_display = ('id', 'product', 'sku', 'stock')
inlines = (ProductPriceInline,)