Skip to main content

Integrated Cart with GCM Card Issuer


The Integrated Cart with GCM Card Issuer integration leverages the existing cart/checkout process on your own site or platform, while using Gift Card Market's Card Issuance providers and process. This option supports a mixed basket where users can purchase a local gift card plus whatever else your existing platform sells in a single transaction.


This integration type will use a series of extensible Custom Components that you integrate into your existing storefront.

Search & Select Component will prompt the user with a search bar, and will generate search results with "add to cart" functionality. . Provisioning Custom Component will handle all card provisioning tasks, and will respond with an object containing the results of the provisioning operation.

Redemption Custom Component will initiate a One-Time Password (OTP) validation process. Upon successful completion, it will display a widget containing all the necessary details for gift card redemption.


Search & Select component

The Search & Select component will internally host the entire Giftcard Market Search experience.

The user will be presented with a search bar, search results with "Purchase Gift Card" buttons, and ultimately Add To Cart functionality.

The <gcm-search> component takes as props:

<gcm-search apikey={} css-overrides={}

apikey is the API Key provided to you by Giftcard Market to authenticate API calls css-overrides is an optional property that allows you to pass values to override the default styles for the component

User Experience

  • The component will present the user with a search bar

  • Search results will be presented to the user

  • Clicking Purchase Gift Card will present the user with purchase and delivery choices

Purchase card cart event

The search component will emit the following event upon the user clicking Add to Cart or Buy Now:

gcm-cart-event

How the cart event works

The event will include the following object as payload:

gcm-cart-event
{
"event_name": < addtocart | buynow >,
"business_id": string,
"business_name": string,
"amount": number,
"delivery_method": < email | sms | print >,
"recipient_name": string,
"recipient_delivery_target": string,
"sender_name": string,
"message": string,
"delivery_date": datetime,
}

Your existing web application is reponsible for registering a listener for this event, and responding to it appropriately.

Example event listener

window.addEventListener('gcm-cart-event', function () {
alert('Item Added to Cart');
// You handle the event, putting the data into your cart
...
});

If the user chooses to have the card delivered on a future date, you can choose to either:

  • Provision the card now, store the results of the provisioning request, and deliver to the recipient on the selected date
  • Delay provisioning, and only create a card with the Provisioning API on the date of delivery

Provisioning component

After the cart processes and confirms payment, the Provisioning Component is utilized to orchestrate the card creation with the Gift Card Market's card provisioning infrastructure.

Props for component

The <gcm-provisioning> component accepts the following props:

<gcm-provisioning transaction-details="{}" apikey="{}" isMobile="{}" />

Transaction details

transaction-details - A JSON object containing all pertinent details of the giftcard purchase transaction.

{
"transaction_id": "string",
"store_id": "string",
"gift_cards": [
{
"gift_card_id": "string",
"card_program": < restaurant | salon_and_spa | choose_your_own >,
"redemption_method": < email | sms | print >,
"recipient_name": "string",
"recipient_email": "string",
"recipient_phone_number": "string", // In E.164 Format
"sender_name": "string",
"sender_email": "string",
"custom_message": "string",
"currency": < usd >,
"value": 0, //In pennies
"search_provider": < yelp | google >,
"business_id": "string",
"business_name": "string"
}
]
}

apikey - The API Key provided to you by Giftcard Market to authenticate API calls

isMobile - If your user has selected SMS as the delivery method for a card, and is using a mobile device to make the purchase, set the isMobile property to true.

Response

The component will emit the following event upon completion:

provisioning-response

The event will include the following object as payload:

provisioning-response
{
"transaction_id": "string",
"store_id": "string",
"gift_cards": [
{
"gift_card_id": "string",
"provisioned_card_id": "string",
"url": "string"
}
]
}

Your existing web application is reponsible for registering a listener for this event, and responding to it appropriately.

example event listener
window.addEventListener('provisioning-response', function () {
document.getElementById('demo').innerHTML = 'Provisioning Has Finished';
/// Record the returned data into your database
});

If isMobile is set to true, the component will display an HTML button which opens the native messaging application on the user device, allowing the purchaser to send the recipient a text message directly from their device.


Redemption Component

The Redemption Component allows you to host your own Giftcard Redemption solution. The URL delivered to the recipient should point to your custom application domain.

Example

https://giftcard.mystore.com/redemption/{card-id}

Props for component

The <gcm-redemption> custom component takes as props:

<gcm-redemption provisionedCardId="{}" apikey="{}" />

provisionedCardId - the card identifier that is passed in the link from the recipient

apiKey - The API Key provided to you by Giftcard Market to authenticate API calls

Response

The Redemption Custom Component will then:

  • Prompt the user to initiate the One Time Password process

  • Prompt the user to complete the One Time Password and submit

  • If OTP validation is successful, the Redemption Component will then render the giftcard widget on the users browser.

Integrating GCM card issuer

This implementation option will leverage Gift Card Markets existing card issuer. We will handle everything from issuing the card, card redemption, and all the way through completing the settlement process.


Managing customer communication

The redemption and provisioning components default setting will manage communication to the customer for all items related to redeeming a gift card and sending multifactor authentication codes.

If you do not want to have any communications go to customers outside of your dedicated communications channels, then a custom, enterprise implementation is required. Contact us for more information.

The following communication channels are included:

  • Gift card redemption email or text sent to a recipient
    • The email or sms will be delivered by GCM to the card recipient.
  • Multifactor authentication for accessing cards
    • GCM will send an SMS or Email authentication code to the recipient's phone or email for every time they try to access a gift card.

Note - The Gift Card Market will not send the redemption SMS in scenarios where purchasing users send the code to their contacts on a mobile device. In this scenario, the purchasing users are sending the redemption SMS from their local device.


How redemption works

The high level flow for Redemption works as follows. Each step of this process will be handled by Gift Card Market.

  • User accesses Redemption application via embedded URL in text/email or QR Code/link text in printout
  • Application validates link
  • OTP (One time password) is generated and sent to email/sms of recipient
  • OTP entered by user in UI and validated
  • Business details are retrieved from the search provider
  • Card widget pulled from card issuer and UI is rendered

Redemption diagram


Mobile app integration

You can make your mobile application seemlessly integrate with The Gift Card Market services.

  • This integration will require custom development
  • For most applications, the custom development for this can be completed within weeks.

White glove services

GCM is able to assist with custom implementation development should your team need additional support. For more information on this, please contact us.