feat(recommerce): флаг special для акционных товаров
- Исправлен формат флага: special=1/0 вместо is_special="true"/"false" - Добавлен тестовый скрипт test_is_special.py для отладки API Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -50,10 +50,12 @@ def to_api_product(
|
||||
if category_sku:
|
||||
data['parent_category_sku'] = category_sku
|
||||
|
||||
# Вычисляем has_discount до блока price (нужно для is_special)
|
||||
has_discount = product.sale_price and product.price and product.sale_price < product.price
|
||||
|
||||
if 'price' in fields:
|
||||
# Recommerce ожидает price[amount] и price[currency] в form-data формате
|
||||
# Значения передаём как строки (так работает в проверенном скрипте)
|
||||
has_discount = product.sale_price and product.price and product.sale_price < product.price
|
||||
|
||||
if has_discount:
|
||||
# Есть скидка: текущая цена = sale_price, старая = price
|
||||
@@ -93,6 +95,8 @@ def to_api_product(
|
||||
data['is_new'] = "true" if product.is_new else "false"
|
||||
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
|
||||
|
||||
return data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user