Merchant 5.5 PR6 and above compatable. Requires MySQL
Latest Versions: 5.422
Write less, Do More.
PCI Net Toolbelt dramatically extends the Miva Merchant
5 page template language like no other module, adding hundreds of new functions in a developer friendly way. Finally you can have the ability to create the
online store you've always dreamed of. Included page
template files show many fully commented, real world examples of how you can script your pages to do things that once
required external modules. More than a collection of tools, Toolbelt turns page templates a robust scripting environment.
MySQL Required: Toolbelt makes extensive use of
advanced MySQL queries and will not run on MIVASQL. Ask your host to upgrade your store. You'll be glad you did.
Toolbelt exposes the inner workings, allowing you to get under the hood of
the powerful Miva Merchant engine. The
Assign
component alone adds over 130 powerful new functions to your pages (see list below). The module contains an expression builder
that lets you lookup a categorized MivaScript function in a list, like toupper() or substring() get a description of what they do,
then copy and paste the resulting code into your templates. But that's just the beginning, there's much more. If
Assign is your toolbelt then Query is an excavator and the Do
command is tunnel boring machine. No other module puts this much power in your hands in such a user friendly way.
Documentation: A product this powerful deserves equally powerful
documentation. The primary documentation is built into the module and always a mouse click away. Clicking the alphabetical index instantly takes you to the command you're looking for, where you will
find a comprehensive reference guide. Additional links provide even greater detail. The exhaustive
online documentation
is second to none. It
includes one of the most comprehensive listings of the internal MivaScript functions available on the web. It clearly
explains the most misunderstood aspects of Store Morph page templates and is a valuable resource even of you don't need
or use the module.
Installation:
It couldn't be simpler. No extra steps or complex instructions . Simply install, activate your license and get to work.
What's New?
PR6, PR7 and PR8 compatible.
Advanced Search: Configurable
search fields including custom product fields.
Drop in user selectable pagination
and sorting on Category, Product list and Search pages.
Previous and Next product buttons; Previously Viewed products.
New Items
Array_Elements: Get the number of elements in the array.
Array_Fromlist: Convert a list into an array
Array_Sort: Instantly sort any array by any member.
SearchArray: Instantly search any array by any member.
BasketEmpty: Empty the basket when a customer logs out.
Dir: Reads the files and folders on your server filtered by file extension
Dir_Subs: Reads the files, folders and sub folders on your server filtered by file extension
DoFile: execute any external .mvc file.
Form_Radio: Display dynamic form controls with a single command.
Form_Select: Display dynamic form controls with a single command.
Search_Files: Index and Search external files on your web server (HTML, TEXT, PDF etc)
SEOName: Converts a product or category NAME into a string suitable for inclusion in a URL.
SelectState: Display more than US in the States dropdown during checkout. Options US, CA, MX, AU
When appropriate the Product and Category_Products items return these additional fields href, price_original,
formatted_price, formatted_cost and quantity (in basket)
New Functions
Name2Code(l.all_settings:product:name):
Converts a product name, or any string, into a format usable within a URL.
StateList_Load_All(l.all_settings:states):
Loads all US states into the array, in this case l.all_settings:states. Returns the number of states.
FinalIndexOf(target, search)
Returns the position, from the left, of the LAST matching search string in target.
GettokenLast(target, search)
Returns the last token string in a delimited string.
Time2Seconds(time_str) converts a time string to seconds.
Given hh:mm:ss returns seconds from midnight using this formula ((hh * 3600) + (mm * 60) + (ss))
IsAnyWordInText(words, text) See if any words in a list is in anther list. We use this as a spam filter
on form emails.
ReplaceChars(source_string, replace_chars, with_chars), Strip multiple characters out of a string in a
single command.
Included Page Templates
Tell a Friend: Let your customers send links to your pages to their friends.
Mini Basket: Keep a running total of the basket. Display it anywhere you desire.
Random Products: Select products at random from all products or specific categories.
Featured Products: Select products for display on your storefront or elsewhere. Simple to
use and maintain.
Delete Expired Baskets: Show you how to automatically delete expired
baskets in your store at timed intervals.
Lookup_Login: Provided as an alternative to the Lookup|Login item giving
you complete formatting flexability.
Password: Shows you how to password protect your page templates.
Sessions: Shows you how to password protect your page templates, AND
create a session cookie so that you stay logged in till the session expires or you log out.
SeoLinks_Demo: demonstrates the use of the new SeoLinks and SeoLink
items.
NTFD_with301_redirects: This advanced. template demonstrates how to do
301 redirects without using .htaccess.
NOIE6: Notify IE6 users that they need an updated browser. Provides
images and links to major browsers.
Store MorphTM Language Enhancements.
Finally you can use every MivaScript function within your Merchant page templates. The assign
and eval components work just like their MivaScript equivalents. You can build complex expressions
for manipulating your data. Toolbelt also adds a host of new functions to the language. In fact every Toolbelt item
allows you to use string and numeric expressions, variables,
or functions,
efficiently reducing the number of steps needed to complete a your work.
Array_Elements: Returns a number of elements in an array.
New Array_Fromlist: Convert a list into an array
New Array_Sort: Instantly Sort and search any array by any member.
Assign: Assign a value to ANY variable, which may be simple or complex expression or which may contain
any MivaScript or Toolbelt function. (listed below).
Availgroup: These fourteen functions provide you with all the
tools you need to manage availability groups, customers, categories and products.
Basket: Used in the Mini basket template, this function provides basket summary information including
number of items, total weight, subtotal, total charges, and basket total.
New BasketEmpty: Empty the basket when a customer logs out.
Benchmark: Allow you to easily determine page template processing time
or time sections of a page like foreach loops, screen, or call functions.
Call_get, Call_put: Call an external web page or post data to an external web page. The results are returned in a string.
Cookie: This item very easily lets
you easily load and save browser cookies. Finally you have a simple way to create persistent global variables or
sessions.
Counter: For use inside loops, counter allows you to increment or decrement a count of the iterations.
CurrencyFormat: Give a number, returns the number formatted for the currently assigned currency.
DateTime_Format: Truly comprehensive time formatting options, like those found in other high level languages.
DateTime_Value: Convert standard date time strings into time values. Makes time calculations or format
conversions simple.
Do: Call external compiled functions contained in any external MivaScript file. Works like MivaScripts MvDO tag or OpenUIs
DOFUNC token. Use global or l.all_settings: variables.
New DoFile: execute any external .mvc file.
For: Loop structure. Remove the restriction of foreach loops. For example: "for|j =0 to g.max
step 2" . Use positive or negative numbers, variables or expressions.
New Form_Radio: Display dynamic form controls with a single command.
New Form_Select: Display dynamic form controls with a single command.
Eval: Print any variable, simple or complex expression to the page.
Event_Timer: Email a report, pack the store, create a batch, retrieve an
xml feed with unlimited event timers. Trigger events at any time or interval, hourly, daily, weekly, or monthly.
Lookup|SQL: Execute a SELECT query on ANY store database table returning the results in a array.
Lookup|Header, Lookup|Footer: Save ANY category header or footer or ANY product header or footer to a
variable by providing the category or product code.
Lookup|ProductCategories: Find each category a product is assigned to and load it to an array. Useful
when a products category is not known.
NumberFormat: This item and the NumberFormat() function returns a number
formally formatted. For example 1214365.346 formats as 1,214,365.35
PercentFormat: This item and the PercentFormat() function returns a
number formatted as a percentage. for example 0.156 would display as 15.6%
Pricegroup: These ten functions provide you with all the tools you
needed to manage price groups, customers and products.
Query: This powerful function allows you to execute ANY well formed
query on ANY MySQL database table within your store, and return the data in a Storemorph Array.
Random_Numbers: Create a non-repeating array of random numbers of any size between 1 and any upper limit.
Reference: The function creates a reference from one variable to
another, such that changes to one will be made to the other. One use would be to convert data in the l.settings
array to a global variable that can be passed to another screen.
New SelectState: Display more than US in the States dropdown during checkout. Options US, CA, MX, AU
Screen: Load and display any page inside another page OR save it to a variable. This powerful
command lets you use page templates as sub screens or program sub routines/functions.
Search_Files: Index and Search external files on your web server (HTML, TEXT, PDF etc)
New SearchArray: Instantly searches the array returning the index if found.
SearchText: This powerful search command allows you to quickly search
any or all fields in delimited text file, and return the matching data record.
New SEOName: Cconverts a product or category NAME into a string suitable for inclusion on a URL.
SendEmail: Allows you to send text or html email from within page templates. Collect any
form data sent to any screen and send it via email.
SortArray: Given a single dimension array, returns an alphabetically sorted copy; very very quickly.
SortCsv: Given a list of comma separated values, returns an alphabetically sorted copy.
Structure: Reveals the internal structure of any store database table.
New Trace: Outputs debugging text directly into you web page so you can
visually see which toolbelt commands are being executed.
Varlist:See Varlist() function. Like a popular free helper module, see what's going on under the hood. Outputs the
complete list of global, local, or system variables to the screen.
Merchant Page Enhancements
Basket: Returns Basket Totals for length (items in cart), weight, subtotal, subtotal currency formatted,
charges, charges formatted, total and total formatted.
BasketButtons: Provides buttons for your basket screen to Continue Shopping, Empty the Basket, and Checkout.
BasketCombined: Makes the combined price (price + attribute
price) available; the product image and thumbnails; the attribute and option prompts, and images.
Updated BreadCrumbs: Provides a breadcrumb trail on category and product pages. Comes in two forms: Output the html OR retrieve the data
allowing you to script the html. Updated to use the Domain SEO Settings to determine the link format.
Cattree_Expanded: Outputs the entire category tree structure at once as
a multi level unordered list, e.i.
tags. Use CSS & JavaScript to create your own horizontal dropdown or
vertical fly out menus. Uses the Domain SEO Settings to determine the format of the links and provides multiple
optional parameters.
Category_Images: Loads the Category Title and Category Tree images.
Category_Load: Returns the specified category letting you put any
category information on any page. Also returns: href, image_title, and image_tree.
Category_Meta: Loads the Category meta keywords and description
Category_Parents: Loads all top level categories (parents).
Category_Products: Returns all products assigned a category, and much
more. It can be used on the CTGY page template in conjunction with the product_list item, or can be used to create
alternate category page layouts. It provides category paging links (e.g. Page: [1] 2 3 4 ) and user selectable
sorting using a drop down box.
Category_Siblings: Loads all categories on the same level as
(siblings) below the one specified.
Category_Children: Loads all categories below (sub categories) below the
one specified.
Custom_Category: Returns the custom category fields for a single
category. Requires MM5 core 17 update.
Custom_Customer_Read/Write. Finally you can use Merchants additional
customer fields to store customer preferences, birthdays, Tax ID, or any other information.
Custom_Products: Returns the custom product fields for a single product.
Category_Paging: Provides category page navigation on category pages. (e.g. Products found in this category: 102 Pages:
1[2]345 Page: 2 of 5 )
hasAttributes: This item returns a number of attributes a product has.
On a category page this can be used to change the Add to Basket button into a More Information link, for any product
that has attributes.
Lookup|Login: This item outputs a form that allows customers to enter
their email address and receive their account login name by email. Comes with the Loogup_Login page template to
provide complete formatting flexability.
Product_BestSellers: Returns the stores best selling products from all
products or by category. You can specify the maximum number of items and the sort order.
Product_Categories: Returns each category record a product is assigned
Product_List: Used on the Product List (PLST) page. Like Category
products it returns all products and provides paging links and user sorting using a drop down box.
Product_Load: Returns the complete product data set, letting you put
any product information on any page.
Products_New: Returns the newest products added to the store. You can
specify the maximum number of items and the sort order.
Product_NextPrev: When added to a product page, Product_NextPrev is
used to create buttons links or image links for Previous and Next products in the category.
Products_Random: Returns randomly selected products from a category or
from all products.
Product_Related: Returns all related products letting you put any
related product information on any page. You can specify the maximum number of items and the sort order.
Products_Purchased: Returns the stores most recently sold products. You
can specify the maximum number of items and the sort order.
Products_Viewed: This item outputs a drop down select box of previously
view products. It can be placed on any page but tracks up to 10 previously view products.
OrderSubtotal: This function provides additional order information
including number of items, total weight, subtotal. Many conversion tracking programs need this information.
RememberMe (Stay logged in): Adds a checkbox to allow customers to stay logged in.
Remember me?
Random_Products: Returns randomly selected products from ALL products OR from specific categories
for display on any page.
Search_Products: Last but not least, this replacement for Merchant search allows you to specify which
fields to search including custom product fields. Provides paging links, user selectable sorting, user selectable
items per page.
SeoLinks and SeoLink: These items provide the simplest way possible to
convert your site to use short links configured under Domain | SEO Settings. If you change your SEO Settings later
all your store links are update automatically.
Toolbelt Functions
Body_innerHTML(): After reading a webpage with Call, Screen or file_read(), use this to return the
portion of the page between the tags
Capitalize(): Capitalizes each word in a string or list.
Compress(): Returns string after removing tabs, leading and trailing spaces and blank lines.
EncodeHtml(): Encodes each character in a string as nnn; where nnn is the ascii character code.\
DecodeHtml(): Reverses EncodeHtml(); Decodes each html character string nnn; where nnn is the ascii
character code.
NEW FinalIndexOf(): Returns the position, from the left, of the LAST matching search string in target.
HardBreak(): This function converts every space in a string (i.e. ascii char 32) into a break tag
isAlphaNumPlus(): The same as isalnum() except it allows you to pass
additional character like a space, period or other punctuation. GettokenCount(): Given a delimited text string, return the number of fields
in the string. You could even use it to count the number of words in a string. NEW GettokenLast(): Returns the last token string in a delimited string.
isEmail(): Return 1 if a valid formatted email address string is found else returns 0.
isURL(): Return 1 if a valid web address string is found else returns 0. Does not confirm the address.
Left(): Returns the left portion of a string up to the number of characters OR first occurrence of
search_string.
NEW Name2Code():
Converts a product name, or any string, into a format usable within a URL.
NumberFormat(): this function returns a number formally formatted with
comma delimiters
PercentFormat(): This function returns a number formatted as a
percentage.
Replace(): Replace some characters with other characters in a string.
Right(): Returns the right portion of a string up to the number of characters OR last occurrence of
search_string.
NEW StateList_Load_All(): Loads all US states into the array, in this case l.all_settings:states. Returns the number of states.
StripHTML(): Returns a string with all html stripped out.
Table_Exists(): Return 1 if the mysql_tablename is found else returns 0.
NEW Time2Seconds(): Converts a time string to seconds.Given hh:mm:ss returns seconds from midnight using this formula ((hh * 3600) + (mm * 60) + (ss))
Varlist(): Like the Varlist item, this debugging function returns a sorted report of global, system or
local variable names, entity expressions, and values. It provides a filter parameter to limit the output.