देखें उत्पाद गणना अपडेट नहीं हो रही है


11

3 अलग-अलग टेबल हैं जो स्टोर किए गए उत्पाद को गिनते हैं

  • report_viewed_product_aggregated_daily
  • report_viewed_product_aggregated_monthly
  • report_viewed_product_aggregated_yearly

यदि मैं किसी उत्पाद की वर्तमान देखी गई गिनती प्राप्त करना चाहता हूं, तो मैं इनमें से किसी एक तालिका से प्राप्त कर सकता हूं। लेकिन समस्या यह है कि जब भी मैं उत्पाद को फ्रंटएंड पर खोलता हूं, तो इनमें से कोई भी तालिका उस उत्पाद से संबंधित कोई परिणाम नहीं दिखा रही है।

यह एक Magento के बनाया मुद्दा है?

मुझे लगा कि उपयोगकर्ता द्वारा उत्पाद खोलने पर मुझे इन टेबल को तुरंत अपडेट करने के लिए मैगेंटो क्रोन को सेट करने की आवश्यकता है, लेकिन यह मेरे लिए भी काम नहीं करता है।


कोई प्रतिक्रिया नहीं मिल रही :(
मुहम्मद वासिफ

पहले मुझे नहीं पता था कि बाउंटी शुरू करने के बाद मेरी प्रतिष्ठा में कमी आएगी: डी
मुहम्मद वासिफ

जवाबों:


10

ये टेबल रनटाइम पर अपडेट नहीं होंगे

आपको निम्न से ताज़ा आंकड़े चलाने होंगे:

रिपोर्ट -> सांख्यिकी -> सांख्यिकी ताज़ा करें

यदि आप इसे क्रोनजोब से चलाना चाहते हैं तो इस लिंक का अनुसरण करें: https://magento.stackexchange.com/a/243187/31910


यह वास्तव में संतोषजनक है। स्पष्टीकरण के लिए धन्यवाद :)
मुहम्मद वासिफ

7

पर जाएं Admin -> Reports -> Refresh Statistics, फिर उन रिपोर्टों का चयन करें जिन्हें आप ताज़ा करना चाहते हैं, फिर सबमिट बटन दबाएं।

एक बार रिफ्रेश होने के बाद, रिपोर्ट पर वापस जाएं, और तारीखों से आवश्यक का चयन करें, फिर शो रिपोर्ट बटन पर क्लिक करें।

आपको रिपोर्ट को आवश्यकतानुसार देखना चाहिए।

यदि अभी भी कुछ नहीं है, तो आपको report_viewed_product_*तालिकाओं में चारों ओर खुदाई करने और यह देखने की आवश्यकता हो सकती है कि क्या वास्तव में वहां कोई डेटा है।


आपके समय और प्रयासों के लिए +1।
मुहम्मद वासिफ

2

उत्तर @Shoaib मुनीर और @Rk राठौड़ के बाद , ये टेबल रनटाइम पर अपडेट नहीं होंगे, इसलिए आपको हर बार से रीफ़्रेश सांख्यिकी चलाने की आवश्यकता है Reports -> Statistics -> Refresh Statistics। लेकिन अगर आप सांख्यिकी को हर बार मैन्युअल रूप से ताज़ा नहीं करना चाहते हैं तो आप इसके लिए क्रोन सेट कर सकते हैं ताकि यह सांख्यिकी को स्वतः ताज़ा कर दे।

सबसे पहले, आपको नीचे दी गई तरह di.xml का उपयोग करके अपने क्रोन वर्ग के लिए रिपोर्ट को पास करने की आवश्यकता है (मैंने आपकी आवश्यकता के अनुसार सभी तर्क पारित किए हैं)।

<type name="Vendor\Module\Cron\CronFile">
        <arguments>
            <argument name="reportTypes" xsi:type="array">
                <item name="sales" xsi:type="string">Magento\Sales\Model\ResourceModel\Report\Order</item>
                <item name="tax" xsi:type="string">Magento\Tax\Model\ResourceModel\Report\Tax</item>
                <item name="shipping" xsi:type="string">Magento\Sales\Model\ResourceModel\Report\Shipping</item>
                <item name="invoiced" xsi:type="string">Magento\Sales\Model\ResourceModel\Report\Invoiced</item>
                <item name="refunded" xsi:type="string">Magento\Sales\Model\ResourceModel\Report\Refunded</item>
                <item name="coupons" xsi:type="string">Magento\SalesRule\Model\ResourceModel\Report\Rule</item>
                <item name="bestsellers" xsi:type="string">Magento\Sales\Model\ResourceModel\Report\Bestsellers</item>
                <item name="viewed" xsi:type="string">Magento\Reports\Model\ResourceModel\Report\Product\Viewed</item>
            </argument>
        </arguments>
    </type>

फिर आपकी क्रोन फ़ाइल में ऐसा होना चाहिए।

<?php
namespace Vendor\Module\Cron;
use Magento\Reports\Model\ResourceModel\Refresh\Collection;

class CronFile extends Collection
{
    protected $logger;
    protected $reportTypes;

    public function __construct(
        \Magento\Framework\Data\Collection\EntityFactory $entityFactory,
        \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate,
        \Magento\Reports\Model\FlagFactory $reportsFlagFactory,
        \Psr\Log\LoggerInterface $logger,
        array $reportTypes
    ) {
        $this->logger = $logger;
        $this->reportTypes = $reportTypes;
        parent::__construct($entityFactory,$localeDate,$reportsFlagFactory);
    }
    /**
     * @return $this
     */
    public function execute()
    {
        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();

        try {
            $codes = $this->loadData();

            foreach ($codes->_items as $codek=>$codev) {
                $objectManager->create($this->reportTypes[$codek])->aggregate();
            }
        } catch (\Magento\Framework\Exception\LocalizedException $e) {
            $this->logger->critical($e->getMessage());
        } catch (\Exception $e) {
           $this->logger->critical($e->getMessage());
        }
        return $this;
    }
}

मुझे उम्मीद है यह मदद करेगा!


आपके समय और प्रयास के लिए +1। मेरे पास शोएब मुनीर
मुहम्मद वासिफ

1
आपके लिए आपकी प्रशंसा :) +1 के लिए धन्यवाद।
चिराग पटेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.