All frame features removed

Tags removed

buttonbar

Replace with Variable defined in catalog.cfg. buttonbar was previously used
as an SSI-like command for catalog-wide standardized features like
navigation bars. In the 3.x catalog.cfg the ButtonBars parameter defines a
list of HTML snippets, like

Then replace all occurrences of [buttonbar 0] with
__HEADER__, [buttonbar 1] with
__FOOTER__, etc.

Note that the old header.html,
footer.html, etc. contained HTML code, but
were not actually html pages with <html><body> etc, tags. Thus
the current practice is to use filenames with no extension or perhaps
.txt to differentiate them from complete HTML
pages.

random

Replace with [ad random=1] or custom code. See the [ad] tag docs. Random
and rotate were used to place random or rotating regions on pages, such as
banner ads.

The Random directive in catalog.cfg defines the numbered HTML snippet
files, similar to buttonbars above.

rotate

Replace with [ad ...]. See [random] above.

help

No replacement. Use data functions or variables.

body

Replace with templates. Again the body tag [body 1] etc. defines numbered
body definitions that could be applied site-wide. However, in this case
minivend actually built up the <body ....> substitution using the
Mv_* directives in catalog.cfg.

finish_order

[finish_order] was a conditional tag; if the basket contained anything a
'checkout' graphic would be displayed. No replacement; use [if
items]Message[/if].

last_page

No replacement - this can be emulated by setting a scratch variable on one
page, then using it to build the return URL.

item-link

No replacement, just use [page [item-code]].

loop-link

No replacement, just use [page [loop-code]].

sql-link

No replacement, just use [page [sql-code]].

accessories

Replace with normal data functions.

Compatibility routines

Compatibility routines for many popular tags like [random], [rotate], etc.
are provided in the appendix of this document. To use one, copy it to a
file and put it in your usertag directory. (Tags in the usertag directory
are read in by interchange.cfg by default).

Search lists

Search tags must now be surrounded by [search_region] tag.
This is because multiple searches can be done in a page, with multiple
[more-list] entries, multiple [no-match] areas, etc. It was not really
possible to avoid this and add the feature.

To find all files containing the search list, do:

find pages -type f | xargs grep -l '\[search.list'

That will yield a set of files that need to be updated. You should surround
all parts of the search area, i.e.:

Search conditionals

Search conditionals should now say [if-item-field field] [/if-item-field]
and [if-item-data table column] [/if-item-data]. This allows mixing and
nesting of lists. You may find that the old works in some situations, but
it will not work in all situations.

Form data updates

Added Scratch variable mv_data_enable to gate the update_data function. You
must set it before doing a form update. Prior to this it was possible to
update a SQL database willy-nilly.

Checkout changes

Minivend 4 uses in-page error-flagging on the checkout page. Simplest way
to convert is probably to use the checkout.html from the simple demo as a
start, and move in any customization from the existing site's catalog.html
(headers, footers, logos, etc.) A line-by-line comparison of the data
fields in the checkout page should be performed, adding any custom fields
as needed. Custom error checking in etc/order.profiles may have to be
re-worked, or can be added into checkout.html using the in-page order
profile capability. (Note that etc/order.profiles is called
etc/profiles.order in newly-built Interchange catalogs.)

Remember to update receipt.html and report/report.html with any custom
fields, as well.

[if-field] etc.

The least-compatible things in the tag area are [if-field] (needs to be
[if-PREFIX-field], where prefix might be item|loop by default depending on
the tag. Likewise:

Most other issues have more to do with the catalog skeleton (i.e. simple or
barry or basic or art) than they do the core. For instance, the "basic"
catalog produced for MV3 ran unchanged except for the issues discussed
above.