MarketplaceService:GetProductInfo returns a table of information about the item with the given ID. One of the keys of this table is "AssetTypeId", which is assigned to a number that identifies the asset type of the item. The number given follows this article on asset types:
local marketplaceService = game:GetService("MarketplaceService")
local accessoryTypes = {
[8] = "HatAccessory",
[41] = "HairAccessory",
[42] = "FaceAccessory",
[43] = "NeckAccessory",
[44] = "ShouldersAccessory",
[45] = "FrontAccessory",
[46] = "BackAccessory",
[47] = "WaistAccessory",
}
local accessoryId = 106690045
local info = marketplaceService:GetProductInfo(106690045)
local accessoryType = accessoryTypes[info.AssetTypeId]
local desc = humanoid:GetAppliedDescription()
desc[accessoryType] = accessoryId
humanoid:ApplyDescription(desc)
Ah, I was looking at the article rather than the API reference page. Still, the Enum’s “ShoulderAccessory” differs from HumanoidDescription’s “ShouldersAccessory” (which it shouldn’t). Other than that, I believe this should work.