A new Composer repository from Adam Johnson that’s curating open-source Magento 2 extensions.
Hi, I'm Sophie and I started at Meanbee as a Project Manager over 4 years ago. Back then it was 5 developers and myself trying to navigate the path of a small start up. Over the years we have honed our workflow and project management process; which I would like to share today. We started investigating Agile not long after I started and found it was a good fit for our business and the majority of our project work. We try to use the framework of Agile to influence our day to day project management and to organise this we use Atlassian's Jira & Confluence software.
One of our most significant changes to the business was moving all of our clients are on to a monthly retainer which allows us to block book time in to work on their sites. It works well as it gives both us and the client a timeline to work with and allows us both to get organised. It also means that the level of work being done is consistent and we can plan big ticket items well in advance.Pre-…
While working on a Magento 2 project for our client, I was supposed to create more/less button, which is not part of neither Blank or Luma themes. The button should be on product page, but only inside of Details tab on desktop (accordion on mobile), which displays product description field in Admin.
Before we get started, I have created a custom theme (Inchoo/MoreLess that is extending Blank theme), make sure to update the correct path for your theme as we go along. The code was written on latest (2.1.6) installation with sample data.
First of all, we need to create several files:touch app/design/frontend/Inchoo/MoreLess/Magento_Catalog/layout/catalog_product_view.xml touch app/design/frontend/Inchoo/MoreLess/requirejs-config.js touch app/design/frontend/Inchoo/MoreLess/web/js/toggle-product-description.js touch app/design/frontend/Inchoo/MoreLess/Magento_Catalog/templates/more-less.phtml touch app/design/frontend/Inchoo/MoreLess/web/css/source/_theme.less
(Putting this here in an external-memory/thinking-out-loud sort of way)
Prior to Magento 2’s release, Magento executives circulated the idea that Magento 1 would reach its “end-of-life” three years after the release of Magento 2. Magento 2 was released November 17, 2015, which means Magento 1 reaches its end-of-life November 18, 2018.
However – it’s not entirely clear what end-of-life means for Magento 1.
If Magento 1 was a web application, end-of-life would mean the servers would be shut off.
If Magento 1 was a software application that was regularly updated, end-of-life would mean no more updates.
Magento 1 is neither of these.
Making things extra challenging is Magento Inc. itself, as a whole, has been pretty cagey about being pinned down on what end-of-life really means.End-Of-Life for Community Edition
First, despite the three years from Magento 2 messaging circulated at…
The Windows Server Essentials Connector is software that lets you connect your PC to a Windows Server 2012 R2. Most commonly it is used by small businesses to connect clients to a Windows Server Essentials Server (formerly Windows Small Business Server or SBS) to perform automated client backups on the server.
For many small businesses this is a good way to automate client backups and it works well, at least it did until Windows 10 was released and the essentials connector software stopped working.
Windows 10 and Windows 10 feature upgrades break the server essentials connector.Windows 10 and Windows 10 feature upgrades break the server essentials connector
At the time of writing we have been waiting well over a year for an…
(With apologies to whomever originally posted this technique – I can’t seem to find your original article. If you’d like link/credit just let me know)
As companies start to go ahead with Magento 2 builds and Magento 2 upgrades, more an more developers are wondering what to do about the missing code pools from Magento 1. If you’re not familiar with them, code pools allowed you to completely replace a Magento 1 class file with your own version. If you wanted to replace the Mage_Core_Model_Url file atapp/code/core/Mage/Core/Model/Url.php
all you needed to do was put your new file in the local code poolapp/code/local/Mage/Core/Model/Url.php
Behind the scenes, the code pool functionality was just another folder added to PHP’s include_path.
Magento 2 did away with code pools, and this was probably the right call. Code pools created a big problem when it came time for point release upgrades. If…
Can you be really sure that all visitors of your site see it the same way as you do – design and content? In the era, when content matters more and more, one type of hacker attacks became particularly popular – content spoofing. You will find out the algorithms and tools that hackers use to perform such attacks, specifically replacing website’s content for particular visitors.Discovery story
A client has come with the trouble that the blog of their site is shown in Japanese within Google Search:
Amazon offer cloud drive storage for photos free for Amazon Prime customers. For less that 10 yoyos per month you can upgrade to an unlimited cloud drive storage plan.
Yes, I did just say unlimited storage.
This is pretty neat, but I already use an open source cloud storage system on my own cloud server – called er, Owncloud. Wouldn’t it be really nifty if I could attach the unlimited Amazon Cloud drive storage to my Owncloud.
Here is how to do it in 5 easy steps:
Out of the box, Magento 2 offers fair amount of search engine optimization options but when it comes to category pages, we only have option to add canonical meta tags. In today’s blog post, we will try to spice that up a bit by implementing our own variation of canonical tag and by adding rel=”next” and rel=”prev” tags to help bots with paginated content.
There are several ways to implement said functionality but the first step will most likely involve creating new Magento 2 module. I decided to implement our logic using event observer approach, so the first thing we do is configure our module to watch certain events. We do this by creating events.xml file in our modules etc/frontend folder followed by creating our observer class.<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"…
A list of instructions from the (semi?) independent Mage Security Council on installing their scanner. This sort of buries the lead – the end of the instructions point off to a list of malware fingerprint, which server administrators can use to block common attacks before they ever reach Magento.
In one of our previous posts we described what a dashboard widget is and how to add a custom widget to an OroCRM dashboard. OroCRM has many native widgets with different useful functions, and one of the favorite ones is a Quick Launchpad.
After installing OroCRM, we have the widget on the dashboard that has links to few pages: Accounts, Leads, Contacts, Opportunities, and System configuration. We can add, collapse, delete, and rename the widget from admin but we can’t change the links. Fortunately we can change it in the code, as well as we can add custom links and manage existing links in a separate config file without changing the core files.
I have been working with PHP for about 6 years now and my first public facing development server is about the same age. It started life as a 32 bit 1GB Linode probably running Ubuntu v10.x, it survived a couple of OS upgrades and even a pseudo kernel shift to 64bit and ended life as a Linode 4096 running Ubuntu 14.x.
Maintaining servers whether they are physical or virtual is a real pain in the neck, as time goes by you develop apps, you install more and more software and your simple php development platform starts to become quite complex. When it comes to a major OS update e.g. Ubuntu 14LTS to 16LTS where mysql and php versions are changing then keeping all your (now live) websites, blogs and apps running can become a real challenge.
In an ideal world you would have multiple servers designed specifically for the apps they are running, in the real world when we are talking about personal websites, blogs and forums everything ends up running on the same server. The…
Often, during an SEO audit, we figure out that the store that came to us for the audit suffered a manual or an algorithmical penalty from Google which resulted in a significant loss of organic traffic.
During the years we got pretty experienced in removing such penalties and getting the website back on the right track for clients that listened to our advice.
But, did you know our own clients who have a consulting retainer with us never got penalized by Google?
Here’s why…Our clients never get penalized by Google because…
…we obey the rules. And we proactively warn our clients when they’re breaking the rules and getting themselves in danger of penalty. We monitor their websites to make sure none of their competitors are doing any negative SEO either.
This resulted in one simple fact that all of our clients…
Recently we have shared a tutorial on how to add custom Admin system messages in Magento 2. Today we will cover another type of notifications that uses Default Admin Notifier – Notifications.
The Notifications feature in Magento is used for notifying an admin user about variability issues, security patches, updates and other news.
There are four severity types of notification messages in Magento.
By default, Magento 2 uses only one notifier Magento\AdminNotification\Model\Inbox. So the…
By default, if you want to redirect POST request, browser redirects it via GET with 302 redirect. This also drops all the POST data associated with the request. Browser does [...] Related Posts:
Weird bit of behavior where the setup:upgrade command will automatically enable any module you’ve dropped into app/code. Small, but annoying bit of behavior if your run into it.