/
valuevvik
/
wbAnalytics
Обзор
Документация
Войти
/
valuevvik
/
wbAnalytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
123.py
160 строк
7 KB
valuevvik
initial commit
05 дек 2025, 17:36
05 дек 2025, 17:36
f514336
Код
Авторство
О чём код?
# import requests # from datetime import datetime, timedelta # from config.settings import settings # # class WBAdvertFinance: # def __init__(self, api_key): # self.api_key = api_key # self.headers = {"Authorization": api_key} # # def get_balance(self): # """Получение баланса""" # url = "https://advert-api.wildberries.ru/adv/v1/balance" # response = requests.get(url, headers=self.headers) # # if response.status_code == 200: # return response.json() # else: # print(f"Ошибка баланса: {response.status_code}") # return None # # def get_campaign_budget(self, campaign_id): # """Получение бюджета кампании""" # url = "https://advert-api.wildberries.ru/adv/v1/budget" # params = {"id": campaign_id} # response = requests.get(url, headers=self.headers, params=params) # # if response.status_code == 200: # return response.json() # else: # print(f"Ошибка бюджета: {response.status_code}") # return None # # def deposit_campaign_budget(self, campaign_id, sum_amount, deposit_type, # cashback_sum=None, cashback_percent=None, return_info=True): # """Пополнение бюджета кампании""" # url = "https://advert-api.wildberries.ru/adv/v1/budget/deposit" # params = {"id": campaign_id} # # payload = { # "sum": sum_amount, # "type": deposit_type, # "return": return_info # } # # if cashback_sum and cashback_percent: # payload["cashback_sum"] = cashback_sum # payload["cashback_percent"] = cashback_percent # # response = requests.post(url, headers=self.headers, params=params, json=payload) # # if response.status_code == 200: # return response.json() # else: # print(f"Ошибка пополнения: {response.status_code}") # return None # # def get_spending_history(self, date_from, date_to): # """Получение истории затрат""" # url = "https://advert-api.wildberries.ru/adv/v1/upd" # params = { # "from": date_from, # "to": date_to # } # response = requests.get(url, headers=self.headers, params=params) # # if response.status_code == 200: # return response.json() # else: # print(f"Ошибка истории затрат: {response.status_code}") # return None # # def get_payments_history(self, date_from, date_to): # """Получение истории пополнений счёта""" # url = "https://advert-api.wildberries.ru/adv/v1/payments" # params = { # "from": date_from, # "to": date_to # } # response = requests.get(url, headers=self.headers, params=params) # # if response.status_code == 200: # return response.json() # elif response.status_code == 204: # print("История пополнений не найдена") # return [] # else: # print(f"Ошибка истории платежей: {response.status_code}") # return None # # def get_media_campaigns_count(self): # """Количество медиакампаний""" # url = "https://advert-media-api.wildberries.ru/adv/v1/count" # response = requests.get(url, headers=self.headers) # # if response.status_code == 200: # return response.json() # else: # print(f"Ошибка медиакампаний: {response.status_code}") # return None # # # # Использование # if __name__ == "__main__": # # Инициализация с вашим API-ключом # api_key = settings.api_key # wb_finance = WBAdvertFinance(api_key) # # # 1. Получение баланса # print("=== БАЛАНС ===") # balance = wb_finance.get_balance() # if balance: # print(f"Баланс: {balance}") # # # # 2. Получение бюджета кампании # # print("\n=== БЮДЖЕТ КАМПАНИИ ===") # # campaign_id = 1234567 # Замените на ID вашей кампании # # budget = wb_finance.get_campaign_budget(campaign_id) # # if budget: # # print(f"Бюджет кампании {campaign_id}: {budget}") # # # 3. Получение истории затрат # print("\n=== ИСТОРИЯ ЗАТРАТ ===") # date_from = "2025-10-01" # date_to = "2025-10-07" # spending = wb_finance.get_spending_history(date_from, date_to) # if spending: # print(f"Затраты за период {date_from} - {date_to}:") # for i, item in enumerate(spending[:3], 1): # print(f"\n{i}. {item.get('campName', 'Без названия')}") # print(f" 💰 Сумма: {item.get('updSum', 0)} руб.") # print(f" 🆔 ID: {item.get('advertId')}") # print(f" ⏰ Время: {item.get('updTime', 'Не указано')}") # print(f" 📊 Тип: {item.get('advertType')} | Статус: {item.get('advertStatus')}") # print(f" 💳 Оплата: {item.get('paymentType')}") # print(f" #️⃣ Номер: {item.get('updNum')}") # # # # 4. Получение истории пополнений # # print("\n=== ИСТОРИЯ ПОПОЛНЕНИЙ ===") # # payments = wb_finance.get_payments_history(date_from, date_to) # # if payments is not None: # # print(f"Пополнения за период {date_from} - {date_to}:") # # for payment in payments[:3]: # Показать первые 3 записи # # print(f" - {payment['date']}: {payment['sum']} руб.") # # # # 5. Количество медиакампаний # # print("\n=== МЕДИАКАМПАНИИ ===") # # media_count = wb_finance.get_media_campaigns_count() # # if media_count: # # print(f"Статистика медиакампаний: {media_count}") # # # 6. Пример пополнения бюджета (раскомментируйте при необходимости) # # print("\n=== ПОПОЛНЕНИЕ БЮДЖЕТА ===") # # deposit_result = wb_finance.deposit_campaign_budget( # # campaign_id=1234567, # # sum_amount=5000, # # deposit_type=1, # 0 - Счёт, 1 - Баланс, 3 - Бонусы # # return_info=True # # ) # # if deposit_result: # # print(f"Бюджет пополнен. Новый бюджет: {deposit_result}")