Adobe Commerce

Atualizar um pedido programaticamente no Magento 2 / Adobe Commerce

Para atualizar um pedido programaticamente no Magento 2, você pode seguir estas etapas:

Carregue o pedido:

use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Framework\Api\SearchCriteriaBuilder;

$orderId = 123; // Replace with the actual order ID
$orderRepository = $objectManager->get(OrderRepositoryInterface::class);
$searchCriteriaBuilder = $objectManager->get(SearchCriteriaBuilder::class);
$searchCriteria = $searchCriteriaBuilder
    ->addFilter('entity_id', $orderId)
    ->create();
$orderList = $orderRepository->getList($searchCriteria)->getItems();
$order = reset($orderList); // Get the first order from the list

Atualizando o Pedido

use Magento\Sales\Model\OrderFactory;

$orderFactory = $objectManager->get(OrderFactory::class);
$orderModel = $orderFactory->create()->load($orderId);
$orderModel->setStatus('new_status'); // Replace 'new_status' with the desired order status
$orderModel->save();

Certifique-se de substituir $orderId pelo ID do pedido real e ‘new_status’ pelo status desejado que deseja definir para o pedido.

Observe que usar o gerenciador de objetos ($objectManager) diretamente não é considerado uma prática recomendada no Magento 2, mas é usado aqui para simplificar. Geralmente é recomendado usar injeção de dependência e injetar as classes necessárias.

Lembre-se de incluir as instruções de uso necessárias no topo do seu arquivo PHP para as classes mencionadas acima.

Post Recentes

Bloquear .env e .git no nginx: as regras que ainda deixam o arquivo vazar

Negar /.env no nginx parece resolvido até alguém pedir /wp-content/uploads/.env ou backup.sql. As regras que testei e os furos que…

12 horas atrás

Canonical errado no Yoast: corrigindo pelo filtro wpseo_canonical

O Search Console marca suas páginas 2, 3 e 4 como alternativas da página 1? Ajuste a tag canônica do…

16 horas atrás

Layout XML do Magento 2: remover bloco de módulo de terceiro

Um módulo de terceiro plantou um banner no topo da loja e você não quer desinstalar nada: tire o bloco…

1 dia atrás

Restaurar dump do Magento 2 em outro servidor: trocar a base_url no SQL

Importou o banco de produção e o site pula para o domínio antigo? Rode o UPDATE em core_config_data, limpe o…

2 dias atrás

Criar exceção customizada em PHP: quando estender Exception compensa

Seu catch trata pedido inexistente e banco fora do ar do mesmo jeito. Veja como criar exceção customizada em PHP…

3 dias atrás

DataProvider Magento 2: form do admin abre com campos vazios ao editar

O form do admin salva mas abre em branco na edição: veja o getData() indexado pelo id da entidade e…

4 dias atrás