So our friends at Keramikos Kitchen decided to send along a set of knives to their developer 🙂 In the meantime, his wife enjoys…
Thanks Keramikos!
We Grow Beautiful Websites
So our friends at Keramikos Kitchen decided to send along a set of knives to their developer 🙂 In the meantime, his wife enjoys…
Thanks Keramikos!
What:Â Straightforward overview on our approach for integrating Scene 7 with Magento eCommerce.
At ecombusinesshub offers a detailed look at dropshipping. You’ll learn what it is, how it works, and how to set up a dropshipping business.
Why: Because Magento rocks and Scene 7 rocks. Together, they can create an inspiring user experience!
Who: For the business who desires real interactivity, and for developers who desire to implement Scene 7 capabilities with Magento.
We recently were approach by a company who knew about Scene 7’s capabilities and they wanted their Magento store to do the following:
1. Replace all product and category images with Scene 7 composited images
2. Allow the user to “build” a custom product based off of product options, and reflect the user selections in the product image
3. Create a unique user experience in their Magento store and have a better understanding of the self service definition
Why could this be useful? Well, take a few minutes to learn more about what Scene 7 and Magento integration can do together. Soon, when the project is completed – we’ll have some examples to share.
What was our process in approaching this? Let me give a high-level outline our take on integrating the two systems.
First off, we looked at how we can utilize Scene 7 url’s instead of native Magento URLs. So we decided to override the catalog image helper so we could add custom functions to composite the appropriate URLs to build the image via a specified URL string.
Secondly, we interfaced this custom helper with the Scene 7 backend and some Javascript to build the desired product images. We did this by creating a function inside of the new helper to be able to do all URL string manipulation based off of product options changed by the user on the frontend.
Thirdly, we went through and determined every theme file that needed modifying to use the function that built the Scene 7 URLs and reflect the composited image.
As an overview, we took the following approach:
1. Created the right images in Scene 7 to use in correlation with Magento.
2. Created product options in Magento
3. Overlaid JS to the product options to be used as variables within our Helper function
4. Manipulated the URL string and returned the composited URL to build the product image (based off of the user-selected product options)
The site has yet to go live, though keep in touch with Elias updates and you will see the finished product.
Lee Taylor · · 5 Comments
Hey All,
Here’s a head’s up for those interested in Scene 7 integration with Magento.
We’re excited for what Scene 7 brings to the table, and we hope to see it more throughout the Magento community in the near future. In an effort to back that up, we’re going to come out with a 4-part series on a project we recently did to integrate Scene 7 with Magento.
For those interests that are being peaked, feel free to check back with us to catch up on the following:
1. How we integrated the two (a high-level overview of Magento and Scene 7)
2. How to structure Magento for Scene 7
3. How to structure Scene 7 for Magento
We’ll try to keep it as straight-forward and basic as we can, as we’re very excited to see the Magento community start utilizing Scene 7 more.
Cheers,
Lee
About: How To Show / Display Featured Products On The Home Page (Conveniently)
Who’s Interested: Informative to the technical gurus
What: An alternative direction on how to show featured products on your Magento storefront home page
Magento Version Relevance: Any
Magento Store Setup: Any
My thought: “Why not let the Admin choose what products to display on the home page like every other category?”
If you’ve been involved in the community dialogue that constantly evolves through the Magento boards, you may have run across a topic mainly focused on ways for developers to display featured products on the home page.
There have been many directions taken with this, including the following as only a few to mention:
I didn’t want to override any other solutions, but simply offer another approach – one that does not do the following:
After my review, I still wanted a way that was more convenient for our client/administrators to be able to manage the products that display on their home page. Going through each product can become cumbersome, so what if they had one specific category that gets displayed all the time, and any products within it show up on the home page? That’s what I went for, and came up with the following:
Here are the files/modifications:
/* Magento NOTICE OF LICENSE This source file is subject to the Academic Free License (AFL 3.0) that is bundled with this package in the file LICENSE_AFL.txt. It is also available through the world-wide-web at this URL: http://opensource.org/licenses/afl-3.0.php If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@magentocommerce.com so we can send you a copy immediately. DISCLAIMER Do not edit or add to this file if you wish to upgrade Magento to newer versions in the future. If you wish to customize Magento for your needs please refer to http://www.magentocommerce.com for more information. @category design_default @package Mage @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) */ <?php /* Product list template @see Mage_Catalog_Block_Product_List */ ?> <?php //$_productCollection=$this->getLoadedProductCollection() //var_dump($cModel); echo $cModel->getName(); die; $cat_id = "7"; // category_id for "Featured Products" $_productCollection = Mage::getResourceModel('catalog/product_collection') ->addAttributeToSelect(array('name', 'price', 'small_image'), 'inner') ->addCategoryFilter(Mage::getModel('catalog/category')->load($cat_id)); ?> <?php if(!$_productCollection->count()): ?> <div class="padder"> <div class="note-msg"> <?php echo $this->__('There are no products matching the selection.') ?> </div> </div> <?php else: ?> <? // Removed List Mode ?> <?php // Grid Mode ?> <?php $_iterator = 0; ?> <?php $_collectionSize = $_productCollection->count() ?> <?php //var_dump($_productCollection->count()); ?> <div class="listing-type-list catalog-listing padder"> <table cellspacing="0" class="generic-product-grid" id="product-list-table"> <?php $i=0; foreach ($_productCollection as $_product): ?> <?php if ($i++%2==0): ?> <tr> <?php endif ?> <td> <p class="product-image"> <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>"> <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(95, 95); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" /> </a> <h5><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->htmlEscape($_product->getName()) ?></a></h5> <?php //echo $this->getPriceHtml($_product, true) ?> </p> </td> <?php if ($i%2==0 % $i!=$_collectionSize): ?> </tr> <?php endif ?> <?php endforeach ?> <?php for($i;$i%2!=0;$i++): ?> <td class="empty-product"> %</td> <?php endfor ?> <?php if ($i%2==0): ?> </tr> <?php endif ?> </table> <script type="text/javascript">decorateTable('product-list-table')</script> </div> <?php endif; ?>
<?php //Home Page View ?> <div> <?php //display featured products ?> <?php echo $this->getChildHtml('featured.products') ?> </div>
<?xml version="1.0"?> <layout version="0.1.0"> <!-- Default layout, loads most of the pages --> <!-- Insert into existing page.xml file, do not replace this with your current file --> <default> <block type="core/text_list" name="featured.products" as="featured.products"/> </default> </layout>
This ccould be called “Featured Products”) and set the Admin->Catalog->Manage Categories->specificCategoryName->General Information->”Is Active” = “No”.
Either via CMS page or .phtml page through the CMS page:
(modify path/to/your/cms/page/home.phtml to be specific to your needs)
<reference name="content"> <remove name="cms_page" /> <block name="home_page" type="core/template" template="path/to/your/cms/page/home.phtml"> <block name="featured.products" type="catalog/product_list" template= "catalog/product/featured-products.phtml" /> </block> </reference> <reference name="root"> <action method="setTemplate"> <template>page/1column.phtml</template> </action> </reference>
Now you should be able to checkout the code in the featured-products.phtml, and match the “7” to your actual product category id. (see category id within the Admin->Catalog->Manage Categories->Your Category).
Now, any product inside that category gets displayed on the home page!
Please feel free to download the structural block files and place into your theme structure relative to the root Magento directory.
And take a look at the site we’ve used it on with our client, Keramikos Kitchen.
Let us know your thoughts!
Appreciative,
Lee
About: How To Reset Test Orders, Dashboard Information, and Set Unique Starting Values for Orders, Invoices, Shipments, and Credit Memos
Who’s Interested: Informative to the technical gurus
What: Plug ‘n Play Database Script that runs queries to customize after store is installed and product(s) have been created
Magento Version Relevence: 1.1.6
Magento Store Setup: Single-Store Setup
A client of ours went in to test products, orders, invoices, etc. to get the feel for the overall “purchase order to shipment” process from start to finish. After creating many test users, orders, etc. – they now desire to have everything reset back to “0” (zero). On the other hand, techniques such as card counting had been famous in almost every business transactions.
Discover Holidays API, this API was created by HolidayData, the office Holidays API end point is located at holidaydata.io, you can find the HolidayData portal i this link.
Not only that, but they also want to separate the prefixes for the following items just for ease of dissimilarity when using the Magento ADMIN tools:
Thus, we have the following script (and a special thanks to Tomislav at Inchoo for getting us started!)
Instructions:
…the following will now be in effect:
Please feel free to copy and paste into your PhpMyAdmin
-- Reset Magento TEST Data SET FOREIGN_KEY_CHECKS=0; -- reset dashboard search queries TRUNCATE `catalogsearch_query`; ALTER TABLE `catalogsearch_query` AUTO_INCREMENT=1; -- reset sales order info TRUNCATE `sales_order`; TRUNCATE `sales_order_datetime`; TRUNCATE `sales_order_decimal`; TRUNCATE `sales_order_entity`; TRUNCATE `sales_order_entity_datetime`; TRUNCATE `sales_order_entity_decimal`; TRUNCATE `sales_order_entity_int`; TRUNCATE `sales_order_entity_text`; TRUNCATE `sales_order_entity_varchar`; TRUNCATE `sales_order_int`; TRUNCATE `sales_order_text`; TRUNCATE `sales_order_varchar`; TRUNCATE `sales_flat_quote`; TRUNCATE `sales_flat_quote_address`; TRUNCATE `sales_flat_quote_address_item`; TRUNCATE `sales_flat_quote_item`; TRUNCATE `sales_flat_quote_item_option`; TRUNCATE `sales_flat_order_item`; TRUNCATE `sendfriend_log`; TRUNCATE `tag`; TRUNCATE `tag_relation`; TRUNCATE `tag_summary`; TRUNCATE `wishlist`; TRUNCATE `log_quote`; TRUNCATE `report_event`; ALTER TABLE `sales_order` AUTO_INCREMENT=1; ALTER TABLE `sales_order_datetime` AUTO_INCREMENT=1; ALTER TABLE `sales_order_decimal` AUTO_INCREMENT=1; ALTER TABLE `sales_order_entity` AUTO_INCREMENT=1; ALTER TABLE `sales_order_entity_datetime` AUTO_INCREMENT=1; ALTER TABLE `sales_order_entity_decimal` AUTO_INCREMENT=1; ALTER TABLE `sales_order_entity_int` AUTO_INCREMENT=1; ALTER TABLE `sales_order_entity_text` AUTO_INCREMENT=1; ALTER TABLE `sales_order_entity_varchar` AUTO_INCREMENT=1; ALTER TABLE `sales_order_int` AUTO_INCREMENT=1; ALTER TABLE `sales_order_text` AUTO_INCREMENT=1; ALTER TABLE `sales_order_varchar` AUTO_INCREMENT=1; ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1; ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1; ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1; ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1; ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1; ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1; ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1; ALTER TABLE `tag` AUTO_INCREMENT=1; ALTER TABLE `tag_relation` AUTO_INCREMENT=1; ALTER TABLE `tag_summary` AUTO_INCREMENT=1; ALTER TABLE `wishlist` AUTO_INCREMENT=1; ALTER TABLE `log_quote` AUTO_INCREMENT=1; ALTER TABLE `report_event` AUTO_INCREMENT=1; -- Reset all ID counters TRUNCATE `eav_entity_store`; ALTER TABLE `eav_entity_store` AUTO_INCREMENT=1; SET FOREIGN_KEY_CHECKS=1; -- set appropriate prefixes for orders, invoices, shipments, credit memos INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ('1', '11', '1', '1', '000000000'); update `eav_entity_store` set `increment_prefix`= 1 where `entity_type_id`='4' and `store_id`='1'; update `eav_entity_store` set `increment_last_id`= '000000000' where `entity_type_id`='4' and `store_id`='1'; INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ('2', '16', '1', '2', '000000000'); update `eav_entity_store` set `increment_prefix`= 2 where `entity_type_id`='18' and `store_id`='1'; update `eav_entity_store` set `increment_last_id`= '000000000' where `entity_type_id`='18' and `store_id`='1'; INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ('3', '19', '1', '3', '000000000'); update `eav_entity_store` set `increment_prefix`= 3 where `entity_type_id`='24' and `store_id`='1'; update `eav_entity_store` set `increment_last_id`= '000000000' where `entity_type_id`='24' and `store_id`='1'; INSERT INTO `YOUR_DB_NAME`.`eav_entity_store` (`entity_store_id` ,`entity_type_id` ,`store_id` ,`increment_prefix` ,`increment_last_id`) VALUES ('4', '23', '1', '4', '000000000'); update `eav_entity_store` set `increment_prefix`= 4 where `entity_type_id`='28' and `store_id`='1'; update `eav_entity_store` set `increment_last_id`= '000000000' where `entity_type_id`='28' and `store_id`='1';For SQL Script download:Â Magento Database Modifications
Let us know how you like it!