Aktive und Leere Tabs im Verzeichnis der Plattform org
Die Registerkarte Organisationen der Konsole wird nun in aktive und lässige Sub-Tabs unterteilt. A ungültige Organisation ist orgs.is_active = FALSE (durch Secu...
Die Startgebühr eines Plans und das Live-Angebot auf dem Draht
PlanDto trug nur die wiederkehrende Rate, so dass jede Oberfläche zitiert einen Plan einen Preis die Kunde würde nicht berechnet werden: KamoCRM Startgebühr ist...
Ein Endpunkt hinter der eigenen Planseite des Kunden
GET /api/billing/self/plan beantwortet alles /myplan macht: der Plan, was die Organisation kann tatsächlich verwenden, den Katalog zu vergleichen, Sitze und ihr...
Rechnungen Sie die Startgebühr auf beiden Wegen zu einem Plan, und Rekord ausgehandelten Bedingungen
Zwei Routen erreichen den gleichen Plan und nur eine von ihnen war im Begriff, die neue laden Startgebühr pro Sitz. Ein verkaufspflichtiger Auftrag über den Abo...
Schließen Sie jeden Geld bewegenden Sweep, und laufen zwei Hülsen
BillingService lief ein Pod und seine sieben geplanten Sweeps waren nur wegen es korrekt. Dort ist kein ShedLock überall auf dieser Plattform, so dass eine zwei...
Servieren Sie das laufende Angebot, und sagen, ob ein Sitz ist eigentlich PAID für
Fügt GET /markets/{id'/promotion hinzu. Es gab keine Möglichkeit für eine In-App-Kauffläche zu wissen, dass ein Angebot überhaupt lief - die Marketing-Website l...
Bill die Drei-Jahres-Befristung, und zitieren Sie seine Rate auf die Konsole
BillingCycles gewinnt TRIENNIAL, ausgedrückt zu Stripe als drei JAHRE statt 36 MONTHs, so dass die Erneuerung verfolgt die Anmeldejubiläum - der gleiche Grund A...
Per-Server-Linien auf der Erweiterungen Zusammenfassung
Die Telefon-Server-Erweiterungen Registerkarte zeigte die organisationsweite Figur und nichts anderes, so dass ein leerer KamoPBX-Server angezeigt "21 abrechnun...
Verweigern Sie ein Self-Serve Enterprise-Abonnement
Das Unternehmen wird verhandelt. Verstecken der Preis ist Präsentation; dies ist die Grenze. Eine Anfrage zur Benennung des Enterprise-Plans wird abgelehnt, es ...
Bill Telefon-Service durch die Erweiterung
PricingModel.PER_EXTENSION, eine eigene reservierte Menge, ein Allokator, nächsischer Versöhner, ein Entfernungstor und die zusammenfassende API - der Telefon-Z...
Rechnung E-Mail pro Briefkasten, versöhnt nächtlich
Menge wird Server-Computing unter einem reservierten Schlüssel ein Anfrage-Leichnam kann erreichen, und durch die bestehende Änderung Pfad geschoben - so Stripe...
Machen Sie eine wiederholte Stripe Veranstaltung ein No-op
Fügt BillingWebhookEventClaimService auf seiner eigenen Bohne hinzu, mit REQUIRES_NEW auf jede Methode, und verdrahtet es in ProzessEvent vor dem Versandschalte...
Veröffentlichen Sie die bezahlte Konvertierung für verfolgte Organisationen
Beide Wege, die BillingSourceType.PAID jetzt veröffentlichen marketing.visitor.paid, weil das Einhaken nur eine leise verfehlt die Hälfte des Verkehrs . Account...
Entscheiden Sie den Plattformzugang mit dem Shared-Deser
@PlattformAdminNun nennt jetzt die Plattform richtig, die es erfordert (defaulting to MANAGE_ORGANIZATIONEN, worum es bei der Plattformfläche dieses Dienstes ge...
Tragen Sie den Erneuerungstermin auf der Abdeckung und Gruppen-Nläge
Beide Oberflächen melden nun aktuellPeriodEnd und cancelAtPeriodEnd. Das Datum ist, was eine Stornierungsbestätigung muss eigentlich sagen: "Sie behalten Ihren ...
Ein Plan pro Organisation, eine 25-sitzige Enterprise-Obergrenze und eine Möglichkeit, nicht mehr zu zahlen
Der Plan ist jetzt eine Entscheidung auf Organisationsebene und nichts anderes kann ihn außer Kraft setzen. Einen Selbstzahler oder einen Gruppenmanager ihre ei...
Lassen Sie den Plan einer Gruppe annulliert werden und hören Sie auf, für eine Person doppelt zu zahlen.
Drei Lücken in dem, was zuletzt ausgeliefert: Eine Gruppe mit einem Plan konnte nie entfernt werden. delete() weigert sich, während einer Live- Abonnement exis...
Machen Sie Abrechnungsgruppen arbeiten Ende zu Ende, und stoppen Selbstzahlung Gebühren für nichts
Eine Gruppe kann jetzt Leute sammeln, einen Plan auf der eigenen Karte ihres Managers kaufen und seine Sitze aus. Nichts davon existierte: die einzigen Operatio...
Sagen Sie den Leuten, dass ihre Zahlung fehlgeschlagen ist, und stellen Sie das Abonnement herunter
Die Dünung, die nicht existierte. bill.payment_failed schrieb eine Reihe und kehrte zurück: keine E-Mail, keine Flagge, keine Änderung des Staates, und billing....
Lassen Sie ein Mitglied einen eigenen Sitzplatz kaufen und ein Body-Parameter-Loch schließen
Self-Pay hatte keine Route innerhalb der Konsole. Alles auf der Abrechnungsfläche ist Konto-förmig - Sie müssen bereits eine Kontomitglied-Reihe vor Plänen & Bi...
Org Politik und Abrechnung Gruppe APIs
Wer innerhalb einer Organisation Kamo bezahlen kann, ist nun verantwortlich und sorglos. Beide Routen sind org-scoped und daher absichtlich außerhalb /api/billi...
Standardieren Sie das Ziel eines neuen Abonnements oder an den Anrufer
Ein erster Kauf hat kein bestehendes Abonnement, um targetOrganizationId von kopieren, und erfordert es bedingungslos ist, was die Schaffung einer von der Konso...
Kaufen Sie einen Block, wenn ein Opt-in org ausgeht
Läuft kurz nach dem nächtlichen Schnappschuss-Sweep, denn das ist es, was die Nutzungszahl, auf die es entscheidet, auf - Erweiterung gegen die gestrige Zahl wü...
Lassen Sie einen Katalog Preiswechsel tatsächlich erreichen Stripe
Die Preise sind unveränderlich und die Mapping-Karten halten eine Zeile pro (org, tip, code, Zyklus) hinter einem einzigartigen Schlüssel, so dass, sobald ein P...
Kapazität neben der Nutzung melden
Die Speicherplatte gemeldet Bytes gegen nichts überhaupt gespeichert - keine Zulage, kein Prozentsatz, kein Geld - also hatte ein Besitzer, der auf 400 GB schau...
Machen Sie einen ersten Plan kaufbar, und Renditen reale Planpreise
Zwei Dinge haben eine Organisation gestoppt, die jemals ein erstes Abonnement gekauft hat. Planlisten waren nur über sub.marketId auf ein Abonnement erreichbar...
Rechnung pro Einheit Add-ons von Einheiten gekauft, nicht nach Mitarbeiterzahl
Fäden Sie die neue Add-on-Menge durch Erstellen und Update ein: ein FLAT-Ad-Ad-on jetzt nimmt seine Stripe-Menge von dem, was das Abonnement tatsächlich gekauft...
Punkt bei YugabyteDB und verwenden Sie PostgreSQLDialect
CockroachDB wurde durch YugabyteDB ersetzt. Verbindungsstränge bewegen sich von Kakerlakedb-öffentliche:26257 zu yb-tserver-service:5433, und der Hibernate Dial...
Lesen Sie bildgebende Verwendung von einem deduplicated Pass
Folgt der Änderung der Shared-Bibliothek zu einer Gebühr pro gesonderte Datei pro Datei Organisation. Sowohl die Zusammenfassung und die tägliche Schnappschuss-...
Lassen Sie eine Plattform Admin laufen die Schnappschuss-Sweep auf Anfrage
Der Sweep ist, was macht Periode Entfernungen und Lebensdauer Summen für die hart-löschen Domains verantwortlich überhaupt, so Tage verloren, um einen Ausfall v...
Bericht, was eine Organisation speichert
Die Registerkarte Kontostatistik hat immer gesagt: "Keine Nutzungsdaten für diesen Zeitraum", für jede Organisation, denn getCurrentUsage() in kamo-internal ist...
Servieren Sie das org-Verzeichnis als gefilterte, sortierte, paginierte Seite
GET /orgs nimmt Seite/Größe/q/sort/dir plus sieben Filter und gibt das Haus zurück Seitenumschlag mit gebietsweiten Aggregaten. GET /orgs/{orgId' dient im Detai...
Batched Seite Hydratation bei einer konstanten Abfrage-Zählung
Elterntitel, Primärdomäne, der Plan/Markt hinter dem Anspruch und die Abonnement-Katalog-Flagge sind jeweils ein Chargen IN (:ids) über die gesamte Seite, so ko...
Directory row/page DTOs und das native Abfrage-Repository
PlatformOrgRow trägt die beiden Facetten getrennt: Anspruch (inbound subs Targeting der Org -- was es regiert) und Abrechnung gehalten (rekont die Org besitzt -...
Org Verzeichnis SQL mit profacet CTEs
Ausgebuchte Konten, Inbound-Abonnements, Mitglieder, Lizenznehmer und Kinder agg. in ihrem eigenen CTE, bevor sie zu orgs beitreten. Mit ihnen in einem Pass wür...
Validierte, geklemmte Org-Verzeichnis-Anfrage
Größe klammert sich an [1,100] und eine unerkannte Art fällt zurück zum Titel, so ein Handbenachrichtigende URL kann weder den gesamten Nachlass anfordern noch ...
Anspruchsmodus durch einen gemeinsamen, deterministischen Lösungsmittel ableiten
TrialAdminService wählte sein Testabonnement mit findFirst() über eine ungeordnete Liste, so dass eine Org sowohl eine anhängige und eine aktive Studie halten k...
Expose trialExpiresAt on platform org Zusammenfassung für die Admin-Studien UI
Plattform-admin apply/extend/Status-Studie Endpoints + DTO-StudieExpiresAt
E-Zeichen Nutzungsmessung + Verbraucher Self-Serve-Checkout
#4 Zähler: - EsignMeterSubmissionService (@Scheduled täglich): aggregiert API-Ursprung EsignUsageRecords per org+Periode; erste 40/Periode inbegriffen, der Re...
Organisation verwalten.isPlatformProdukt von der Plattform
PlatformAccountSummary stellt aus der Plattform-Product + hat SubscriptionMarket; neu PUT ************ (Plattform-Admin gated) setzt die Flagge und ungültig die...
BillingService rund um BillingGroups neu schreiben
Löscht die org-Ebene **************** Controller, Services und DTOs. Einführung: - BillingGroupController Montagegruppen, Mitglieder, Abonnements, Lizenzen, ...
PlatformAdmin Controller + Service für Comp Plan Grants hinzufügen
- PlatformAdminController bei /api/billing/platform (Klassenebene @PlatformAdminOnly) - GET /orgs, GET /orgs/{orgId' - POST /orgs/{orgId'/grants, PATCH|DELE...
Team-Mitglied Pay-Gebügel setzen bei Stripe Kundengründung
Bumps kamo-shared-library Abhängigkeit zu 1.5.0 so BillingService lösen kann der neue AppliedModelEnforcementService und wires team-member vs org Pay-Gebühren D...
Initial BillingService - gestreifte Abrechnung für KamoCRM
Kompletter Spring Boot Service für die Verwaltung von KamoCRM Billing via Stripe: - Stripe Kunde, Abonnement, PaymentMethod, Rechnung Lifecycle Management - Kr...
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.