ผลิตภัณฑ์นักพัฒนา

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ผลิตภัณฑ์นักพัฒนา (developer product) เป็นไอเทมหรือความสามารถที่ผู้ใช้สามารถซื้อได้มากกว่าหนึ่งครั้ง เช่น สกุลเงินในเกม กระสุน หรือยารักษา

สร้างผลิตภัณฑ์นักพัฒนา

ในการสร้างผลิตภัณฑ์นักพัฒนา:

  1. ไปที่ Creations และเลือกเกม
  2. ไปที่ MonetizationDeveloper Products
  3. คลิก Create developer product
  4. อัปโหลดรูปภาพเพื่อใช้เป็นไอคอนของผลิตภัณฑ์ ตรวจสอบให้แน่ใจว่ารูปภาพไม่เกิน 512x512 พิกเซล ไม่มีรายละเอียดสำคัญนอกเขตวงกลมของภาพ และอยู่ในรูปแบบ .jpg, .png หรือ .bmp
  5. ป้อนชื่อและคำอธิบายสำหรับผลิตภัณฑ์
  6. เลือกหมวดหมู่สำหรับผลิตภัณฑ์ หมวดหมู่จะใช้ในการจัดระเบียบไอเท็มในร้านค้าในเกมของคุณ
  7. ตั้งราคาให้กับผลิตภัณฑ์ใน Robux ราคาขั้นต่ำคือ 1 Robux และราคาสูงสุดคือ 1 พันล้าน Robux
  8. คลิก Save Changes

รับ ID ของผลิตภัณฑ์นักพัฒนา

ในการใช้สคริปต์ คุณต้องมี ID ของผลิตภัณฑ์นักพัฒนา เพื่อรับ ID ของผลิตภัณฑ์:

  1. ไปที่ MonetizationDeveloper Products

  2. โฮเวอร์ไปที่รูปขนาดย่อของผลิตภัณฑ์ คลิกที่ปุ่ม และเลือก Copy Asset ID จากเมนูบริบท

ขายผลิตภัณฑ์นักพัฒนา

ก่อนที่จะขายผลิตภัณฑ์นักพัฒนา ให้แน่ใจว่าคุณกำลังประมวลผลใบเสร็จการขายอย่างถูกต้องและมอบผลิตภัณฑ์ที่ผู้ใช้ซื้อให้แก่พวกเขา สำหรับการทำเช่นนี้ คุณต้อง:

  • ใช้ API ProcessReceipt เพื่อตรวจสอบใบเสร็จการซื้อ ProcessReceipt จะอ่านและยืนยันโดยอัตโนมัติว่าผู้ใช้ได้ซื้อผลิตภัณฑ์นอกเกม
  • ตรวจสอบใบเสร็จแต่ละใบสำหรับ User ID, Developer Product ID, และสถานะของใบเสร็จ
  • หากใบเสร็จมีสถานะ Open ให้มอบไอเท็มนักพัฒนาที่ผู้ใช้ซื้อให้แก่พวกเขา
  • ตอบกลับ API ProcessReceipt ด้วยข้อความที่ยืนยันใบเสร็จและตรวจสอบว่ามีการมอบไอเท็มที่ซื้อแล้ว

คุณสามารถขายผลิตภัณฑ์นักพัฒนาได้สองวิธี:

ภายในเกมของคุณ

ในการใช้งานและขายผลิตภัณฑ์นักพัฒนาภายในเกม ให้เรียกใช้ฟังก์ชันของ MarketplaceService

ใช้ GetProductInfo เพื่อดึงข้อมูลเกี่ยวกับผลิตภัณฑ์นักพัฒนา เช่น ชื่อและราคา จากนั้นจะแสดงผลิตภัณฑ์นั้นให้ผู้ใช้ สำหรับผลิตภัณฑ์นักพัฒนา พารามิเตอร์ที่สองต้องเป็น Enum.InfoType.Product


local MarketplaceService = game:GetService("MarketplaceService")
-- แทนที่ ID ตัวอย่างด้วย ID ของผลิตภัณฑ์นักพัฒนาของคุณ
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- แสดงข้อมูลผลิตภัณฑ์
-- แทนที่คำสั่ง print ด้วยโค้ด UI เพื่อนำเสนอผลิตภัณฑ์
print("ชื่อผลิตภัณฑ์นักพัฒนา: " .. productInfo.Name)
print("ราคาใน Robux: " .. productInfo.PriceInRobux)
print("คำอธิบาย: " .. productInfo.Description)
end

ใช้ GetDeveloperProductsAsync เพื่อดึงผลิตภัณฑ์นักพัฒนาทั้งหมดที่เชื่อมโยงกับเกมของคุณ ฟังก์ชันนี้จะส่งคืนวัตถุ Pages ที่คุณสามารถตรวจสอบและกรองเพื่อสร้างสิ่งต่าง ๆ เช่น ร้านค้าในเกมหรือหน้ารายการผลิตภัณฑ์ GUI


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
-- แทนที่คำสั่ง print ด้วยโค้ด UI เพื่อนำเสนอผลิตภัณฑ์
print(field .. ": " .. value)
end
end

ใช้ PromptProductPurchase เพื่อกระตุ้นการซื้อผลิตภัณฑ์ภายในเกมของคุณ คุณสามารถเรียกฟังก์ชันนี้เมื่อผู้ใช้ทำการกระทำเช่นการกดปุ่มหรือติดต่อกับ NPC ผู้ขาย


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- แทนที่ ID ตัวอย่างด้วย ID ของผลิตภัณฑ์นักพัฒนาของคุณ
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("แสดงการซื้อสำเร็จแล้ว")
end
end

คุณยังสามารถรวมฟังก์ชันต่าง ๆ ภายใน LocalScript ตัวอย่างเช่น คุณสามารถสร้างองค์ประกอบ UI เช่น ปุ่มหรือนักขาย NPC จากนั้นใช้ GetProductInfo() เพื่อเชื่อมโยงผลิตภัณฑ์นักพัฒนาที่มีอยู่กับองค์ประกอบนั้น ตรวจสอบว่าผลิตภัณฑ์นั้นมีขาย และใช้ PromptProductPurchase() เพื่อกระตุ้นการซื้อเมื่อผู้ใช้คลิกที่มัน


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
-- แทนที่ ID ตัวอย่างด้วย ID ของผลิตภัณฑ์นักพัฒนาของคุณ
local productId = 000000
-- ดึงข้อมูลผลิตภัณฑ์เมื่อผู้ใช้คลิกปุ่ม UI
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- ตรวจสอบว่าผลิตภัณฑ์มีขาย
if productInfo.IsForSale then
print("สินค้านี้มีขาย")
-- กระตุ้นการซื้อผลิตภัณฑ์
MarketplaceService:PromptProductPurchase(player, productId)
else
-- แจ้งให้ทราบว่าสินค้าไม่มีขาย
print("ผลิตภัณฑ์นี้ไม่มีขายในขณะนี้.")
end
else
print("ข้อผิดพลาดในการดึงข้อมูลผลิตภัณฑ์: " .. tostring(productInfo))
end
end)

นอกเกมของคุณ

เพื่อเปิดใช้งานการซื้อผลิตภัณฑ์นักพัฒนานอกเกมของคุณ คุณต้องทำงานกับ API ProcessReceipt หลังจากผู้ใช้ทำการซื้อในแท็บ Store ของหน้ารายละเอียดเกมของคุณ คุณต้องใช้ ProcessReceipt เพื่อยืนยันการซื้อของพวกเขาและมอบไอเท็มให้แก่พวกเขาเมื่อพวกเขาเข้าเกมของคุณ

โหมดทดสอบ

ฟีเจอร์ โหมดทดสอบ ช่วยให้คุณตรวจสอบกระบวนการซื้อของคุณโดยการจำลองการซื้อผลิตภัณฑ์นักพัฒนานอกเกม คุณควรใช้โหมดทดสอบเพื่อให้แน่ใจว่าคุณได้ดำเนินการ ProcessReceipt อย่างถูกต้องก่อนที่จะเปิดใช้งานการขายผลิตภัณฑ์นักพัฒนาภายนอก

ผลิตภัณฑ์นักพัฒนาที่คุณวางขายในโหมดทดสอบจะสามารถมองเห็นได้เฉพาะคุณและสมาชิกในกลุ่มของคุณ เท่านั้น ไม่เห็นต่อผู้ใช้อื่น

ในการทดสอบการดำเนินการของคุณ:

  1. ใน Creator Hub ไปที่ MonetizationDeveloper Products
  2. คลิกที่เมนู และเลือก External Purchase Settings
  3. ในหน้าตั้งค่า External Purchase Settings คลิก Enable test mode
  4. เมื่อโหมดทดสอบเปิดใช้งาน กลับไปที่หน้าผลิตภัณฑ์นักพัฒนาและเลือกผลิตภัณฑ์ที่ต้องการทดสอบ
  5. ในหน้าตั้งค่าเบื้องต้น เลือกช่องทำเครื่องหมาย Allow external purchases และบันทึกการเปลี่ยนแปลงของคุณ
  6. ไปที่แท็บ Store ของหน้ารายละเอียดเกมและซื้อผลิตภัณฑ์ที่คุณทำให้มีจำหน่าย
  7. เข้าสู่เกมและยืนยันว่าคุณได้รับผลิตภัณฑ์ที่คุณซื้อ สถานะใบเสร็จของ API ProcessReceipt ควรอัปเดตเป็น Closed

หลังจากที่คุณทดสอบการดำเนินการของคุณแล้ว Roblox จะตรวจสอบว่าการทดสอบเสร็จสมบูรณ์สำเร็จและอนุญาตให้คุณเปิดใช้งานฟีเจอร์สำหรับขายผลิตภัณฑ์นักพัฒนาภายนอกเกมได้อย่างเต็มที่

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ API ProcessReceipt และวิธีการใช้งาน โปรดดูที่หน้า ProcessReceipt

เปิดใช้งานการขายภายนอก

ในการเปิดใช้งานการขายภายนอก:

  1. ไปที่หน้าการตั้งค่า External Purchase Settings
  2. เปิดใช้งาน External Purchases
  3. กลับไปที่หน้าผลิตภัณฑ์นักพัฒนาและเลือกผลิตภัณฑ์ที่คุณต้องการขายนอกเกม
  4. ในหน้าการตั้งค่าเบื้องต้นเลือกช่องทำเครื่องหมาย Allow external purchases และบันทึกการเปลี่ยนแปลง
  5. ยืนยันว่าผลิตภัณฑ์เหล่านี้มีให้ซื้อในแท็บ Store ของหน้ารายละเอียดเกม

ในการปิดการขายภายนอกผลิตภัณฑ์นักพัฒนา ให้เลือกผลิตภัณฑ์ในหน้าผลิตภัณฑ์นักพัฒนาและลบช่องทำเครื่องหมาย Allow external purchases

ข้อจำกัด

  • ไอเท็มที่ขายในโหมดทดสอบมีค่าใช้จ่ายจริงใน Robux เราขอแนะนำให้ทดสอบผลิตภัณฑ์นักพัฒนาที่มีราคาไม่แพง
  • ไอเท็มที่ขายในโหมดทดสอบสามารถมองเห็นได้เฉพาะคุณหรือสมาชิกในกลุ่มของคุณ
  • เพื่อจะขายภายนอก ผลิตภัณฑ์นักพัฒนาของคุณ ต้อง มีภาพ thumbnail
  • คุณไม่ควรขายสิ่งต่อไปนี้นอกเกมของคุณ:
    • ไอเท็มแบบสุ่มที่ต้องชำระเงิน
    • ไอเท็มที่จำกัดเฉพาะจำนวน เวลา สถานที่ หรือการตั้งค่าและบทบาทของผู้ใช้เฉพาะ

จัดการการซื้อผลิตภัณฑ์นักพัฒนา

หลังจากผู้ใช้ซื้อผลิตภัณฑ์นักพัฒนา คุณต้องจัดการและบันทึกการทำธุรกรรม สำหรับการทำเช่นนี้ ใช้ Script ภายใน ServerScriptService โดยใช้ฟังก์ชัน ProcessReceipt

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ API ProcessReceipt และวิธีการใช้งาน คุณสามารถดูที่หน้า ProcessReceipt


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- ตัวอย่าง: รหัสผลิตภัณฑ์ 123123 คืนสุขภาพให้ผู้ใช้เต็มที่
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- ระบุว่าการซื้อสำเร็จ
return true
end
end
-- ตัวอย่าง: รหัสผลิตภัณฑ์ 456456 มอบเหรียญทอง 100 ให้แก่ผู้ใช้
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
-- ดึงฟังก์ชันจัดการที่เกี่ยวข้องกับ ID ผลิตภัณฑ์นักพัฒนาและลองเรียกใช้มัน
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- ผู้ใช้ได้รับไอเท็มของพวกเขา
-- ส่งคืน "PurchaseGranted" เพื่อยืนยันการทำธุรกรรม
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("ไม่สามารถประมวลผลใบเสร็จ:", receiptInfo, result)
end
end
-- ไม่สามารถมอบสิ่งของให้แก่ผู้ใช้ได้
-- ส่งคืน "NotProcessedYet" และลองอีกครั้งเมื่อผู้ใช้เข้าร่วมเกมในครั้งถัดไป
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- ตั้งค่าการเรียกกลับ
-- นี้สามารถทำได้เพียงครั้งเดียวโดยสคริปต์ฝั่งเซิร์ฟเวอร์อันเดียว
MarketplaceService.ProcessReceipt = processReceipt

ปรับแต่งร้านค้าในเกมของคุณ

คุณสามารถใช้ API การประชุมผลิตภัณฑ์เพื่อจัดเรียงและแนะนำผลิตภัณฑ์นักพัฒนาที่เหมาะสมกับผู้ใช้ การปรับแต่งร้านค้าในเกมของคุณช่วยให้สามารถแสดงไอเท็มที่เหมาะสมที่สุดต่อผู้ใช้แต่ละคน ทำให้เกิดการมีส่วนร่วมและรายได้มากขึ้น โดยการปรับผลิตภัณฑ์นักพัฒนาตามความชอบของผู้ใช้ คุณสามารถปรับปรุงการค้นพบ เพิ่มอัตราการแปลง และปลดล็อกโอกาสในการสร้างรายได้ใหม่

จัดอันดับผลิตภัณฑ์นักพัฒนาสำหรับการขาย

RankProductsAsync จะต้องมีรายชื่อ ID ผลิตภัณฑ์และส่งกลับรายชื่อผลิตภัณฑ์ในลำดับที่ปรับแต่งเฉพาะ คุณสามารถใช้วิธีนี้เพื่อนำเสนอคำแนะนำรายการที่ปรับแต่งให้กับผู้ใช้ในร้านค้าในเกมของคุณ

ตัวอย่าง: สินค้า "Powers" สามรายการที่จัดอันดับสำหรับผู้ใช้
รายการสามรายการจัดอันดับสำหรับผู้ใช้.

local MarketplaceService = game:GetService("MarketplaceService")
-- สร้างอาร์เรย์ของผลิตภัณฑ์ที่คุณต้องการจัดอันดับ
local productIdentifiers = {
{InfoType = Enum.InfoType.GamePass, Id = 123},
{InfoType = Enum.InfoType.Product, Id = 456},
{InfoType = Enum.InfoType.Product, Id = 789}
}
-- ทำการเรียกที่ได้รับการคุ้มครองเพื่อจัดการข้อผิดพลาด
local success, rankedProducts = pcall(function()
return MarketplaceService:RankProductsAsync(productIdentifiers)
end)
if not success then
error("ไม่สามารถจัดอันดับผลิตภัณฑ์ได้")
end
-- โหลดรายการที่ส่งคืนไปยังร้านค้า
for i, rankedItem in ipairs(rankedProducts) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- Logic เพื่อเพิ่มผลิตภัณฑ์เข้าร้านค้า
end

แสดงผลิตภัณฑ์นักพัฒนาชั้นนำของคุณ

RecommendTopProductsAsync จะต้องมีอาร์เรย์ของค่า InfoType และจะส่งคืนไอเท็มสูงสุด 50 รายการที่ผู้ใช้มีแนวโน้มที่จะแสดงความสนใจและทำการซื้อ คุณสามารถใช้วิธีนี้เพื่อสร้างส่วน "Top Picks" ในร้านค้าในเกมของคุณ

หากไม่สามารถระบุคำแนะนำได้ RecommendTopProductsAsync จะส่งคืน 0 ไอเท็ม

ในกรณีที่หายาก การเรียกไปยังโมเดลการจัดอันดับอาจช้า เพื่อช่วยป้องกันไม่ให้ผู้ใช้เกิดความยุ่งเหยิง เราแนะนำให้ใช้ task.spawn เพื่อทำให้การเรียกไปยัง RecommendTopProducts ไม่บล็อก

ตัวอย่าง: แท็บ "Top Picks" ในร้านค้าในเกม
แท็บ Top Picks ของร้านค้าในเกม.

local MarketplaceService = game:GetService("MarketplaceService")
-- สร้างอาร์เรย์ของประเภทผลิตภัณฑ์ที่คุณต้องการรวมในคำแนะนำ -- ตัวอย่างนี้รวมถึงทั้ง passes และผลิตภัณฑ์นักพัฒนา
local productTypes = {Enum.InfoType.GamePass, Enum.InfoType.Product}
-- ทำการเรียกที่ได้รับการคุ้มครองเพื่อจัดการข้อผิดพลาด
local success, topRankedItems = pcall(function()
return MarketplaceService:RecommendTopProductsAsync(productTypes)
end)
if not success then
error("ไม่สามารถจัดอันดับผลิตภัณฑ์ได้")
end
-- โหลดรายการที่ส่งคืนไปยังร้านค้า
-- ตรวจสอบให้แน่ใจว่าจะกรองผลิตภัณฑ์ที่ไม่มีสิทธิ์จาก topRankedItems เช่นผลิตภัณฑ์นักพัฒนาที่ผู้ใช้ไม่สามารถซื้อได้อีกต่อไป
for i, rankedItem in ipairs(topRankedItems) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- Logic เพื่อเพิ่มผลิตภัณฑ์เข้าร้านค้า
end

การวิเคราะห์ผลิตภัณฑ์นักพัฒนา

ใช้การวิเคราะห์ผลิตภัณฑ์นักพัฒนาเพื่อตรวจสอบความสำเร็จของผลิตภัณฑ์แต่ละรายการ ระบุแนวโน้ม และคาดการณ์รายได้ในอนาคตที่เป็นไปได้

ด้วยการวิเคราะห์ คุณสามารถ:

  • ดูผลิตภัณฑ์นักพัฒนาชั้นนำของคุณในช่วงเวลาที่เลือก
  • แสดงรายการที่ขายดีที่สุดสูงสุด 8 รายการในกราฟการแสดงผลเพื่อวิเคราะห์ยอดขายรวมและรายได้สุทธิ
  • ติดตามคลังสินค้าและจัดเรียงไอเท็มตามยอดขายและรายได้สุทธิ

ในการเข้าถึงการวิเคราะห์ผลิตภัณฑ์นักพัฒนา:

  1. ไปที่ Creations และเลือกเกม
  2. ไปที่ MonetizationDeveloper Products
  3. เลือกแท็บ Analytics
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ