Skip to content

About

Fayna SMS TurboSMS — Odoo 17 SMS provider integration

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SMS TurboSMS — Odoo 17 (v17.0.2.0.2)

Odoo Version Python Phase License Status

Opracowane przez Fayna Digital dla CampScout. Autor: Volodymyr Shevchenko


Co to jest

Konkretna implementacja dostawcy SMS dla TurboSMS (Ukraina).

Dziedziczy po fayna.sms.provider.base z modułu fayna_sms_base i realizuje wysyłkę przez TurboSMS REST API v2.


Możliwości

  • fayna.sms.turbosms — konkretny dostawca, implementuje send_sms() i get_delivery_status()
  • Wysyłka przez TurboSMS REST API v2 (https://api.turbosms.ua/message/send.json)
  • Token API nigdy nie trafia do logów
  • Obsługa błędów: timeout, connection error, HTTP error, niepoprawny JSON
  • _send_sms(numbers, body) — legacy batch API dla wstecznej kompatybilności
  • Przycisk „Wyślij testowy SMS" w Settings
  • Konfiguracja przez Settings → General → TurboSMS: API Token (zamaskowany), Sender Name, API URL
  • i18n: uk_UA + pl_PL

Architektura

fayna_sms_turbosms/
├── __manifest__.py
├── __init__.py
├── data/
│   └── ir_config_parameter.xml     # feature flag + api_token + sender_name + api_url
├── models/
│   ├── fayna_sms_turbosms.py       # fayna.sms.turbosms (AbstractModel)
│   └── res_config_settings.py      # rozszerzenie Settings o pola TurboSMS
├── security/
│   └── ir.model.access.csv         # ACL (bez konkretnych modeli — abstract only)
├── views/
│   └── res_config_settings_views.xml
├── tests/
│   ├── test_scaffold.py
│   └── test_fayna_sms_turbosms.py  # 18 testów (wszystkie wywołania HTTP zamockowane)
├── i18n/
│   ├── uk_UA.po
│   └── pl_PL.po
├── docs/TZ.md
├── pyproject.toml
├── LICENSE
├── CHANGELOG.md
└── README.md

Konfiguracja

  1. Zainstaluj moduł
  2. Przejdź do Settings → General → TurboSMS
  3. Wklej token API z panelu TurboSMS
  4. Podaj nazwę nadawcy (domyślnie: CampScout)
  5. Kliknij „Wyślij testowy SMS", aby zweryfikować

Lub bezpośrednio przez System Parameters:

fayna_sms_turbosms.api_token   = <twój token>
fayna_sms_turbosms.sender_name = CampScout
fayna_sms_turbosms.api_url     = https://api.turbosms.ua/message/send.json

Kontrakt API

send_sms(phone, body) zwraca:

{"success": bool, "external_id": str | None, "error": str | None}

Przykład wyniku sukcesu:

{"success": True, "external_id": "uuid-from-turbosms", "error": None}

Przykład błędu:

{"success": False, "external_id": None, "error": "Request timeout (10s)."}

Format odpowiedzi TurboSMS API

{
  "response_status": "OK",
  "response_result": [
    {
      "phone": "+380XXXXXXXXX",
      "message_id": "uuid",
      "response_status": "OK"
    }
  ]
}

Instalacja

cd /opt/campscout/custom-addons
sudo -u \#1000 git clone https://github.com/fayna-digital/fayna-sms-turbosms.git fayna_sms_turbosms
docker exec campscout_web odoo -c /etc/odoo/odoo.conf -d campscout \
    -i fayna_sms_turbosms --stop-after-init --no-http
docker restart campscout_web

Wymaga: zainstalowany fayna_sms_base i fayna_sms_base.active = True.


Dokumentacja

  • CLAUDE.md — jak pracować z repo + baner #4ZONES (flow wdrożeniowy)
  • docs/TZ.md — specyfikacja techniczna (6 obszarów spec-driven)
  • docs/PLAN.md — dependency graph, fazy, checkpointy
  • CHANGELOG.md — historia wydań

Licencja

OPL-1 (Odoo Proprietary License v1.0) — zobacz LICENSE.


Opracowane przez Fayna Digital · Volodymyr Shevchenko

About

Fayna SMS TurboSMS — Odoo 17 SMS provider integration

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages