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:
2026-01-13 00:04:35 +03:00
parent 74d7d1186a
commit 52422ee8df
2 changed files with 153 additions and 1 deletions

View File

@@ -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