Aktywna i pustowa zakładki w katalogu org platformy
Zakładka Organizacji Konsoli dzieli się teraz na sub-tabs Active i Void. A A Unieważniona organizacja to orgs.is_active - FALSE (ustawione przez pustkę Security...
Opłata za uruchomienie planu i oferta na żywo, na podsłuchu
PlanDto miał tylko powtarzające się tempo, więc każda powierzchnia cytując plan podana cena Klient nie zostałby obciążony: opłata startowa KamoCRM wynosi 99 USD...
Jeden punkt końcowy stojący za własną stroną planu klienta
GET /api/billing/self/plan odpowiada na wszystko /myplan renders: plan, jaki jest Organizacja może faktycznie wykorzystać, katalog do porównania, siedzenia i ic...
Ustaw opłatę za start-up na obu trasach do planu i zanotuj wynegocjowane warunki
Dwie trasy docierają do tego samego planu i tylko jedna z nich zamierzała naładować nowy Opłata za start-miejscowe. Rachunki za zamówienie sprzedażowe poprzez S...
Zablokuj każde zamiatanie i uruchom dwie kapsułki
BillingService uruchomił jedną kapsułę, a jego siedem zaplanowanych przeszukań było poprawnych tylko z tego powodu. Tam Nie jest ShedLock nigdzie na tej platfor...
Podawaj ofertę biegową i powiedz, czy miejsce jest rzeczywiście PAID dla
Dodaje GET /markety/-y-/promocja. Nie było możliwości, aby powierzchnia kupna w aplikacji Wiedz, że oferta była w ogóle uruchomiona - strona marketingowa czytał...
Ustaw trzyletnią kadencję i pomów na konsolę
BillingCycles zyskuje TRIENNIAL, wyrażony Stripe jako trzy lata, a nie Trzydzieści sześć miesięcy więc odnowienie śledzi rocznicę rejestracji – ten sam powód AN...
Linie perserowe na podsumowaniu rozszerzeń
Poszerzenia serwera telefonicznego pokazały liczbę całej organizacji i Nic więcej, więc pusty serwer KamoPBX wyświetlał "21 rozszerzeń płatnych — $63.00 / miesi...
Odmowa subskrypcji firmy Enterprise
Enterprise jest negocjowane. Ukrywanie się w cenę jest prezentacją; to jest Granica. Prośba o nazwanie planu Enterprise zostanie odrzucona, chyba że dzwoniący P...
Usługa telefoniczna Billa przez rozszerzenie
PricingModel.PER_EXTENSION, własny zarezerwowany klucz ilościowy, alokator, a) Nocny gogodr, brama do usuwania i podsumowujący API - telefoniczny bliźniak Praca...
Bill e-mail na skrzynkę pocztową, pojednany w nocy
Ilość jest księgowana w ramach zarezerwowanego klucza, którego organ żądający nie może Dojście i przepchnąć istniejącą ścieżkę zmian – więc Stripe's CREATE_PROR...
Spraw, aby wydarzenie powtórne Stripe było no-op
Dodaje BillingWebhookEventClaimService na własną rękę, z REQUIRES_NEW Każda metoda i przełącza ją do procesuWydarzenie przed przełącznikiem wysyłki. Przegrana r...
Publikuj płatna konwersję dla śledzonych organizacji
Obie ścieżki, które stemplują BillingSourceType.PAID, teraz publikują marketing.visitor.paid, Ponieważ tylko jeden po cichu pomija połowę ruchu — AccountSubscri...
Zdecyduj dostęp do platformy ze współdzielonym desolatorem
PlatformAdminOn teraz nazywa platformę w prawo, której wymaga (domyślnie domyślne do tego, aby MANAGE_ORGANIZATIONS, o czym jest powierzchnia platformy tej usłu...
Przenieś datę odnowienia na pokrycie i ładunki grupy
Obie powierzchnie informują teraz o aktualnej PeriodEnd i cancelAtPeriodEnd. Data jest tym, co Potwierdzenie anulowania musi powiedzieć: "Trzymasz swoje miejsce...
Jeden plan na organizację, 25-miejscowy pułap Enterprise i sposób na zaprzestanie płacenia
Plan jest teraz decyzją na poziomie organizacji i nic innego nie może go zastąpić. Pozwalanie samopłatnikowi lub kierownikowi grupy wybrać własne odczyty jak ży...
Niech plan grupy zostanie anulowany i przestań płatować podwójnie za jedną osobę
Trzy luki w tym, co zostało wysłane: Grupa z planem nigdy nie może zostać usunięta. delete() odmawia podczas zamieszkania Subskrypcja istnieje - poprawne, poni...
Spraw, aby grupy rozliczeniowe działały na koniec i przestań za darmo za darmo za nic
Grupa może teraz gromadzić ludzi, kupować plan na własnej karcie swojego menedżera i ręcznie - Na zewnątrz. Nic z tego nie istniało: jedyne operacje były tworzo...
Powiedz ludziom, że ich płatność nie powiodła się i zachwić subskrypcję
Wyniszczenie, które nie istniało. invoice.payment_failed napisało wiersz i zwróciło: Nie skonfigurowano e-maila, bez flagi, brak zmiany stanu, a billing.email-s...
Pozwól członkowi kupić własne miejsce i zamknąć otwór na karpas.
Samopłacenie nie miało drogi wewnątrz konsoli. Wszystko na powierzchni rozliczeniowej jest W kształcie konta – musisz już posiadać wiersz kontaMemior, zanim Pla...
Org polityka i grupy rozliczeniowe APIs
Kto w organizacji może zapłacić Kamo jest teraz odpowiedzialny i ustawiony. Oba Trasy są lubg-scoped i dlatego celowo na zewnątrz /api/billing/konta/ . I jego p...
Domyślić docelową org nowej subskrypcji do dzwoniący
Pierwszy zakup nie ma istniejącej subskrypcji, aby kopiować targetOrganizationId od, I wymaganie go bezwarunkowo jest tym, co stworzyło jeden z konsoli Niemożli...
Kup blok, gdy wybiega się z org
Biegnie wkrótce po nocnym zamiataniu, ponieważ to właśnie produkuje Liczba użytkowników, na które decyduje się – rozszerzenie na wczorajszy numer kupi Blokada o...
Niech zmiana ceny katalogowej faktycznie dotrze do Stripe
Ceny Stripe są niezmienne, a mapowanie zawiera jeden wiersz na (org, typ, kod, Cykl) za unikalnym kluczem, więc gdy tylko cena istniała, nigdy nie mogła się zmi...
Zgłoś pojemność wraz z użytkowaniem
Panel przechowywania zgłoszony bytes przechowywany za nic nie w ogóle – brak zasiłku, Brak procentu, bez pieniędzy - więc właściciel patrząc na 400 GB nie miał ...
Zrób pierwszy plan do kupie, a także zwróć realne ceny planu
Dwie rzeczy zatrzymały organizację, która kiedykolwiek kupiła pierwszą subskrypcję. Listy planów były osiągalne tylko za pośrednictwem sub.marketId w subskrypc...
Bill per-ont przez jednostki zakupione, a nie przez liczbę pracowników
Wątek nowej ilości dodatku poprzez tworzenie i aktualizowanie: dodatek FLAT teraz Odbiera swoją ilość Stripe z tego, co faktycznie kupiła subskrypcja, więc czte...
Punkt w YugabyteDB i użyj PostgreSQLDialect
CockroachDB został zastąpiony przez YugabyteDB. Ciągi połączeń przesuwają się z Co karaluchdb-publikowany:26257 do yb-tserver-service:5433, dialekt hibernacji O...
Odczytowanie użytkowania z jednego deduplicated pass
Podąża za zmianą biblioteki współdzielonej do jednego ładowania na inny plik na Organizacja. Zarówno podsumowanie, jak i codzienny autor snapshotu robią pojedyn...
Pozwól administratorowi platformy uruchomić migawkę na żądanie
Jest to, co powoduje, że przeprowadzki okresowe i sumy życia dla Trudności z usuwaniem domen w ogóle są odpowiedzialne, więc dni stracone z powodu przerwy są st...
Zgłoś, co przechowuje organizacja
Zakładka statystyk konta zawsze mówiła "Nie ma danych dotyczących wykorzystania w tym okresie", dla każdej organizacji, ponieważ getCurrentUsage() in kamo-inter...
Podawaj katalog org jako filtrowaną, posortowaną, pagowaną stronę
GET /orgs przyjmuje stronę/rozmiar/k/sort/r plus siedem filtrów i zwraca dom Koperta stron z agregatami o powierzchni. GET /orgs/'orgId' serwuje pełne szczegóły...
Nawodnienie stron przy stałej liczbie zapytań
Tytuły rodziców, domena podstawowa, plan/rynek za uprawnieniem i Flaga subskrypcyjna kaskalogu jest po jednym naciągniętym IN (:ids) na całej stronie, Tak więc ...
Wiosek katalogowy / strona DTO i natywne repozytorium zapytań
PlatformOrgRow posiada dwa aspekty oddzielnie: uprawnienia (inbound subs Celowanie w org - co nim rządzi) i rozliczanie (rachunki posiada org - niezerowe tylko ...
Org katalog SQL z CTE na twarz
Konta przetrzymywane, subskrypcje przychodzące, członkowie, licencjobiorcy i dzieci Sekreg w ich własnym CTE przed dołączeniem do orgs. Dołącz do nich w jednym ...
Zatwierdzona, zaciśnięty lubg prośba katalogu
Rozmiar zacisków do [1,100] i nierozpoznany sort spada z powrotem do tytułu, więc a więc rękodzieło ewawizowane URL nie może żądać całościowego spadku ani nie d...
Derive trybu uprawnienia poprzez wspólny, deterministyczny deterministyczny desolwator
TrialAdminService wybrało subskrypcję próbną z findFirst () Nieuporządkowane listy, więc orgia z udziałem zarówno oczekujących, jak i aktywnych prób może Zgłosi...
Platform-admin apply/extend/status trial punkty końcowe + DTO trialExpipiresAt
Zaplanowane zamiatanie przeterminowane próby do bezpłatnego z cache-bust
E-sign użytkowania pomiar + samoobsługa dla konsumentów
4 pomiary: - EsignMeterSubmissionService (ślicany codziennie): agregaty API-oryginalne EsignUsageRecords na org/p. + okres; pierwsze 40/okres wliczone w cenę,...
Zarządzaj Organization.isPlatformProdukt z platformy ? Orgs
PlatformAccountSummary ujawnia isPlatformProduct + hasSubscriptionMarket; nowy PUT (platforma-admin gated) Ustawia banderę i unieważnia uprawnienia członków org...
Przepisać BillingService wokół BillingGroups
Usuwa poziom org-) Kontrolerzy, usługi i DTO. Wprowadza: - BillingGroupController grupy montażowe, członkowie, subskrypcje, licencje, Metody płatności oraz f...
Dodaj kontroler PlatformAdmin + serwis dotacji na plan kom,
- PlatformAdminController na /api/billing/platform (poziom klasowy ?PlatformAdminOnly) - GET /orgs, GET /orgs/'orgId' - POST /orgs/'orgId'/grants, PATCH|DEL...
Enforce team-member pay-fees w tworzeniu klientów Stripe
Bumps kamo-shared-libiry zależność do 1.5.0, więc BillingService może rozwiązać Nowy AppliedModelEnforcementService i przewody członkowski w stosunku do org Wyk...
Początkowa BillingService — Rozliczenia zintegrowane ze paskami dla KamoCRM
Kompletna usługa Spring Boot do zarządzania fakturowaniem KamoCRM za pośrednictwem Stripe: - Stripe Klient, Subskrypcja, PaymentMethod, Zarządzanie cyklem życi...
Jak to, co widzisz żeglugę?
Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.