sales_send_order_emails
sales_send_order_emails is a Magento 2 cron job declared by the Sales module in the Default group. It runs every minute (* * * * *) and dispatches SalesOrderSendEmailsCron::execute() on every tick.
Wiring
- Group
- Default (default)
- Module
- Sales (magento/module-sales)
- Schedule
- * * * * *
- Frequency
- every minute
- Handler
- SalesOrderSendEmailsCron::execute()
- Source file
- vendor/magento/module-sales/etc/crontab.xml
Run the sales_send_order_emails cron job manually
Magento doesn't have a per-job CLI invocation — the smallest unit is a group. The command below runs every job in the default group whose schedule is due. The --bootstrap flag bypasses the lock-file check so the job runs even when the system cron is configured.
php bin/magento cron:run --group=default --bootstrap=standaloneProcessStarted=1Define your own job like this one
Want a job that fires on the same cadence in your own module? Drop these two files in — adjust the vendor/module namespace, the job name, and the body of execute.
1. etc/crontab.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job name="vendor_module_sales_send_order_emails_clone"
instance="Vendor\Module\Cron\SalesSendOrderEmails"
method="execute">
<schedule>* * * * *</schedule>
</job>
</group>
</config>2. Cron handler class
<?php
declare(strict_types=1);
namespace Vendor\Module\Cron;
use Psr\Log\LoggerInterface;
class SalesSendOrderEmails
{
public function __construct(
private readonly LoggerInterface $logger,
) {
}
public function execute(): void
{
$this->logger->info('sales_send_order_emails cron tick');
// Your scheduled work here. Keep this short — long jobs
// should enqueue work onto the message queue rather than
// running inline in the cron tick.
}
}Need a full module scaffolded around this cron job? Module Generator wires the crontab.xml, handler class, and module registration for you.
Other cron jobs in Sales
Sibling cron jobs declared by the same module. See all Sales cron jobs →
aggregate_sales_report_bestsellers_data
Sales · daily at midnight · 0 0 * * *
aggregate_sales_report_invoiced_data
Sales · daily at midnight · 0 0 * * *
aggregate_sales_report_order_data
Sales · daily at midnight · 0 0 * * *
aggregate_sales_report_refunded_data
Sales · daily at midnight · 0 0 * * *
sales_clean_orders
Sales · hourly · 0 * * * *
sales_clean_quotes
Sales · daily at midnight · 0 0 * * *
Cron handlers often dispatch Magento 2 events on each tick — observers bound to those events run as part of the scheduled work. The CLI Reference covers cron:run, cron:install, and the rest of the cron:* namespace.
Every Magento dev tool, in one hosted workspace.
Free to sign up. Nothing to install. Drafts, audits, and projects saved across every tool.