Posts Tagged ‘Magento’

Editing Magento’s Invoice & Despatch PDF Layouts

Posted on Thursday 24th November 2011 under Work by

Magento Invoice and Shipping (Despatch) PDF files are delivered with a reasonable layout, already suited toA4 printing, but benefit from some layout improvements, increasing font sizes, and lightening the greyscale boxes in the interests of readability.
Take a copy of the relevant core files and place them in:

/app/code/local/Mage/Sales/Model/Order/Pdf

The relevant files are Invoice.php & Shipment.php, but Abstract.php contains functions common to both, and the subdirectory Items contains formatting for the line items of each document type.
The following snippet can be used to format database values as currency values:

$formattedPrice = Mage::helper('core')->currency($Price,true,false);

Magento claims it is in Maintenance Mode (and it isn’t)

Posted on Sunday 28th August 2011 under IT,Work by

Assuming that Magento is not actually in maintenance mode (i.e. downloader is not being used) then the following error is the result of a lock file not being removed, probably as the result of an ungraceful exit from the downloader:

Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

To take Magento out of maintenance mode, just delete the file:

maintenance.flag

from the Magento root.

Magento 1.3 to 1.5 upgrade notes

Posted on Thursday 7th April 2011 under Work by

The upgrade to 1.5 has a number of “gotchas” so while I am debugging the process on the test / staging instance, here are a few notes.

Basic process

Empty some or all of the log tables as they are potentially huge and are not needed:

TRUNCATE `log_customer`;
TRUNCATE `log_quote`;
TRUNCATE `log_summary`;
TRUNCATE `log_url`;
TRUNCATE `log_url_info`;
TRUNCATE `log_visitor`;
TRUNCATE `log_visitor_info`;
TRUNCATE `log_visitor_online`;

Backup the 1.3 instance using Magento’s built in backup.

Edit the resulting .sql file and uncomment the FOREIGN_KEY controls at the top and bottom of the file:

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

If the domain or subdomain is changing, do a search & replace e.g. replace www.myshop.com with test5.myshop.com

Create the new database instance, and execute the SQL from the previous step. Make sure it doesn’t time out, last table created is normally “wishlist_item”

Yoast Metarobots breaks product maintenance in Magento 1.4+, so remove relevant fields:

DELETE FROM `core_resource` WHERE `core_resource`.`code` = 'metarobots_setup';
DELETE FROM `eav_attribute` WHERE `eav_attribute`.`attribute_code` = 'meta_robots';
UPDATE eav_entity_type SET additional_attribute_table='catalog/eav_attribute',entity_attribute_collection='catalog/product_attribute_collection' WHERE entity_type_id=4;

Now FTP the Magento downloader.php onto the target site, check file permissions and execute it with http://test5.myshop.com/downloader.php

Follow the setup process including specifying the correct database name, user and password.

Use the same encryption key from the original site – find it in /app/etc/local.xml

If there are problems with the setup not accepting the admin user / password combination, simply re-run the installer by pointing your web browser at http://test5.myshop.com

Remember that the original admin user already exists in the database export, so create a temporary one and delete it later.

Fixing problems

Can’t access the admin site, gives 404 error

The database import will have incorrectly sequenced the sites, so run the following:

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
UPDATE core_website SET website_id="0" WHERE core_website.code="admin" LIMIT 1;
UPDATE core_store SET store_id="0" WHERE core_store.code="admin" LIMIT 1;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

Admin site is “white” i.e. CSS not working and plain HTML is displayed

Delete contents of /var/cache/

“There are no products matching the selection” when browsing front end

Wrong customer group ID for users that are no logged in. Execute the following SQL:

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
UPDATE `customer_group` SET `customer_group_id` = 0 WHERE `customer_group_code` LIKE 'NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

No product images

Check correct permissions and then copy the images directory structure from the source site eg:

cp /httpdocs/media/catalog/* /subdomains/test5/httpdocs/media/catalog/

Now login to admin site and run a  re-index on everything, and update all of the caches.

Error File does not exist: … media/catalog/product/no_selection

Review the System Configuration and under Catalogue / Catalogue / Product Image Placeholders and add the missing placeholders. Add back in the watermarks too in General / Design / Product Image Watermarks.

Copy or move Magento to another instance

Posted on Saturday 30th January 2010 under IT by

A quick how-to if you want to copy or move Magento to another database instance, e.g. to create a test site, or move test to live.

(1) Backup Magento using the built in backup tool. Download and uncompress the resulting SQL script. If changing the server or domain, search and replace “old.mysite.com” with “new.yoursite.com” Execute it to populate the new database instance.

(2) Copy all Magento files with the exception of the contents of the var/ directory.

(3) Edit app/etc/local.xml on the target instance and change the database, user and password, but not the encryption key. Also edit downloader/pearlib/pear.ini to correct the absolute paths it contains; no reason why these shouldn’t be relative to the Magento root directory, e.g. “./downloader/pearlib”.

(4) Execute the following SQL to prevent those nasty “Integrity constraint violation: 1062 Duplicate entry” errors from the log files when adding to the basket:

TRUNCATE `log_customer` ;
TRUNCATE `log_quote` ;
TRUNCATE `log_summary` ;
TRUNCATE `log_url` ;
TRUNCATE `log_url_info` ;
TRUNCATE `log_visitor` ;
TRUNCATE `log_visitor_info` ;
TRUNCATE `log_visitor_online` ;

Now tidy up permissions:

chmod o+w var var/.htaccess app/etc
chmod -R o+w media

That should be it.

reCAPTCHA for Magento

Posted on Friday 31st July 2009 under IT by

Well done Fontis for integrating reCAPTCHA into Magento to prevent SPAM through the contact form and “social” pages. About time!
Well though-out and integrated beautifully into admin.
Keys are required from reCAPTCHA andthe extension can be installed through Magento Connect using the extention key on the Magento Extention page.

Magento

Posted on Thursday 7th August 2008 under IT by

Since I last looked (around 9 months ago, I think) the Magento web store project seems to have shaped up nicely. It is certainly prettier than OSCommerce, but more importantly they have kept the code and the presentation separate using – of course – CSS.

It is written in PHP, and has a growing collection of add-ins, so I’ll be seriously evaluating it as an alternative to OSC for the Oriental Food Shop.