2015-11-25 157 views
6

我安裝了新鮮的magento2,並且頂級類別正在運行,但對於子類別,前端沒有產品出現,即使我認爲產品已歸入這些子類別。產品未顯示在Magento2子類別

總是說「我們找不到與產品匹配的產品」。

我在哪裏可以找到Magento 2中負責顯示產品的代碼,以便我可以通過編程方式診斷此問題?

+0

歡迎計算器!由於SO是一個致力於編程問題的網站,因此這裏的問題是無關緊要的。請參加[介紹性旅遊](http://www.stackoverflow.com/tour)。此外,您的問題缺乏基本信息,如使用的版本等。您可能想閱讀[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask),這可以增加獲得有用答案的可能性。你可能會發現[ESR](https://en.m.wikipedia.org/wiki/Eric_S._Raymond)的文章[如何提問智能方式](http://catb.org/~esr/faqs /smart-questions.html)很有幫助。 –

+0

由於Stack Overflow是一個[編程相關](http://stackoverflow.com/help/on-topic)問答站點,因此我正在投票關閉此問題。你的問題不是關於編程。也許你應該在http://magento.stackexchange.com上發佈它呢? – Enigmativity

回答

4

,以顯示產品,檢查產品的下列選項:

  1. 常規 - >狀態=啓用
  2. 常規 - >可見=目錄,搜索
  3. Inventory->數量> 0
  4. Inventory->股票可用性=庫存
  5. 網站=檢查您的網站
  6. 鈣tgories =檢查您的類別。

如果你想檢查產品子類別,去目錄 - >管理分類 - >選擇您類別,打開標籤的顯示設置和更改選項「是錨」「是」。保存類別。

+0

您正在使用哪個Magento 2版本? – crashtestxxx

4

你可以嘗試,如果這些東西都設置

1.General->狀態reindexing.it工作=啓用

2.general->可見=目錄,搜索

3.Inventory- >數量> 0

4.Inventory->股票可用性=庫存

5.Websites =檢查您的網站

6.Catgories =檢查您的類別。

+1

非常感謝你,reindexing完成了這項工作!很高興知道,讓我的頭繞了一會兒。你能解釋一下什麼是重新索引? –

2

請在你的命令行運行以下命令:

php bin/magento indexer:status 

如果指標之一是「處理」,然後去你的MySQL數據庫,並轉到indexer_state表。您會注意到其中一個值爲「正在工作」,其餘爲「有效」

將工作設置爲無效並再次重新索引。執行此操作的最佳方法是運行以下查詢:

update magento.indexer_state set status='invalid' where status ='working' 

祝您好運!

+0

欲瞭解更多信息,檢查https://github.com/magento/magento2/issues/5146 – Tristan

0

我有一個類似的問題,產品出現在父類別中,但沒有在原來分配的子類別中。我通過點擊子類別中的「保存」按鈕和/或(不確定是否有必要)父類別編輯頁面來解決此問題。

+0

你試過運行索引? – rajatsaurastri

+0

是的,這也適用,很好的手動reindex,但對我來說,只打保存在類別頁面,而不是打開shell的命令,登錄,更改用戶,手動運行reindex和更新緩存更簡單。問題在這裏更詳細地討論https://github.com/magento/magento2/issues/2855 –

+0

這不是一個正確的方法。什麼用於新產品?庫存變化?等等......事實上,您可以根據您的期望時間將索引安排爲cron,以便您的數據正確編制索引。 – rajatsaurastri

1

這是由於reindexing問題。

應用程序\代碼\模塊\目錄\等\ di.xml

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> 
<preference for="Magento\Catalog\Model\Indexer\Category\Product\Action\Full" type="Modules\Catalog\Model\Indexer\Category\Product\Action\Full" /> 
</config> 

應用程序\代碼\模塊\目錄\型號\索引\目錄\產品\行動\ Full.php

<?php 
namespace Modules\Catalog\Model\Indexer\Category\Product\Action; 

/** 
* Class AbstractAction 
* @SuppressWarnings(PHPMD.CouplingBetweenObjects) 
*/ 

class Full extends \Magento\Catalog\Model\Indexer\Category\Product\Action\Full { 

    public function isRangingNeeded() { 
     return false; // It was "True" as default setting. 
    } 
} 

然後,我們應該運行這個命令。

php bin/magento cache:clean 
php bin/magento indexer:reindex 

最後,我們在我們的分類頁面上獲得了2000個產品,而不是前面的340個產品。 另外,索引管理中的「產品類別」選項卡剛從版本升級日期升級到當前索引日期和時間。

很棒的體驗!

希望這可以幫助許多開發人員和業主。

2

子類產品展示問題的解決,因爲你需要下面遵循:

Magento的2聯繫==>產品==>分類==>子類別==>設計==>使用父類別設置==>經過這裏

enter image description here

相關問題