Orders and Fulfillment Reference #

Order Provider Plugins #

ProviderPragma Engine Plugin
Steampragma.order.SteamOrderProviderPlugin
Epicpragma.order.EpicOrderProviderPlugin
Twitchpragma.order.TwitchOrderProviderPlugin

For providers not listed see Custom Order Provider Plugin.

Order mapping specs #

The following section includes example Order mapping specs for supported providers.

The source types are defined in orderContent.proto. For more details go to src/main/proto/pragma/order/orderContent.proto.

Steam #

[
  {
    "skuId": "Steam Ownership Sku Id",
    "sources": [
      {
        "provider": "STEAM",
        "steamSource": {
          "ownership": {
            "appId": "{steamAppId}"
          }
        }
      }
    ]
  },
  {
    "skuId": "Steam Inventory Sku Id",
    "sources": [
      {
        "provider": "STEAM",
        "steamSource": {
          "inventory": {
            "itemDefId": "{steamItemDefId}"
          }
        }
      }
    ]
  }
]

Epic #

[
  {
    "skuId": "Epic Ownership Sku Id",
    "sources": [
      {
        "provider": "EPIC",
        "epicSource": {
          "ownership": {
            "audienceItemId": "{epicAudienceId}"
          }
        }
      }
    ]
  },
  {
    "skuId": "Epic Inventory Sku Id",
    "sources": [
      {
        "provider": "EPIC",
        "epicSource": {
          "entitlement": {
            "audienceItemId": "{epicAudienceItemId}"
          }
        }
      }
    ]
  }
]

Twitch #

[
  {
    "skuId": "Twitch Drop Sku Id",
    "sources": [
      {
        "provider": "TWITCH",
        "twitchSource": {
          "rewardId": "{twitchRewardId}"
        }
      }
    ]
  }
]

Error types #

error typedescription
OrderProviderUnexpectedResponseApplicationErrorPragma can’t communicate with the third party provider. This error type contains information on the provider type (Steam, Epic) and the error message received from the third party provider (500 internal service error).
OrderService_OrderProviderPluginMissingThere is no configured Order Provider Plugin.
OrderService_OrderStatusUpdateFailedThe order status failed to be updated.
OrderService_ProviderDetailsUpdateFailedFailed to update provider details.
OrderService_OrderNotFoundNo orders were found.
OrderService_InternalErrorOrder service encountered an issue while processing the request.
FulfillmentService_ContentValidationErrorInvalid content fulfillment mapping specs.
FulfillmentService_UnexpectedOrderStatusThe order to fulfill has an unexpected order status.

Data classes #

Orders #

propertydescription
orderIdUnique identifier for the order.
pragmaSocialIdUnique social identifier for the player (game agnostic).
skuIdUnique identifier that Pragma uses to track an item from a third party provider.

Ex: SmallGoldBundle
quantityAmount of the item in the order.
providerIdEnum to associate which provider the order came from.
providerSourceObject containing information about the item from the third party.
orderStatusThe following are the possible statuses: PENDING, RECEIVED, and REVOKED.
purchaseDateMillisDate the item was purchased in milliseconds.
createdTimestampMillisDate this order record was created in milliseconds.
lastUpdatedTimestampMillisLast updated timestamp the order was altered in milliseconds.
contentVersionVersion of the OrderMappingsSpecs.json file used when processing the order.

Fulfillments #

propertydescription
fulfillmentIdUnique identifier for the fulfillment.
orderIdUnique identifier for the order.
pragmaPlayerIdUnique identifier for the player for a particular game.
skuIdUnique identifier that Pragma uses to track an item from a third party provider.

Ex: SmallGoldBundle
quantityAmount of the item in the order.
providerIdEnum to associate which provider the order came from.
statusThe following are the possible statuses: FULFILLED, FULFILLMENT_FAILED, REVOKED, and REVOKED_FAILED.
createdTimestampMillisDate this fulfillment was created in milliseconds.
lastUpdatedTimestampMillisLast updated timestamp the fulfillment was altered in milliseconds.
contentVersionVersion of the FulfillmentMappingSpecs.json file used when processing the fulfillment.