feat: added product variants
This commit is contained in:
+35
-3
@@ -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,)
|
||||
|
||||
Reference in New Issue
Block a user