Something Digital - magento

MySQL Best Practices for Upgrading to Magento 2.3

If you’re a member of the Magento community, you’ve probably heard that Magento has declared end of life for 2.1.x support to be June 2019 (that’s now!). As Magento 2.1 approaches end of life, we at SD have started the processing of upgrading a number of our clients from 2.1 to 2.3, the latest major version of Magento 2.

Because of the number of core data changes that come along with the upgrade from 2.1 to 2.2 alone (i.e. the move from serialized strings to JSON), we ran into a few issues during the initial process of deploying a 2.3 instance to a staging environment. The most challenging issue came in the form of a MySQL error during the setup:upgrade process. If you’re unfamiliar with this particular Magento command, it’s used to perform changes to the database that the application code will require. Essentially, modules can be created to make changes to preexisting database tables, or even create new ones for their own use. Because of the conversion of serialized data to JSON in many of Magento’s core tables, including customer and sales data, this process can take a very, very long time to execute depending on the amount of data in your database.

Just to take a step back for a second, I was recently fortunate enough to have the opportunity to attend on online Oracle course for MySQL Performance Tuning. At the very core of understanding how to tune your MySQL instance’s performance lies the requirement that you must establish a consistent baseline of which to work off of. Along with setting this baseline, comes the responsibility of making sure that test environments have a similar amount of data and load on them to accurately test any updates. Clearly for us, it is of the utmost importance to have near identical replication of production data in a staging environment for us to test (and benchmark) the process of converting these loads of data for these upgrades. For a number of our clients, this means making sure that we have enough anonymized customer and sales data to give us an accurate representation of how long these deployments will take, or if we’ll run into issues in a production environment.

And run into issues we did! Aside from the usual errors one would expect to run into caused by corrupted serialized data, or incompatible 3rd party modules, we ran into a rather bizarre (see: misleading) MySQL error during that setup:upgrade process on one of our Community Edition clients with a large amount of sales data. See the error below:

Warning: Error while sending QUERY packet. PID=14322 in /vendor/magento/zendframework1/library/Zend/Db/Statement/Pdo.php on line 228

And that’s all folks! No other exceptions, errors, warnings, clues. Nada. Digging into the code a little further, Magento was attempting to query the database, but when the MySQL instance unexpectedly threw an error during execution of the query, the application code wasn’t handling it. So, all we were left with was this somewhat vague error message from MySQL.

If you’re unfamiliar with this error, a quick Google search will point you in the direction of increasing the max_allowed_packets variable on your MySQL instance. Which is what we did… again and again until we maxed out the variable at 1G. So, what gives?

As it turns out, this particular staging instance’s MySQL instance had been greatly modified. Many variables were not only changed from the default, but drastically different than what was configured on production. Which might make sense right? Production experiences heavier loads than staging, duh. But if we go back to proper performance tuning and the goals we mentioned above, we should have remembered to not just replicate the data in staging, but the MySQL instance itself.

One system variable in particular had been significantly decreased in staging, and that was the wait_timeout variable. As defined in the official MySQL Documentation this variable defines “the number of seconds the server waits for activity on a non-interactive connection before closing it.”. We increased this variable as necessary, re-ran the deployment, and now everything worked– the deployment, specifically setup:upgrade, was successful. So again, what gives?

We came to understand that one of the queries – the query referenced in the error above – was actually timing out because it was waiting on another very large query to finish. We were able to replicate this behavior in a local environment when reducing this wait_timeout variable, running two competing queries at the same time, and constructing one of these to be very large and time consuming.

There is no way that we would have run into this issue prior to a production deployment had we not made an attempt at replicating the live MySQL instance and its data in a test environment. Overall, I think our team learned a valuable lesson about both the size of upgrading from 2.1 to 2.3, and the importance of data replication in a test environment.

Written by: Jeremy Dennen, Back End Developer

Something Digital - magento

Securely Connecting Magento BI to Magento On-Premise 

Magento BI (“Business Intelligence”) is an analytics platform which aggregates data from various sources to create beautiful and actionable dashboards and reports. If you’d like to learn more about what Magento BI is and does check out our blog post “Magento BI and why you need it”.

In this blog post, we’ll look at what’s involved with connecting Magento BI to Magento from a technical standpoint, and how to do so in the most secure manner possible.

How Magento BI Connects to Magento

Per Magento’s official documentation, Magento BI connects to Magento through a MySQL connection. You’ll also see that an SSH tunnel is recommended for the connection. We agree with this recommendation as it ensures that the connection is encrypted and allows you to keep port 3306 completely closed from public access.

Securely Setting Up the Connection via an SSH Tunnel

When setting up the connection between Magento BI and Magento the principle of least privilege should be followed. In other words, Magento BI should be given the minimum level of access required on the Magento system to function.

Magento also provides documentation on setting up the connection via an SSH tunnel which follows this principle well. A few important things to call out:

  • A dedicated Linux user should be set up for Magento BI.
    • We recommend using a restricted shell as documented here.
  • A dedicated MySQL user should be created.
    • The user should not be given write access to the database as documented here.
    • Access should also be limited only to the required tables (e.g. the connection does not need access to the admin_user table).


Additionally, in an environment using master / slave replication, Magento BI should be configured to connect to the read slave, not the master.

Magento Commerce Cloud

If you are using Magento Commerce Cloud the process differs and is documented here.

Written by: Max Chadwick, Technical Lead

Adobe Experience & Magento

Something Digital will be at Magento Imagine 2019

Imagine was a blast last year and the Something Digital team can’t wait to see what Magento has in store this year!

SD turns 20 this year, visit booth #121 and celebrate with us! Stop by to get some premium swag or talk to one of our experts on design, development, marketing and more! Feel free to reach out in advance, any one of our experts can be booked through Brittany at [email protected]

[Win Something]

Drop off your business card or join our Mercury Stamp Game for a chance to to win a MacBook Air, Malin+Goetz Skincare Set or Nintendo Switch! Winners will be announced at the following times:

  • Monday, May 13 at 6:00PM
  • Tuesday, May 14 at 6:00PM
  • Wednesday, May 15 at 12:00PM


[Join Something]

We’re pretty proud of our SD team members represented onstage this year at Imagine. If you want to catch one of the sessions you can see the schedule below.


  • Margaux 2, 11:15AM-12:00PM: Anheuser-Busch InBev: B2B Digital Transformation at a Global Scale
    • Featuring: Carrie Weidenbach & Jonathan Tudhope, Something Digital
  • Lafleur 1, 2:30-3:15PM: Optimizing Mobile Conversion: 7 Surprising Results from a Magento Community Study
    • Featuring: Caitlin Mekita, Something Digital
  • Encore Theater & Latour 2, 4:00-5:30PM: General Session and Keynote
    • Featuring: Phillip Jackson, Something Digital



  • Encore Theater & Latour 2, 9:00-10:30AM: General Session and Keynote
    • Featuring: Phillip Jackson, Something Digital
  • Encore Theater & Latour 2, 6:15-8:00PM: General Session and Keynotes
    • Featuring: Phillip Jackson, Something Digital



  • Encore Theater & Latour 2, 11:00AM-12:30PM: General Session and Commerce Sneaks
    • Featuring: Phillip Jackson, Something Digital


We look forward to seeing you in Vegas!!!

Something Digital - magento

Magento Association Task Force

At Magento Live EU, Magento provided a big update on the Magento Association, a new independent non-profit organization that was announced earlier this year at the Magento Imagine 2018 conference.

In his keynote session, Magento CEO Mark Lavelle said “The Magento Association… has come to life and is moving forward”. He revealed that the Association is being spearheaded by a community Task Force on which Something Digital’s very own Brian Lange is seated. The other task force members are Jenna Warren (Creatuity), Susan Peterson (Wagento), Guido Jansen (Randstad), Alessandro Ronchi (Bitbull), Danny Verkade (Cream), and Gabriel Guarino (Simplific). The task force is focused on mission, culture, bylaws, strategy, and establishing the first board of directors. Criteria for selection to the task force can be found here.

He announced the Association’s mission statement which was created by the Task Force: “The Magento Association advances and empowers its global community and commerce ecosystem through open collaboration, education, and thought leadership”. Mark finished with “Thank you to the members of this task force – I think they deserve a round of applause”.

Magento is employing SmithBucklin, an association management company based in Chicago, to assist with creating the new organization. SmithBucklin has assisted with association formation and stewardship since 1949 and has consulted with groups from several industries including Fuel, the Palo Alto Networks User Group and OHUG, the Oracle HCM User Group.

Magento will be providing monthly updates on the progress of the Magento Association on their forums. On the forums they have posted the mission and culture statements developed by the Task Force. The Culture Statement of the Magento Association really speaks to the heart of what has made Magento so great over the last 11 years:

Culture Statement

We the members of the Magento Association will:

  • Welcome and reflect all members of the global Magento ecosystem.
  • Seek out and embrace a diverse community.
  • Be transparent and accountable to each other.
  • Act with thoughtfulness, fairness and integrity.
  • Focus on activities that create mutual success.
  • Encourage and empower collaboration amongst stakeholders.
  • Foster passion and innovation.
  • Challenge each other to continuously adapt and grow.
  • Safeguard the long-term financial viability of the association.
  • Support each other in keeping the Magento ecosystem healthy.


Something Digital is looking forward to the impact and benefit of the Magento Association and extends a big congratulations and thank you to Brian and the rest of the Task Force.

*Magento account login needed for links
Adobe Experience & Magento

What is Adobe Experience and How is it Applicable to Your Business?

This past May, Adobe acquired Magento “in a bid to capture a bigger slice of the digital-commerce industry from Inc. and Oracle Corp.” This news may seem as if it has little bearing on your day to day life, but it’s actually worth thinking about, especially if you plan on purchasing a third-party solution to round out your Magento solution in the next year or two.

First, let’s address some semantics. Adobe has two distinct product suites with similar names that people use interchangeably: Adobe Experience Manager and Adobe Experience Cloud. They’re not the same. The former is an enterprise-level platform, used by the likes of Nissan and Hyatt. Adobe Experience Cloud is a suite of Adobe-built or Adobe-acquired solutions integrated into a single platform. That’s where Magento sits.

Adobe Experience Cloud offers a lot of functionality that ecommerce managers need, many of which are redundant to solutions available via the Magento ecosystem.

Most well known is Adobe Analytics, an enterprise-levelt analytics platform, formerly known as Omniture Sitecatalyst. Why would you consider using Adobe Analytics? If your business is competitive to Google, you may not feel comfortable sharing your data via Google Analytics. If that’s the case, Adobe Analytics may be a good option for you.

Adobe Experience Cloud also offers Adobe Audience Manager, which is a data management platform (DMP) that allows you to glean insights into who your audiences are, create segments based on those insights, and offer a relevant experience to those audiences across all of your touch points (your mobile app, website, social media, forums, etc).

The DMP will allow you to identify commonalities among certain audience members — say moms who live on the west coast and like red shoes, and moms on the east coast who prefer blue shoes. You can create a “red shoe” and “blue shoe” audience segment, and ensure that when they go on Facebook or your mobile app and see your ads, those creatives will feature the right color shoe.

Additionally, it can link multiple devices to the same user, so that you can recognize the consumer and present a unified experience, regardless of whether she interacts with your brand via your website or mobile app at home or in the office.

Another tool offered in the Adobe Experience Cloud is Adobe Advertising, which includes paid search and ad buying functionality, along with access to an ad network with personalization capabilities. Adobe Advertising allows you to launch multi-channel digital campaigns at scale, all from within Experience Cloud.

Adobe Target, formerly Omniture Test and Target, is a personalization solution that makes it easy to identify your best content through tests that are easy to execute and can deliver the right experience to the right customer.

And of course, with Magento, Experience Cloud now has a robust ecommerce platform.

There are some interesting things about this arrangement. For instance, Experience Manager, the CMS, also sits in that ecosystem, and that elevates Magento’s platform to a unique position: it is the only component of the Experience Cloud that is a platform-based solution with an ecosystem of solutions that are competitive to these other Adobe products products.

What Adobe Experience Manager Means for You

The Adobe acquisition of Magento, and Magento’s integration into Adobe Experience Cloud means you have access to Adobe’s personalization and audience segmentation solutions, which are more sophisticated because they leverage machine-learning optimization.

As a manager of an ecommerce site, the real value of the Adobe product suite will be its eventual seamless integration with Magento. In the future, you will be able to adopt an Adobe product — Adobe Audience Manager or Adobe Target — with just a click of a button. This prospect will offer more than convenience (although convenience is certainly a plus). The seamless integration will mean that the applications will be able to share data, and inform how each is optimized. For example, the personalization you drive on your website can be tied back to your advertising campaigns. With all solutions within the Adobe ecosystem fully integrated, you will have a coordinated solution that makes it easy to support the entire lifecycle of the customer.

Finally, with Magento integrated into the Adobe Experience Cloud, your business will have an easy path to migrate into a much larger platform.

Those are some of our initial thoughts on the Adobe acquisition of Magento. We will keep you informed of the interesting opportunities as they rise, so that you can plan for the future.

Written by: Phillip Jackson, Ecommerce Evangelist

SD Office Hours: Ask Us

SD Office Hours: Ask Us About Magento, Ep. 21

Welcome back to SD Office Hours: Ask Us About Magento! Wow 21 episodes! If you want to learn more about Magento watch the video below.


Want to know the question and answers asked without watching the whole video? Check out the cheat sheet below!

  • You created an extension that improves Magento 1 Enterprise Edition’s indexer performance. You also worked with Magento to improve out of the box indexer performance in Magento 2. Can you talk a little bit about the extension and how you might solve this on Magento versions that this is compatible with, for example, Magento – 00:38 – 13:10
  • We’ve had some clients ask about customer specific pricing. Can we talk about some of the downfalls of this and some possible solutions? – 13:18 – 28:45
  • Magento has recently released some improvements to their cloud hosting. Can you start us off and talk about those? – 28:50 – 40:45
  • What’s next on SD’s event and content agenda? – 40:50 – 44:10


Join us live for the next SD Office Hours on Facebook or join us through zoom! You can find our schedule on Facebook and make sure you RSVP so you never miss an episode!

SD Office Hours: Ask Us

SD Office Hours: Ask Us About Magento, Ep. 20

Welcome back to SD Office Hours: Ask Us About Magento! Hard to believe we’re already at 20 episodes! If you want to learn more about Magento watch the video below.

Want to know the question and answers asked without watching the whole video? Check out the cheat sheet below!

  • What are some guidelines on when a client should choose middleware over other integration options? – 1:10 – 11:44
  • Currently I’m using the Instant Purchase that’s baked into Magento for BrainTree. I have it configured so that the cheapest shipping method is automatically chosen. The issue is the cheapest is always In-Store pickup. How do I solve this problem? – 11:52 – 31:50
  • How were the Magento MeetUps? What’s next on SD’s event and content agenda? – 32:00 – 37:20


Join us live for the next SD Office Hours on Facebook or join us through zoom! You can find our schedule on Facebook and make sure you RSVP so you never miss an episode!

SD Office Hours: Ask Us

SD Office Hours: Ask Us About Magento, Ep. 18

This episode of SD Office Hours is a special one! We get to welcome back Brian Lange to the show!

Want to know the question and answers asked without watching the whole video? Check out the cheat sheet below!

  • What do you think Adobe’s acquisition means for Magento and it’s merchants? – 01:20 – 09:25
  • Magento recently released version 2.2.5. Max, can you give us an update on what is in this newest update? – 09:29 – 18:45
  • There are thousands of extensions on the Magento Marketplace now. How would you recommend a merchant go about selecting integrations like tax providers, ESPs, search providers, etc? – 18:55 – 33:00
  • It’s time for a shameless pitch of SD! What’s new in the SD world? Any events we’re attending? Any thought leadership we’re doing? – 33:01 – 41:00


Join us live for the next SD Office Hours on Facebook or join us through zoom! You can find our schedule on Facebook and make sure you RSVP so you never miss an episode!

SD Office Hours: Ask Us

SD Office Hours: Ask Us About Magento, Ep. 17

Welcome back to SD Office Hours! After a short break, we are back in action! If you missed our latest episode we answered your burning questions on GDPR, the PWA from Magento, and whether Phillip got to meet Jamie Foxx at Imagine (spoiler alert he didn’t).

Want to know the question and answers asked without watching the whole video? Check out the cheat sheet below!

  • Tell us about your experience at Imagine – what was it like to MC? Did you meet Jamie Foxx? – 01:40 – 09:30
  • What’s the latest on Progressive Web Apps with Magento? Phillip has been doing live streams – how does one get started? – 09:35 – 20:00
  • Amasty just released a GDPR module. Magento has a rather large FAQ about the subject. Thoughts? What is SD doing for GDPR? – 20:01 – 29:40
  • Have you seen customers mass deleting products on M2? What is the issue here and how do we fix it? –  29:43 – 41:50


Join us live for the next SD Office Hours on Facebook or join us through zoom! You can find our schedule on Facebook and make sure you RSVP so you never miss an episode!

Something Digital - magento

Magento Imagine Recap

We knew going into Magento Imagine this year that it was going to be one for the books. With a record number of attendees, SD featured on multiple panels and speaking sessions, and our very own Phillip Jackson as MC we knew we had to make this our best Imagine to date and we have to say, Imagine did not disappoint this year. Amazing sessions, Jamie Foxx as the Marquee Keynote Speaker (if free comedy shows are your thing, they’re ours) and the cherry on top of the sundae? SD taking home the Magento Shooting Star Award!

Imagine was packed this year with a record number of merchant attendees and Magento didn’t disappoint with the content they provided both merchants and vendors. Check out our top three takeaways from Magento Imagine 2018.

1. Magento Cloud is here to stay. If you’re a system integrator (SI) that implemented Cloud when it was first released you may remember some road bumps along the way. At Imagine this year there were an abundance of sessions with both merchants and SIs talking about their experience with Magento Cloud and how they can make it better.

2. Magento is constantly upgrading their platform. Magento made quite a few announcements during Imagine about upcoming features and functionality that will be introduced into the platform. Not to mention Magento 2.3.

3. Magento B2B is going to be big. There was a lot of talk about B2B at Imagine this year and even more B2B merchants in attendance. There was no shortage of sessions about B2B and how merchants can utilize the Magento B2B platform to sell directly to their customers.

We can’t wait until Magento Imagine 2019 (May 13-15)!

See you in 2019 Vegas!