Data Enums
Offer Types (enum)
- MONEY_OFF
- FREE_PRODUCT
- BUY_X_GET_X
- BUY_X_GET_Y_FREE
- BUY_X_GET_Y_MONEY_OFF
Offer Targeting (enum)
- TARGETED (default for TDC type)
- GCP (“general coupon pool”)
- NONTARGETED
Definitions
- “Redemption” - products that are the target for reward (discount, free, “X” of “Buy X Get X”, or the “Y” in “Buy X Get Y”)
- “Purchase” - products that are required to unlock the redemption reward (“X” in “Buy X Get Y”)
Contracts:
“Money Off” Offers
{ id:<uuid>, status: String, offerType: String, ("MONEY_OFF") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, rbpGroupIds: List<String>, redemptionDiscountValue: Float, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionLowestRetailSellingPrice: Float, redemptionExclusions: String<optional>, purchaseItemQuantity: Int, displayStartDate: String, displayEndDate: String, expirationDate: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, productAttributes: List<String>, stateExclusions: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }
“Free Product” Offers
{ id:<uuid>, status: String, offerType: String, ("FREE_PRODUCT") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, rbpGroupIds: List<String>, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionItemQuantity: Int, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }
“Buy X Get X” Offers
{ id:<uuid>, status: String, offerType: String, ("BUY_X_GET_X") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, purchaseBrandNames: List<String>, purchaseProductNames: String, purchaseItemDescription: String<optional>, purchaseItemQuantity: Int, purchaseLowestRetailSellingPrice: Float, rbpGroupIds: List<String>, redemptionItemQuantity: Int, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }
“Buy X Get Y Free” Offers
{ id:<uuid>, status: String, offerType: String, ("BUY_X_GET_Y_FREE") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, purchaseBrandNames: List<String>, purchaseProductNames: String, purchaseItemDescription: String<optional>, purchaseItemQuantity: Int, purchaseLowestRetailSellingPrice: Float, purchaseExclusions: String<optional>, rbpGroupIds: List<String>, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionItemQuantity: Int, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, purchaseProductGroupId: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }
“Buy X Get Y Money Off” Offers
{ id:<uuid>, status: String, offerType: String, ("BUY_X_GET_Y_MONEY_OFF") targeting: String ("TARGETED", "NONTARGETED", "GATED"), createdBy: <userId/email>, createdOn: <autogenerate>, clipId: String <provided by Inmar>, barcodeId: String <provided by Inmar>, name: String, purchaseBrandNames: List<String>, purchaseProductNames: String, purchaseItemDescription: String<optional>, purchaseItemQuantity: Int, purchaseLowestRetailSellingPrice: Float, purchaseExclusions: String<optional>, rbpGroupIds: List<String>, redemptionBrandNames: List<String>, redemptionProductNames: String, redemptionItemDescription: String<optional>, redemptionItemQuantity: Int, redemptionLowestRetailSellingPrice: Float, redemptionDiscountValue: Float, redemptionExclusions: String<optional>, displayStartDate: String, displayEndDate: String, expirationDate: String, purchaseProductGroupId: String, redemptionProductGroupId: String, locationGroupId: String, longDescription: String, modality: String, stateExclusions: List<String>, productAttributes: List<String>, couponDescription: String, eCpn: String, couponPackshot: <packshot image (jpg, pdf, etc.), }
DB Schema
_id: UUID _class: String couponDescription: String couponPackshot: String couponPackshotUrl: String createdBy: String createdOn: ISODate deleted: Boolean displayEndDate: String displayStartDate: String eCpn: String expirationDate: String externalDetails: { clipId: String barcode: String inmarPublishingId: String } locationGroupId: String longDescription: String modality: String name: String offerType: String purchaseBrandNames: Array purchaseProductNames: String purchaseExclusions: String purchaseItemDescription: String purchaseItemQuantity: Int32 purchaseLowestRetailSellingPrice: String purchaseProductGroupId: String rbpGroupIds: Array redemptionBrandNames: Array redemptionProductName: String redemptionDiscountValue: String redemptionExclusions: String redemptionItemDescription: String redemptionItemQuantity: Int32 redemptionLowestRetailSellingPrice: String redemptionProductGroupId: String redemptionPurchaseQuantity: Int32 stateExclusions: Array status: String targeting: String