в этом потоке у меня есть условие, которое отражает «заказ с тегом» является одним «тега, который я создал, например теггер»
Затем я написал команду для маркировки заказов, статус доставки которых указан как отгруженный в течение определенного периода времени р>
Код: Выделить всё
$criteria = new Criteria();
$criteria->addAssociation('deliveries.stateMachineState');
$criteria->addAssociation('orderCustomer');
$criteria->addFilter(new EqualsFilter('deliveries.stateMachineState.technicalName', 'Shipped'));
$oneWeekAgo = new \DateTime('-1 days');
$criteria->addFilter(new RangeFilter('orderDateTime', [
RangeFilter::GTE => $oneWeekAgo->format(DATE_ATOM)
]));
//my tag method
private function tagOrder(Context $context, string $orderId, string $tagId): void
{
$this->orderRepository->update([
[
'id' => $orderId,
'tags' => [
['id' => $tagId]
]
]
], $context);
}
// and then called
$this->tagOrder($context, $order->getId(), $tagId);
Но я заметил это из-за триггера из потока, который установлен на "статус достигнут/доставка заказа/статус/отправлен
который затем отправляет письмо о доставке (очень важно)
Неудивительно, что поток выполняется только тогда, когда изменяется статус доставки.
Как я могу заставить тот же поток или поток любого типа запускаться программно после того, как я закончу помечать свои заказы.< /p>
имейте в виду, что доставка почты должна быть отправлена при запуске потока или потока любого типа.
Я также слышал об исполнителе потока , но как это можно использовать?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/787 ... -shopware6