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.
- A/B testing (Google Optimize / Optimizely)
- Activate Minicart
- Checkout Account Creation
- Compare Products
- Custom Swatch Options
- Customer Group Payment Restriction
- Default Billing Address
- Estimate Shipping
- Google Reviews
- Guest Account Link
- Hide Account Links
- High Resolution Product Images
- Order Comment
- Product Badges
- Product Custom Sections/Tabs
- Product Search
- Product Video
- Purchase Order Number
- Sales Emails
- Shipping Promo
- Stock Status
- Style Guide / UI Library
- Subcategory Thumbnails
- Admin Create Order Product Grid
- Admin Pickup Guest Cart
- Amasty GDPR Varnish
- Category Urls
- Configurable Product Prices
- Convert Serialized Data
- Custom Image Upload
- Disable Commerce
- Disable Compare Products
- Email Notification
- Filter Product Description
- Product Import Utilities
- Increased SKU Length
- Manufacturer Size Chart
- Mobile Logo
- Mobile Menu
- Modal Enhancements
- Load CMS Block in Lightbox
- Operational Logging
- Order Approval Workflow
- Order Number Prefixes
- Outdated Browser
- Part Replacement
- Parts Finder
- Payflow Pro – Prevent Carding Attempts
- Product Image Switcher
- Regenerate Url Rewrites
- Rewards Import
- Sales Increment Numbers
- Quote Extension
- Scrolling Product Details
- Shipping Restrictions
- Newsletter Subscribe At Checkout
Activate MinicartWhen a product is added to the cart from the product detail page, the minicart will be activated.
Checkout Account CreationAllows 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.
- 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 OptionsThis 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 Swatch Frontend Screenshot Image Swatch Frontend Screenshot
Customer Group Payment RestrictionIn the customer group edit interface, merchants can specify payment methods that are not available for any customers in this group.
Default Billing AddressThis 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 ShippingThis 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”
Screenshot of “zip code provided”
Google ReviewsAdds 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.
Guest Account LinkThis 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.
Hide Account LinksThis extension allows an admin to hide links from the “Account Links” that a user sees when they login.
High Resolution Product ImagesAdd high resolution images to product listing, product detail, and cart pages.
MenusMain navigation enhancements, including a “mega-menu” style. Displays a full page width drop-down with the second- and third-level category hierarchy.
Cms Content Hybrid:Displays a full page width drop-down.
Order CommentThis extension provides support for providing an order comment at the time of checkout.
Product BadgesProduct Badges allow merchants to show badges on products in the frontend of the site like “New”, “Used”, “Demo”, and “Sale”.
Product Custom Sections/TabsThis 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.
Product SearchThis 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 VideoThis 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.
Purchase Order NumberAdds 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 EmailsThis 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 PromoFor 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 StatusDisplays real-time stock status (on both product listing and product detail pages) and displays shipping estimate to user.
Style Guide / UI LibraryThis 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:
Subcategory ThumbnailsNew display modes allow category landing pages to show an automatic list of sub-categories.
WidgetsCustom widget types for Magento, including CMS Content Slideshow and Catalog Products Carousel. Features 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 ExtensionsThe extensions on this “other extensions” list are more niche and therefore less applicable on most projects.
Admin Create Order Product GridThis 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 CartThis 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. Details:
- 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.Dependencies 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. Screenshots Frontend View of Customer Cart Frontend View of Guest Cart Frontend View of Guest Cart – Mobile View Updated Abandoned Cart Grid
Amasty GDPR VarnishThis 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 UrlsChanges category url functionality to remove parent categories. For instance, instead of furniture/tables/oak.html, sit would just be oak.html.
Configurable Product PricesShows PLP and PDP configurable product prices as a range of minimum to maximum rather than the just the minimum price
Convert Serialized DataProvides command-line capability for converting serialized data to json.
Custom Image UploadThis 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. Screenshots
Disable CommerceThis 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 ProductsUseful 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 NotificationThis 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 DescriptionThis 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.
GeoIPThis 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 UtilitiesThis 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 LengthModifies the validation around SKU length to increase the limit to 255 characters (max varchar length).
Manufacturer Size ChartSize 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’
Mobile LogoDefine a different logo to be used at mobile widths
Mobile MenuAt 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): Features:
- All main-menu categories are collapsed by default.
- Each category level can be expanded or collapsed independently.
Modal EnhancementsAllows clicking on the overlay to close the modal and fixes bugs with modals in mobile Safari.
Load CMS Block in LightboxAutomatically wires modals/lightboxes to CMS blocks by id
Operational LoggingAllows for additional logging to capture more details for events in production
Order Approval WorkflowThis 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 PrefixesThis 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 BrowserThis module displays an message for users using unsupported versions of IE or other unsupported browsers.
- 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 compatibile 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
- There are 4 different “Replacement Types” with default messaging but also allows for overriding that messaging at the product-level
- Adds messaging to a replacement part’s page indicating what products it has replaced
Replacement Type Default Messaging and Meaning
|Product Attribute – “Replacement Type”||Notification – Header||Notification – Body||Stock Status||Available to Purchase|
|PN Discontinued||Obsolete||This item is discontinued and there are no known replacements.||Hide status||No|
|PN Change/Replacement||Discontinued||If 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 status||No|
|Direct to OEM||OEM Only||This item is only available through your equipment manufacturer.||Hide status||No|
|Available while supplies last||Discontinued||This item has been discontinued by the manufacturer and is only available while supplies last.||Display status||Yes|
Parts FinderSee visualpartsfinder.com for more details. This extension provides a system for managing common parts-related needs for merchants. Features
- 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 AttemptsThis 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 SwitcherThis 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:
RedirectsImplements 301 redirects based on a DB table. Precedes bootstrapping of Magento with a manual include.
Regenerate Url RewritesProvides command-line capability for regenerating catalog and CMS page URL rewrites en masse.
Rewards ImportThis module is used to clear and overwrite customer reward points.
Sales Increment NumbersChange 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 ExtensionThe 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 DetailsThis module changes the product details section on the product detail page to display the sections with a scrolling navigation UI widget.
SeoSEO enhancements for the Magento front-end
Category Pagination with Rel LinksUpon 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
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:
- 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
- If a user is on /men/tops-men.html?cat=16&p=2&color=26 the canonical url should be /men/tops-men.html
- If a user is on /men/tops-men.html?product_list_order=name&product_list_dir=desc the canonical url should be /men/tops-men.html
- If a user is not on a filtered/sorted page, there should not be a canonical output.
- 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
- 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
- If a user is not on a filtered/sorted page, but the pagination url is “1”, there should be a canonical url output:
- If a user is on /men/tops-men.html?p=1 the canonical url should be: /men/tops-men.html
robots.txtto 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.txtor the tools in Google Search Console should be used to disallow querystring parameters specific to the site’s layered navigation enabled attributes.