Bạn sẽ không tin rằng tôi đã dành bao nhiêu thời gian để nghiên cứu / cố gắng để thực hiện điều này. Tất cả những gì tôi muốn là có thêm một trang trong quy trình đặt hàng sau khi trang sản phẩm hỏi khách hàng họ muốn bán sản phẩm nào mà họ muốn thêm vào đơn đặt hàng (tôi sẽ gọi họ là bán nhưng tôi đoán Magento biệt ngữ là "bán chéo"). Tôi thực sự thấy không thể tin được rằng nhiều doanh nghiệp không muốn điều này (tôi nghĩ rằng "bán tăng giá" có thể làm tăng đáng kể lợi nhuận và những gì được tích hợp trong Magento không thực sự hoạt động tốt (tôi có hơn 20 sản phẩm "Bán chéo" và họ thậm chí không phù hợp / hiển thị trên đó).
Tôi đang sử dụng Magento ver. 1.9.1.0.
Tôi vừa cài đặt Chủ đề Porto # 11 nếu điều đó tạo ra sự khác biệt
THÔNG TIN MỚI: Tôi đã cố gắng thực hiện điều này nhưng không có may mắn cho đến nay. Tôi thậm chí có ai đó giúp tôi bây giờ nhưng chúng tôi không thể tìm ra. Ai đó có thể xin vui lòng hướng dẫn từng bước về cách làm điều này? (BẤT K Solution giải pháp nào sẽ được đánh giá cao) .
Tôi muốn nó hoạt động tương tự như những gì proflowers.com có (xem ảnh chụp màn hình kèm theo):
Họ có trang này xuất hiện khi bước tiếp theo SAU khách hàng thêm một sản phẩm vào giỏ hàng (nhấp vào CHẾ BIẾN ĐỂ KIỂM TRA)
Tất cả các sản phẩm bán chéo đều LUÔN LÀ CÙNG cho mọi người (mọi sản phẩm được đặt hàng)
Chỉnh sửa vào ngày 15 tháng 11 năm 2016:
Các giải pháp đã được trao 100 danh tiếng thực sự hoạt động. Bất cứ ai đang cố gắng làm những gì tôi đang cố gắng nên tải xuống các tệp và tải chúng vào thư mục gốc của bạn và sau đó thêm mã sau vào app/code/community/TM/SuggestPage/controllers/IndexController.php
tệp của bạn :
$block2 = $this->getLayout()->createBlock('checkout/cart_coupon')->setTemplate('checkout/cart/coupon.phtml');
$this->getLayout()->getBlock('content')->append($block2);
Tôi vẫn đang cố gắng tìm ra cách hiển thị 12 sản phẩm trên trang Bán chéo đặc biệt thay vì chỉ 4. Truy cập vào @MurtuzaZabuawala - điều này nên được thực hiện bằng cách sửa đổi tệp crosssell.phtml trong:
app/design/frontend/YourPackge/YourTheme/checkout/cart/
Tôi tìm thấy crossell.phtml của tôi ở đây :
/public_html/app/design/frontend/smartwave/porto/template/checkout/cart
(Tôi hy vọng đó là một cái đúng - Tôi đã cài đặt Chủ đề Porto)
Đây là những gì nó trông giống như:
<?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; ?>
EDITED ngày 2 tháng 12 năm 2016:
Đây là một giải pháp tuyệt vời hoạt động hoàn hảo đặc biệt nếu bạn muốn chỉ định các sản phẩm bán chéo khác nhau cho từng sản phẩm. Trong trường hợp của tôi - Tôi muốn tất cả các sản phẩm của mình đều có các sản phẩm bán chéo CHÍNH XÁC và tôi muốn có thể thay đổi tùy theo mùa nên tôi quyết định có thêm bước kiểm tra (giải pháp do Murtuza cung cấp Zabuawala bên dưới) hiển thị các sản phẩm từ một danh mục đặc biệt tôi tạo ra chỉ vì lý do này. Murtuza Zabuawala đã làm rất tốt với. Tôi chỉ thiếu bước cuối cùng ở đây:
Khi tôi nhập mã sẽ hiển thị các sản phẩm từ một danh mục cụ thể:
$block = $this->getLayout()->createBlock('catalog/product_list')->setCategoryId(157)->setTemplate('catalog/product/list.phtml'); $this->getLayout()->getBlock('content')->append($block);
Tôi nhận được thông báo lỗi sau:
> 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}
của tôi
ứng dụng / mã / cộng đồng / TM / Đề xuất / bộ điều khiển / IndexControlle r.php
trông như thế này:
<?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(); } }
Khi tôi đã thử đoạn mã sau thay thế (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);
**
- nó đã cho tôi lỗi này :
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your
Phiên bản máy chủ MySQL cho cú pháp đúng để sử dụng gần ')' ở dòng 1, truy vấn là: CHỌN
mg_catalog_category_entity
. * TỪ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 -> _ exec (Array) # 1 /home/mystore/public_html/app/code/core/Zend/Db/Statement.php(291): Varien_Db_Statement_Pdo_Mysql -> _ exec (Array) /Zend/Db/Ad CHƯƠNG / Abauge.php (480): Zend_Db_Statement-> thực thi (Mảng) # 3 /home/mystore/public_html/lib/Zend/Db/Ad Module / Pdo / Abauge.php (238): Zend_Db truy vấn ('CHỌN
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/Ad Module / Abauge.php (756): Varien_Db_Ad CHƯƠNG_Pdo_Mysql-> truy vấn (Object (Varien_Db_Select), Array) /public_html/app/code/core/Mage/Eav/Model/Entity/ Abauge.php (943): Zend_Db_Ad CHƯƠNG_Abauge-> fetchRow (Object (Varien_Db_Select)) # 7 / home / mystore / public_html /Catalog/Model/Resource/ Ab khu vực Model / Abstract.php (225): Mage_Catalog_Model_Resource_Abauge-> load (Object (Mage_Catalog_Model_Carget), Object (Mage_Catalog_Model_Carget), NULL) # 9 / home / mystore / public_html / app / .php (80):Mage_Core_Model_Ab khu vực /mystore/public_html/app/code/core/Mage/Core/Block/ Abauge.php (918): Mage_Catalog_Block_ Productt_List -> _ beforeToHtml () # 12 / home / mystore / public_html / app / code / core / /Text / List.php (43): Mage_Core_Block_Abauge-> toHtml () # 13 /home/mystore/public_html/app/code/core/Mage/Core/Block/ Ab khu.php (919): Mage_Core_Block_Text # 14 /home/mystore/public_html/app/code/core/Mage/Core/Block/Abauge.php(637): Mage_Core_Block_Abauge-> toHtml () # 15 / home / mystore / public_html / app / code / core /Core/Block/ Ab khu.php (581): Mage_Core_Block_Ab khu-_getChildHtml ('nội dung', đúng) # 16 /home/mystore/public_html/app/design/frontend/smartwave/porto/template/page/1column.phtml(49): Mage_Core_Block_Abauge-> getChild home / mystore / public_html / app / code / core / Mage / Core / Block / Template.php (241): bao gồm ('/ 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 / Chặn / Mẫu.php (286): Mage_Core_Block_Template-> renderView () # 20 /home/mystore/public_html/app/code/core/Mage/Core/Block/ Abauge.php (919): Mage_Core_Block_Template -> 21 /home/mystore/public_html/app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abauge->toHtml () # 22 /home/mystore/public_html/app/code/core/Mage/Core/Contoder/Varien/Action.php(390): Mage_Core_Model_Layout-> getOutput () # 23 / home / myst / code / cộng đồng / TM / suggestPage / controls / IndexContoder.php (33): Mage_Core_Controll_Varien_Action-> renderLayout () # 24 /home/mystore/public_html/app/code/core/Mage/Core/Controll/Vien/ 418): TM_SuggestPage_IndexControll-> indexAction () # 25 /home/mystore/public_html/app/code/core/Mage/Core/Contoder/Varien/Router/St Chuẩn.php (250): Mage_Core_Controll_Var # 26 /home/mystore/public_html/app/code/core/Mage/Core/Contoder/Varien/Front.php(172): Mage_Core_Controll_Varien_Router_St Chuẩn->khớp (Đối tượng (Mage_Core_Controll_Request_Http)) # 27 /home/mystore/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controll_Varien_Front-> 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
Bộ điều khiển của tôi có giả sử như thế này không?
<?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 ('nội dung') -> chắp thêm ($ block);
$this->renderLayout(); } }
EDITED ngày 29 tháng 12 năm 2016:
Giải pháp được đăng bởi Murtuza Zabuawala là tuyệt vời! Điều duy nhất tôi vẫn cần làm là đưa một số mã vào để gọi lên (hiển thị) các sản phẩm từ một danh mục cụ thể thay vì các mặt hàng bán chéo thực tế. Có ý tưởng nào để làm việc này không?