Sie würden nicht glauben, wie viel Zeit ich damit verbracht habe, dies zu erforschen / zu versuchen. Alles, was ich möchte, ist, dass nach der Produktseite eine zusätzliche Seite im Bestellvorgang angezeigt wird, auf der der Kunde gefragt wird, welche Cross-Selling-Produkte er seiner Bestellung hinzufügen möchte (ich würde sie als Upselling bezeichnen, aber ich denke, das Magento Jargon ist "Cross-Selling"). Ich finde es wirklich unglaublich, dass mehr Unternehmen dies nicht wollen (ich denke, "Upselling" kann den Gewinn erheblich steigern, und was in Magento eingebaut ist, funktioniert nicht so gut (ich habe mehr als 20 "Cross-Selling" -Produkte und sie) dort nicht mal passen / zeigen).
Ich benutze Magento ver. 1.9.1.0.
Ich habe gerade das Porto Theme # 11 installiert, wenn das einen Unterschied macht
NEUE INFO: Ich habe versucht, dies umzusetzen, aber bisher kein Glück. Ich habe sogar jemanden, der mir jetzt hilft, aber wir können es nicht herausfinden. Kann jemand bitte Schritt für Schritt Anweisungen dazu geben? (Jede Lösung wäre sehr dankbar) .
Ich möchte, dass es ähnlich funktioniert wie proflowers.com (siehe den beigefügten Screenshot):
Diese Seite wird als nächster Schritt angezeigt, nachdem der Kunde ein Produkt in den Warenkorb gelegt hat (klicken Sie auf PROCEED TO CHECKOUT).
Alle die Cross-Selling - Produkte sind immer die SAME für jeden (jedes Produkt zu bestellen)
Bearbeitet am 15. November 2016:
Die Lösung, die mit 100 ausgezeichnet wurde, funktioniert tatsächlich. Jeder, der versucht, das zu tun, was ich versuche, sollte die Dateien herunterladen und in Ihr Stammverzeichnis hochladen und dann den folgenden Code in Ihre app/code/community/TM/SuggestPage/controllers/IndexController.php
Datei einfügen :
$block2 = $this->getLayout()->createBlock('checkout/cart_coupon')->setTemplate('checkout/cart/coupon.phtml');
$this->getLayout()->getBlock('content')->append($block2);
Ich versuche immer noch herauszufinden, wie 12 Produkte auf der speziellen Cross-Selling-Seite anstatt nur 4 angezeigt werden. Gemäß @MurtuzaZabuawala sollte dies durch Ändern der Datei crosssell.phtml in:
app/design/frontend/YourPackge/YourTheme/checkout/cart/
Ich habe meine crossell.phtml hier gefunden :
/public_html/app/design/frontend/smartwave/porto/template/checkout/cart
(Ich hoffe es ist das richtige - ich habe das Porto Theme installiert)
So sieht es aus:
<?php
/**
* Cart cross sell items template
*
* @see Mage_Checkout_Block_Cart_Crosssell
*/
$store = Mage::app()->getStore();
$code = $store->getCode();
$aspect_ratio = Mage::getStoreConfig("porto_settings/category/aspect_ratio",$code);
$ratio = ($aspect_ratio || (!$aspect_ratio && Mage::getStoreConfig("porto_settings/category/ratio_width",$code) == 0))?1:(Mage::getStoreConfig("porto_settings/category/ratio_height",$code)/Mage::getStoreConfig("porto_settings/category/ratio_width",$code));
?>
<?php if($this->getItemCount()): ?>
<div class="crosssell">
<h2><?php echo $this->__('Based on your selection, you may be interested in the following items:') ?></h2>
<ul id="crosssell-products-list" class="row">
<?php foreach ($this->getItems() as $_item): ?>
<li class="item col-sm-6 col-md-3">
<a class="product-image" href="<?php echo $_item->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_item->getName()) ?>"><img src="<?php echo $this->helper('catalog/image')->init($_item, 'thumbnail')->resize(84,84*$ratio); ?>" width="84" height="<?php echo 84*$ratio ?>" alt="<?php echo $this->escapeHtml($_item->getName()) ?>" /></a>
<div class="product-details">
<h3 class="product-name"><a href="<?php echo $_item->getProductUrl() ?>"><?php echo $this->escapeHtml($_item->getName()) ?></a></h3>
<?php echo $this->getPriceHtml($_item, true) ?>
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_item) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
<ul class="add-to-links">
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href="<?php echo $this->getAddToWishlistUrl($_item) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
<?php endif; ?>
<?php if($_compareUrl=$this->getAddToCompareUrl($_item)): ?>
<li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
<?php endif; ?>
</ul>
</div>
</li>
<?php endforeach; ?>
</ul>
<script type="text/javascript">decorateList('crosssell-products-list', 'none-recursive')</script>
</div>
<?php endif; ?>
EDITIERT 2. Dezember 2016:
Dies ist eine großartige Lösung, die perfekt funktioniert, insbesondere wenn Sie jedem Produkt einzeln unterschiedliche Cross-Selling-Produkte zuweisen möchten. In meinem Fall - Ich möchte, dass alle meine Produkte genau die gleichen Cross-Selling-Produkte haben, und ich möchte dies je nach Saison ändern können. Deshalb habe ich mich für den zusätzlichen Schritt beim Auschecken entschieden (Lösung von Murtuza) Zabuawala unten) zeigen Produkte aus einer speziellen Kategorie an, die ich nur aus diesem Grund erstellt habe. Murtuza Zabuawala hat einen tollen Job gemacht. Ich vermisse hier nur den letzten Schritt:
Wenn ich den Code eingebe, der die Produkte einer bestimmten Kategorie anzeigen soll:
$block = $this->getLayout()->createBlock('catalog/product_list')->setCategoryId(157)->setTemplate('catalog/product/list.phtml'); $this->getLayout()->getBlock('content')->append($block);
Ich erhalte die folgende Fehlermeldung:
> There has been an error processing your request
>
>
> SQLSTATE[42000]: Syntax error or access violation: 1064 You have an
> error in your SQL syntax; check the manual that corresponds to your
> MySQL server version for the right syntax to use near ')' at line 1,
> query was: SELECT `mg_catalog_category_entity`.* FROM
> `mg_catalog_category_entity` WHERE (entity_id =)
>
> Trace:
> #0 /home/mystore/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110):
> Zend_Db_Statement_Pdo->_execute(Array)
> #1 /home/mystore/public_html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
> #2 /home/mystore/public_html/lib/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array)
> #3 /home/mystore/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238):
> Zend_Db_Adapter_Abstract->query('SELECT `mg_cata...', Array)
> #4 /home/mystore/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `mg_cata...', Array)
> #5 /home/mystore/public_html/lib/Zend/Db/Adapter/Abstract.php(756): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
> #6 /home/mystore/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(943):
> Zend_Db_Adapter_Abstract->fetchRow(Object(Varien_Db_Select))
> #7 /home/mystore/public_html/app/code/core/Mage/Catalog/Model/Resource/Abstract.php(698):
> Mage_Eav_Model_Entity_Abstract->load(Object(Mage_Catalog_Model_Category),
> Object(Mage_Catalog_Model_Category), NULL)
> #8 /home/mystore/public_html/app/code/core/Mage/Core/Model/Abstract.php(225):
> Mage_Catalog_Model_Resource_Abstract->load(Object(Mage_Catalog_Model_Category),
> Object(Mage_Catalog_Model_Category), NULL)
> #9 /home/mystore/public_html/app/code/core/Mage/Catalog/Block/Product/List.php(80):
> Mage_Core_Model_Abstract->load(Object(Mage_Catalog_Model_Category))
> #10 /home/mystore/public_html/app/code/core/Mage/Catalog/Block/Product/List.php(142):
> Mage_Catalog_Block_Product_List->_getProductCollection()
> #11 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(918):
> Mage_Catalog_Block_Product_List->_beforeToHtml()
> #12 /home/mystore/public_html/app/code/core/Mage/Core/Block/Text/List.php(43):
> Mage_Core_Block_Abstract->toHtml()
> #13 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(919):
> Mage_Core_Block_Text_List->_toHtml()
> #14 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(637):
> Mage_Core_Block_Abstract->toHtml()
> #15 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(581):
> Mage_Core_Block_Abstract->_getChildHtml('content', true)
> #16 /home/mystore/public_html/app/design/frontend/smartwave/porto/template/page/1column.phtml(49):
> Mage_Core_Block_Abstract->getChildHtml('content')
> #17 /home/mystore/public_html/app/code/core/Mage/Core/Block/Template.php(241):
> include('/home/mystore/pu...')
> #18 /home/mystore/public_html/app/code/core/Mage/Core/Block/Template.php(272):
> Mage_Core_Block_Template->fetchView('frontend/smartw...')
> #19 /home/mystore/public_html/app/code/core/Mage/Core/Block/Template.php(286):
> Mage_Core_Block_Template->renderView()
> #20 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(919):
> Mage_Core_Block_Template->_toHtml()
> #21 /home/mystore/public_html/app/code/core/Mage/Core/Model/Layout.php(555):
> Mage_Core_Block_Abstract->toHtml()
> #22 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(390):
> Mage_Core_Model_Layout->getOutput()
> #23 /home/mystore/public_html/app/code/community/TM/SuggestPage/controllers/IndexController.php(32):
> Mage_Core_Controller_Varien_Action->renderLayout()
> #24 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(418):
> TM_SuggestPage_IndexController->indexAction()
> #25 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250):
> Mage_Core_Controller_Varien_Action->dispatch('index')
> #26 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(172):
> Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
> #27 /home/mystore/public_html/app/code/core/Mage/Core/Model/App.php(354):
> Mage_Core_Controller_Varien_Front->dispatch()
> #28 /home/mystore/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
> #29 /home/mystore/public_html/index.php(87): Mage::run('', 'store')
> #30 {main}
meine
app / code / community / TM / SuggestPage / controller / IndexControlle r.php
sieht aus wie das:
<?php class TM_SuggestPage_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { $this->loadLayout() ->_initLayoutMessages('checkout/session') ->_initLayoutMessages('catalog/session'); $block2 = $this->getLayout()->createBlock('checkout/cart_coupon')->setTemplate('checkout/cart/coupon.phtml'); $this->getLayout()->getBlock('content')->append($block2); $_product = Mage::getModel('catalog/product')->load(1); //here 1 is product Id $block = $this->getLayout()->createBlock('catalog/product_list')->setCategoryId(157)->setTemplate('catalog/product/list.phtml'); $this->getLayout()->getBlock('content')->append($block); $this->renderLayout(); } }
Als ich stattdessen den folgenden Code ausprobiert habe (in :) app/code/community/TM/SuggestPage/controllers/IndexController.php
:
** **.
$category = Mage::getModel('catalog/category')->load(190);
$block = $this->getLayout()->createBlock('catalog/product_list')->setCategory($category)->setTemplate('catalog/product/list.phtml'); $this->getLayout()->getBlock('content')->append($block);
** **.
- es gab mir diesen Fehler :
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your
Die MySQL-Serverversion für die richtige Syntax zur Verwendung in der Nähe von ')' in Zeile 1 lautete: SELECT
mg_catalog_category_entity
. * FROMmg_catalog_category_entity
WHERE (entity_id =)Trace: #0 /home/mystore/public_html/lib/Varien/Db/Statement/Pdo/Mysql.php(110):
Zend_Db_Statement_Pdo -> _ execute (Array) # 1 /home/mystore/public_html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql -> _ execute (Array) # 2 / home / mystore / public_html / lib /Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement-> execute (Array) # 3 /home/mystore/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract-> Abfrage ('SELECT
mg_cata...', Array) #4 /home/mystore/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('SELECT
mg_cata ... ', Array) # 5 /home/mystore/public_html/lib/Zend/Db/Adapter/Abstract.php(756): Varien_Db_Adapter_Pdo_Mysql-> query (Object (Varien_Db_Select), Array) # 6 / home / mystore /public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php(943): Zend_Db_Adapter_Abstract-> fetchRow (Object (Varien_Db_Select)) # 7 / home / mystore / public_html / app / code / core / Mage /Catalog/Model/Resource/Abstract.php(698): Mage_Eav_Model_Entity_Abstract-> load (Objekt (Mage_Catalog_Model_Category), Objekt (Mage_Catalog_Model_Category), NULL) # 8 / home / mystore / public_html / Model / Abstract.php (225): Mage_Catalog_Model_Resource_Abstract-> load (Objekt (Mage_Catalog_Model_Category), Objekt (Mage_Catalog_Model_Category), NULL) # 9 / home / mystore / public_html / app / code / core / Mage / Catalog / Block / .php (80):Mage_Core_Model_Abstract-> load (Object (Mage_Catalog_Model_Category)) # 10 /home/mystore/public_html/app/code/core/Mage/Catalog/Block/Product/List.php(142): Mage_Catalog_Block_Product_List_Product /mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(918): Mage_Catalog_Block_Product_List -> _ beforeToHtml () # 12 / home / mystore / public_html / app / code / core / Mage / Core / Block /Text/List.php(43): Mage_Core_Block_Abstract-> toHtml () # 13 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Core_Block_Text_List -> _ toHt # 14 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(637): Mage_Core_Block_Abstract-> toHtml () # 15 / home / mystore / public_html / app / code / core / Mage /Core/Block/Abstract.php(581): Mage_Core_Block_Abstract->_getChildHtml ('content', true) # 16 /home/mystore/public_html/app/design/frontend/smartwave/porto/template/page/1column.phtml(49): Mage_Core_Block_Abstract-> getChildHtml ('content') # 17 / home / mystore / public_html / app / code / core / Mage / Core / Block / Template.php (241): include ('/ home / mystore / pu ...') # 18 / home / mystore / public_html / app / code / core / Mage / Core / Block / Template.php (272): Mage_Core_Block_Template-> fetchView ('frontend / smartw ...') # 19 / home / mystore / public_html / app / code / core / Mage / Core / Block / Template.php (286): Mage_Core_Block_Template-> renderView () # 20 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abstract.php(919): Mage_Core_Block_Template -> _ toHtml () # 21 /home/mystore/public_html/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml () # 22 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout-> getOutput () # 23 / home / mystore / public_html / app / code / community / TM / SuggestPage / controller / IndexController.php (33): Mage_Core_Controller_Varien_Action-> renderLayout () # 24 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php ( 418): TM_SuggestPage_IndexController-> indexAction () # 25 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action-> dispatch # 26 /home/mystore/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match (Object (Mage_Core_Controller_Request_Http)) # 27 /home/mystore/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front-> dispatch () # 28 / home /ml / app / Mage.php (684): Mage_Core_Model_App-> run (Array) # 29 /home/mystore/public_html/index.php(87): Mage :: run ('', 'store') # 30 {main}Error log record number: 573016373867
Soll meine Controller.php so aussehen?
<?php class TM_SuggestPage_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { $this->loadLayout() ->_initLayoutMessages('checkout/session') ->_initLayoutMessages('catalog/session'); $block2 = $this->getLayout()->createBlock('checkout/cart_coupon')->setTemplate('checkout/cart/coupon.phtml'); $this->getLayout()->getBlock('content')->append($block2); $_product = Mage::getModel('catalog/product')->load(1); //here 1 is product Id $category = Mage::getModel('catalog/category')->load(190); $block = $this->getLayout()->createBlock('catalog/product_list')->setCategory($category)->setTemplate('catalog/product/list.phtml');
$ this-> getLayout () -> getBlock ('content') -> append ($ block);
$this->renderLayout(); } }
EDITIERT am 29. Dezember 2016:
Die von Murtuza Zabuawala gepostete Lösung ist großartig! Das einzige, was ich noch tun muss, ist, Code einzugeben, um Produkte aus einer bestimmten Kategorie anstelle der eigentlichen Cross-Selling-Artikel aufzurufen (anzuzeigen). Irgendeine Idee, wie das geht?