Gift Certificate Sales & Redemption

Gift Certificate Sales & Redemption

This is a working implementation for Selling & Redeeming variable-value Gift Certificates (GCs) that are tracked under their own individual GC Account and 2 “GC Balance” Accounts called “GC Purchases” and “GC Redemptions”.

GC Sale:

  • Customer comes in to purchase a Gift Certificate (GC).
  • Enter the value of the GC that the customer wants to purchase into the NUMBERPAD ($10, $20, etc).
  • Select GC Product (open price).
  • Settle the ticket - customer pays for the GC using Cash, Credit Card, or another Payment Type.
  • Gift Certificate Entity & Account is created using a name composed of current Date, Time, and Value of the GC being purchased (i.e. GC2014061315325614520 would be the Entity Name & Account Name of a GC purchased on 2014-06-13 at 15:32:56.145 for a value of $20).
  • Gift Certificate Prints containing Value ($20)and Control Code (GC2014061315325614520).

GC Redemption:

  • Customer comes in with a Gift Certificate (GC) that they want to Redeem (use as Payment). Assuming the GC has a value of $20…
  • They order some food and drink products, and it comes to a total of $33.
  • They want to use the GC as partial payment ($20), and pay the remainder in Cash ($13).
  • We scan or enter the GC Control Code (i.e. GC2014061315325614520), or search for it in a list of unredeemed Gift Certificates allowing us to verify the GC has not yet been (fully) used, and it enables the Gift Certificate Payment Type to settle the Ticket (in whole or in part).
  • For the remainder of the Ticket, the balance left to pay is $13, and we settle that with Cash.

This setup and implementation is based on the discussion and initial tutorial provided by @JohnS, found in this thread: GC Sales & Redemption.

With the gracious & frequent help & guidance of @emre and @JohnS, the Tutorial which follows introduces many changes to the initial setup previously provided. The changes are mostly to track Gift Certificates under their own Accounts, and 2 overall GC Balance accounts, steering clear of the Sales account, facilitating better control & reporting of the “GC Product” and its balances.

Let’s get to it!


Components required:

GC Product: Gift Certificate

Account Types: GC Accounts, GC Balances
Accounts: GC Purchases, GC Redemptions, GC Payment Account, ZZGC2000 “dummy” account
Account Screens: Gift Certificates, General

Transaction Types: GC Credit Transaction, GC Debit Transaction, GC Purchase Transaction, GC Redemption Transaction

Document Types: GC Purchase Doc, GC Redemption Doc

Payment Types: Gift Certificate

Entity States: (GCStatus) Purchased, (GCStatus) Redeemed

Entity Types: Gift Certificate
Entities: ZZGC2000 “dummy” entity
Entity Screens: Gift Certificates (Search)

Ticket Types > Ticket > Entity Type List: Gift Certificates

Printer Template: GC Template
Print Job: Print GC

Automation: several Actions & Rules


GC Product:

The GC Product “Gift Certificate” has a Price of 0.00 … it’s an “open price” product.


GC Account Types - GC Accounts & GC Balances:

GC Accounts: holds the balance of each individual GC.
GC Balances: holds the total balances of all Purchased & Redeemed GCs.


GC Accounts - Purchases, Redemptions, Funds, & Dummy:

GC Purchases: holds the total balance of all Purchased GCs.
GC Redemptions: holds the total balance of all Redeemed GCs.
GC Funds: Credit/Debit account for GC Purchases/Redemptions.
ZZGC2000: a “dummy” account with zero (0) balance, used in place of completely depleted (fully redeemed) GCs.


Account Screen - Gift Certificates:

The Gift Certificate Account Screen allows us to view the values of all Purchased & Redeemed GCs, and lists any GCs which still have a balance that can be used as Payment, filtered as “All” so we see the complete history.


Account Screen - General: (optional)

The General Account Screen can also display GC Purchases, Redemptions, and Balances, filtered by “WorkPeriod”, so we see only GC transactions appearing today.


Account Transaction Types: GC Credit & GC Debit:

GC Credit Transaction: during GC Purchase, transfers funds from GC Funds to GC Account that is being purchased.
GC Debit Transaction: during GC Redemption, transfers funds from GC Funds to GC Redemptions account.


Account Transaction Types: GC Purchase & GC Redemption:

GC Purchase Transaction: during GC Purchase, transfers funds from GC Purchases account to Receivables account.
GC Redemption Transaction: during GC Redemption, transfers funds from Receivables account to GC Account that is being redeemed.


Document Type - GC Purchase:

GC Purchase Doc: handles GC Credit Transaction when GC is Purchased.

Document Type - GC Redemption:

GC Redemption Doc: handles GC Debit Transaction when GC is Redeemed.


Payment Type - Gift Certificate:

Gift Certificate: provides for a button on the Payment Screen (similar to Cash or Credit Card), enabling the Redemption of a GC when Settling a Ticket, which invokes the GC Redemption Transaction.


Entity States for GCStatus - Purchased & Redeemed:

The GCStatus Entity States are used to easily track the Status of the GC, as either being Purchased or Redeemed (in full):

Purchased: indicates the GC has a Balance > 0.
Redeemed: indicates the GC has a Balance = 0.


Entity Type - Gift Certificates:

Gift Certificates Entity Type defines the Gift Certificate Entity, which use an Account Type of GC Accounts.
GCBalance: this Custom data field will be updated to display the balance of the individual GC Account.


** Gift Certificate Entity - GC Dummy “ZZGC2000”:**

ZZGC2000: a “dummy” GC Entity with GCBalance=0 linked to “dummy” Account ZZGC2000 to be used in place of GCs that have been fully redeemed.


Entity Screen - GC Search:

Gift Certificates Entity Screen, set to Search mode, and filtered to display only GC Entities with a (GCStatus) State of Purchased will list all GC Entities which are not fully Redeemed.


Ticket Type - Entity Type List - GC Entity Search:

Adding Gift Certificates to the Entity Type List of our Ticket Types provides a button on the left side of the screen to search for and select a GC, in the same way we select Tables and Customers on a Ticket.


Ticket Tags - Gift Certificate Name - GCN: (optional)

We will use the Ticket Tag GCN to store the name of the Gift Certificate used during Redemption. This is useful to format output on a Ticket (Receipt) to show information about a GC when it is used as Tender.


Ticket Tags - Gift Certificate Balance - GCB: (optional)

We will use the Ticket Tag GCB to store the remaining Balance of the Gift Certificate used during Redemption. This is useful to format output on a Ticket (Receipt) to show information about a GC when it is used as Tender.


Printer Template - GC Template:

GC Template: used to format the output of the printed GC - modify it to suit your needs…

[LAYOUT]
-- General layout
<EB>
<T>The Best Restaurant
<DB>
<J00>{DOCUMENT DATE} {DOCUMENT TIME}
<L>
<EB>
<C01>GIFT CERTIFICATE
<DB>
<L>
{TRANSACTIONS}
<C>NO CASH VALUE
<F>*
[TRANSACTIONS]
<C11>{AMOUNT}
<L>
<F>-
<EC>
-- <QR>{SOURCE ACCOUNT}
-- <BAR>{SOURCE ACCOUNT}
<EL>
<J00>{SOURCE ACCOUNT} | {AMOUNT}

Print Job - Print GC:

Print GC: the Print Job that prints the GC to the Ticket Printer using the GC Template.


Printer Template - Ticket Template addition: (optional)

[<F>=
<J00>{TICKET TAG:GCN}|Balance: [=F(TN('{TICKET TAG:GCB}'))]]

If you set up the Ticket Tags for GCN and GCB, including the Actions & Rules, the above Printer Template code can be added somewhere to your regular Ticket Template (Customer Receipt), to show Balance information of a Redeemed Gift Certificate.


Automation - Actions & Rules:

Now that all the Components are in place, we need to define how they interact with each other using Actions & Rules.

First, we define all the Actions


Action - AC Display Ticket:

A “generic” Action to Display a Ticket, given a Ticket Id.

Name: AC Display Ticket
Type: Display Ticket
Ticket Id: [:TicketId]


Action - GC Credit & GC Debit:

Actions to Credit & Debit accounts when a GC is Purchased and Redeemed.

Name: AC GC Purchase
Type: Create Account Transaction Document
Document Name: GC Purchase Doc
Account Name: [:Account Name]
Description: GC Credit Account [[:CertNum]]
Amount: [:Amount]

Name: AC GC Redeem
Type: Create Account Transaction Document
Document Name: GC Redemption Doc
Account Name: [:Account Name]
Description: GC Debit Account [[:CertNum]]
Amount: [:Amount]


Action - Update Order Transaction Type for GC Purchase:

Action to update the Transaction Type when a GC is Purchased. This allows the Sale of a GC to be tracked under a separate GC Purchase Account rather than the default Sales Account.

Name: AC GC Update Transaction Type
Type: Update Order
Account Transaction Type: GC Purchase Transaction


Action - Update Order State for GC Product:

Action to update the Order State of a GC when it is being Purchased.

Name: AC GC Update Order State
Type: Update Order State
State Name: Certificate
Group Order: 3
Current State: [:Current State]
State: [:State]
State Order: 3


Action - Create GC Entity:

Action to Create the GC Entity when it is Purchased.

Name: AC GC Create
Type: Create Entity
Entity Type Name: Gift Certificates
Entity Name: GC[:Certificate Number]
Create Account: True


Action - Print GC:

Action to Print the GC when it is Purchased.

Name: AC GC Print
Type: Print Account Transaction Document
Document Id: [:DocumentId]
Printer Name: Ticket Printer
Printer Template Name: GC Template


Action - Update Entity Data “GCBalance”:

Action to update the GC Entity Custom Data Field named GCBalance, when a GC is Purchased or Redeemed.

Name: AC GC Balance Update
Type: Update Entity Data
Entity Type Name: Gift Certificates
Entity Name: [:CertNum]
Field Name: GCBalance
Field Value: [:Bal]


Action - Update Entity State “GCStatus”:

Action to update the GC Entity State (GCStatus) when a GC is Purchased or Redeemed.

Name: AC GC Update State GCStatus
Type: Update Entity State
Entity Type Name: Gift Certificates
Entity Name: [:CertNum]
Entity State Name: GCStatus
Current State: [:Current GCStatus]
Entity State: [:New GCStatus]


Action - Add Line to Text File: (optional)

Action (optional) to Add Line to Text File, when a GC is Purchased or Redeemed, to log any interactions with GCs.

Name: AC GC Add Line to Text File
Type: Add Line to Text File
File Path: <enter full path, including filename>
Text: [:sometext]


Actions - Update Ticket Tags - GCN & GCB: (optional)

Actions (optional) to Update Ticket Tag, for GCN and GCB to use on a Customer Receipt when a GC is used for Redemption.

Name: AC GC Update Ticket Tag GCN
Type: Update Ticket Tag
Tag Name: GCN
Tag Value: [:GCN]

Name: AC GC Update Ticket Tag GCB
Type: Update Ticket Tag
Tag Name: GCB
Tag Value: [:GCB]


Action - Search & Select GC Entity via NUMBERPAD or Scanner:

Action to select a GC Entity (and associated Account) when a GC number (i.e. GC2014061315325614520) is entered into the NUMBERPAD, or scanned using a Scanner, for use in Redemption.

Name: AC GC Select NUMPAD
Type: Change Ticket Entity
Can Create Ticket: True
Entity Type Name: Gift Certificates
Entity Name: [:SearchValue]


Action - Change Entity to “dummy” ZZGC2000:

Action to replace a currently-selected GC that is being used for Redemption, when the value of the GC has been depleted (Balance=0) during a Payment Transaction (when the Ticket is being Settled).

This would replace GC2014061315325614520 (value=20) with ZZGC2000 (value=0) when GC2014061315325614520 has been used as payment for its entire balance (20), and when there is still a Remaining Amount left to be Settled on the Ticket.

The Entity/Account replacement with the “dummy” GC ZZGC2000 prevents the depleted GC GC2014061315325614520 from being overdrawn.

Name: AC GC Entity Change to Invalid
Type: Change Ticket Entity
Can Create Ticket: False
Entity Type Name: Gift Certificates
Entity Name: ZZGC2000


Now we need to capture Events using Rules and fire the Actions we defined.

Let’s get to defining all the Rules


Rule - GC Order Added to Ticket - Update States & Transaction Type:

Rule to capture when a GC order has been added to a Ticket, to be Purchased.

Name: RU GC Update New
Event Name: Order Added to Ticket
Custom Constraints: Execute rule if Matches
Menu Item Group Code Equals Gift Certificates

Actions:

AC GC Update Order State
Constraint:
Current State:
State: Ordered

Update Order Gift State
Constraint:
Current Status:
Status: Locked
Value:

AC GC Update Transaction Type
Constraint:


Rule - Ticket Closing - Update Order State:

Rule to capture when a GC order has been Purchased and Paid for (Settled).

Name: RU GC Update Order States
Event Name: Before Ticket Closing
Custom Constraints: Execute rule if Matches
Remaining Amount Equals 0

Actions:

AC GC Update Order State
Constraint:
Current State: Ordered
State: Printed


Rule - GC Purchased & Printed: (Action in red is optional)

Rule to capture when a GC has been ordered, purchased, and printed.

This fires many actions, to create the GC Entity & GC Account, update its Account Balance and Entity GCBalance, print the GC and update the Entity GCStatus to Purchased.

Name: RU GC Purchased & Printed
Event Name: Order State Updated
Custom Constraints: Execute rule if Matches All
State Name Equals Certificate
State Equals Printed

Actions:

AC GC Create
Constraint:
Certificate Number: [=Helper.GetUniqueString()][=Order.Price]

AC GC Purchase
Constraint:
Account Name: [=Data.Get("AccountName")]
CertNum: [=Data.Get("AccountName")]
Amount: [=Order.Price]

AC GC Print
Constraint:
DocumentId: [=Data.Get("DocumentId")]

AC GC Balance Update
Constraint:
CertNum: [=Data.Get("AccountName")]
Bal: [=Order.Price]

AC GC Update State GCStatus
Constraint:
CertNum: [=Data.Get("AccountName")]
Current GCStatus:
New GCStatus: Purchased

AC GC Add Line to Text File (optional)
Constraint:
sometext: {DATE} {TIME}, [=Data.Get("AccountName")] ([=Order.Price]), Purchased, Balance [=Order.Price]


Rule - NUMBERPAD Value Entered - Search & Select GC:

Rule to capture when a valid GC has been scanned, or its number has been entered into the NUMBERPAD, to Select the GC for Redemption.

Name: RU GC Select NUMPAD
Event Name: Numberpad Value Entered
Custom Constraints: Execute rule if Matches
Numberpad Value Starts GC20

Actions:

AC GC Select NUMPAD
Constraint:
SearchValue: [:NumberpadValue]

AC Display Ticket
Constraint:
TicketId:


Rule - GC Redeemed (used as Payment) - Update GC Data: (Actions in red are optional)

Rule to capture when a valid GC has been used as a Payment Type, to update all the GC Entity Data and GC Account Balance, since it has been used (in whole or in part) for Redemption.

Name: RU GC Redeemed (update GC data)
Event Name: Payment Processed
Custom Constraints: Execute rule if Matches All
Payment Type Name Equals Gift Certificate
{ENTITY NAME:Gift Certificate} Starts GC20
[=-1*TN('{ENTITY BALANCE:Gift Certificate}')] Greater 0

Actions:

AC GC Balance Update
Constraint:
CertNum: {ENTITY NAME:Gift Certificate}
Bal: [=-1*TN('{ENTITY BALANCE:Gift Certificate}')-[:ProcessedAmount]]

AC GC Redeem
Constraint:
Account Name: GC Redemptions
CertNum: {ENTITY NAME:Gift Certificate}
Amount: [:ProcessedAmount]

AC GC Update State GCStatus
Constraint: [=-1*TN('{ENTITY BALANCE:Gift Certificate}')-[:ProcessedAmount]]<=0
CertNum: {ENTITY NAME:Gift Certificate}
Current GCStatus: Purchased
New GCStatus: Redeemed

AC GC Add Line to Text File (optional)
Constraint:
sometext: {DATE} {TIME}, {ENTITY NAME:Gift Certificate} ([=-1*TN('{ENTITY BALANCE:Gift Certificate}')]), Redeemed [:ProcessedAmount], New Balance [=-1*TN('{ENTITY BALANCE:Gift Certificate}')-[:ProcessedAmount]]

AC GC Update Ticket Tag GCN (optional)
Constraint:
GCN: {ENTITY NAME:Gift Certificate}

AC GC Update Ticket Tag GCB (optional)
Constraint:
GCB: [=-1*TN('{ENTITY BALANCE:Gift Certificate}')-[:ProcessedAmount]]

AC GC Entity Change to Invalid
Constraint: [=-1*TN('{ENTITY BALANCE:Gift Certificate}')-[:ProcessedAmount]]<=0

Display Payment Screen
Constraint: [:RemainingAmount]>0

Close Ticket
Constraint: [:RemainingAmount]<=0

3 Likes

GC Tender Button

This optional setup adds a Button to the Payment Screen to automatically use the Gift Certificate as Payment, tendering a portion of the GCBalance or the entire GCBalance.

Automation Command - Button for “GC Tender”:

This button is mapped to display on the Payment Screen.

Name: AU GC Tender
Button Header: Tender\rGift Cert


Action - Pay Ticket with Gift Certificate:

Action to Pay the Ticket with the selected Gift Certificate.

Name: AC GC Tender
Type: Pay Ticket
Payment Type Name: Gift Certificate
Tendered Amount: [:GCAmount]


Rule - Tender Partial GC:

Rule to capture the click-event of the Tender Gift Cert Automation Command, and use a portion of the balance of the GC to Pay the Ticket in full.

Name: RU GC Tender Partial
Event Name: Automation Command Executed
Custom Constraints: Execute rule if Matches All
Automation Command Name Equals AU GC Tender
{ENTITY NAME:Gift Certificate} Starts GC20
[=-1*TN('{ENTITY BALANCE:Gift Certificate}')] Greater 0
[=-1*TN('{ENTITY BALANCE:Gift Certificate}')] Greater [=TN('{TICKET TOTAL}')-TN('{TENDERED TOTAL}')]
[=TN('{TICKET TOTAL}')-TN('{TENDERED TOTAL}')] Greater 0

Actions:

AC GC Tender
Constraint:
GCAmount: [=TN('{TICKET TOTAL}')-TN('{TENDERED TOTAL}')]


Rule - Tender Total GC:

Rule to capture the click-event of the Tender Gift Cert Automation Command, and use the total balance of the GC to Pay the Ticket partially or in full.

Name: RU GC Tender Total
Event Name: Automation Command Executed
Custom Constraints: Execute rule if Matches All
Automation Command Name Equals AU GC Tender
{ENTITY NAME:Gift Certificate} Starts GC20
[=-1*TN('{ENTITY BALANCE:Gift Certificate}')] Greater 0
[=-1*TN('{ENTITY BALANCE:Gift Certificate}')] Less [=TN('{TICKET TOTAL}')-TN('{TENDERED TOTAL}')+0.01]
[=TN('{TICKET TOTAL}')-TN('{TENDERED TOTAL}')] Greater 0

Actions:

AC GC Tender
Constraint:
GCAmount: [=-1*TN('{ENTITY BALANCE:Gift Certificate}')]

2 Likes

I will be editing the above posts to include explanations of the various components, and Text-formatted entries for the Printer Template, Rules & Actions so that they may be easily copied/pasted to assist with setup and implementation.

Great work. You’ve been like a dog with a bone on this :smiley:

The only issue I can see is in the RU GC Select NUMPAD Rule. Change the constraint to NumberPad Value Starts GC20 otherwise GC’s issued next year will not scan or be accepted via the NumberPad.

Good point @JohnS, about the constraints… they’ve been changed from GC2014 to GC20.

A few reasons for my relentlessness on the GC subject:

  • It’s allowed me to learn a great deal about SambaPOS regarding Accounts, Transactions, Document Types, and Automation Actions, Rules & Commands, and Program Settings values, availability (scope) & evaluation.

  • We are asked for Gift Certificates here frequently.

  • I hadn’t seen a Tutorial for this particular scenario before - you got me started with your implementation, and it’s greatly appreciated. Many thanks to you and @emre!

2 Likes

This looks great except I’m looking for a way to use plastic gift cards.

Is there a way to change this that instead of using variable gift certificate numbers that I could scan a mag card and assign the scanned number instead? I do not need to print a gift certificate number on the receipt since the customer will be purchasing a plastic card.

Any recommendations on how to use plastic gift cards with SambaPos would be highly appreciated.

Thanks

Nearly anything is possible with SambaPOS, and I don’t see any reason why a mag card couldn’t be made to work with this setup with a few changes.

I don’t have a mag card reader (or programmer), so I can’t tell you what changes would be required. This tutorial will work with a barcode scanner so I assume a mag card would be similar, but I don’t have the details.

You would need to figure out the format of the information on the mag card, and still likely need store the card ID (or similar) along with the remaining balance within SambaPOS, unless you have the capability to update the balance on the card itself.

There is a similar Tutorial here, but I don’t think it uses mag cards either:
http://www.sambapos.org/en/content/sambacard-tutorial

Thanks for the quick response QMcKay!

The cards do not store the balance this would need to be stored in SambaPos just like the above solution.

I do have the option of getting a barcode printed instead of a mag strip and have seriously considered this instead. I don’t need to worry about the mag strip not working or getting damaged.

I am really wanting to use SambaPos and have learned a lot in the recent weeks trying to set it up. I am stuck on the gift card solution. If you or anyone have any additional help on what changes I would need to make to get the above to work. I am fine using cards with bar codes instead of the mag strip.

Thanks again

I guess what you would be asking to do then, is to be able to scan a new card and have it store the card ID and value automatically when you sell the card. Someone with the proper equipment will need to assist, since I have no way to test.

Then when a customer returns with the card, the rest of the setup will be very much the same.

Thanks QMcay, that is exactly what I’m asking.

Thanks so much, hopefully someone can assist!

In the Tutorial when I make mention of the {:NUMBERPAD} or [:NumberpadValue], I am actually referring to reading a card ID using a scanner, since when you scan something, the value is transferred into the NUMPAD field (just above the numeric keypad) by default.
However, this is for redemption, not for purchase, but it could be made to work both ways.

Additionally, we need to know the format of the card ID so that we can change any mention of GC20 in the tutorial to something that matches a common part of the card ID.

1 Like

One SambaPOS user uses these mag cards. These cards are pre-programmed with unique values that displayed on front. (JK001502). When asked card manufacturers does it.

When they want to give a new card to a customer they create a new card entity by scanning card number.

http://www.sambapos.org/en/content/sambacard-tutorial prepared to implement similar solution.

3 Likes

Hi emere, the SambaCard seems like it would work but I’m a little confused on the sale of it. I am looking to sell gift cards. I would need to have an item, can be set amounts such as $10, $20, $25 etc. The customer would purchase these as a sale. So I would need to be able to print a receipt and have them in a separate account to track. I do not want them counting as a sale twice for tax reasons. When they are redeemed they are charged sales tax but not at the purchase of the card.

With my printer I can get them printed with either a bar code or a mag strip.

QMcKay, as far as the number sequence I was thinking HGC10000001 etc. I think I know how to change that in the tutorial I am just not sure how to change it so that I scan the card and assign that card to a dollar amount. I am not interested in creating a customer account since most of our gift card sales are for gifts to someone else. So I don’t need the customers name etc. I just need to have the card number stored and the assigned dollar value to it.

Later a customer presents that card. We scan it and then know the balance and can assign it to the sale.

Hope this makes sense. Thanks for all the help!

@martinmike7 Did you reviewed our Promotion Coupon documentation? http://sambapos.org/wiki/doku.php/en/preparing_sambapos_to_sell_coffee_coupons sample demonstrates how to automate item sales to create coupon entities. You can use same mechanism to create card entities and also create account transactions to load credits to card accounts.

You can configure tax rates (or does not configure a rate for a specific product group at all) through tax configuration. For example this tax rate will only work for listed product groups.

Yeah Emre I have reviewed it. I guess I’m struggling with how to best implement this whole process.

  1. Customer purchases a gift card. We process the sale and scan the card to associate the card with the credit that was purchased. It should be in a separate account from sales so it is not counted twice when the card is used.
  2. Customer who received the gift card uses it to purchase food. Remaining balance is kept in system for future use. Customer can also add money (credits) to the card.

My thoughts, if possible, to have a popup window telling the cashier to scan the card after the purchase of it.

I will keep trying to figure it out. Any more input would be greatly appreciated.

Thanks

@martinmike7

i am trying to do the same thing what you are.

Here is the step should be.

  1. cashier press the New Gift Card button and a number pad should popup
  2. cashier can swipe the card via mag reader Or enter the card # manually using the pop up number pad
  3. cashier can press ADD FUND button and number pad pop up so cashier can enter then amount.
  4. cashier receive payment from the customer ( Cash , Credit, in house account, …)
  5. receipt print with showing transaction amount and last 4 digit of the card # at the bottom of the amount line.
  6. in the account screen gift card account shows $ amount, what ever amount customer paid the gift card. of course no tax on it
  7. a entity is created in entity list with full card # , also account should be automatic created under that gift card # for tracking purpose ( spending and reloading)
  8. customer purchase item and pay with gift card, cashier ring up the sales and press either settle button or fast giftcard payment button A numberpad will pop up and cashier swipe the card or enter the card # ( in case if mag strip is bad)
  9. Sambapos now check the card balance and applied towards to the purchase amount. if purchase amount is bigger then card balance then it will apply whole amount and due message should pop up and customer pay rest of the balance with cash or credit or … (split tender)
    10 gift card account should debited (1 entire gift card account and another card # account, in accounting term i should say credited) and reflect the new balance.

now customer come back and want to reload the card

  1. cashier press the Reload Gift Card button and number pad pop up, cashier swipe the card or enter the #
  2. Gift card balance shows up on the screen also ADD FUND button should be there on the same screen
  3. cashier now do the same process from step # 3

@ Emre , JohnS , QMcKay or any one who knows how to create all this step or some of them please write here and we all can make nice Tutorial for this so other people can configure their SambaPOS to sell gift card. :slight_smile:

Tom
Just setup SambaPOS to run over the internet. if any one want to set it up i can help :slight_smile:

This GC Tutorial was over a month in the making, without mag-readers, QR/BAR readers or anything else. Everyone’s business plan and operational flow is different; their equipment is different, their needs are different; their capabilities are different depending on the equipment.

The approach I took when I wanted the GC solution that worked for me:

Read, read read: I read tutorials on promotions, gifts cards, coupons; anything I could find.
Presented my usage scenario.
Someone (@JohnS) posted a simple tutorial that was somewhat close to what I wanted.
Going back and forth with the gurus, I came up with this tutorial, which was perfect for my needs: no scanner equipment needed, no double-billing or double-sales.

But I built it myself with some guidance; by reading and asking questions.
@JohnS gave me a head start on the basics, then through experimenting and Q&A, I have the perfect result… for my needs.

Here is the value:
The exercise gave me insight into the way SambaPOS works.
It revealed to me that nearly anything is possible.
I can answer questions and reveal solutions for nearly any scenario, since for the most part, I get it, because I struggled with it and learned.

I didn’t do it alone, but I didn’t use a canned solution either. Nothing is going to work for everybody. That’s what you need to take from this. Start with the basics and expand.

The Show Message action is your friend: it will reveal secrets, success or failures.

You need to give it a go, experiment, and ask questions. No one is going to do it for you. And I repeat…

Here is the value:
The exercise gave me insight into the way SambaPOS works.
It revealed to me that nearly anything is possible.
I can answer questions and reveal solutions for nearly any scenario, since for the most part, I get it, because I struggled with it and learned.

I apologize if this sounds like a rant. It’s not. You won’t get what you want unless you do it yourself.

Maybe I’ll feel better in the morning.

1 Like

Hi QMcKay,

I understand what you are saying, and delving in and learning everything would be useful. But many of us, myself included are extremely busy running our restaurant, updating social media, our websites and then spending time with our families. It can be very difficult to find the time to learn a whole new system and try to implement it. I would love to get Sambapos to a point of being able to use it but I just don’t have the time and would be more than willing to pay for someone to set it up.

Maybe this sounds like a rant but I just don’t have the time to delve in as deep as maybe it takes to learn Sambapos.

I really think that there should be an option to pay to have it setup to a users specifications or needs. I think there may be many like myself willing to pay to have it be usable in my restaurant.

Mike

There is nothing stopping people from accepting payment to set it up for you. I doubt you will get it from the developers however. I see a future where there will be many services offered to setup sambapos. Heck I may even do some of it. Reason you do not see a lot of it yet is many people are still learning it. It is also a unique platform that pretty much has its own market that is still developing. There are plenty of other POS software solutions that offer pay per month etc. But even with the support they will not do what SambaPOS can do.

1 Like

I know I won’t be able to express my thoughts fine because of my language barriers but I’ll try to do my best. What we’re aiming to do with SambaPOS is creating an automation tool that perfectly fits to “your” business workflow. Most POS software built on best practices and have lots of features to configure it to restaurant’s needs. However they have their “own” workflow designs so even they offer zillions of settings after one point restaurant managers should follow what their POS system predicates. In fact this is good for restaurants if they switched to a POS system from pen & paper since it quickly improves efficiency and teaches how to operate a restaurant business… All POS solutions can already solve that but this is not what really needed.

Should a restaurant business operate as what POS developers thinks right or should it operate as your business needs? Of course I have my own ideas but other than security issues we rarely talk about how a restaurant business should operate. Do you believe it? We’re a POS developer team who never says “you don’t know how to do it” or “this is not right” to their users. We believe even it is the worst looking idea managers should be able to align software to their business because every businesses has their own reality.

But the real issue we’re dealing with is “realities changes”. For example think of you found a great promotion idea but your POS system does not allow doing that… This is what we are trying to solve. So setting up SambaPOS once is not enough. You should be able to improve your POS system as your business improves. That’s why understanding it and contributing to its development is important. As more people understands it and talks about their needs SambaPOS greatly improves. Old SambaPOS’ers knows that. Every new release brings unrelated features but at one point these feature pieces works together to solve most related issues. That’s why new SambaPOS features generally opens new possibilities.

I just wanted to tell you the reason of why people constantly recommends you to do it on your own way. I know %80 will still prefer pro support and stick to best practices but people who gets the idea will always have more powers on competition.

Finally @QMcKay sorry for typing off topic under your tutorial.

5 Likes