Save Paypal Email Receipts in Google Spreadsheet
When you make a purchase through PayPal, the payment company sends you an email receipt with the details of the transaction. The Google script will scan your Gmail mailbox for all Paypal receipts, extracts the details from the message body using regex and saves them in a Google Spreadsheet for quick reference. The script extracts the transaction ID, the item purchased, the shipping cost and other details.
Also see: Sell Digital Goods with Paypal and Google Drive
function searchGmail() {
var threads = GmailApp.search("from:paypal", 0, 10);
var sheet = SpreadsheetApp.getActiveSheet();
var header = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
for (var t = 0; t < threads.length; t++) {
var msgs = threads[t].getMessages();
for (var m = 0; m < msgs.length; m++) {
var response = extractPayPalDetails_(msgs[m]);
var row = [];
for (var h = 0; h < header.length; h++) {
if (header[h] in response) {
row.push(response[header[h]]);
} else {
row.push("");
}
}
sheet.appendRow(row);
}
}
}
function extractPayPalDetails_(msg) {
var result = {};
var body = msg.getPlainBody().replace(/\s+/g, " "),
html = msg.getBody().replace(/\s+/g, " ");
var match = /[A-Z]{3}\s\d+,\s\d{4}\s\d{2}:\d{2}:\d{2}\s.{9}/g.exec(body);
if (match) result["Transaction Date"] = match[1];
match =
/.*?>(.*?)<\/td> .*?>.*?>(.*?)<\/a><\/td> .*?>(.*?)<\/td> .*?>(.*?)<\/td> .*?>(.*?)<\/td><\/tr>/g.exec(
html
);
if (match) {
result["Item #"] = match[1];
result["Item Title"] = match[2];
result["Quantity"] = match[3];
result["Price"] = match[4];
result["Subtotal"] = match[5];
}
match = /Shipping & Handling:\s+\(.*?\)(.*?)\s+Shipping/g.exec(body);
if (match) result["Shipping and Handling"] = match[1];
match = /Shipping Insurance.*?:(.*?)\s+Total:\s*(.*? .*?)\s+/g.exec(body);
if (match) {
result["Shipping Insurance"] = match[1];
result["Total"] = match[2];
}
match = /credit card statement as "(.*?)".*?purchased from:(.*?)\s+Receipt id:([\d\-]+)/gi.exec(body);
if (match) {
result["Name in Statement"] = match[1];
result["Purchased From"] = match[2];
result["Receipt ID"] = match[3];
}
match = /international shipping.*?Total:(.*?)\s+.*credit card statement as "(.*?)"/gi.exec(body);
if (match) {
result["International Shipping Total"] = match[1];
result["International Name in Statement"] = match[2];
}
return result;
}
返回列表
上一篇:Convert Word, Excel and PowerPoint files to Google Docs with Google Script
下一篇:Build a Charts Dashboard with Google Sheets and HTML Service
相关文章
The Best Google Add
The availability of third-party add-ons for Google Docs, Sheets and Google Slides have certainly mad...
How to Mail Merge with Outlook and Google Sheets
The Mail merge add-on for Gmail lets you send personalized emails to your contacts in bulk. You can...
Formulas in Google Sheets Disappear When New Rows Are Added
An order form, created in Google Forms, requires customers to provide their full name, the item quan...
How to Make Personalized Place Cards with Guest Names
Whether it is a wedding party or a business conference, those tent-shaped place cards are ideal for...
Send WhatsApp Messages with a Google Sheets Function
In a previous tutorial, you learned how to send WhatsApp messages from Google Sheets using the offic...
How to Play an MP3 File in Google Sheets
You can put the link of any MP3 audio file in Google Sheets but when you click the file link, the au...