Blog

Full Page Cache is a Magento Enterprise feature that allows for storing most content of a page in a super fast cache while still allowing for dynamic page elements (e.g. adding something to cart will invalidate the header section to reflect your new cart quantity). Full Page Cache provides a huge performance boost for Magento Enterprise and is a must have for high traffic sites.

If you have a very high traffic site and need to make changes to your site throughout the day you may run into problems. As some changes are made to a site, you may need to reload the Full Page Cache. Reloading the FPC wipes out cached versions of all pages and can cause heavy strain on a server as many uncached pages are loaded and saved in the cache. By understanding how the Magento Enterprise Full Page works you can make sure you won't hurt your server by unnecessary reloads.

A common question is how will the FPC respond to different changes in the admin? Some store owners make changes and then wipe out the cache as a habit, but this may not be needed or may be dangerous. Magento tries to selectively clear the FPC when entities are edited so only the affected portions of the cache are removed. Since this is still work in progress (as of Magento EE 1.12), some changes will appear in the frontend without clearing the cache while some won't.

The purpose of this article is to offer a full report on what is safe to edit in Magento Enterprise without refreshing the cache and/or issuing a reindex.

First of all it's important to mention that Full Page Cache is only applicable to category pages, product detail pages and CMS pages. We've tested these separate page types below and what happens when we don't reload the Full Page Cache:

  • if adding new categories / products / CMS pages are displayed

  • if edits to categories / products/ CMS pages are displayed

  • if deleting categories / products / CMS pages makes them disappear

All the tests were performed on the default Magento theme. If you have theme customizations, the results may differ as custom blocks need to inform Magento when they should be cleaned from the cache. It is a common problem for customizations not being "full page cache ready", but this issue is outside the scope of this article.

Let's start with the Category table: we did some tests to see if it's safe to add / edit / delete a category without clearing the cache and if that category will be displayed in the top menu and/or by simply putting the URL in the browser. All actions turned out to be unsafe, the user has to clear cache after each modification to be able to see it. However there is an exception. For example, if the user creates a category, he is able to see it in the top menu from another category page, but not from Homepage. The same thing happens when the user deletes a category; the deleted category is still displayed in the top menu on Homepage, but does not appear if the user is located on another category page.

need reload
need reload
need reload
need reload
need reload
need reload

 

As for products, in the following table you will see that it is safe to add and edit a product without clearing cache and the changes will be displayed. But after you delete a product, you have to clear cache, otherwise the product will still be there. We also did another test with low quantity products. We purchased the whole amount (qty = 0 / Out of Stock in the admin) and tried to purchase the same product again. We didn't clear cache. The product was still displayed and showed In Stock label, but when we tried to purchase it, a warning message was shown saying the the product was Out of Stock.

safe
safe
need reload
safe
safe
need reload

 

The following table shows you that only adding a new CMS page is safe. The CMS page can be open by accessing the URL, but the changes are not shown when you edit or delete it, unless you clear the cache.

safe
need reload
need reload
Posted in News By

Adina Grigoruta

Office Furniture Center enables companies in transition to focus on their business instead of space planning and furniture selection. OFC creates an attractive, cost effective space for its clients through the creative blending of pre-owned, refurbished and new furniture. An account manager tours the client's space to interview key employees and diagram the company work flow. OFC designers use this understanding to create a plan that suits both client's current work force and allows for growth. The client is provided with three alternatives: pre-owned, refurbished and new furniture and has to select the option with the right look and the right price. Then the client will rely on an expert team of project managers and logistic coordinators to supervise the delivery and installation of his furniture.

Read More
Posted in News By

Matt MacDougall

Finally! A small idea a few years back took on a life of its own as a Magento testing service at magetesting.com. The Magento community of developers, business owners and potential Magento customers have always had the same issue of wanting to get multiple extensions to work together. This problem can further complicated when custom code is added to the site. We hope Mage Testing will help solve all those problems.

This tool is simple, beautiful and intuitive for anyone to use. With a few clicks you can setup a demo Magento store with or without sample products in minutes. By entering your live store information you can have a full development site in about an hour. Surf through a select group of great premium extensions from aheadWorks and Rocket Web and many free extensions from the Magento community at large. One-click install multiple extensions to test, play and learn how they interact with each other. You can test any of the paid extensions in a demo or a copy of your own store before you commit to buying them.

If any problems come up, you'll notice Mage Testing's unique strength as you set out to solve them. We have partnered with Papertrail for searching through all Magento logs, server logs and even extension installer logs all in a slick, real-time web based interface. We have integrated version control and roll back functionality. If you install an extension and decide you don't like it, just click the roll back button and start over. Both your code and database is automatically restored to the point before you installed the extension.

If you have signed up for Magento Sandbox Exploration or if you purchase any extension, you will be able to edit any code on the site manually, take advantage of the integrated version control and with a couple clicks, prepare an installer archive to deploy code changes to your live site. We've seen many store owners over the years without a development site for their Magento store. Mage Testing is the perfect place to safely test out new Magento functionality before taking the risk of having to close a live store and scramble to fix issues that inevitability occur when changes are not tested.

Mage Testing has clear benefits for all types of Magento users. It's a valuable safety net for store owners who are trying to run their own business. And it's a powerful tool for developers looking to make life easier. At Rocket Web, we use Mage Testing everyday to test new functionality and extensions.

Posted in News By

Matt MacDougall

Delicious Karma introduces you to incredibly delicious, all-natural, artisanal and gourmet foods…and the passionate artisans who make them. You discover and learn about these products through the eyes of accomplished chefs, food experts and the community at large. Products are introduced to the site via a limited-time, limited-quantity promotion that helps drive trial and awareness. Delicious Karma is deeply integrated with social media, alerting customers about new introductions, and encouraging and rewarding them for completing a number of social actions. Delicious Karma users don't just "like" products, they "Crave" them, "Taste" them, and otherwise engage with them in a much more meaningful and significant way.

A site like this keeps customers coming back, for the discovery and learning, the amazing products, the great prices, and the opportunity to interact with other food lovers. It's a simple, very old concept actually. As customers get better access to artisans and producers, the experience becomes better. Delicious Karma is as close as you can get to a farmers market on the web. This is the way shopping should be.

Rocket Web is excited to see Delicious Karma grow into a successful Magento Enterprise shopping community. We look forward to helping drive further growth next year!

Posted in News By

Matt MacDougall

There is growing Magento community in Poland and members of our team are part of that community. Recently I have been able to join Meet Magento Polska conference in Warsaw at Nov 23-24th. This was the first Magento event of this kind in Poland.

It was great event, perfectly organized, at the beautiful Marriott in the center of Warsaw. I have been able to meet really cool people from Magento community and have had few good conversations about the future of Magento during the conference and at the after party.

I'm really excited about the Magento Enterprise case study shown by Ghana government member, Veronica Boateng. The far reaching project that will be used to accept payments for various government services should be a really big turn for that country. I'm going to keep track of how it develops.

I've also seen great presentations about different database drivers implementation for Magento, multiple catalog search engine capabilities and have tested a cool new Magento toolkit for the Eclipse IDE.

I look forward for next Meet Magento conference in Poland and am excited to see the growing community.

Posted in News By

Wojtek Naruniec

A recent survey by MyBuys Inc. and consultancy The E-tailing Group found that among 1,000 consumers, 55% are willing to provide shopping preferences to trusted store owners in exchange for a better shopping experience.  This survey tells us that about 1/2 of consumers are willing to invest in a better shopping experience while the other half either don’t want to spend the time to have a better experience or are concerned about giving personal information away.  So what can you do as a store owner to keep customer trusting you and win new ones over?

Develop Community

Provide a place to nurture your customers that share the same product interests.  Let customer ask question, give comments and help each other make decisions based on real product experiences.  Unlike social networks where everyone is different with varied likes and preferences, when you go to a store with similar products everyone in the store has the same interests - use that to develop a community.  Use Magento's review functionality heavily.  Checkout some extensions for soliciting Q&A's and other ways for customers to engage you and others.

Promote Feedback

No one enjoys surveys.  Too often, they are not very helpful or effective.  Find a way to get good feedback from customers without making them feel they are giving feedback.  A simple 5 star option when checking out may be a good way to begin getting feedback.  On the order confirmation step ask, "How would you rate your shopping experience?"  Don't make it a pop-up window.  Leave an optional suggestions box under the rating; call it something like "Any suggestions to help us serve you better?"  This is a genuine way of getting good positive feedback and finding out if there are some common problems.  By the time most customers get your typical survey email, they've forgot their shopping experience or often look at the survey as spam.  Showing customers you care about their experience goes a long way in building trust.

Secure Confidence

Everyone knows that social networks make a big chunk of their money by selling your personal info, likes and dislikes to other companies.  Information is valuable.  Build confidence with customers by communicating what you do or don't do with their personal information, passwords, past purchases, etc.  Giving your customers an honest agreement with their information will allow trust with your site to build.  Magento Enterprise has some great features that help promote security of customer information.  With Magento’s Secure Payment Bridge you can assure your customers that their payment details travel through a system that is rigorously tested and certified on a yearly basis by the international governing body of credit card providers.  You simply can't get much more secure than using the Magento Secure Payment Bridge.

Posted in News By

Matt Lano

A recent survey of online shoppers by MarketTools, a market research firm, discovered that online shoppers are experiencing trouble spots during e-commerce shopping.

  • 43% Shipping Costs Too High
  • 37% Shipping Problems
  • 28% Lack of Support
  • 18% Confusing Checkout Process
  • 15% Problems with Website Speed
  • 13% Issues with Payment Policies

What does this mean for store owners?

Store owners need to get shipping under control and be consistent.  Would you visit a site where the shipping costs and/or the shipping deals are constantly fluctuating?  Absolutely not!  Recently, I wanted to purchase a certain type of grass-fed butter.  My online search brought me to a store that sold the butter for $6.00.  I added the butter to my cart only to discover that the shipping was $20.00!  The shipping cost was far more than the cost of the product.  As a online shopper, I felt this store was out of line. I have decided that my butter purchases will have to be done elsewhere.

What can store owners do?

Keep the check out simple.  Not just simple in interface but simple with shoppers personal information.  Ask yourself, "What is the minimum amount of information required to get this shopping transaction over?"

Provide support.  Explain to your customer how your customer support will work for them.  Do not sell and run, but explain that you intend to build trust by selling and listening to their feedback (good or bad).  A trustworthy online shopping experience is what the online shoppers today are seeking.  The online store that provides up to date visual appeal, simplicity, consistency, immediate service, genuine customer service and above all, a no haggle, simple, non-interfering shopping cart experience with fair shipping standards will win every time.  Notice that price was not mentioned.  Customers are not primarily seeking the cheapest price - they are searching for a trusted site with a fair price.  Building trust with online shoppers will bring you repeat business and new shoppers.  Promote trust and shoppers will keep coming back for more.

Posted in News By

Matt Lano

Congrats to Paul, our first Magento Certified Developer.  Paul actually took certification a step further and passed the Magento Certified Developer Plus exam!

I've always thought that professional certification takes a back seat to experience.  When it comes to Magento, certification is much more valuable than with other technical disciplines.

You can look at the websites a developer has made to get an idea of their experience but there's tons going on behind the scenes that you cannot see.  Working with a Magento Certified Developer helps you insure that 3rd party integrations will work right, that your orders can be fulfilled smoothly and perhaps most important, that when things go wrong, your developer has the skills to fix them before customer service becomes a serious problem.

Posted in News By

Rocket Web

As we develop in Magento it can be very helpful to freshen up the development database with info from the live database. We've got a set of SQL queries we run after we load a dumped live database back into our development site. Here's our current query set that should apply to most sites.

/* replace all occurrences of www. in DB table core_config_data with dev. */
UPDATE core_config_data SET value = REPLACE(value, 'www.', 'dev.') WHERE path = 'web/unsecure/base_url';
UPDATE core_config_data SET value = REPLACE(value, 'www.', 'dev.') WHERE path = 'web/secure/base_url';

/* Disable SSL */
UPDATE core_config_data SET value = REPLACE(value, 'https:', 'http:') WHERE path = 'web/secure/base_url';

/* replace all e-mails */
UPDATE core_config_data SET value = 'support@example.com' WHERE path = 'contacts/email/recipient_email';

UPDATE core_config_data SET value = 'support@example.com' WHERE path = 'catalog/productalert_cron/error_email'; 
UPDATE core_config_data SET value = 'support@example.com' WHERE path = 'sitemap/generate/error_email';
UPDATE core_config_data SET value = 'support@example.com' WHERE path = 'sales_email/order/copy_to';
UPDATE core_config_data SET value = 'support@example.com' WHERE path = 'sales_email/shipment/copy_to';

/* enable demo notice */
UPDATE core_config_data SET value = '1' WHERE path = 'design/head/demonotice';

/* Disable resources compression */
UPDATE core_config_data SET value = '0' WHERE path = 'dev/js/merge_files';
UPDATE core_config_data SET value = '0' WHERE path = 'dev/css/merge_css_files';

/* Disable Google Analytics */
UPDATE core_config_data SET value = '0' WHERE path = 'google/analytics/active';
UPDATE core_config_data SET value = '' WHERE path = 'google/analytics/account';
Posted in News By

Rocket Web

We recently noticed that in order to edit a single order address in Magento EE 1.10.1 we had to increase the RAM available to php to almost 1GB!  Something was definitely wrong.  Searching for a solution for this issue only shows the "fix" of increasing RAM.  We dug into the core and fixed this bug.  Nice job Wojtek! It looks that Magento has been loading 58000 order addresses to just edit the one. It’s core bug and still not fixed even in 1.6.2.0. They have used:

$address = Mage::getModel('sales/order_address')
->getCollection()
->getItemById($addressId);

It’s really weird because in method which actually saves an order address they are loading that properly:

$address = Mage::getModel('sales/order_address')->load($addressId);

We ended up overriding OrderController.php for the fix:

<?php


/**
* Adminhtml sales orders controller
*
* @author      Wojciech Naruniec <wojtek@rocketweb.com>
*/

require_once  'Enterprise/SalesArchive/controllers/Adminhtml/Sales/OrderController.php';

class Mysupp_AdminhtmlMysupp_Sales_OrderController extends Enterprise_SalesArchive_Adminhtml_Sales_OrderController
{
    /**
     * Edit order address form
     * 
     * Method is extended to fix magento core memory bug. Original
     * method loads the whole collection to get just one element!
     * 
     * If there is 50 000 order addresses, it loads them ALL. 
     */
    public function addressAction()
    {
        $addressId = $this->getRequest()->getParam('address_id');

        $address = Mage::getModel('sales/order_address')->load($addressId);

        if ($address) {
            Mage::register('order_address', $address);
            $this->loadLayout();
            $this->renderLayout();
        } else {
            $this->_redirect('*/*/');
        }
    }
}
Posted in News By

Rocket Web

It's been a busy time for Rocket Web and we've been involved with several different Magento development projects. One big recent launch has been a new Magento Enterprise site for Best Price Nutrition. Also we've got a couple new jewelry sites up for the Moriarty's, one sells Tanzanite Jewelry and another is for their store in Crown Point, IN Moriarty's Gem Art. We've started to get into Magento Go and just helped get Choose the Vest together. We've added slick new embroidery functionality to Aprons and Smocks. And we're really excited about a new app for the Clean Program to manage orders and appointments with wellness coaches. Also our designers have helped to strengthen the brand and build a new site for Empyrean Nutrition.

We are working on 6 more projects from scratch at the moment and look forward to launching these new magento development sites soon.

Posted in News By

Rocket Web

If you have installed a Magento extension and see a 404 error when trying to access it, this is a very common bug in Magento.  The easiest way to solve this that works most of the time is to just log out of the admin and log back in.  Now when you try to access the module it should work as expected. If you still have problems try going to System -> Configuration -> Advanced in the Magento admin.  Click the Disable Modules Output header to see a long list of dropdown boxes.  If you see the extension you've just installed like RocketWeb_GoogleBaseFeedGenerator, make sure it is set to Enable and click the Save Config button back at the top.  Now go to System -> Permissions -> Role and open the Administrator role.  Now just click the Save Role button without any edits.  Log back out and log back in one more time.  If you're still having problems, please get in touch.  We have installation service available for flat rates.

Posted in News By

Rocket Web

Today we've opened up our new office in Wrocław (pronounced Frots-waf), Poland. Wojtek (pronounced Voy-tek) has been working with Rocket Web for years and has recently joined us full time and is managing the new office in Wrocław.  Grzegorz (pronounced Greh-gosh) and Jan (pronounced Yan) have joined us full time as well and will be working on both Zend Framework and Magento projects.

Rocket Web Poland
ul. Tęczowa 57
53-601 Wrocław
Poland

View Larger Map
Posted in News By

Rocket Web

  • One -stop Shop for all things commerce
  • Integration Framework to help developers build and merchants easily adopt new capabilities.
  • Community-driven open  ontology, developers and merchants create within the x.commerce framework

Now where developers spend 80% of their time implementing and 20% innovating, x.commerce seeks to flip this so that developers can spend 80% of their time innovating.

It is an open fabric and standard set that will allow any developer to follow a standard and bring their ideas to market.  It's a place for merchants to extend their business with less risk than before since developers must adhere to some standards.

Posted in News By

Rocket Web

We recently posted details about some changes to code that could make an improvement in your Magento search engine.  We're looking at making an extension to implement some of these changes.  We could really use your feedback.  What are your main problems with Magento search on your website?  Can you give us a couple search terms that show very incorrect results and give us an idea what the good results should be?  We have a feeling that the default Magento search which is quite broad doesn't line up with the realities of customers searching for products in some catalogs.

Posted in News By

Rocket Web

We just published our first extension that is installable via Magento Connect.  Check it out along with the ability to install Youtube Product Video manually.  This extension provides a clean user interface and is simple for store owners to work with.  The only thing they really need is the youtube id.  A video title helps and we offer many options for customization.  But for our installs we tend to just leave the defaults.  We hope you enjoy this free extension.  We feel our implementation of this feature set is an improvement over any similar non-free extensions.

Posted in News By

Rocket Web

We host many of our clients Magento websites.  We host these sites at cost to avoid complaints about hosting companies.  It can be difficult to manage and develop a website when the website is hosted with a poor or under powered hosting company.  I may know the problem isn't with the code but with the hosting but it can be awkward to explain that to a client, especially a new one.  Hosting is a bit of a loss leader for us and it certainly does cut down on the stress factor because we have control over the whole experience.

Recently a new client needed both hosting and control over the hosting account.  This is not something we provide.  Our at cost hosting does not allow any client access, it's 100% managed by us alone.  Our client did some research and came across MageMojo.  The price is equal to my at cost hosting.  There have been a couple minor issues, but for the price they are hard to beat.  When my client's site was setup, their DNS setup was broken.  We made some changes in the cPanel gui to later find out that changes need to manually be implemented via a support ticket.  This labor day holiday there was a mistake made at UPS or perhaps an attack to their dns systems that had any website doing real time lookups against UPS failing because it could not resolve the server.  This issue could be fixed at the hosting company.  Of the 4 different systems I monitor, MageMojo was the last to pickup on the issue.  Or perhaps they didn't catch it and just picked up on the fix from UPS.  This issue was fixed at Rackspace about 8 hours before MageMojo for example.

Maybe once per year there will be an issue that one of the top tier hosting companies will solve quicker than MageMojo.  You also may get slightly quicker support with a top tier company.  Overall I'm recommending MageMojo for new Magento sites, particularly if you do not have special hosting requirements.

Posted in News By

Rocket Web

We've been working on usability enhancements to the base Magento checkout.  Here's the latest from our team.

  • When a specific format for data is expected, give an example.  In this case greyed out and invisible when clicked on.
  • Use country selection to populate list of states.
  • Use zip / postal code to populate City and State.
  • This is the perfect place for a sales newsletter signup.

Posted in News By

Rocket Web

Magento bundles all product information into a single index for it's search.  This gives every part of the product roughly the same weight.  Analyzing customer searches we've found that customers often search for a product name or words in a product name.  These are our most valuable searches where a customer is looking for something specific, and yet often they will not find it because there's close to 1000 results and none on the first page match the title of the product.  Take the search "Lean Body for Her" on www.mysupplementstore.com for example.  This is a particularly bad one since the main words in the title are lean, body and her.  Lean and body are contained in many products.  Her is in the mysql stop words list so it's ignored.  When this search is performed in the default Magento install, I stopped trying to find the actual product which was probably buried on page 50 of the search results.

We made 3 changes to the search process and have seen vast improvements in search quality.  The first and second changes were quick.  We disabled the Mysql stop words file and allowed mysql to use 3 character words in its full test index.  This means that words like her, the, etc will actually be searched and not dropped.  In analyzing searches we didn't see many improper uses of articles so it seemed safe to just allow all words to be searched.  We added these two lines to our my.cnf file:

ft_min_word_len = 3
ft_stopword_file = ""

The next change was to allow the product name to have greater weight than the rest of the product data.  We changed the default query to something like this:

SELECT ... other non-full-text-cols
MATCH (product_title) AGAINST ('lean body for her') AS rel1,
MATCH (content) AGAINST ('lean body for her') AS rel2
FROM table
WHERE MATCH (product_title,content) AGAINST ('lean body for her')
ORDER BY (rel1*1.5)+(rel2)

We have not noticed performance issues in dev but performance is a concern as we add the order by to the query.  With this change we've gone from having products where words and phrases are in titles come right to the top of the results rather than being buried.  We're also taking full advantage of the main index so that results that would normally be first appear after the first couple product title matches.  This appears to be a vastly improved search.  We are about to launch this and I look forward to seeing an improvement in conversions.

Update 9/24/11 ... the launch has been good.  No problems with performance.  Search results appear much more relevant.  Checkout Improving Magento Search - Part 2 and give us your thoughts about what else we can put into a Magento search module.

Posted in News By

Rocket Web

In 2010 we discovered and had 3 hacker sites removed and uncovered 30,000 customer records from hundreds of merchants.  We were able to contact those merchants and provide customer info for PCI compliance.  Hack attempts have been steadily increasing in the past few years.  If you're trying to run an e-commerce business yourself try to make sure you are protected as much as possible.

  • Stay up to date with your shopping software patches and upgrades.
  • Host your site with a reputable host, preferably one that offers PCI compliant hosting.  This will be more expensive but should provide a good foundation of protection.  At least have every port possible closed in a firewall and some assurance that the server stays up to date.
  • Have a way of tracking what code is on your website.  This could be as simple as maintaining a master folder of code on your local computer and replacing what's on the production website periodically.
  • If you ever have to give your ftp or ssh account to someone, change the password.  You should not have anyone but you or someone currently working for you know how to put files on your live website.  Ideally setup a development area if you hire someone you do not know well.
Posted in News By

Rocket Web