How to create an app for taking Sales Orders

Hello,
Application Link : zxk5o.glideapp.io
I am trying to build an app to take orders from customers without using Shopping cart. The table structure is as follows :-1:

  1. Header
    a. Order Number (I am using Special value, unique identifier)
    a. Date of Order
    b. Customer (Choice component used to select customer)
    c. Total (Sum from detail table)
  2. Detail
    a. Order Number (Ref. of the Header)
    b. Product (Choice component from Product table)
    c. Qty
    I am trying out with Inlist, Form etc. but could not find the correct approach.
    Please let me know whether this is possible. I am spending too much time to research on it, appreciate if someone can share similar app without Shopping Cart integration.

Regards,
Jay

What kind of problem are you having? I’d say it’s definitely possible.

There have been a few posts regarding a shopping cart that doesn’t use Stripe.

1 Like

Hello, I explain in my case what I need. Maybe some of what I’ve done so far serves some.
I have several stores in the application that sell food, as the user enters the stores, the products of the same are related. There you can load them in the “Order details” table. There I made a manual ID concatenating Date & Mail & Business.
In another table called “Orders” I put a UNIQUE formula where it brings me that ID once and with that I make the sums of the total, where I can also relate Commerce, User, etc.
That orders table would be what is shown as cart.
From that table, they have a button to confirm the order, where it sends all the data to another table called “Confirmed orders” where I automatically put a final ID.
Then in the table “Detail orders” you can make a formula that searches for the ID of that confirmed order.
Until then it would work as long as the person makes 1 single order that day for that trade. That is my problem, I would like if the person makes another order, another ID is loaded.
One way that I tried to do is that, for example, in the table “Order details” the date and time of each line is loaded, in the table “Confirmed orders” the Date and Time of when the order was confirmed are loaded, Then, in “Order details”, search only for the ID that coincides with Date & Mail & Trade but that is later than those hours.
So when you place a new order that day, the same person, for the same business, would search for a matching ID in the “Confirmed Orders” table after the time it was ordered.
But I can not do it
It is difficult to explain. Everything would be easie

“Pedidos”
r if we first place an order and then relate all the orders to that order, but the order apps generally let you first load the products into an online cart and then the order is confirmed.

“Detalle pedidos”
image image

“Pedidos confirmados”
image

https://kedaionline.glideapp.io/
I am also new to Glide, I hope the above app will give you some insights.

You need to explore Form Button under Components.
Also a component called Inline List
In next few days I will be working on this.

Regards,
jay

Screenshots of your app or a shared app link would help to visualize your problem.

Would it help to generate your ID using Unique ID Special Value instead of building it yourself with date? First create an order for the user. Each order would be unique based on that ID. Then add items to that order id. This way they can take as many days as they want to build their order and once it’s confirmed, you can hide it so they can’t add to it anymore and have to create a new order.

Hello@edbs_India, thanks for answering. I saw your application, but I think it is not what I am looking for. I have different stores with different products.
I can’t understand in your application when you know if the order is already finished?

847/5000

Hello, thanks for answering.
It really wouldn’t help me because as I mentioned, the products are loaded first and then the order is confirmed, like a regular shopping cart.
In case of doing it as you say, I understand that it works, because first I generate the order and then I enter through that ID to load products, but I first need to show the products before ordering.
What could help me is that from the products view, just let me add if I have generated an order, but I don’t know how to do it. That is, an example is the instagram clone application made in glide, where if the email is registered with the name it shows one view and another.
Now I pass a video to you to see how it works.

So far it works, but if I make a new order on the day, the sum accumulates and mixes with the previous order.

1 Like

I’ve been thinking about this, but I can’t thing of a good way to do this with your current setup. I think you would have to use some sort of script.

First I would remove the date from your order id so it’s only email and business
Next you can continue to use Unique to built your orders sheet
Next submit the form to confirm your order.
Here, instead of using a formula to fill the detail records with the final confirmed ID, I think you would need to run a script that would read the confirmed order id record, and then search for any matching details in the detail sheet and write the confirmed final id to each row that doesn’t have a confirmed id entered yet.

That’s all I can think of. I think you need a script instead of regular sheet formulas. Probably not easy, but hopefully this gives you some ideas and you can figure it out.

Could you add on the word “open” or “new” to your manual ID when placing a new order and then, when an order is completed, create an ID that matches but instead has the word “closed” or “completed”. In the orders sheet, only relate to ids that have “open” to prevent the multiple relation? This would, in fact, be much more complex then what I’m describing…hard to know without looking at the app.

Hello
I am not familiar with scripts. I use the date in the ID because if the next day that mail makes another request to that business, the sum of the total will not serve me.
I’m thinking of a simpler way to do it. I think I already have it in mind.
Later I explain what I have in mind.

1 Like

Hi, I’m not sure if I understand you.
Basically I have 3 tabs.

Detail orders: Where all the product orders are loaded (for example, in one row there will be a Muzarella pizza, in another row a special one, from the same user or different ones. I use the date, local and mail as ID. That would be a unique ID for each user x day x local, so I use the date.

An orders table with unique function (where I group all those matching orders). In that orders table I add the totals according to the IDs of the orders detail tab, but once I confirm the order, I need something that identifies me which are the detail rows of orders that are finished.
Because if the same user then makes another order on the same day for the same location, it would not work.

So I made a third tab, orders completed. Where, from the orders table I send the data and they remain static with a unique ID. But I still don’t identify the order detail rows.
In other words, in the orders table the SUMAR.SI total (Detail orders! A2: A; A2, I2: I) will add to me both those sent before and after.

Basically, I’m looking to make a shopping cart that allows you to add products as you see them, like any modern cart. UberEats, Glovo, Orders Now, Rappi, etc …
Of course, with limitations, but the way of asking interests me.

Here’s a bit of a wild idea.

  • Create a column in your confirmed orders sheet that will contain only email and business. This can be 2 separate column joined with a template, or you can write it to the sheet later already joined from the form button. Doesn’t matter. We just need email and buiness only.
  • Next on your products, sheet follow the instructions here to get a lookup column of the user’s signed in email into the products sheet. List Relation "Data"
  • Next in the products sheet, create a template column of the signed in user email and business.
  • Next create a relation column that links the template to the email-business template in the confirmed orders sheet.
  • Next create a rollup column to count the number of confirmed orders for that email-business.
  • Next create a math column that will add 1 to the rollup value.
  • Next create a template column that joins the math value and the email-business.
    (Each product should now have a column that includes the email, the business and the next available order number for that email-business.)

Now when you click on the form button to purchase the product, you will include the order number - Email - Business template column and write it to the sheet. This will replace your date - email - business column.

Your orders sheet should still work the same using Unique.

When you confirm an order, it will write a record to the confirmed orders sheet. When you later purchase a production from the same business, the rollup column will increment by 1 and the math column will increment by 1 giving you the next available order number for that email-business combo.

I haven’t tested this, so I hope it works for you.

Edit: Sorry, the first paragraph in this post want meant to be posted. It was a first draft idea that I don’t think was going work. I meant to delete it and it’s removed now. Sorry if that led to any confusion.

5 Likes

Hi.
I was looking at the topic Data relation “Data” to test if it works for me but I can’t understand it well.
In my product sheet I have a name column, which then with a relationship allows me to get the email that started. But how can I link commerce with mail? That is, the trade exists in the spreadsheet but the mail is virtual. I tried the replace function but I couldn’t. I’m there, then I would have to see if I understand him correctly. But I stopped there. How can I concatenate a real data with a virtual one?

I can not understand well, but with your help I will try to incorporate an id every time I order a product, depending on whether there are already confirmed orders. He gave me an idea, I’m going to try it and then I’ll tell him.

Go Mariano go!! :slight_smile:

Edit to last post

What do you mean be the replace function? Just to be clear, there are no additional sheet formulas in my steps. Everything can be done within the Glide data editor.

Which step are you stuck on? You can join two values with the template column.

I managed to get an id to send each product.
Your recommendation helped me, I’m not sure if I did as you tell me, but it was based on your idea.
In the products table I already had the trade in each row, so I only had to add the mail, concatenate it to control with the confirmed table. While I succeeded, I had to make multiple columns in the editor. Surely there is a simpler way, but I’ll show you to see.

  1. In the spreadsheet I entered the word name to all the products, to relate it to the user.
    Already in the editor
  2. A relation column to get the mail.
  3. A vlookup column to get the mail again, otherwise I can’t find a way to concatenate it.
  4. A template column to link commerce and mail.
  5. A relation column to join with confirmed orders
  6. A vlookup column to find the number of times that mail and trade are in the confirmed orders table.
  7. A template column to join Commerce & mail & count

I show you the link:

It works, it takes a while for the order to arrive and at this moment the internet works slowly, I would have to use a total in the data editor and also make several changes to optimize the application and reduce formulas. But I wanted to test that logic and it works. I am missing many things, but it is the basis for taking off.

2 Likes

That looks about right. Glad it’s working for. It’s a lot of columns to create but I don’t know if a better way. Like you said, the only issue now is the orders sheet being slow to show the order. That’s the problem with using formulas in the google sheet. It can take awhile for the data updated by sheet formulas to sync back to Glide. If I think of something, I’ll let you know.

2 Likes

@Jeff_Hager, thanks for this! Soon I’ll post Buffalo Burger updated with without the order ID problem :pray:t3::pray:t3::pray:t3:

1 Like