I wish to download all emails and put it within a .txt file. Then I want to send selected emails to selected people using any keywords in the email

Make yourself familiar with parsing something

And for more advanced requirements, learn regex... try a Google search... there are regex extensions available... you can find them in the extensions directory App Inventor Extensions | Pura Vida Apps

However my actual advice for you is: rethink your design... what I can see up to now is, that there are several half automatic cumbersome steps involved in your e-commerce project... sending csv files... parsing emails... see again my advice here

Also it looks like you do not know how to work independently... every 5 minutes you have another question... use the search feature of the community more frequently and first learn some basics... see also

Taifun

2 Likes

Thankyou :slight_smile: This is not usual ecommerce (marketplace) project. This is little backward ecommerce project, I'm making it purposely for some reason. Thankyou for sharing right urls with sufficient knowledge. I am looking into it. Thankyou.

Hi, now I understood that ecwid.com will also provide customer order details in .csv format. So, I shall work on it by seperating the data like order (eg, burger) & address from specific cells of each row. After, seperating the data, it will be forwarded to right sellers automatically via email.

Updating Idea about App UI:

  1. The app has to function differently for each user. ie, For user Jack, the app has to show only the new-order-details of his business and if the same app is used by Kim, the app will show business detais of him.

  2. To accomplish this, as a newbie I thought this. We need 2 screens. Screen1 will contain only a search box.

  3. In this search box, users will search for their name (business-name) eg, Jack will search Jack, and Kim will search Kim.

  4. When Jack search his name 'Jack', in search result he will find an account Jack. He will click it and the Screen2 will open. Jack has to enter password so others will not use Jack's account.

  5. So, in Screen2 users like Jack or Kim etc. will enter in this way. And Screen2 will function uniquely for each users.

  6. BLOCKS FOR SCREEN2: If the user is jack, then Label 1 will display the paragraph contains the word Jack else if the user is Kim, then Label1 will display the paragraph contains the word Kim.

NOTE: Paragraph means the selected order details (eg, t-shirts 3 needed from buyer address (assume that jack is the t-shirt seller, so if any order-update on the .csv/.txt about t-shirts, it will be displayed to Jack)) from bulk of Paragraphs (order details got for all sellers).

So, we have to utilize same Label to display different order details for different sellers like Jack or kim or etc. The .csv/.txt file will be updated for every single minute so the app can display new orders to sellers immediatly.

  1. When sellers got new order, music will be played maybe with the help of 'Itoo -background extension as well'.

GOOGLE SHEET:

So, I guess the app must access Google Sheet or some url for checking new-order-updates regularly. (This has to happen in background). So, Jack will recieve order details as soon as Google Sheet got updated with t-shirts.

New orders will be updated like this in Google Sheet.

When Label1 is not equal to Zero, triger one signal push notification 'You Got a New Order' and Play music as well. After few seconds make Label1 = 0 and wait for new order.
I have decided to make individual app for each sellers instead of making one app that will function differently for each user/seller.

Hope, Il complete this app tonight :slightly_smiling_face:

If Jack enters the name Jack in a search box, then (after google login/authentication (this is better than password)) search in a google sheet 'row data' to find the name Jack, if the name Jack is found in any row, then understand/copy/parse/gasp the unique id of the Jack's shop given in the next cell of the row data. After reading the unique ID, send all the products (that has this ID attached) ordered by buyers to the Listview and the display the first Listview element in Label1 for 1 minute. (NOTE: For example, Jack's shop product will have jack54321 as a unique id along with product name. So, if app can recognise the user as Jack, then it can automatically update about the new product orders into the app from google sheet.)

else,

if some other seller search his name in search box, do the same for him ...

Found this for user login METRIC RAT AI2 - Registration & Login with Firebase Authentication

Now, I want to do this,

If the user_email is jack@gmail.com, then check each row of the google_sheet_1 for jack@gmail.com and collect the unique id from the right cell of that row.

After collecting unique id from google_sheet_1, check google_sheet_2 if there is any row with unique id.

If there is row with unique id, then share the row in a listview.

NOTE: google_sheet_1 has 2 data, ie, 1) user email and 2) unique id. AND google_sheet_2 has data like unique id, orders given by buyers, address.

What is unique id?

unique id is the trick used to match the seller and his products. every product of his shop will have some extension like apple (unique id: jack731), orange (unique id: jack731) and so on.

What is the use of unique id?

When buyers place order for apple (unique id: jack731), the app can easily recognize that, buyer has ordered from the shop/app of Jack. That is the reason why unique id will be attached along with product name. Or alternatively, SKU will be named in a unique way for the same purpose.

Since app can recognize the seller by seeing the buyer's orders, the buyer's order will be forwarded to the list view of the right seller's app by matching the app login email 'jack@gmail.com' and 'unique id'.

So, I want to do this. I may need help.

I am reading this extension [Free] Google SpreadSheet Extension Fastest Lite Version - Extensions - Kodular Community

How can I do this?

If there is a word UNIQUE ID OF JACK in a row, then display the complete row in a label, else don’t display.

– Display only the rows that contains the word UNIQUE ID OF JACK in any of its column.

Can we do like this?

Imagine if a row contains 5 columns. So I shall arrange blocks to read/get data from C1 to C5.

BLOCKS:

If C1 to C5 contains UNIQUE ID OF JACK then save all columns from C1 to C5 in TinyDB, display in list-view.

SAYING AGAIN WITH MORE DETAIL: If C1 to C5 contains UNIQUE ID OF JACK then save all columns from C1 to C5 in TinyDB (one after other -for each new update of sheet), and display all in list-view.

Make yourself familiar with SQL...
See this tutorial

And the query language documentation Query Language Reference (Version 0.7)  |  Charts  |  Google for Developers

Try this query (assiming there are only 2 columns A and B, for more columns add more OR statements):

SELECT * WHERE A CONTAINS '"UNIQUE ID OF JACK" OR B CONTAINS "UNIQUE ID OF JACK"

Taifun

1 Like

I am testing a google sheet extension. I got this error.

BLOCKS TRIED:

Error occurred when I used Do It feature on 'call.Spreadsheet1.Getsheet' block.

How can I solve this?

SHEET DETAILS:

Capture2

component_method (1)

This block may solve part of the problem.

I read about the queries as well. Why too much importance is given to column than row?

How can I complete these blocks?

I know to get the unique id of any email, how can I parse the exact row completely to put it in a listview.

ie, if the spreadsheet column EMAIL has jack@gmail.com, then store the unique id of that email in a label and display that particular row completely in a list view.

How can I get all these data as I circled the block. When I put all these column names like unique id, number and name, i am getting only error. But, when i put only one column name in that place, I am getting the result.

How can I get all the column data of that row?

Okay, This one worked. Thankyou.

Now, let me try to put it in a listview.

UPDATED: IT IS WORKING NOW. I MADE A SMALL MISTAKE IN GOOGLE SHEET. AFTER CORRECTION IT IS WORKING EVEN WITHOUT USING ANY LOOPING TECHNIQUES.

I created blocks 1) to get Unique ID of email from Sheet 2, and 2) to use that unique id to get the right row completely from sheet 1. But, I don't know to loop this process (ie, I don't know to get all the rows that has same unique ID). So, the issue is that the blocks are not collecting all the rows that have same Unique ID, instead it is parsing only first row. So, help me to loop the process if that is the right thing to do.

-- The global variable loginAs (related blocks are not shared here now) gives the user login email. I already stored that email + Unique Id in a google Sheet (Sheet 2)

How can I loop this process, so I can parse/collect all the rows that have same Unique ID?

SHEETS:

Capture

ERROR THAT I MADE IN SHEETS: Unique ID of flowin@gmail.com is not same in all places. So, I made it into same and now the error is solved. One unique id for one user-login-email. That is the idea.

Planning to use the same technique to trigger and send push notification for individual sellers when new order received.

And how the app can understand new order if the sheet added new row for incoming new orders? How the app will judge if the row got updated then that is new/recent order? How can we do that, so the push notification can be sent?

ANOTHER ASSUMPTION:

STEP1: If the login email is jack@gmail.com then PushNotification key = ABC, else if the login email is Barath@gmail.com then the push notification key = DEF.

STEP2: If the unique id of new order is jack4321, then trigger the PushNotification key of jack@gmail.com.

I guess, in this way it may be possible to use single app for different sellers. If it is possible to update Label for new order for each individual sellers and if it is possible to send push notification for individual sellers in this way, then sticking with single app for all sellers is possible.