Rabaty na aplikacje z Marketplace
Deweloperzy Marketplace mogą przyznawać rabaty na subskrypcje aplikacji, aby przyciągać i zatrzymywać użytkowników. Rabatami można zarządzać, tworzyć je i usuwać zarówno w Developer Center, jak i za pomocą API platformy.
Zapytania
Pobieranie rabatów na aplikacje z Marketplace
- Działa tylko w przypadku współpracowników aplikacji
- Zwraca tablicę zawierającą metadane dotyczące rabatu na daną aplikację
- Można wykonać tylko bezpośrednio na poziomie głównym. Nie można zagnieżdżać go w innym zapytaniu
query {
marketplace_app_discounts(app_id: 123456) {
account_slug
discount
valid_until
}
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = "query ($appId: ID!) { marketplace_app_discounts (app_id: $appId) { account_slug discount valid_until } }"
const variables = {
appId: 123456
};
Argumenty
| Argument | Typ | Opis |
|---|---|---|
| app_id | ID! |
Unikalny identyfikator aplikacji. |
Pola
| Pole | Typ | Opis | Wartości wyliczeniowe |
|---|---|---|---|
| account_id | ID! |
Unikalny identyfikator konta. | |
| account_slug | String! |
Slug konta. | |
| app_plan_ids | [String!]! |
Identyfikatory planów aplikacji. | |
| created_at | String! |
Data utworzenia rabatu. | |
| discount | Int! |
Procentowa wartość rabatu. | |
| is_recurring | Boolean! |
Informacja, czy rabat jest cykliczny. | |
| period | DiscountPeriod |
Okres obowiązywania rabatu. Jeśli zwraca null, rabat dotyczy zarówno planów rocznych, jak i miesięcznych. |
MONTHLYYEARLY |
| valid_until | String! |
Data, do której obowiązuje rabat. |
Mutacje
Tworzenie rabatu na aplikację z Marketplace
Dostępne tylko w wersji 2026-04 i nowszych
Tworzy rabat na aplikację z Marketplace. Zwraca CreateMarketplaceAppDiscountResult!.
mutation {
create_marketplace_app_discount_offer(
app_id: "12345"
account_slug: "my-company"
discount_data: {
discount: 20
days_valid: 30
period: MONTHLY
app_plan_ids: ["plan_001"]
}
) {
granted_discount {
app_id
app_plan_ids
discount
period
}
}
}
Argumenty
| Argument | Typ | Opis |
|---|---|---|
| account_slug | String! |
Slug konta. |
| app_id | ID! |
Unikalny identyfikator aplikacji. |
| discount_data | CreateMarketplaceAppDiscountInput! |
Szczegóły rabatu. |
Przyznawanie rabatu na aplikację z Marketplace
Ta mutacja zostanie w przyszłości wycofana. Zalecamy używanie zamiast niej create_marketplace_app_discount.
Przyznaje rabat na nową subskrypcję aplikacji z Marketplace. Zwraca GrantMarketplaceAppDiscountResult!.
mutation {
grant_marketplace_app_discount(
account_slug: "Test"
app_id: 123456
data: {
app_plan_ids: ["Basic"]
days_valid: 30
discount: 10
is_recurring: false
period: MONTHLY
}
) {
granted_discount {
app_id
period
discount
}
}
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = "mutation ($slug: String!, $appId: ID!, $appPlanIds: [String!]!, $days: Int!, $discountPercent: Int!, $recurring: Boolean!, $period: DiscountPeriod) { grant_marketplace_app_discount ( account_slug: $slug, app_id: $appId, data: {app_plan_ids: $appPlanIds, days_valid: $days, discount: $discountPercent, is_recurring: $recurring, period: $period }) { granted_discount { app_id period discount } } }"
const variables = {
appId: 123456,
slug: "my-team-monday",
appPlanIds: ["Basic"],
days: 30,
discountPercent: 10,
recurring: false,
period: "MONTHLY"
};
const response = await mondayApiClient.request(query, variables);
Argumenty
| Argument | Typ | Opis |
|---|---|---|
| account_slug | String! |
Slug konta. |
| app_id | ID! |
Unikalny identyfikator aplikacji. |
| data | GrantMarketplaceAppDiscountData! |
Szczegóły rabatu. |
Usuwanie rabatu na aplikację z Marketplace
Usuwa istniejący rabat na subskrypcję aplikacji z Marketplace. Zwraca DeleteMarketplaceAppDiscountResult!.
mutation {
delete_marketplace_app_discount(
account_slug: "Test",
app_id: 123456
) {
deleted_discount {
account_slug
app_id
}
}
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query =
"mutation ($slug: String!, $appId: ID!) { delete_marketplace_app_discount ( account_slug: $slug, app_id: $appId ) { deleted_discount { account_slug app_id } } }";
const variables = {
appId: 123456,
slug: "my-team-monday",
};
const response = await mondayApiClient.request(query, variables);
Argumenty
| Argument | Typ | Opis |
|---|---|---|
| account_slug | String! |
Slug konta. |
| app_id | ID! |
Unikalny identyfikator aplikacji. |
Obsługa błędów
Listę typowych błędów, strategii ponawiania prób i przykładów rozwiązywania problemów znajdziesz w artykule Obsługa błędów API.
Podczas wywoływania marketplace_app_discounts, grant_marketplace_app_discount lub delete_marketplace_app_discount mogą sporadycznie wystąpić standardowe błędy GraphQL lub HTTP. Oto najczęstsze kategorie błędów, które warto sprawdzić:
| Typ błędu | Opis | Co zrobić |
|---|---|---|
| Błąd uprawnień lub współpracownika | Wywołujący nie jest współpracownikiem aplikacji lub podany app_id nie należy do niego. |
Sprawdź, czy token użytkownika należy do współpracownika wskazanej aplikacji (app_id). |
| Błąd walidacji | Zapytanie lub mutacja zawiera nieprawidłowe argumenty, brakujące pola lub jest nieprawidłowo zagnieżdżona. | Upewnij się, że zapytanie marketplace_app_discounts jest wykonywane na poziomie głównym, a wszystkie wymagane argumenty (np. app_id lub account_slug) mają prawidłowy typ. |
| Nie znaleziono obiektu do usunięcia | Próba usunięcia rabatu, który nie istnieje dla wskazanego konta lub aplikacji. | Przed wywołaniem delete_marketplace_app_discount sprawdź, czy rabat istnieje. |
| Błąd limitu zapytań | Zbyt wiele żądań w krótkim czasie. | Poczekaj i ponów próbę po czasie określonym w nagłówku Retry-After (jeśli został podany). |
| Błąd serwera lub sieci | Tymczasowa awaria lub problem z połączeniem. | Ponów próbę z wykładniczym opóźnieniem. Jeśli problem nie ustąpi, skontaktuj się z pomocą techniczną monday.com i podaj request_id. |