Future of Xcart and Magento

Xcart is not OOP product, it is based on PHP functions, just like outdated osCommerce.

Current Xcart branch is the last in history of the Xcart, so if you will purchase Xcart today, it means that in several month/years (the date is unknown) you will stay with completely outdated, “zombie” product and it will be needed to migrate to “LiteCommerce/Xcart 5/Xcart Next” platform.

Here is some most important statements from this FAQ:

 

Will you release new X-Cart 4 versions? Although we will release new X-Cart 4 versions, the releases will include bug-fixes only, no new features. The reason is that we are working on a brand new e-commerce platform (also known as “X-Cart 5″) and it doesn’t make sense to develop a feature for two platforms at the same time.

When will you release “X-Cart 5″? If you are referring to the future X-Cart solution based on the new platform, there is no release date yet.

Will X-Cart 4 themes and modifications work for “X-Cart 5″? No, the new platform has a completely different architecture and is not compatible with themes and custom modifications made for X-Cart 4.

Will I be able to upgrade my X-Cart 4 store to X-Cart 5 later? Since the platforms have a completely different architecture, there will be no automatic upgrade scripts. However, a data migration tool importing your product data from XC4 may be released later.

Does “X-Cart 5″ have less features than X-Cart 4? Technically – yes, the new platform itself has less features than X-Cart 4.

Will there be a Pro version of “X-Cart 5″? Unfortunately, in the near future we don’t plan to release a “Pro” version of the new platform. Perhaps, it will be released as a module later either by us or by a third-party developer.

 

So as you see, in any case you will need to migrate all your customizations, designs, customers, orders history, products reviews, email templates and URLs structure (important for SEO) in the nearest future to the new platform with limited features.

Magento is supported not only by PayPal & eBay, Magento have giant ecosystem of developers, designers and modules vendors. There are more than 4500 modules for Magento in MagentoConnect marketplace, and 30% of all these Magento modules are free. The future of Magento is bright and clear for everyone. More and more online marketers choose Magento as the platform for their eCommerce businesses.

 

Magento VS Xcart Comparison

Architecture Magento: Modern, modular architecture based on Zend Framework. Xcart: Obsolete architecture, functions based and not modular.

Multi-store capabilities Magento: Stable multi-store solution. Xcart: Not supported by Xcart 4 and 5. Xcart 5 will not have Pro version, which means that it will have no milti-vendor capabilities as well.

Upgrades & migration to the new version Magento: 100% upgradable architecture. It is easy to upgrade Magento and Magento theme design. Xcart: Upgrade procedure is almost manual (.DIFF files application). It will be not possible to upgrade to Xcart 5 from Xcart 4.

Future of the product: Magento: Clear roadmap and clear release dates. Investments from PayPal & eBay. Xcart: Not clear strategy of product development. No release dates available at the moment. Development of current Xcart 4 product is frozen.

 

Conclusion

Today over 100,000 merchants worldwide use Magento, including such big brands like Skype, Olympus, Nokia, Samsung, Lenovo, Ford, Tool King, FOX, GoodYear, Ford and many others.

Choosing right eCommerce platform for your business today, you invest money in your company. Magento is right solution, you will avoid a lot of troubles and pitfalls in the future with Magento. Here are some other “Magento VS Xcart” articles that compare eCommerce features and could be useful:

- Templatemonster.com: Deeper Look into X-Cart eCommerce EngineMolotovbliss.com: Magento VS X-Cart

Posted in eCommerce, Magento Commerce, News, Software Updates | Tagged , , , , | Leave a comment

There are many old tutorials which are out of date and simply do not work. We have tested this solution with Magento version 1.5 and 1.7. Free sample products or free tester products are ideal for e-commerce websites that require giving their customers for example tester materials or sample perfumes for instance.

You can restrict the amount of free sample products you want give out to your clients because you do not want people to have let’s just say a 100 free sample products. instead this tutorial will restrict the sample product to 5 but you can edit the code you change it to whatever you feel is the right amount.

1. Firstly you will need to create a file called getSample.php in the root of your Magento installation folder and populate it with the following code.

 

001 <?php
002
003 ini_set(‘display_errors’, 1);
004 error_reporting(E_ALL);
005
006 //print_r($_POST);
007
008 require_once ‘app/Mage.php’;
009 Mage::app();
010
011
012
013 Mage::getSingleton(“core/session”, array(“name” => “frontend”));
014 Mage::getSingleton(‘core/session’)->setSampleError(“”);
015 // Store users session
016 $session = Mage::getSingleton(“customer/session”);
017
018 //Store cart items
019 $totalNumOfCartItem = Mage::getModel(‘checkout/cart’)->getItemsQty();
020
021 //Store cart items
022 $theitems = Mage::getModel(‘checkout/cart’)->getItems();
023
024 $thecount = 0;
025
026 foreach($theitems as $ti){
027
028 $thename = $ti['name'];
029
030 $test = strpos($thename,’Free Sample’);
031
032 if($test !== false){
033 $thecount = $thecount+1;
034 }
035
036 }
037
038 if(isset($_POST['name'])){
039 $name = $_POST['name'];
040
041 $id = $_POST['id'];
042 if(isset($_POST['simpleid']) && !empty($_POST['simpleid'])){
043 $simpleid = $_POST['simpleid'];
044 }
045 }
046 if(isset($_GET['name'])){
047 $name = $_GET['name'];
048 if(isset($_GET['simpleid']) && !empty($_GET['simpleid'])){
049 $simpleid = $_GET['simpleid'];
050 }
051 $id = $_GET['id'];
052 }
053
054 // retrict shopping cart to only allow 5 samples
055 if ($totalNumOfCartItem <= 4)
056 {
057 $theproduct = Mage::getModel(‘catalog/product’)->load($id);
058
059 if($simpleid){
060 $thesimple = Mage::getModel(‘catalog/product’)->load($simpleid);
061 }
062
063 if($thecount < 2){
064
065 // instatiate Product
066 $product = Mage::getModel(‘catalog/product’);
067 if($simpleid){
068 $product->setSku($thesimple->getSku().”*”.rand());
069 } else {
070 $product->setSku($theproduct->getSku().”*”.rand());
071 }
072 $product->setName(“Sample of “.$name);
073 // $product->setDescription(“Sample of “.$name);
074 $product->setShortDescription($name.” – Sample”);
075 $product->setPrice(00.00);
076 $product->setTypeId(‘simple’);
077
078 $product->setImageUrl($theproduct->getImageUrl()); // set the images from the original product
079 $product->setThumbnailUrl($theproduct->getImageUrl());
080 $product->setImage($theproduct->getSmallImage());
081 $product->setMediaGallery (array(‘images’=>array (), ‘values’=>array ()));
082 $product->addImageToMediaGallery($_SERVER['DOCUMENT_ROOT'].”/media/catalog/product”.$theproduct->getSmallImage(), array(‘image’,'small_image’,'thumbnail’), false, false);
083 $product->setAttributeSetId(9); // need to look this up
084 $product->setCategoryIds(“15″); // need to look these up
085 $product->setWeight(21212121.21);
086 $product->setTaxClassId(2); // taxable goods
087 $product->setVisibility(1); // catalog, search
088 $product->setStatus(1); // enabled
089 // assign product to the default website
090 $product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
091
092
093 // get product’s general info such price, status, description
094
095 $stockData = $product->getStockData();
096
097 // update stock data using new data
098 $stockData['qty'] = 1;
099 $stockData['is_in_stock'] = 1;
100 $stockData['manage_stock'] = 1;
101 $stockData['max_sale_qty'] = 5;
102
103 // then set product’s stock data to update
104 $product->setStockData($stockData);
105 //die();
106
107 // call save() method to save your product with updated data
108 $product->save();
109
110
111 header(“Location: /checkout/cart/add/product/”.$product->getId().”/”);
112 }
113 }
114
115 else
116 {
117 Mage::getSingleton(‘checkout/session’)->addError(“You are only allowed a maximum of 5 sample products”);
118
119 header(“Location: /checkout/cart”);
120 }
121 ?>

The above code is simply the function which will create sample products for you on the fly. Also not that in this example we have assigned each sample product with a ridiculous weight because the client offered the sample product and the shipping of the sample products for free meaning we had to create a table rate for the shipping method which did not interfere with the other shipping logic so that anything that exceeds 21212121 will have free shipping.

2. Next you will need to create a button where you want people to add a free sample product in the shopping basket. I have placed my sample button in the list.phtml and placed the button in both my list view and grid view.

 
1 <form action=”/getSample.php” method=”post”>
2 <input type=”hidden” name=”id” value=”<?php echo $_product->getId() ?>” />
3 <input type=”hidden” name=”name” value=”<?php echo $this->htmlEscape($_product->getName()) ?>” />
4 <input type=”image” name=”getsample” alt=”Get Sample for <?php echo $this->htmlEscape($_product->getName()) ?>” src=”<?php echo $this->getSkinUrl(‘images/your_theme_name/sample-btn.jpg’) ?>” />
5 </form>

The above will execute the getSample.php and add a sample product to your shopping basket whilst still allowing you to purchase other products from the Magento shop.

Posted in Magento Commerce | Tagged , , , | Leave a comment
This is a core hack. Files you change as described on this page will be overwritten during updates of Joomla!

This tip explains how to move your configuration.php file outside of your webroot as well as making it unwritable by the server. That makes it nearly impossible for someone to corrupt or gain access to the information in the file.

The first step is to move the file. If you use a host with cPanel, then your webroot is /home/USERNAME/public_html, where USERNAME is your cPanel username. (The tip is easy to adapt to other hosting environments too, ask us, if you don’t know, how!) Joomla can access files located at /home/USERNAME, but those files cannot be directly accessed from the Internet. Login to your favorite FTP program and download your configuration.php from /home/USERNAME/public_html/configuration.php . Rename it to ‘site.conf’ then upload it to /home/USERNAME/site.conf.

Now that we’ve uploaded it to the new location we need to edit the original configuration.php file. Open it in your favorite text editor and replace the contents of the file with the following:

		 require( '/home/USERNAME/site.conf' ); ?>

Make sure to replace USERNAME with your cPanel username. Then upload the new file to /home/USERNAME/public_html/configuration.php. At this point your site should still function normally.

Next, we need to make the file unwritable by the server. Most FTP programs allow you to do this. Right-click on the /home/USERNAME/site.conf file and select the option to edit permissions (normally ‘Permissions’ or ‘Info’) andlets the server read the file without any problems, but it will not be able to edit the file.

If you ever need to edit the file you will need to change the permissions back to 644 before making your changes.

In Joomla 1.5 and newer you can do other things to archive the same result.

Joomla 1.5

  • Create a directory in your domain outside of your public_html directory. You can name it anything you want but it should reflect the site name in some way. We used the name design2-files for the directory name in this example. Note: If you have multiple Joomla installs then each Joomla install you have should have its own directory outside of public_html to contain its configuration.php file.
  • Place a copy of your current configuration.php file, completely unaltered and NOT renamed into this directory. I have permissions set at 644 on the file in this directory and the directory set to 755 permissions. Permissions of 444 on the configuration.php file are also acceptable if that is the current permissions of your configuration.php file.
  • Go to the root/includes/ directory in your Joomla install, backup the file defines.php.
  • Now open the file defines.php in your favorite editor
  • Around line 26 you will see this:
    define('JPATH_CONFIGURATION',JPATH_ROOT);

    Replace it with this:

    define('JPATH_CONFIGURATION',JPATH_ROOT.DS.'../design2-files');

    If Joomla has been installed in a subdirectory under public_html ( public_html/subdirectory/ ) then replace it with this

    define('JPATH_CONFIGURATION',JPATH_ROOT.DS.'../../'.DS.'design2-files');
    The /design2-files is our example subdirectory. Replace this with the name of your subdirectory.
  • Repeat these exact same steps with the defines.php file that is located in the root/administrator/includes/ directory. If you don’t do this access to your admin area will be prevented.
  • Go to the root of your installation and rename the configuration.php file to something like somefile.html while testing the modifications.
  • Using a browser, go to your website and test as many pages as you can to make certain it is working correctly.
  • When you are satisfied everything is working properly, delete the old renamed configuration.php file from the root of your Joomla installation.
  • Retest your website thoroughly to make sure everything is still working correctly.
  • Make sure you add the new directory (design2-files in our example) with the configuration.php file in it to your backup job so it doesn’t get missed.
  • You can access and modify the Joomla configuration as you would normally from the Joomla administration area. This access will not create a new configuration.php file, but will modify the moved configuration.php file.

Joomla 1.6, 1.7

Overriding defines.php

Starting with version 1.6, it is possible to provide a localized version of the files that reside in includes/defines.php (i.e. includes/defines.php and administrator/includes/defines.php). This makes it possible to move a variety of files outside of document root.

The actual process is quite simple, but it is advisable that you make sure you know what you’re doing before proceeding.

To start, copy the file {ROOT}/includes/defines.php to {ROOT}/defines.php and the file {ROOT}/administrator/includes/defines.php to {ROOT}/administrator/defines.php.

Once you have copied the files, it is necessary to edit both new files and add the lines:

define('_JDEFINES', 1);
define('JPATH_BASE', dirname(__FILE__));

underneath the defined(‘_JEXEC’) or die; line.

Setting the path to configuration.php

Now that you have created override files, you can edit them and provide new locations for various directories. The directory we’re interested in is JPATH_CONFIGURATION. The default value is defined as:

define('JPATH_CONFIGURATION', JPATH_ROOT);

 

To put the configuration file in another location, move the file to its new home and specify the new path. As an example, if your files were in /home/exampleuser/public_html and you wanted to put configuration.php in /home/exampleuser/configuration.php, you would change the JPATH_CONFIGURATION define line to:

define('JPATH_CONFIGURATION', '/home/exampleuser');

Make this change in both files, move the configuration.php file and you’re done.

Posted in Joomla, Security | Tagged , , , , | Leave a comment

http://www.joomla.org/announcements/release-news/5477-joomla-2-5-9-released.html

Update your Joomla system today.

Posted in Joomla, Software Updates | Tagged , | Leave a comment

Parent Technology has been using Magento since 2009 for all it customers ecommerce needs and it looks like we made the right choice.

image

UK developer Tom Robertshaw recently released the latest edition of his quarterly eCommerce survey. The survey looks at all sites in the Alexa 1 Million that are doing eCommerce, then analyzes those sites to identify which platform is being used.

According to the study, once again, Magento topped the field.  In fact, the survey found that 23% of all eCommerce sites in the Alexa 1 Million were using Magento – a higher share than any other eCommerce platform. Magento has seen growth in every single edition since the survey began 2 years ago. Robertshaw continues to invest time in improving the survey’s methodology, providing an even clearer picture of which platforms are leading and which are lagging.

Our thanks to Tom Robertshaw for creating this valuable tool. And most of all, we thank all the merchants, developers, partners and community members whose rapid adoption of our platform has taken Magento to the top of the eCommerce world.

Posted in eCommerce, Magento Commerce | Tagged , , , , , | Leave a comment

As some questions have come up, we wanted to provide some clarification to the blog post “Important Security Update – Zend Platform Vulnerability” posted of July, 5, 2012.

As outlined in that post, all Magento merchants on a deployed platform are strongly recommended to protect themselves from the Zend Framework vulnerability.

We have added further instructions on how to protect your business. Please apply the solution below that corresponds to your version of Magento.

Posted in eCommerce, Magento Commerce | Tagged , , , , , | Leave a comment

In the past, a few of my customers have had issues with dropping off google shopping.

There can be many different reasons for this.   404 errors – banned products – missing information – bad product feed – ect.

So if you are not checking on your feed on a weekly basis you may be dropped of the google shopping.   If you are not able to see your site on google shopping then you should reinstate it with the link below after you fix the issues.

http://support.google.com/merchants/bin/answer.py?hl=en&answer=188482&topic=2475589&ctx=topic

Posted in eCommerce, Magento Commerce, Search Engines | Tagged , , , , , , , | Leave a comment

Parent Technology has launched an new website.   Our new website is using Joomla 2.5.

Parent Technology is a full service Grand Rapids Web Design Company specializing in web design, internet marketing / search engine optimization “SEO” and web hosting.   If you have an established business, or perhaps you are just starting out on the Internet, Parent Technology is experienced in internet search engine optimization and will help you expand upon your client base.

Posted in News | Tagged , , | Leave a comment

Have you had the following error in the past?  Could not determine temp directory, please specify a cache_dir manually ”

Here is a tutorial that shows how to resolve the ” Could not determine temp directory, please specify a cache_dir manually ” message in Magento. This error sometimes occurs when you are trying to access some areas of the admin panel.  In my case I was able to fix a issue with products not adding to the cart.

Here are the steps:

1) Open Magento root directory and create tmp folder. 2) Set directory permissions to 755 or 777
2) Open “lib/Zend/Cache/Backend/File.php“, and locate the following code

protected $_options = array( ‘cache_dir’ => null,

replace with

protected $_options = array( ‘cache_dir’ => ‘tmp’,

Posted in eCommerce, Magento Commerce | Tagged , , , , , | Leave a comment

How to redirect Magento and Joolma! to open through www?

For SEO and usability purposes you may want to redirect your visitors to open your site only through http://www.exampledomain.com.
Some applications, including Joomla, require additional modifications to make this redirection work properly.

First, you should open the .htaccess file in the root folder. In it locate the “RewriteEngine on” line and right after it add the following lines:

RewriteCond %{HTTP_HOST} ^exampledomain.com$ [NC] RewriteRule ^(.*)$ http://www.exampledomain.com/$1 [R=301,L]
Once you do this, save the .htaccess file and log in to the administrative end of Magento.
Then go to the System > Configuration menu and from the left panel click the “Web” button.

Unfold the “Unsecured” set of options and change the “Base URL” option from http://exampledomain.com to http://www.exampledomain.com.
Save the changes and your Magento website will be running with www.exampledomain.com only!

Posted in eCommerce, Joomla, Magento Commerce | Tagged , , , , , , , | Leave a comment