Magento Thought Leadership

I’m on Magento. What Extensions or Tech Partner do I work with?

No more frustration when choosing an SI or Extension

There are over 250,000 merchants on Magento for eCommerce. The vast ecosystem of Magento developers and technology partners is often a driving force for merchants to choose Magento as their platform for growth. One of the greatest benefits of Magento can also be one of the most daunting problems. At some point every merchant struggles with deciding on the right technology partner or extension to meet their need. With so many choices, how do you decide the right choice for your business?

Our clients engage the Kadro team regularly to help identify, evaluate, and integrate potential technology partners and extensions that can satisfy business needs.

So how does the Kadro team help our clients? We start by continually educating ourselves about the possibilities. The solutions and architect teams routinely meet with technology partners to understand their offerings and evaluate whether their solution aligns with any known customer needs. Some of these technology partners we enter into a formal relationship with as you can see on our partner page. Formal relationships provide us better access to technology partner resources and support that we can leverage to benefit our clients.

The solutions teams working directly with clients internally share their experiences, positive and negative, with third party extensions. Kadro uses those experiences to advise clients on what extensions or extension providers to avoid, and which ones clients have had more positive experiences with.

Selecting the right technology partner can be very complex. Is there a cost difference? Are there functional differences? How well does the technology integrate with Magento without development? Can the technology solution also integrate with other systems in our technology stack? So how do we do it? We help separate the sales pitch from the offering. As an example, below is a list we use when our clients are evaluating Digital Marketing Platforms (formally called ESPs – email service providers). These same criteria can truly be used for any technology partner/extension with a few tweaks. Also listed are some unique points on each bullet that we ask our customers to consider.

  • Presales and Sales Engagement
    • The buying journey for consumer, and even businesses, is an emotional decision. You have to feel strongly about a vendor that you are going to partner with for 3+ years.
  • Eases of use of the technology platform
    • How much training will you need to work on the platform? Is there an additional expense to get training?
  • Integration capabilities
    • Out of the box the solution should integrate with Magento, but what if you need to connect to your ERP, OMS or other 3rd party systems. Can this be done? What is the level of effort to make that happen?
  • Account Team/Support
    • Who will you be working with on a day-to-day basis? What is the escalation path when you have issues? Are you comfortable working with these people? By default their team will become an extension of your team.
  • Professional Services
    • Should you need additional help in creative, copywriting or enhanced strategy can they help you? If so what are the associated costs?
  • Overall digital marketing tools
    • Will the tools presented enhance your customer interaction today, tomorrow and into the future?
  • Maturity of the platform and growth potential
    • How long has the partner been in business? How many clients do they have? What is their churn rate?
  • Proposed Contract length
    • Are you looking to kick the tires or make a long-term decision? How does this affect your budget?
  • Access to partner executives
    • Do you have access to the partner executives? Do you need it?
  • IP address warming strategy
    • Very email specific, but this is mission critical for any company who has switched ESPs.
  • Deliverability Service (inbox placement)
    • Again email specific, but very important.
  • Product roadmap
    • What does the future hold? Does their roadmap that resonate with yours?
  • Current Kadro customers’ feedback
    • This is the best! Hear from real life customers who are not references given to you by the sales team. We have found this to be a great way for merchants to talk to other merchants and have a true conversation about the partner being evaluated.

Hopefully the above process resonates with you. This is the service we strive for at Kadro. If you have questions regarding the Magento ecosystem, are looking to build a Magento eCommerce store or seeking a new Magento Partner to help you maximize your investment in Magento contact us here at Kadro!

How to Import Products into Magento for your Enterprise System

Product Management Workflow

Complete eCommere solutions often involve numerous enterprise systems working together. Product management can be one of the most labor intensive and error prone aspects of maintaining your solution.

Clients generally default to three common solutions for handling product management:

  1. Add/Update/Delete products using the Magento Commerce product administration screens.
  2. Upload or add new products using the Magento product import tool.
  3. Installing a rudimentary data upload extension like uRapidflow or Xtento.

If your organization lacks complexity, your product updates are infrequent, or you have simple product configurations these solutions may work for you. For the vast majority of customers we encounter this is not the case. All the above solutions, lack any customer-specific business intelligence on how to organize products (e.g. auto-generation of parent configurable based on sku format, grouping of products into bundles based on particular criteria, etc.)

If you are already using Magento and find your team:

  • Publishing incomplete products
  • Pushing products with errors
  • Manipulating data in spreadsheets
  • Uploading countless different spreadsheets
  • Passing spreadsheets around between team members
  • Having difficulties detecting incomplete products or inadvertently breaking products on updates

… there is a better way.

Some customers can achieve complete automation and never use product management within Magento while most others use a combination of automation and precise workflow to efficiently handle products. A customer's precise capabilities and needs should be reviewed to determine the best architecture for them.

Full automation is only possible if the product data source has complete information capable of properly merchandising (e.g. descriptions, images), pricing, and categorizing a product. Additionally, well defined rules must be established on how new attributes, new attribute values, and new categories are handled.

In these scenarios, the ERP/PIM/Product Data Provider owns the product data and is responsible for product additions and updates. These systems often have limited or fixed formats for data export and are not easily updated. Magento is responsible for ingesting the product feed on a regular basis and performing the following functions:

  • Mapping product feed data to Magento taxonomy
  • Auto generation of new attributes
  • Auto generation of new attribute values
  • Auto configuration/reconfiguration of the category hierarchy
  • Auto generation of new products
  • Auto updating of existing products
  • Auto archiving of deleted products

Depending on the nature of customer products and customer needs, some of the automations may not be necessary. Category structures, attributes, and accepted attribute values may all be maintained directly in Magento.

More often the source of product data does not contain the necessary information to properly sell a product online. In these scenarios, there is joint ownership of product data between systems. The external system feeding product data controls the fields they know and understand and Magento controls and owns the fields necessary to complete the setup of the product.

In these scenarios, a combination of automation and workflow makes sense. Magento ingests the feeds and checks for product existence. If the product already exists, the data controlled by the third-party source is automatically updated. If the product is new, the feed data is mapped to Magento data and the product is dropped into a customer-specific workflow to complete the product setup.

The workflow varies by customer based on their organizational setup. The simplest contains a single role but can easily be split among a number of specific functions (e.g. copywriter, image processor, content manger, approver).

If you are interested in learning more about Kadro’s enhancements to Magento to allow to easier product uploading contact us at sales@kadro.com or visit our Contact Page and fill out our online form.

12 Things to Consider When Moving to Magento Commerce Cloud

Magento Commerce Cloud

Considering moving from an on-premise solution, or alternate cloud hosting solution, to Magento Commerce Cloud?

The great news is the core Magento code does not change. It is possible your Magento solution can be moved into Magento Commerce Cloud with little difficulty. Here are some things to evaluate when considering the move:

1. File System Limitations

The file system on Commerce Cloud is read-only except for the pub/media and var folders. If you have any extensions or custom code that is relying on file system access it is imperative that the code uses the Magento-provided functions rather than pure PHP or PHP framework methods. Attempting to use the non-Magento functions will result in file permission issues.

This is commonly seen in file transfer processes between Magento and 3rd party systems or the generation of log/activity files.

2. Fastly Cache Integration

If your Magento solution is not already integrated with Fastly for CDN and caching, there are a few things to consider. Any code that defines blocks that are not cacheable will cause Fastly to not cache entire pages. This is considered bad practice by Magento. If a block isn't cacheable, the block should be delivered after initial page load via an AJAX request back to the server. Occasionally we see this in custom code, but more often see this in poorly executed third party extensions.

Fastly does provide a tool for you to verify that the caching is working correctly on your site.

Your current CDN solution will no longer be necessary.

3. 301 Redirects

Commerce Cloud only provides limited redirect functionality by default. Simple redirect rules can be applied to your corresponding YAML file. If your current solution has pattern-based redirects (e.g a legacy system using request parameters to define pages) you will need to reimplement these redirects as VCL snippets to install into Fastly.

4. File System Access

Commerce Cloud requires that server access runs through SSH key exchanges. If you have current integrations or business processes that presumes unfettered access to the server or basic login/password credentials, they will need to be upgraded to use SSH keys. Any processes that are leveraging file copies or basic ftp will need to be revised to instead use sftp to transfer files to and from the Commerce Cloud server.

In the event that your local processes cannot accommodate the more secure ssh key exchange, you will need to revise your Magento installation to pull and push from the Magento side rather from your internal application side.

5. Database Access

Commerce Cloud only allows direct access to the database instance from the application server. To access the database you will need to use your registered SSH key and use SSH tunneling. Tools like DbForge will allow you to setup the SSH tunneling and access that database like you would in normal circumstances.

Database administration can be accomplished through a tool that supports SSH tunneling or by ssh'ing to the application server and using the MySQL cli interface.

6. WordPress

Numerous non-cloud installations still use WordPress for blog content. This is not recommended by Magento due to the security vulnerabilities associated with WordPress and is forbidden within the Commerce Cloud setup. Only in rare circumstances (e.g. you have a team of WordPress experts, use many WordPress extensions, and have significant content separate from the e-commerce solution) would maintaining WordPress make sense.

There are several blog extensions that provide popular blog features and serve as a reasonable replacement for WordPress. If your solution must continue to use WordPress you may need to reorganize your site to ensure WordPress will be installed in a separate server infrastructure apart from Magento Commerce.

7. Domain-based Licensed Extensions

Some extensions limit their use by domain names. This licensing structure is incompatible with Commerce Cloud. Commerce Cloud allows customers to spin up new environments with a few button clicks. Each of these environments will have a new domain name. At a minimum your site will have four domains (production, staging, integration, and local development). If your site has multiple stores and the stores use unique domains, each additional store will be another 4 domains at a minimum.

8. Realtime Integrations

If your application is relying on real-time communications to your ERP or OMS system, you may have been leveraging the fact that your system was within the same LAN (local area network) as Magento. With Magento moved to the Commerce Cloud there will be significant latency issues compare to a LAN connection that may make your solution untenable. You may need to work with the cloud infrastructure team to make special provisions for traffic between your server environment and the cloud environment.

9. Active WAF

The default setup for Commerce Cloud only includes a passive WAF from Fastly. If you have suffered through some DDOS attacks and are using active WAF's from companies like Cloudflare you have to consider a few options:

a. Subscribe to the Fastly Active WAF in addition to the default options.

b. Setup a double proxy that routes Cloudflare (or like) -> Fastly -> Magento (not recommended by Magento).

c. Forgo your current active WAF setup and work within the passive WAF capabilities

10. Bulk Data Loading

Commerce Cloud does not allow for bulk inserts into the MySQL database using the PHP MySQL interface. If you are bulk inserting data, you will need to configure the YAML file to specifically add the bulk operation permission to the database user.

11. Composer-based Deployments

Commerce Cloud uses GIT and composer to execute deployments. If you have made modifications to the vendor folder (and you should never do this), these changes will be lost on deployment to cloud. The deployed code in the vendor folder will be completely determined by the composer.lock file.

If you have hot fixes from Magento, they will need to be placed in the m2-hotfixes folder. When placed there, the hot fixes will be auto-installed on each deployment.

If you have been disabling extensions by editing the config.php file, you will need to modify a deployment file to make sure that they remained disabled after a deployment. Direct editing of the config.php on the cloud post deployment will not work.

12. Local Development Environments

Lastly, a common misunderstanding for customers new to Commerce Cloud is that the integration environment is where development takes place. Developers should be running the system on their own local environments to take advantage of modern development tools like PHP Storm.

If you don't already have local development environments, plan to spend some time setting up those environments. This includes a separate GIT repository for tracking all code changes within the standard GITFlow process. Commerce Cloud GIT is not your source code repository, rather it is simply the mechanism for pushing application builds to an environment.

Magento Commerce Cloud Demands Your Attention

Magento Commerce Cloud Demands Your Attention

I have heard the noise from other system integrators;

  • Magento Commerce Cloud is hard to work with
  • We prefer our technology stack
  • My system engineering team wants more control
  • The Magento Commerce Cloud support team is not responsive
  • The Magento Commerce Cloud is too immature
  • and on and on…….

I must admit it, I do not get it. The single greatest achievement for Magento 2 Commerce is the introduction of the cloud infrastructure. I am serious. Yes, the code architecture is vastly improved and the growth in content management is fantastic. Magento 2 is across the board a vast improvement over Magento 1. Yet, none of it compares to Magento Commerce Cloud.

So why all the push back?

Why are some resisting?

Why would anyone not recommend Commerce Cloud versus self-hosted?

Yes there are times a customer has unique requirements that requires on-premise hosting. Other times customers want their own IT staff to manage their servers. Those customers will never use Commerce Cloud. Everyone else should be using Commerce Cloud.

When the choice is up to us on what to recommend to a customer, we choose Commerce Cloud every time. No question. All we have to do is look at our Magento customer base and document the hosting related issues we have encountered in the last two years to understand anything besides Cloud is simply not the best choice.

Hosting and environment problems stink. There is always urgency. There is always finger pointing. No-one is happy. Customers push back on those large bills to address hosting emergencies. Anyone who has been responsible for an e-commerce site has experienced this pain. Here's the proof in the proverbial pudding:

15% of Magento clients are not on Commerce Cloud. They represent 90% of the hosting issues we have to deal with!

The problems are numerous and span the entire hosting spectrum. Here are just a few:

  • Auto-OS updates breaking Magento
  • Physical hardware failure
  • Poor caching solutions
  • ISP security breaches
  • Poor system monitoring
  • Insecure system configurations

Some hosting providers don't understand Magento at all and others have "experts". Unfortunately, those experts are rarely involved until you have gone through multiple tiers of support and a problem remains unresolved. Our customers still call us first when there is a problem. They may be paying for hosting company support, but they rely on us because we are more responsive and are capable of determining if the issue is hosting or application related. For us, the hosting companies simply don't provide much value. We spend much of our time explaining to the providers why what they are suggesting doesn't even make sense (they almost always want to upgrade hardware/software before they really understand what the root cause of the issue is).

Before you think that my system engineering team just stinks, a number of these issues are from inherited projects from other system integrators that are clearly not following Magento's best practices. That tells me one of the very things that Commerce Cloud was created to address over Magento 1 is still happening in Magento 2. Outside of the Commerce Cloud, Magento SIs are still getting it wrong.

Commerce Cloud is of course not perfect. No hosting is. We have experienced a few issues and had some miscommunications. Yet we are on the same team, Kadro and Magento, working together for our joint customer and have worked it out every single time. When Magento published that they had no system downtime during the holiday season, that should have been a wake up call for the doubters. I know we experienced NO system issues during the holidays from any of our clients on Magento Cloud, NONE!. It was amazing. To be honest I was in a bit of disbelief ... but how wonderful. This is the future and the future is now.

10+ Reasons Why Magento Commerce Cloud is the Solution for You

10+ Reasons Why Magento Commerce Cloud is the Solution for You

Why is Magento Commerce Cloud the right solution for you? Here a few reasons why we believe Magento Commerce Cloud is the right solution for hosting your Magento solution.

  1. Magento Commitment to Site Excellence

    Magento's reputation is on the line, they know it and act accordingly. Magento has demonstrated to us that they are committed to ensuring that customers' sites perform well. The commitment extends well beyond the initial configuration. Magento monitors your system to:

    1. Identify potential performance issues on live systems.
    2. Monitor system usage to ensure your site stays within acceptable performance metrics.
    3. If for some reason your site experiences slowness, they proactively reach out and are available to help diagnose the problem.
  2. Guaranteed Right-sized Provisioning

    Something we have never experienced before. Magento Commerce Cloud won't allow you to deploy your site to an undersized environment. Magento Commerce Cloud won't configure an environment that is not sufficient. Your key site metrics (peak page views, transactions, concurrent users, concurrent admin users, etc.) are factored into the resources you will need to have a performant system. Hosting companies ask you want you want, Magento Commerce Cloud educates you what you need.

  3. Knowledgeable Hosting Staff

    Unlike any other hosting provider, the Commerce Cloud team know and understand the complete Magento environment infrastructure. They are experts in configuring Magento. They know and have implemented Magento best practices. Your site will not be a snowflake, it will follow the proven server architecture to achieve the best performance for your site.

  4. Staging Environment that matches production

    Each Commerce Cloud setup includes a production and a staging environment. The staging environment runs the same services and software that the production environment does. This allows site changes to be fully vetted before pushing to production.

  5. Simplicity of Server Access

    Getting access to the servers is simple. No special VPN clients required. Add a user through the web portal and assign them a role. Developers and support staff need only an SSH key and they can be accessing environments in minutes.

  6. Docker instances for development

    In addition to have a staging environment that mirrors production for quality assurance and user acceptance testing, Magento provides a docker setup so that your development team can also develop in the same environment as the code will eventually be deployed in, eliminating unfound errors during deployment because of mismatched environments.

  7. Ease of environment replication

    Magento Commerce Cloud makes it very simple to copy an upper environment down into a lower environment or to spin up a new environment based on an existing one. Want to do some testing with the latest production data, no problem. Want to give a 3rd-party developer access to their own environment to track down an issue with their code or service, no problem.

  8. Up-sizing of environments

    Part of the Magento Commerce Cloud package is a set number of days that Magento will upsize your environment during peak usage periods. You can even have Magento auto-upsize your environment when they determine that resources are being maxed out. Whether it be for the holiday season at the end of the calendar year, on specific catalog drops throughout the year, or the end of the government's fiscal year, your environment can be increased to handle the server load you know is coming.

  9. Blackfire, Fastly, New Relic

    Magento Commerce Cloud bundles in a rich suite of services to help ensure your site reaches its optimal performance. Fastly manages your SSL certificates, your web application firewall, and your CDN. New Relic provides in-depth performance analysis of the entire application stack. Blackfire allows you to debug site issues directly on production without negatively impacting your running site.

  10. Build Tools

    Magento Commerce Cloud makes pushing new builds to a server environment easy. A simple GIT push installs new code and initiates a complete rebuild of the environment.

  11. Best Practice Configurations

    Sites on Magento Commerce Cloud follow best practices for performance and security.

  12. Continued Process Improvement

    Magento Commerce Cloud is fairly new. The tools and configurations available today have improved since initial launch. Magento is committed to continuing to improve what is already the best solution for customers.