feat(products): маркетинговые флаги is_new, is_popular, is_special
- Добавлены поля в BaseProductEntity (наследуются в Product, ProductKit) - Исправлен формат флагов в Recommerce mappers (1/0 вместо true/false) - Добавлены чекбоксы в админку Product и ProductKit - special = is_special OR has_discount (ручное + автоматическое) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -90,13 +90,16 @@ def to_api_product(
|
||||
if photo.image:
|
||||
data[f'images[{idx}]'] = photo.image.url
|
||||
|
||||
# Обработка флагов товара (как строки "true"/"false" согласно документации API)
|
||||
# Обработка флагов товара (формат: 1/0 для Recommerce API)
|
||||
if hasattr(product, 'is_new'):
|
||||
data['is_new'] = "true" if product.is_new else "false"
|
||||
data['is_new'] = 1 if product.is_new else 0
|
||||
if hasattr(product, 'is_popular'):
|
||||
data['is_popular'] = "true" if product.is_popular else "false"
|
||||
# special - автоматически при наличии скидки (формат: 1/0, не is_special)
|
||||
data['special'] = 1 if has_discount else 0
|
||||
data['is_popular'] = 1 if product.is_popular else 0
|
||||
# special - из модели is_special ИЛИ автоматически при скидке
|
||||
if hasattr(product, 'is_special'):
|
||||
data['special'] = 1 if (product.is_special or has_discount) else 0
|
||||
else:
|
||||
data['special'] = 1 if has_discount else 0
|
||||
|
||||
return data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user