Kraken Ink is a library of over sixty internal Magento 2 extensions that we use to accelerate the process of building Magento 2 sites. Octopuses (and their cousins, Krakens) use ink as their secret weapon to win in the deep ocean—in the same way we use these extensions to win in the process of building Magento 2 sites.

In addition to the extensions below, Kraken Ink includes a lean Magento 2 theme that makes it faster to customize the frontend.

Featured Extensions

Other Extensions

A/B testing (Google Optimize / Optimizely)

Use Google Optimize or Optimizely A/B experiments or multi-variate experiments on your Magento 2 site.

This extension allows for a merchant to enable usage of Google Optimize by implementing a store setting and allowing them to enter a container ID received from Google. When enabled the necessary code is added to the Google Analytics JavaScript.

Activate Minicart

When a product is added to the cart from the product detail page, the minicart will be activated.

Checkout Account Creation

Allows guest users to create an account by entering a password on the checkout confirmation page.

  • If a guest users creates an account from the checkout confirmation page, the order they just created will be linked to their account.
  • After a user fills out the “Password” and “Confirm Password” fields and clicks “Create an Account”, they will briefly see a “Thank you for registering. Your order has been linked to your new account!” message and will then be directed to their account dashboard.
  • Users who check out as guests but use the email of an existing customer will not be presented with the ability to create an account.
  • A configuration setting allows the merchant to determine whether customer accounts are created immediately or whether the user has to confirm their email first.

Compare Products

  • The compare products block on the product listing page is moved to show above the product grid. Additionally, if no products have been added to compare, the entire block will be hidden.
  • When a product is added to the comparison list from either the PLP or the PDP, the following events occur:
    • The success notification will include a link to the “Compare Products” page. This is especially useful on the PDP since the “Compare Products” block is not visible on that page.
    • The Compare icon will change to the icon set to the less variable of: @icon-compare-full, the default value is a filled in version of the original icon
    • The ‘Add to Compare’ link changes to a ‘Remove from Compare’ link, updating the text, title, and behavior appropriately
    • Applies these changes to all frontend pages to account for widget/CMS links.

Custom Swatch Options

This module adds support for text, hex color, and image swatch custom option types. These custom option types have fixed values (similar to Drop-down or Radio Buttons types).

Example backend configuration

Color/Text Swatch Admin Screenshot

Image Swatch Admin Screenshot

Swatch Frontend Screenshot

Swatch Custom Option Example Frontend Screenshot

Image Swatch Frontend Screenshot

Image Swatch Custom Option Example Frontend Screenshot

Customer Group Payment Restriction

In the customer group edit interface, merchants can specify payment methods that are not available for any customers in this group.

Default Billing Address

This extension modifies the payment step on the checkout to pre-select the default billing address if it is different than the shipping address (native Magento only selects the default shipping address).

Estimate Shipping

This module revises the appearance of the shipping estimator on the shopping cart page in the following manner:

  • The Estimate Shipping section of the sidebar is expanded and no longer collapsible
  • The “State/Province” estimator form element is hidden
  • The “Summary” title is relocated
  • The form shows no shipping methods/prices (even those that do not depend on a zip code) until a zip code has been provided

Screenshot of “No zip code provided”

No Zip Code Provided

Screenshot of “zip code provided”

Zip Code Provided

Google Reviews

Adds Google Reviews functionality to a Magento store. Optionally, merchant can choose to only show Google Reviews request on checkout confirmation page to users who placed orders for carts where all items were in stock.

This extension removes the “My Account” link from the header for guest users. Since guests will already see “Create an Account” and “Sign In” links, the “My Account” link is unnecessary.

This extension allows an admin to hide links from the “Account Links” that a user sees when they login.

High Resolution Product Images

Add high resolution images to product listing, product detail, and cart pages.

Main navigation enhancements, including a “mega-menu” style.

Mega-menu with background image:

Mega-menu example

Displays a full page width drop-down with the second- and third-level category hierarchy.

Cms Content Hybrid:

CMS Content Hybrid example

Displays a full page width drop-down.

Order Comment

This extension provides support for providing an order comment at the time of checkout.

Product Badges

Badges example Badges Product List example

Product Badges allow merchants to show badges on products in the frontend of the site like “New”, “Used”, “Demo”, and “Sale”.

Product Custom Sections/Tabs

This extension allows an admin to add sections/tabs to the product detail page, based on product attributes (text field and text area attributes are supported). Attributes can contain CMS directives, which allows for things like multiple products to output a single CMS block.

This extension makes several improvements to the frontend search experience. This extension has been tested on Enterprise edition both with and without Elastic Search enabled.

  • Adds matching product SKUs to autocomplete results on searches of 3 or more characters.
  • Redirects user to relevant product detail page on searches that match a product SKU or return only 1 result.
  • Redirects user to the parent configurable product with appropriate options selected if a search would direct to a configurable’s child/simple product that lacks individual visibility.

Product Video

This extension enhances how YouTube and Vimeo videos are embedded on product detail pages. In addition to the native Magento behavior where videos are added as thumbnails in the gallery, videos are also embedded inline on the product detail page, allowing them to easily be seen and played by users.

Screenshot of product detail page

Purchase Order Number

Adds a Purchase Order Number field to each payment method. This allows a customer to checkout using a PO number for any payment method. It also allows store managers to filter sales orders by purchase order number.

Sales Emails

This module adds support for product images in sales emails. The image appears in a new column of the order review in the email and is listed before the name of the product.

Shipping Promo

For merchants that offer free shipping over a specific cart subtotal threshold, this extension allows them to inform customers of how much more they need to add to their cart in order to get free shipping. Once customers meet the threshold, they are informed that their order qualifies for free shipping. All messaging takes place in the mini-cart.

Stock Status

Displays real-time stock status (on both product listing and product detail pages) and displays shipping estimate to user.

Style Guide / UI Library

This module displays all the basic HTML elements as well as some Magento specific elements with the styles applied to them so any global changes can be immediately seen from this page. The module also allows for easy additions of elements from modules and themes. The current existing sections include:

  • Typography
  • Tables
  • Buttons
  • Forms
  • System
  • Product
  • Widgets


Subcategory Thumbnails

New display modes allow category landing pages to show an automatic list of sub-categories.


Custom widget types for Magento, including CMS Content Slideshow and Catalog Products Carousel.


The following new types are available when creating a new widget in the admin:

  • CMS Content Slideshow – Outputs the selected CMS blocks as an animated slideshow.
  • Catalog Products Carousel – Outputs an animated carousel of products. Products to be included are defined using the same filters as the native Catalog Products List widget.

Other Extensions

The extensions on this “other extensions” list are more niche and therefore less applicable on most projects.

Admin Create Order Product Grid

This extension makes to changes to the “Add Products to Order” grid when creating an order in the admin:

  • Adds “Thumbnail” and “Visibility” columns to the grid
  • When the grid is first loaded, it will be filtered by “Visibility: Catalog, Search”
  • Additional text field attributes can be added to the grid via a new system config field

Admin Pickup Guest Cart

This extension adds the ability for an admin user to assume control of a guest or customer’s shopping cart, allowing them to assist a guest or customer by adding/removing/editing shopping cart items.


  • Add ‘Cart ID’ column to Abandoned Cart grid in backend (REPORTS > Abandoned Carts)
  • Add ‘Action’ column with ‘Edit’ link Abandoned Cart grid in backend (REPORTS > Abandoned Carts)
  • Display guest carts on grid alongside customer carts
  • Add ‘Cart ID’ to shopping cart on frontend
  • Add ‘Unlink Guest Cart’ and ‘Unlink Customer Cart’ links to shopping cart on frontend

NOTE: When a cart is “assumed” by an admin, the cart is shared simultaneously by the customer/guest and the admin user.

NOTE: The URL for assuming a guest cart includes the quote ID as an encrypted and base64-encoded value for security to prevent the random assuming of guest carts, while assuming a customer session is handled by the MageFan LoginAsCustomer extension.


This extension requires the Magefan Magento 2 Login As Customer extension, as it extends its base functionality covering existing customers. Additionally, some of the custom styling is dependent upon CSS included in this extension.


Frontend View of Customer Cart


Frontend View of Guest Cart


Frontend View of Guest Cart – Mobile View


Updated Abandoned Cart Grid


Amasty GDPR Varnish

This extension customizes the AmastyGDPR extension to allow GDPR functionality to only be rendered for users that reside in countries where the GDPR applies. The Amasty extension allows a limited form of this functionality natively but it relies on the AmastyGeoip extension which has substantial security concerns and is not usable under Varnish.

This extension determines whether or not GDPR is applicable to a user by reading an X-Country-Code header (or cookie). The manner by which this header can be set up is described in the Prerequisites section. Once the Country Code is obtained, the extension compares it to the values configured in the backend ‘GDPR Countries’ section and only allows GDPR content to be shown to those country codes.

Usage Instructions

This extension assumes you have the Amasty_GDPR extension installed. This extension overrides the ‘EEA Countries’ setting provided by the Amasty extension such that it is completely controlled by the ‘GDPR Countries’ setting that this extension adds to the Amasty GDPR configuration section.

Category Urls

Changes category url functionality to remove parent categories. For instance, instead of furniture/tables/oak.html, sit would just be oak.html.

Configurable Product Prices

Shows PLP and PDP configurable product prices as a range of minimum to maximum rather than the just the minimum price

Convert Serialized Data

Provides command-line capability for converting serialized data to json.

Custom Image Upload

This module adds a redesigned “Custom Option” frontend image uploader for products that displays a preview for the image if it is an image file. If the customer uploads a non-image file, it displays the name of the file. Although the functionality is complete in the module, it currently has no built-in styles for the frontend display, so an implementation would need to style the image uploader.


Pre-upload screenshot

Disable Commerce

This module adds system config fields which allow the merchant to disable transactional functionality (add to cart, etc) and/or customer account functionality.

This typically takes the form of hiding UI elements that allow a customer to perform transactional and/or account functionality. For example, add to cart buttons hidden if transactional is disabled, and account links are hidden if account functionality is disabled.

Disable Compare Products

Useful for sites with only a few or very similar products, this extension disables the “Compare Products” functionality as there is no way to do this in native Magento 2.

Email Notification

This extension provides the ability to easily send an email programmatically from within custom code. The extension includes a template named ‘basicemailtemplate’ that expects two array values to be defined, ‘emailsubject’ and ‘emailbody’. If desired, ‘email_body’ may be HTML content to be included in the email.

Filter Product Description

This extension allows an admin to add CMS directives to the product “description” attribute. This can be used for things like embedding a single CMS block in multiple product descriptions.


This extension checks for the existence of an HTTP header X-Country-Code and allows for custom features to be built around what location a request is coming from. It works in conjunction with some server side tools (currently provided by MaxMind) to look up the location of a request IP in their database. Installation and use of this module will require system engineering time to set up these server side tools.

Product Import Utilities

This extension provides product data operations to supplement Magento’s native functionality including the following:

  • Extracting complex data fields in Magento’s native product export format as a separate CSV
  • Embedding a separate CSV of complex data into a single field in Magento’s native product import format
  • Processing a CSV of complex data to delete from the database

Increased SKU Length

Modifies the validation around SKU length to increase the limit to 255 characters (max varchar length).

Manufacturer Size Chart

Size Charts can be added to CMS Static Blocks with an identifier that corresponds to a Product Manufacturer. If a corresponding block exists then a ‘Size Chart’ link is displayed on Product View pages which shows a lightbox containing the static block content when clicked.

The Static Block Identifier must follow the format of ‘sizechart(snakecasemanufacturer)’. Example: ‘My Custom Brand’ => ‘sizechartmycustom_brand’

Define a different logo to be used at mobile widths

Mobile Menu

At mobile screen sizes, make all levels of main menu independently collapsible/expandable in accordion style. This is only relevant for merchants with large category trees that have at least three levels of depth.

Screenshot showing what extension does (good), compared to native (bad):

Mobile Menu


  • All main-menu categories are collapsed by default.
  • Each category level can be expanded or collapsed independently.

Allows clicking on the overlay to close the modal and fixes bugs with modals in mobile Safari.

Load CMS Block in Lightbox

Automatically wires modals/lightboxes to CMS blocks by id

Operational Logging

Allows for additional logging to capture more details for events in production

Order Approval Workflow

This extension provides support for Company and Cost Center based Order Approval.

The extension adds Companies, each of which can have one or more associated Cost Centers. Cost Centers have rules defined indicating what customers can/must approve orders associated with those Cost Centers, and under what conditions.

A customer can be associated with a Company, which will mean they are required to indicate a Cost Center when using the Purchase Order payment method. If the order requires approval according to the Cost Center’s rules, it is placed in a “Pending Approval” status. The extension supports approval via an email notification, and also via My Account.

If an order is approved, it is placed in the usual “New” status. If denied, it is placed in a “Denied” status.

Order Number Prefixes

This extension adds fields to the store configuration for Invoice, Shipment, Credit Memo, and Order number prefixes and uses those values as a prefix for future order, invoice, credit memo, or shipment numbers for that store. This extension will look up the metaid from the salessequencemeta table that is tied to that specific store view for orders and update the prefix in the row in salessequenceprofile for that metaid. Note that this will not change existing numbers and the prefix will only be set after you save a store’s configuration.

Outdated Browser

This module displays a message for users using unsupported versions of IE or other unsupported browsers.

Part Replacement

  • Allows merchants to indicate that a part replaces another part at the product-level.
    • The model page is updated to display the replacement part instead of the part assigned to the model(s) directly, minimizing work for the merchant
    • Any PartsFinder product metadata assigned to the replaced part will be shown for the replacement part
  • Automatically determines compatible models taking replacement parts into account.
  • Allows for arbitrarily deep replacement chains, with up to 4 parts able to replace any given part
  • Adds messaging to a replaced parts page indicating that there are newer versions of the part that should be viewed
    • There are 4 different “Replacement Types” with default messaging but also allows for overriding that messaging at the product-level
      • PN Discontinued
      • PN Change/Replacement
      • Direct to OEM
      • Available while supplies last
  • Adds messaging to a replacement part’s page indicating what products it has replaced

Replacement Type Default Messaging and Meaning

  1. Notification HeaderSee here.
  2. Notification BodySee here
Product Attribute – “Replacement Type”Notification – HeaderNotification – BodyStock StatusAvailable to Purchase
PN DiscontinuedObsoleteThis item is discontinued and there are no known replacements.Hide statusNo
PN Change/ReplacementDiscontinuedIf at least one Replaced By SKU Attribute is populated: “This item has been replaced by the item(s) below.”
Otherwise: “This item is discontinued and there are no known replacements.”
Hide statusNo
Direct to OEMOEM OnlyThis item is only available through your equipment manufacturer.Hide statusNo
Available while supplies lastDiscontinuedThis item has been discontinued by the manufacturer and is only available while supplies last.Display statusYes

Parts Finder

See for more details.

This extension provides a system for managing common parts-related needs for merchants.


  • Creates a relationship between product models as a manufacturer would provide and diagrams that describe the model through the native Magento category system
  • Allows an admin to create “Hotspots” on a diagram, defining parts as belonging to a diagram and helping customers understand exactly what part goes where within a model: Hotspots Example
  • Defining product metadata (specifically “Quantity Needed” and “Additional Data”) that will help customers understand how many of a certain part a model may require and any special instructions or relevant information that may not be otherwise clear: Product Metadata Example
  • Product metadata and model-diagram-hotspot relationships are translated into a responsive and user-friendly display on the frontend for making the process of finding the correct part and buying it as easy as possible for customers: Frontend Example
  • Product detail pages will enumerate the models for which they are compatible, making it clear to users who may not have come from the model page that the part will work for their model as well as showing users what other models the part they are viewing might be useful for: Compatible Example
  • Introduces the concept of “Installation Accessories” and allows an admin user to quickly and easily define products that are useful in the installation of a part or model: Installation Accessories 1

Payflow Pro – Prevent Carding Attempts

This extension monitors when PayflowPro payments (currently only Payflowpro) are declined and allows administrators to configure how many declined payments are allowed before preventing a user from further attempting to place orders. In the event a user hits the configured threshold, configured emails will be alerted and the user will receive a message whenever trying to place an order until the number of declined attempts they have in the last hour have fallen below the defined threshold.

Product Image Switcher

This module adds a ‘media_image’ product attribute to select the alt image for a product. This alternate image will be displayed on the product listing page when the main image is hovered. Any products that do not have an alternate image selected will not have the hover effect on the PLP. Example of functionality in use:

Image switching example


Implements 301 redirects based on a DB table. Precedes bootstrapping of Magento with a manual include.

Regenerate Url Rewrites

Provides command-line capability for regenerating catalog and CMS page URL rewrites en masse.

Rewards Import

This module is used to clear and overwrite customer reward points.

Sales Increment Numbers

Change the sales number increment pad length from 9 to 6. So instead of the first order number being 000000001, it will be 000001. This is useful if a merchant wants to change their increments to start at something like 100,000 (or any number with 6 or greater digits) because with this extension in place, the increment numbers will be “100000”, not “000100000”.

Reference the How to Change Magento 2 Increment ID for Orders, Invoices, Credit Memos and Shipments blog post for details on how to make other changes to the increment IDs.

Quote Extension

The Extension provide mechanism for quote requests, storing this requests in account, future ordering of this requests. Note, extension was built before Magento Commerce B2B released their Quote functionality. We recommend using that functionality if you are using Magento Commerce (instead of Open Source).

Scrolling Product Details

This module changes the product details section on the product detail page to display the sections with a scrolling navigation UI widget.


SEO enhancements for the Magento front-end


Upon installing this extension, you should change the following settings to “Yes”:

  • Stores -> Configuration -> Catalog -> Catalog -> Search Engine Optimization -> Next/Prev Links for Categories
  • Stores -> Configuration -> Catalog -> Catalog -> Search Engine Optimization -> Use Canonical Link Meta Tag For Categories

With these settings enabled, only certain category pages will have canonical urls enabled. This is important so that search engines are able to index paginated content.

Additionally, link tags with rel="next" and rel="prev" will be output to explicitly declare the relationship between paginated URLs.

When the settings above are enabled, canonical URLs will only be output in certain scenarios:

  1. Given that a user has applied any layered navigation filter OR sort order/direction, the canonical url for the page should always be the base category url, without any filters/pagination applied. This is effectively native functionality
    1. If a user is on
      the canonical url should be
    2. If a user is on
      the canonical url should be
  2. If a user is not on a filtered/sorted page, there should not be a canonical output.
    1. If a user is on /men/tops-men.html?p=2
      there should be no canonical url output so that search engines index that page
    2. If a user is on /men/tops-men.html?p=3
      there should be no canonical url output so that search engines index that page
  3. If a user is not on a filtered/sorted page, but the pagination url is “1”, there should be a canonical url output:
    1. If a user is on /men/tops-men.html?p=1
      the canonical url should be:

For best SEO, enabling this setting should be done in combination with rules like the following in robots.txt to disallow access to sorted and filtered category URLs.

Disallow: /*?*product_list_mode=
Disallow: /*?*product_list_order=
Disallow: /*?*product_list_limit=
Disallow: /*?*product_list_dir=

Similarly, robots.txt or the tools in Google Search Console should be used to disallow querystring parameters specific to the site’s layered navigation enabled attributes.


Extends the ShipperHQ extension with hooks to modify rate requests.

Items’ warehouse details and shipping groups can be modified.

Shipping Restrictions

This extension shows a popup to customers in case they have products that contain toxins in their shopping cart and select one of the restricted states as their ship to address. The extension introduces a new product attribute (contains_toxins) which should be set to “Yes” in case you want to mark certain products as toxic. If customers have toxic items in the shopping cart they will be presented a “No Go” popup on the shipping step that they must agree to in order to continue. If customers agree, remove toxic products, or change the ship to address they will be allowed to check out.

Newsletter Subscribe At Checkout

This extension adds a newsletter subscription checkbox to checkout (either shipping or payment step) and allows for configuration of the label used and whether it defaults to checked or unchecked.

checkout screenshot


Override H1 tags for titles on product pages and category pages.

New attributes “Product Detail Page Title Override” and “Category View Page Title Override” allow overriding the main category or product view page title for SEO purposes.

Please note that these attributes modify the in-page heading.