[英]Shopware API search products endpoint total from a stream inconsistent
您不應依賴stream_ids
列作為在任何給定時刻哪個產品顯示在動態產品組中的指標。 這是因為還有更多因素會影響是否向動態產品組中的用戶顯示產品。
您為組定義的過濾器解析為 SQL 查詢,用簡化的術語來說,它會產生類似於WHERE active = 1 AND id IN ('...', '...')
結果。 因此stream_ids
列不用於 select 組的內容,而是在店面請求中執行包括所有過濾器的整個查詢。 該查詢的結果就是您在動態產品組預覽中看到的結果。
為什么它不與stream_ids
的內容完全相關?
Shopware 具有 inheritance 個字段。 如果變體的字段沒有被賦值,它們可能會從它們的父代那里繼承該值。 這可能不會反映在stream_ids
的內容中。 事實上,孩子/變體甚至可以繼承stream_ids
的內容。
然后是產品組的內容可能會有所不同,具體取決於當前的銷售渠道。 這可能是因為銷售渠道使用不同的語言,因此過濾器中使用的可翻譯字段的內容可能會有所不同。 此外,如果您使用價格過濾器,則可能存在具有多個價格的產品,這些價格可能僅在滿足規則構建器定義的特定條件時才會顯示。
簡而言之,不要指望stream_ids
,它不能反映所有這些變量,但在內部以某種容量使用,用於使緩存無效等。 而是使用預覽來判斷普通用戶在看到產品組時可能會發現什么。 還可以選擇預覽應應用於哪個銷售渠道,具體原因是內容可能因銷售渠道而異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.