If order is less than Item Price - Cancel and Show Message help!

I’ve setup an item with a fixed price on it, but since item is like a service which “Starts from:x” I’ve applied a rule which can change the price once item is pressed. However I am trying to set it up so if a user inputs a value which is less than then item then it will cancel the item and show a message.
I thought to create a separate rule which fires for this specific reason but I may have gone about this the wrong way.

I tried to follow someone else who did something similar but states were used and I wasn’t too confident with using stay or how to use them, so I tried to avoid it.
Could I possibly use a constraint in the original rule which allows to change price?
Below is the rule I use to change the price

what about using the ask question rule and creating another automated command and rule where OK cancels the item?

Hmm ill give that a go. Ive tried ask questions before but always seem to fail to set it up correctly lol.

Ok so here what I have done so far. I’m not sure if I have done this correctly. But I did read through some forum related stuff to do with Ask question(including previous posts I did regarding this for a different setup) to get a better idea of how it works.

But I think I’m still missing something. The issue is… The way the product is setup i think

I originally set the item cost of Heena Design to $5. But I set a rule to change the price once the item is clicked.

This is the rule where I inserted the ask question

This is the next rule which is supposed to cancel the item.

Maybe I’m supposed to put a constraint in the constraint column of an action maybe? Even then I’m not sure what I would put there.

EDIT: Hmmm am i using the correct constraint to define the price? I feel as the “{PRICE}” seems more generic and defined to whole ticket rather than individual item? is there another constraint to ensure we are defining the price of the specific item?

Is there not a selection available in the drop-down for the Price? If so, always use that in favor of using Printer Tags like {PRICE}.

Anyway, you will need to do this is 2 steps (2 Rules) …

For your Order Added Rule:

  • remove the Update Order Action.
  • add an Update Program Setting Action to store the value from the [?Price] prompt in a Program Setting (with IsLocal=True).
  • add another Update Program Setting Action to store the original Item Price, using {PRICE} for the value (with IsLocal=True).
  • add an Execute Automation Command Action (make all the Action Parameters as [:variables]). Set the AMC Name and Value however you want.

Create a Rule to capture the Event for the above Automation Command (use a Rule Constraint for the AMC Name).

  • add an Action to Update the Order. Constrain the Action for “Price Prompt” program setting >= “Original Price” program setting. This action allows the Price Change.
  • add the Action to remove the Order. Constrain the Action for “Price Prompt” program setting < “Original Price” program setting. This Action Removes the Order.
  • add an Action to display a Message. Constrain the Action for “Price Prompt” program setting < “Original Price” program setting. This Action Shows a Message :stuck_out_tongue_winking_eye:

What is the price of the product itself rather than the order.
Pretty sure the setup your showing your updating the order price on order adding right?
So that rule is catching the Product price (or maybe you need TN().

What you probably need is a second rule using execute automation command so it validates the order price after you have updated the price.

The actual price is $5. And the event is order added to ticket. I did it this way instead of the default change price as the price for that item may always change. So it may never stay as $5 and if a user had to select the item then press change price everytime would cause minor frustration for the client( more additional steps to do something which should be so simple). So by doing this i remove at least 2 additional steps.

@QMcKay the only items showing are
Menu Item Group Code
Menu Item Tag
Menu Item Name

I only used {Price} because i couldn’t think of another constraint to use.

Thats why,
Price is larger than 4 when order added.
Your updating the order price as a ‘after the event’ flow, when you set the price in the prompt the other rule has already happened and price is 5.
You need to add execute automation command after the update price action in the first order added rule then in an automation command executed rule triggered after the price update do the price check rather than an order added rule.

By add here im guessing you mean to create new actions and set all parameters as variables like you mentioned.

The next parts im guessing we are adding some actions to the rule where we removed that update order action.

I sort of get what you mean here. Ill try to set this up and post some screenshots as i have a feeling im misunderstanding some part. Really appreciate the help you guys.

This part is where im struggling to understand what to write.
so I’ve done the following. Please forgive me if I misunderstood what is happening here. This is me so far following what Q has written.

Below is the rule?

The only thing confusing me at the moment is in the constrain field “Price Prompt” program setting
is this something like [?Price]>={PRICE}
and [?Price]<{PRICE}

EDIT: @JTRTech So you’re saying to try "[?Price] into the Execute Auto Command Action “Setting Value” Field. Ok I get that part but the second rule, Im guessing we will be using the “Auto Command Execute” event and constrain the AMC name we put in the execute Auto Command. Then what actions would we use?

Qs method has made me thing of another alternative.
If the product is going to have a preset price and you reducing you could bypass program setting and put the price prompt on the order added into the execute automation command value field and ‘process’ the input price in the resulting rule.
If less than X cancel last order, if greater update price.

Actually wouldn’t be so simple without a select order as the update price would need to be targeted to that order which happens as part of the order added event.
Which thinking about it would still be the senario in the other automation command method however the cancel order would allow ‘last order’ option but would still need to be order targeted if your constraint price were to be say specified in a product tag.