A produkt dewelopera to przedmiot lub umiejętność, które użytkownik może kupić więcej niż raz, takie jak waluta w grze, amunicja lub mikstury.

Utwórz produkt dewelopera
Aby utworzyć produkt dewelopera:
- Przejdź do Kreacji i wybierz grę.
- Przejdź do Monetyzacja ⟩ Produkty dewelopera.
- Kliknij Utwórz produkt dewelopera.
- Prześlij obraz, który ma być wyświetlany jako ikona produktu. Upewnij się, że obraz nie przekracza 512x512 pikseli, nie zawiera ważnych szczegółów poza okrągłymi granicami i jest w formacie .jpg, .png lub .bmp.
- Wprowadź nazwę i opis produktu.
- Wybierz kategorię dla produktu. Kategoria jest używana do organizowania przedmiotów w twoim sklepie w grze.
- Ustaw cenę produktu w Robux. Minimalna cena to 1 Robux, a maksymalna cena to 1 miliard Robux.
- Kliknij Zapisz zmiany.
Uzyskaj identyfikator produktu dewelopera
Aby użyć skryptowania, potrzebujesz identyfikatora produktu dewelopera. Aby uzyskać identyfikator produktu:
Przejdź do Monetyzacja ⟩ Produkty dewelopera.
Najedź na miniaturę produktu, kliknij przycisk ⋯ i wybierz Kopiuj identyfikator zasobu z menu kontekstowego.

Sprzedaj produkt dewelopera
Przed sprzedażą produktów dewelopera upewnij się, że prawidłowo przetwarzasz rachunki sprzedaży i przyznajesz użytkownikom zakupione przedmioty. Aby to zrobić, musisz:
- Użyj API ProcessReceipt, aby sprawdzić rachunki zakupów. ProcessReceipt automatycznie odczytuje i potwierdza, że użytkownik kupił produkt poza grą.
- Sprawdź każdy rachunek pod kątem User ID, Developer Product ID i statusu rachunku.
- Jeśli rachunek ma status Otwarte, przyznaj użytkownikowi produkty dewelopera, które zakupił.
- Odpowiedz na API ProcessReceipt wiadomością potwierdzającą rachunek i weryfikującą, że zakupy zostały przyznane.
Możesz sprzedawać produkty dewelopera na dwa sposoby:
W swojej grze
Aby zaimplementować i sprzedawać produkt dewelopera w grze, wywołuj funkcje MarketplaceService.
Użyj GetProductInfo, aby uzyskać informacje o produkcie dewelopera, takie jak nazwa i cena, a następnie, aby wyświetlić ten produkt użytkownikom. Możesz sprzedawać produkt w rynku twojej gry, na przykład. Dla produktów dewelopera drugi parametr musi być Enum.InfoType.Product.
local MarketplaceService = game:GetService("MarketplaceService")
-- Zamień identyfikator zastępczy na swój identyfikator produktu dewelopera
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Wyświetl informacje o produkcie
-- Zamień instruować na kod UI, aby wyświetlić produkt
print("Nazwa produktu dewelopera: " .. productInfo.Name)
print("Cena w Robux: " .. productInfo.PriceInRobux)
print("Opis: " .. productInfo.Description)
end
Użyj GetDeveloperProductsAsync, aby pobrać wszystkie produkty dewelopera związane z twoją grą. Ta funkcja zwraca obiekt Pages, który możesz sprawdzić i filtrować, aby zbudować takie rzeczy, jak sklep w grze lub GUI listy produktów.
local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if success and developerProducts then
local firstPage = developerProducts:GetCurrentPage()
for _, developerProduct in firstPage do
-- Zamień instrukcję drukowania na kod UI, aby wyświetlić produkt
print(field .. ": " .. value)
end
end
Użyj PromptProductPurchase, aby zaprosić do zakupu produktów w twojej grze. Możesz wywołać tę funkcję, gdy użytkownik wykonuje działania, takie jak naciśnięcie przycisku lub rozmowa z NPC sprzedawcą.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Zamień identyfikator zastępczy na swój identyfikator produktu dewelopera
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("Zaproponowano zakup pomyślnie")
end
end
Możesz również łączyć funkcje wewnątrz LocalScript. Na przykład, możesz stworzyć element UI, taki jak przycisk lub NPC sprzedawca, a następnie użyć GetProductInfo(), aby połączyć istniejący produkt dewelopera z tym elementem, sprawdzić, czy produkt jest na sprzedaż, a następnie użyć PromptProductPurchase(), aby zaprosić do zakupu zawsze, gdy użytkownik na niego kliknie.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
-- Zamień identyfikator zastępczy na swój identyfikator produktu dewelopera
local productId = 000000
-- Pobiera informacje o produkcie, gdy użytkownik kliknie przycisk UI
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Sprawdza, czy produkt jest na sprzedaż
if productInfo.IsForSale then
print("To jest na sprzedaż")
-- Zaprasza do zakupu produktu
MarketplaceService:PromptProductPurchase(player, productId)
else
-- Informuje, że produkt nie jest na sprzedaż
print("Ten produkt nie jest obecnie na sprzedaż.")
end
else
print("Błąd podczas pobierania informacji o produkcie: " .. tostring(productInfo))
end
end)
Poza swoją grą
Aby umożliwić zakupy produktów dewelopera poza swoją grą, musisz współpracować z API ProcessReceipt. Po tym, jak użytkownik dokona zakupu w zakładce Sklep na stronie szczegółów twojej gry, musisz użyć ProcessReceipt, aby potwierdzić ich zakup i przyznać im ich przedmioty po ich powrocie do gry.
Tryb testowy
Funkcja trybu testowego pomaga weryfikować twój proces zakupu, symulując zakup produktu dewelopera poza grą. Powinieneś używać trybu testowego, aby upewnić się, że poprawnie zaimplementowałeś ProcessReceipt przed włączeniem sprzedaży produktów dewelopera na zewnątrz.
Produkty dewelopera, które wystawisz na sprzedaż w trybie testowym, mogą być widziane tylko przez ciebie i przez członków twojej grupy. Nie są widoczne dla użytkowników.
Aby przetestować swoją implementację:
- W Cetralnym Hubie Twórcy przejdź do Monetyzacja ⟩ Produkty dewelopera.
- Kliknij menu ⋮ i wybierz Ustawienia zakupu zewnętrznego.
- Na stronie Ustawienia zakupu zewnętrznego kliknij Włącz tryb testowy.
- Gdy tryb testowy jest aktywny, wróć do strony Produkty dewelopera i wybierz produkt do przetestowania.
- Na stronie Podstawowe ustawienia zaznacz pole wyboru Zezwól na zakupy zewnętrzne i zapisz zmiany.
- Przejdź do zakładki Sklep na stronie szczegółów gry i zakup produkt, który udostępniłeś do sprzedaży.
- Wejdź do gry i potwierdź, że otrzymałeś zakupiony produkt. Status rachunku API ProcessReceipt powinien zaktualizować się do Zamknięty.
Po przetestowaniu swojej implementacji, Roblox weryfikuje, że test został pomyślnie zakończony i umożliwia pełne aktywowanie funkcji sprzedaży produktów dewelopera poza twoimi grami.
Aby uzyskać więcej informacji o API ProcessReceipt i jego implementacji, zobacz stronę ProcessReceipt.
Włącz sprzedaż zewnętrzną
Aby włączyć sprzedaż zewnętrzną:
- Przejdź do strony Ustawienia zakupu zewnętrznego.
- Włącz Zakupy zewnętrzne.
- Wróć do strony Produkty dewelopera i wybierz produkty, które chcesz sprzedawać poza swoją grą.
- Na stronie Podstawowe ustawienia zaznacz pole wyboru Zezwól na zakupy zewnętrzne i zapisz zmiany.
- Potwierdź, że produkty są teraz dostępne do zakupu w zakładce Sklep na stronie szczegółów gry.
Aby wyłączyć sprzedaż zewnętrzną produktu dewelopera, wybierz produkt na stronie Produkty dewelopera i odznacz pole wyboru Zezwól na zakupy zewnętrzne.
Ograniczenia
- Przedmioty na sprzedaż w trybie testowym kosztują rzeczywiste Robux. Zalecamy testowanie produktów dewelopera o niskich kosztach.
- Przedmioty na sprzedaż w trybie testowym mogą być widziane tylko przez ciebie lub członków twojej grupy.
- Aby mogły być sprzedawane zewnętrznie, twoje produkty dewelopera muszą mieć miniaturę.
- Nie powinieneś sprzedawać poza swoją grą następujących przedmiotów:
- Płatnych losowych przedmiotów
- Przedmiotów ograniczonych do określonych ilości, czasu, miejsca lub ustawień i ról użytkowników
Obsłuż zakup produktu dewelopera
Po zakupie produktu dewelopera przez użytkownika musisz obsłużyć i zarejestrować transakcję. Aby to zrobić, użyj Script w ServerScriptService wykorzystując funkcję ProcessReceipt.
Aby uzyskać więcej informacji o API ProcessReceipt i jego implementacji, zobacz stronę ProcessReceipt.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- Przykład: identyfikator produktu 123123 przywraca użytkownika do pełnego zdrowia
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- Wskazuje na pomyślne dokonanie zakupu
return true
end
end
-- Przykład: identyfikator produktu 456456 przyznaje użytkownikowi 100 złotych monet
productFunctions[456456] = function(receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local gold = leaderstats and leaderstats:FindFirstChild("Gold")
if gold then
gold.Value += 100
return true
end
end
local function processReceipt(receiptInfo)
local userId = receiptInfo.PlayerId
local productId = receiptInfo.ProductId
local player = Players:GetPlayerByUserId(userId)
if player then
-- Pobiera powiązaną funkcję obsługi dla identyfikatora produktu dewelopera i stara się ją uruchomić
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- Użytkownik otrzymał swoje przedmioty
-- Zwraca "PurchaseGranted", aby potwierdzić transakcję
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Nie udało się przetworzyć rachunku:", receiptInfo, result)
end
end
-- Nie udało się przyznać przedmiotów użytkownikowi
-- Zwraca "NotProcessedYet" i próbuje ponownie przy następnym dołączeniu użytkownika do gry
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Ustala callback
-- To może być zrobione tylko raz przez jeden skrypt po stronie serwera
MarketplaceService.ProcessReceipt = processReceipt
Spersonalizuj swój sklep w grze
Możesz użyć API inteligencji produktów do sortowania i rekomendowania produktów dewelopera użytkownikom. Personalizacja twojego sklepu w grze pomaga wydobyć najbardziej odpowiednie przedmioty dla każdego użytkownika, zwiększając zaangażowanie i przychody. Dostosowując produkty dewelopera do preferencji użytkowników, możesz poprawić ich odkrywalność, zwiększyć wskaźniki konwersji i odblokować nowe możliwości monetyzacji.
Rangi produktów dewelopera na sprzedaż
RankProductsAsync przyjmuje listę identyfikatorów produktów i zwraca spersonalizowaną uporządkowaną listę tych produktów. Możesz użyć tej metody, aby dostarczyć użytkownikom spersonalizowane rekomendacje produktów w swoim sklepie w grze.

local MarketplaceService = game:GetService("MarketplaceService")
-- Stwórz tablicę produktów, które chcesz uszeregować
local productIdentifiers = {
{InfoType = Enum.InfoType.GamePass, Id = 123},
{InfoType = Enum.InfoType.Product, Id = 456},
{InfoType = Enum.InfoType.Product, Id = 789}
}
-- Wykonaj zabezpieczone wywołanie, aby obsłużyć błędy
local success, rankedProducts = pcall(function()
return MarketplaceService:RankProductsAsync(productIdentifiers)
end)
if not success then
error("Nie udało się uszeregować produktów")
end
-- Załaduj zwrócone przedmioty do sklepu
for i, rankedItem in ipairs(rankedProducts) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- Logika dodawania produktów do sklepu
end
Wyświetl swoje najlepsze produkty dewelopera
RecommendTopProductsAsync przyjmuje tablicę wartości InfoType i zwraca do 50 przedmiotów, z którymi użytkownik najprawdopodobniej będzie chciał się zaangażować i zakupić. Możesz użyć tej metody do stworzenia sekcji "Najlepsze wybory" w swoim sklepie w grze.
Jeśli nie można ustalić żadnych rekomendacji, RecommendTopProductsAsync zwróci 0 przedmiotów.
W rzadkich przypadkach wywołania modelu rankingowego mogą być wolne. Aby pomóc wyeliminować opóźnienia dla użytkowników, zalecamy użycie task.spawn, aby wywołanie RecommendTopProducts było bez blokady.

local MarketplaceService = game:GetService("MarketplaceService")
-- Stwórz tablicę typów produktów, które chcesz uwzględnić w rekomendacjach -- Ten przykład obejmuje zarówno przepustki, jak i produkty dewelopera
local productTypes = {Enum.InfoType.GamePass, Enum.InfoType.Product}
-- Wykonaj zabezpieczone wywołanie, aby obsłużyć błędy
local success, topRankedItems = pcall(function()
return MarketplaceService:RecommendTopProductsAsync(productTypes)
end)
if not success then
error("Nie udało się uszeregować produktów")
end
-- Załaduj zwrócone przedmioty do sklepu
-- Upewnij się, że filtrujesz wszelkie niekwalifikujące się przedmioty z topRankedItems, takie jak produkty dewelopera, które użytkownik już nie może kupić
for i, rankedItem in ipairs(topRankedItems) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- Logika dodawania produktów do sklepu
end
Analiza produktów dewelopera
Użyj analizy produktów dewelopera, aby analizować sukces poszczególnych produktów, identyfikować trendy i prognozować potencjalne przyszłe przychody.
Dzięki analizie możesz:
- Przeglądać swoje najlepsze produkty dewelopera w wybranym okresie.
- Pokazać do ośmiu najlepiej sprzedających się przedmiotów na wykresie czasowym, aby analizować całkowitą sprzedaż i netto przychody.
- Monitorować swój katalog i sortować przedmioty według sprzedaży oraz netto przychodów.
Aby uzyskać dostęp do analizy produktów dewelopera:
- Przejdź do Kreacji i wybierz grę.
- Przejdź do Monetyzacja ⟩ Produkty dewelopera.
- Wybierz zakładkę Analiza.
