Después de la respuesta @Shoaib Munir y @Rk Rathod , estos cuadros no se actualice en tiempo de ejecución por lo que necesita para funcionar Actualizar estadísticas de Reports -> Statistics -> Refresh Statistics
cada momento. pero si no desea actualizar las estadísticas manualmente cada vez, puede configurar cron para eso y actualizar las estadísticas automáticamente.
Primero, debe pasar el argumento reportTypes a su clase cron utilizando di.xml como se muestra a continuación (he pasado todos los argumentos que puede pasar según su requisito).
<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>
Entonces en su archivo cron debería ser así.
<?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;
}
}
¡Espero que ayude!