Try our new AI assistant by clicking the chat icon in the lower right corner.
The Template Branches functionality is located within the User Interface Navigation Menu. Selecting the current branch name will display all branches and options to create a branch and the Branch Manager dialog.
A changeset is one single value in the stack of changes that are being made on a codebase.
When a record is selected the options to Make Working Branch is available along with exporting a CSV, In-Line Edit, Make Primary Branch, Copy Branch Preview URL, and Delete Branch when the action list items are selected.
When the Add Branch button is selected the Create Branch dialog will appear. Here adding the Branch name, choosing the icon color and Copy From template then selecting the create button will create a new template branch.
When Copy is selected from the batch menu action icon the Copy Branch dialog appears and contains a wizard to help copy the current branch to any branch.
Step One: Select Branch
Step Two: Select Changeset
Step Three: Add Notes and Commit
When Merge is selected from the batch menu action icon the Merge Changesets dialog appears and contains a wizard to help merge any changesets in the current branch to another branch.
Step One: Select Branch
Step Two: Select Changeset
Step Three: Add Notes and Commit
When History is selected from the batch menu action icon the History dialog appears where changes can be selected individually and viewed. Changesets can also be reveret from this menu by selecting the record and choosing Revert.
Note: Template Branches are particularly useful when using PageBuilder. For additional information on how template branches can be used with PageBuilder, click here.
Tags can be found at the bottom of the User Interface Navigation Menu with a flyout menu when selected. Here all tags can be viewed and removed as well as added, multiple tags can be added by using a space between words.
Miva Command Line Tool is a comprehensive command line interface tool to help speed up the development process within the Miva software. Once the Miva Command Line Tool is set up locally, global credentials are created using either an API Token or SSH credentials configured in Miva. Using the credentials a remote key will be created to link the local directory with a template branch in the store. After the initial setup is complete template branch assets can be pulled, pushed, updated, and reverted using the core commands. Other useful commands are available like diff, switch, status, log and even a command to create new branches on the store. Learn More
To install run the following command and add the install directory to your path.
Prerequisites include having python (3.6 or higher) and pip installed locally.
Project Repository https://pypi.org/project/miva-mmt/
pip3 install --user miva-mmt
To install with elevated privileges and run, which will install the tool for everyone on the local machine.
pip3 install miva-mmt
To update run the following command.
pip3 install --upgrade miva-mmt
Rollback Procedure.
pip3 uninstall miva-mmt
pip3 install miva-mmt==1.0.2
To create token credential type within the Miva Command Line Tool an API Token will need to be created within the Miva admin.
Navigate to Settings > User Management > API Tokens. Select Add API Token button.
Name: Required to create a token
Access Token: Need to set up credential in the Miva Command LineTool
Allowed IP Address(es): Each access token is restricted to a list of IP addresses you want to have access to make API calls. It accepts a comma separated list of IPs. If you don't have static IP addresses, you can disable it by using 0.0.0.0/0 which will allow any IP address. You may also need to whitepst the short hand for ipv6 whcih is: ::/0
Signature:This is required for the Miva Command Line Tool and will be used when setting up a credential.
Timestamp: The command line tool will work with either Timestamp option selected as it automatically adds the timestamp, but it is recommend to require it for security purposes.
After the token has been created the User Interface group needs to be assigned and can be done by selecting the checkbox next to record then selecting the batch list action [...] button. In the dropdown select the Groups option to bring up the assigned group dialog box. In the batch list, assign the User Interface group to the API token and close the dialog box.
In order to use an SSH credential type a public and private key must be generated. Miva only supports "ssh-rsa" format SSH Keys and not DSA, ed25519 or ECDSA. One way to generate an SSH key in the command line interface is to use:
$ ssh-keygen -t rsa -m pem
This will generate both a public and private key file on the local device. The public key file will have a ".pub" extension and this value should be copied into the Miva user under: Edit Profile -> Manage SSH Authentication. Keep note of the private key path as that will be needed when setting up the ssh credential type within the command line tool.
By passing this optional argument on any command all the requests and responses will output in the terminal window.
Usage
$ mmt -d $ mmt --debug
By running this optional argument a list and information about all the subcommands will be displayed
Usage
$ mmt -h $ mmt --help
By running this command the MMT version will be display
Usage
$ mmt -v $ mmt --version
Outputs information about a local MMT directory
Usage
$ mmt info [-h] [path]
Positional Arguments
path // The path of the directory
Optional Arguments
-h, --help // Show help message and exit
Output
Remote Key: KEY_NAME Store Code: STORE_CODE Branch Name: BRANCH_NAME Credential Key: KEY_NAME URL: https://domain_name.com/mm5/json.mvc Method: Token/SSH Token/UserName: TOKEN_VALUE/SSH_USERNAME Branch Name: BRANCH_NAME Key: BRANCH_KEY Tags: <None> Changeset ID: ID_VALUE Username: USERNAME Notes: NOTES
Lists the changes made to a specific changeset or to a group of changesets
Usage
$ mmt log [-h] [-c C | -C C] [-v] [path]
Positional Arguments
path // The path to the directory
Optional Arguments
-h, --help // Show help message and exit -c C // Get the changes since a specific changeset -C C // Get the changes for a specific changeset -v, --verbose // Include a list of modified files within each changeset
Lists files that have been locally modified
Usage
$ mmt status [-h] [path]
Positional Arguments
path // The path to the directory
Optional Arguments
-h, --help // Show help message and exit
No Files Modified
Diff files that have been locally modified
Usage
$ mmt diff [-h] [filenames [filenames ...]]
Positional Arguments
filepaths // The list of local files to diff. If blank, all locally modified files will be diffed
Optional Arguments
-h, --help // Show help message and exit
Configure settings
Usage
$ mmt config [-h]
List value of saved configuration settings
Usage
$ mmt config list [-h]
Output
diff: <Not Set> editor: <Not Set>
Set a configuration setting (valid values include 'diff, editor').
Usage
$ mmt config set [-h] key value
Positional Arguments
key // Name of the configuration setting (valid values include 'diff, editor') value // Value of the configuration setting
$ mmt config set editor /usr/local/bin/code -- -w
The –wait or -w is a command specific to VS Code to tell the editor to wait until the file is closed before continuing. Different editors may have their own flags like this.
Delete configuration setting
Usage
$ mmt config delete [-h] key
Positional Arguments
key // Name of the configration setting
List, add, set, or delete the branch tags
Usage
$ mmt tag [-h]
Optional Arguments
-h, --help // Show help message and exit
List tags
Usage
$ mmt tag list [-h]
Output
#TAG_NAME
Add one or more tags
Usage
$ mmt tag add [-h] tags [tags ...]
Positional Arguments
tags // The tags to be added
Optional Arguments
-h, --help // Show help message and exit
Overwrite existing tags
Usage
$ mmt tag set [-h] tags [tags ...]
Positional Arguments
tags // The tags to be set
Optional Arguments
-h, --help // Show help message and exit
Delete one or more existing tags
Usage
$ mmt tag delete [-h] [--all] [tags [tags ...]]
Positional Arguments
tags // The tags to be deleted
Optional Arguments
-h, --help // Show help message and exit --all // Delete all existing tags
Usage
$ mmt credential [-h]
List values of all saved credential keys.
Usage
$ mmt credential list [-h]
Name, Method, URL, Token, Username, Filepath
Add a credential
Usage
$ mmt credential add [-h] [-h] --url URL [--http-basic-auth-username HTTP_BASIC_AUTH_USERNAME] [--http-basic-auth-password HTTP_BASIC_AUTH_PASSWORD] [--token TOKEN] [--signing-key SIGNING_KEY] [--ssh-username SSH_USERNAME] [--ssh-private-key SSH_PRIVATE_KEY] key
Positional Arguments
key // The name of the credential key
Optional Arguments
-h, --help // Show help message and exit --url URL // The API URL where API will requests will be sent --http-basic-auth-username HTTP_BASIC_AUTH_USERNAME, -m HTTP_BASIC_AUTH_USERNAME // HTTP Basic Authentication username --http-basic-auth-password HTTP_BASIC_AUTH_PASSWORD, -w HTTP_BASIC_AUTH_PASSWORD // HTTP Basic Authentication password (if the username argument is present and the password argument is omitted, you will be prompted for the password) --token TOKEN // The API token used to make API requests --signing-key SIGNING_KEY // The API signing key used to sign API requests --ssh-username SSH_USERNAME // The Miva Merchant username associated with the SSH credential --ssh-private-key SSH_PRIVATE_KEY // The filepath to the SSH private key
Update a credential
Usage
$ mmt credential update [-h] [--credential-key CREDENTIAL_KEY] [--url URL] [--http-basic-auth-username HTTP_BASIC_AUTH_USERNAME] [--http-basic-auth-password HTTP_BASIC_AUTH_PASSWORD] [--token TOKEN] [--signing-key SIGNING_KEY] [--ssh-username SSH_USERNAME] [--ssh-private-key SSH_PRIVATE_KEY] key
Positional Arguments
key // The key to associate the credential with
Optional Arguments
-h, --help // Show help message and exit --credential-key CREDENTIAL_KEY // The new credential key value --url URL // The API URL where API will requests will be sent --http-basic-auth-username HTTP_BASIC_AUTH_USERNAME, -m HTTP_BASIC_AUTH_USERNAME // HTTP Basic Authentication username --http-basic-auth-password HTTP_BASIC_AUTH_PASSWORD, -w HTTP_BASIC_AUTH_PASSWORD // HTTP Basic Authentication password (if the username argument is present and the password argument is omitted, you will be prompted for the password) --token TOKEN // The API token used to make API requests --signing-key SIGNING_KEY // The API signing key used to sign API requests --ssh-username SSH_USERNAME // The Miva Merchant username associated with the SSH credential --ssh-private-key SSH_PRIVATE_KEY // The filepath to the SSH private key
Delete a credential
Usage
$ mmt credential delete [-h] key
Positional Arguments
key // Delete credential associated with the key
Optional Arguments
-h, --help // Show help message and exit
Configure a remote resource
Usage
mmt remote [-h]
List remote resources
Usage
$ mmt remote list [-h]
Optional Arguments
-h, --help // Show help message and exit
REMOTE_KEY Credential Key: CREDENTIAL_KEY Store Code: STORE_CODE Branch Name: BRANCH_NAME
Add a remote resource
Usage
$ mmt remote add [-h] --credential-key CREDENTIAL_KEY --branch-name BRANCH_NAME --store-code STORE_CODE key
Positional Arguments
key // The key of the remote resource
Optional Arguments
-h, --help // Show help message and exit --credential-key CREDENTIAL_KEY // The key associated with the stored credential --branch-name BRANCH_NAME // The branch name to checkout --store-code STORE_CODE // The store code from which to checkout
Update a remote resource
Usage
$ mmt remote update [-h] [--remote-key REMOTE_KEY] [--credential-key CREDENTIAL_KEY] [--store-code STORE_CODE] [--branch-name BRANCH_NAME] key
Positional Arguments
key // The key of the remote resource
Optional Arguments
-h, --help // Show help message and exit --remote-key REMOTE_KEY // The new remote key value --credential-key CREDENTIAL_KEY // The key associated with the stored credential --store-code STORE_CODE // The store code associated with the remote resource --branch-name BRANCH_NAME // The branch name associated with the remote resource
Delete one or more remote resources
Usage
$ mmt remote remote delete [-h] key [key ...]
Positional Arguments
key // Delete remote resources associated with the key
Optional Arguments
-h, --help // Show help message and exit
Create, delete or list branches
Usage
$ mmt branch [-h]
Optional Arguments
-h, --help // Show help message and exit
List all branches
Usage
$ mmt branch list [-h] --credential-key CREDENTIAL_KEY --store-code STORE_CODE
Optional Arguments
-h, --help // Show help message and exit --credential-key CREDENTIAL_KEY, -c CREDENTIAL_KEY // The key associated with the remote resource --store-code STORE_CODE, -s STORE_CODE // The store code
Branch: BRANCH_NAME Is Primary: True/False Is Working: True/False Preview URL: https://DOMAIN_NAME.com/storefront.html?BranchKey=BRANCH_KEY
Create a branch
Usage
$ mmt branch create [-h] [--color COLOR] --from FROM --store-code STORE_CODE --credential-key CREDENTIAL_KEY --remote-key REMOTE_KEY name
positional Arguments
name // The branch name
Optional Arguments
-h, --help // Show help message and exit --color COLOR, -c COLOR // The color used to identify the new branch in the Administrative Interface --remote-key REMOTE_KEY, -r REMOTE_KEY // The key associated with the stored remote resource // Use a Remote Key to automatically derive the credential key, store code, and parent branch name --from FROM, -f FROM // The branch name from which to create a new branch from --store-code STORE_CODE, -s STORE_CODE // The store code --credential-key CREDENTIAL_KEY, -c CREDENTIAL_KEY // The key associated with the stored credential
Delete a branch
Usage
$ mmt branch delete [-h] --credential-key CREDENTIAL_KEY --store-code STORE_CODE name
positional Arguments
name // The branch name
Optional Arguments
-h, --help // Show help message and exit --credential-key CREDENTIAL_KEY, -c CREDENTIAL_KEY // The key associated with the stored credential --store-code STORE_CODE, -s STORE_CODE // The store code
Checkout a branch
Usage
$ mmt checkout [-h] [-c C] [--ignore-unsynced-templates] [--ignore-unsynced-properties] [--reinitialize] remote-key [path]
Positional Arguments
remote-key // The key associated with the stored remote resource path // The path where the checked out branch should be created
Optional Arguments
-h, --help // Show help message and exit -c C // Checkout a specific changeset --ignore-unsynced-templates, -t // Used to exclude templates // Email Templates / Email settings // Product/Category Headers & Footers // Page Header/Footers --ignore-unsynced-properties, -p // Used to exclude all properties --reinitialize, -z // Reinitialize the state file to the specified changeset. Files that do not exist are added while files that already exist are left unmodified.
Update local files to remote server's version
Usage
$ mmt pull [-h] [-c C] [--force] [filepaths [filepaths ...]]
Positional Arguments
filepaths // The list of local files to update. If blank, all files within the checked out changeset / the specified changeset will be updated
Optional Arguments
-h, --help // Show this help message and exit -c C // Update to specified changeset --force, -f // Overwrite any locally modified files
Commit and push the local files to the remote server
Usage
$ mmt push [-h] [--notes NOTES] [filepaths [filepaths ...]]
Positional Arguments
filepaths // The list of local files to commit and push. If blank, all locally modified files will be committed
Optional Arguments
-h, --help // Show help message and exit --notes NOTES, -n NOTES // Notes describing the changes to be committed
Revert files that have been locally modified
Usage
$ mmt revert [-h] [--all] [filenames [filenames ...]]
Positional Arguments
filepaths // The list of local files to revert
Optional Arguments
-h, --help // Show help message and exit --all, -a // Revert all files
Switch to a new remote source
Usage
$ mmt switch [-h] remote-key
Positional Arguments
remote-key // The key associated with the stored remote resource
Optional Arguments
-h, --help // Show help message and exit
Download Locally
Deploy Code To Production
Note: The following things need to be done manually in admin
Template Branches & Miva Command Line Tool
Miva 10 has introduced several powerful and extremely useful tools to help merchants sell more and easier. Version 10 also included the addition of the largest feature released to date, Template Branches. A whole new set of developer tools to promote quick, accurate, and effective development. The new Template Branches feature combined with Miva Command Line Tool will reduce the development and launch time as well as many other developer-focused benefits.
Sign Up to Take Course
To sign up for the course, visit https://www.miva.com/mivalearn