পণ্যের গণনা আপডেট হচ্ছে না View


11

3 টি পৃথক টেবিল রয়েছে যা পণ্য দেখার গণনা সঞ্চয় করে

  • report_viewed_product_aggregated_daily
  • report_viewed_product_aggregated_monthly
  • report_viewed_product_aggregated_yearly

আমি যদি কোনও পণ্যের বর্তমান দেখার গণনা পেতে চাই তবে আমি এই টেবিলগুলির যে কোনও একটি থেকে এটি পেতে পারি। তবে সমস্যাটি হ'ল, যখনই আমি সম্মুখভাগে পণ্যটি খুলি, এই টেবিলগুলির কোনওটিই সেই পণ্য সম্পর্কিত কোনও ফলাফল দেখায় না।

এটা কি ম্যাজেন্টো অন্তর্নির্মিত সমস্যা?

আমি ভেবেছিলাম যখন ব্যবহারকারীরা পণ্য খোলার সাথে সাথে এই টেবিলগুলি তত্ক্ষণাত আপডেট করার জন্য আমাকে ম্যাজেন্টো ক্রোন সেট করা দরকার তবে এটি আমার জন্যও কার্যকর হয়নি।


কোনও প্রতিক্রিয়া পাওয়া যাচ্ছে না :(
মুহাম্মদ ওয়াসিফ

প্রথমে আমি জানতাম না যে অনুগ্রহ শুরু করার পরে আমার খ্যাতি কমবে: ডি
মুহাম্মদ ওয়াসিফ

উত্তর:


10

এই টেবিলগুলি রানটাইমে আপডেট হবে না

আপনাকে এ থেকে রিফ্রেশ পরিসংখ্যান চালানো দরকার :

প্রতিবেদনগুলি -> পরিসংখ্যান -> পরিসংখ্যান রিফ্রেশ করুন

আপনি যদি ক্রোনজব থেকে এটি চালাতে চান তবে এই লিঙ্কটি অনুসরণ করুন: /magento//a/243187/31910


এটি সত্যই সন্তোষজনক। স্পষ্টতার জন্য ধন্যবাদ :)
মুহাম্মদ ওয়াসিফ

7

যান Admin -> Reports -> Refresh Statistics, তারপরে আপনি যে রিফ্রেশ করতে চান সেগুলি নির্বাচন করুন, তারপরে সাবমিট বোতামটি চাপুন।

একবার রিফ্রেশ হয়ে গেলে, প্রতিবেদনে ফিরে যান এবং তারিখগুলি থেকে এবং প্রয়োজনীয়গুলি নির্বাচন করুন, তারপরে শো প্রতিবেদনের বোতামটি ক্লিক করুন।

আপনার প্রতিবেদনটি প্রয়োজনীয় হিসাবে দেখা উচিত।

যদি এখনও কিছু না থেকে থাকে তবে আপনাকে report_viewed_product_*টেবিলগুলির চারপাশে খনন করতে হবে এবং সেখানে কোনও ডেটা আসলে আছে কিনা তা দেখতে আপনার প্রয়োজন হতে পারে ।


আপনার সময় এবং প্রচেষ্টার জন্য +1।
মুহাম্মদ ওয়াসিফ

2

@ শোয়েব মুনির@ আর কে রাঠোদের উত্তরের পরে , এই টেবিলগুলি রানটাইমে আপডেট হবে না তাই আপনাকে প্রতিবার থেকে রিফ্রেশ পরিসংখ্যান চালানো দরকার 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।
চিরাগ প্যাটেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.