If you enable the catalog directive OnFly, setting it to the name of a tag (possibly a UserTag) that can handle its calls, then MiniVend will add items to the basket that are not in the product database.
The OnFly
directive accepts a tag name:
OnFly onfly
MiniVend supplies the onfly
tag which will work with the descriptions below. If your item code is not
to be named mv_order_item
then you must perform a rename in the Autoload
routine.
A basic link can be generated like:
[area form=" mv_todo=refresh mv_order_item=000101 mv_order_fly=description=An on-the-fly item|price=100.01 "]
The form parameter value mv_order_fly
can contain any number of fields which will set corresponding parameters in
the item attributes. The fields are separated by the pipe (|
) character and contain value-parmeter pairs separated by an = sign. (These are URL-encoded by the [area ...] tag, of course.) You can set a size, color, or any other parameter. If you want to see what the actual
URL will look like, put the above example in a page and study it.
The special attribute mv_price
can be used in conjunction with the
CommonAdjust
atom $
to set the price for checkout and display.
The [item-list]
sub-tag [item-description]
, when used with an item-list, will use the item attribute description to display in the basket.
If you wish to set up a UserTag to process on-the-fly items, it should accept a call of
usertag(mv_item_code, mv_item_quantity, mv_order_fly)
The mv_item_code
and mv_order_fly
parameters are required to trigger MiniVend's add_item
routine (along with mv_todo=refresh to set the action).
The item will always act as if SeparateItems
or mv_separate_items
is set.
Multiple items can be ordered at once by stacking the variables. If there
is only one mv_order_item
instance, however, you can stack the mv_order_fly
variable so that all are concatenated together as with the |
symbol. So the above example could be done as:
[area form=" mv_todo=refresh mv_order_item=000101 mv_order_fly=description=An on-the-fly item mv_order_fly=price=100.00 "]
Multiple items would need multiple instances of mv_order_item
with a corresponding mv_order_fly
for each mv_order_item
. You can order both 000101
and 000101
as follows:
[area form=" mv_todo=refresh mv_order_item=000101 mv_order_fly=description=An on-the-fly item|price=100.00 mv_order_item=000102 mv_order_fly=description=Another on-the-fly item|price=200.00 "]
The following two forms correspond to the above two examples, in order, with the slight refinement of adding a quantity:
<FORM ACTION="[area process]" METHOD=POST> <INPUT TYPE=hidden NAME=mv_todo VALUE="refresh"> <INPUT TYPE=hidden NAME=mv_order_item VALUE="000101"> Qty: <INPUT SIZE=2 NAME=mv_order_quantity VALUE="1"> <INPUT TYPE=hidden NAME=mv_order_fly VALUE="description=An on-the-fly item|price=100.00"> <INPUT TYPE=submit VALUE="Order button"> </FORM>
<FORM ACTION="[area process]" METHOD=POST> <INPUT TYPE=hidden NAME=mv_todo VALUE="refresh"> <INPUT TYPE=hidden NAME=mv_order_item VALUE="000101"> Qty: <INPUT SIZE=2 NAME=mv_order_quantity VALUE="1"><BR> <INPUT TYPE=hidden NAME=mv_order_fly VALUE="description=An on-the-fly item|price=100.00"> <INPUT TYPE=hidden NAME=mv_order_item VALUE="000102"> Qty: <INPUT SIZE=2 NAME=mv_order_quantity VALUE="1"><BR> <INPUT TYPE=hidden NAME=mv_order_fly VALUE="description=Another on-the-fly item|price=200.00"> <INPUT TYPE=submit VALUE="Order two different with a button"> </FORM>