2017-07-24 48 views
0

我想在magento 2中創建快速訂單模塊。我遇到了代碼路徑塊,ajax等問題。請有人可以幫助我解決這個問題。我怎樣才能生成JS/Ajax自動搜索文件的工作如產品名稱或SKU的搜索產品,然後我將該產品添加到購物車頁面。我嘗試幫助一個模塊,如「MageWorx_SearchSuitAutoComplete」,但它產生了一個問題。請幫助我。Magento 2快速訂購模塊

+0

我投票關閉這一問題作爲題外話,因爲Stack Overflow是一個[編程相關(http://stackoverflow.com/help/on-topic)Q&A網站。你的問題不是關於編程。也許你應該在http://magento.stackexchange.com上發佈它呢? – Enigmativity

回答

0

製作一個名稱類似Quickorder/index/index的控制器,現在在Quickorder上執行一個功能。

<?php 
namespace CompanyName\CustomApi\Controller\Index; 

    class Index extends \Magento\Framework\App\Action\Action 
    { 

    protected $resultPageFactory; 
    protected $httpClientFactory; 
    protected $productCollectionFactory; 

    public function __construct( 
     \Magento\Framework\App\Action\Context $context, 
     \Magento\Framework\View\Result\PageFactory $resultPageFactory, 
     \Magento\Framework\HTTP\ZendClientFactory $httpClientFactory, 
     \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, 
     \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory 

    ) { 
     $this->resultPageFactory = $resultPageFactory; 
     $this->productCollectionFactory = $productCollectionFactory; 
     $this->_httpClientFactory = $httpClientFactory; 
     $this->resultJsonFactory = $resultJsonFactory; 
     parent::__construct($context); 
    } 

    public function execute(){ 
     $search_text = $this->getRequest()->getPost('search_text'); 
     $collection = $this->_productCollectionFactory->create(); 
     $collection->addAttributeToSelect(array('name'))->addAttributeToFilter('name', 
     array('like' => $search_text.' %'), 
     array('like' => '% '.$search_text.' %'), 
     array('like' => '% '.$search_text) 
     )); 
     echo "<pre>"; 
     print_r($collection->getData()); 
     die(); 
    } 

在輸入類型使一個jquery功能和請求與一個KEYUP AJAX調用。

$('#quick-search').keyup(function(){ 
     var search_text = jQuery("#quick-search").val(); 
     try { 
       jQuery.ajax({ 
        url : '<?php echo $block->getUrl('quickorder/index/index') ?>', 
        dataType : 'json', 
        data: { 'search_text' : search_text }, 
        type : 'post', 
        success : function(data) { 
         jQuery('.main-search-results').html(data.products); 
        } 
       }); 
      } catch (e) { 
      } 
    }); 

或者你也可以使用需要JS來代替這個jQuery。

感謝