Solicitação de alteração no observador no evento adminhtml_sales_order_create_process_data_before
-
12-12-2019 - |
Pergunta
Preciso alterar alguns dados na solicitação antes de reordenar no back-end com o observador.Mas estou constantemente falhando na alteração dos parâmetros de solicitação.Existem duas entidades da solicitação, uma no core create controller e outra no observer.Parece que eles não estão conectados de forma alguma.
Minha pergunta:Posso alterar algum dado em adminhtml_sales_order_create_process_data_before
influenciar o processo de criação de pedidos ou é melhor afastar-se da função de observador e reescrever a função de controlador?
public function checkPonAndIponData($observer)
{
$request = $observer->getEvent()->getRequest()->getParams();
if(isset($request['order']['quote'])) {
$data['purchase_order_number'] = isset($request['order']['quote']['purchase_order_number'])?:null;
$data['internal_purchase_order_number'] = isset($request['order']['quote']['internal_purchase_order_number'])?:null;
foreach($data as $key => $array) {
if(isset($array['check'])) {
$data[$key] = isset($array['old'])?:null;
} else {
$data[$key] = isset($array['new'])?:null;
}
$request['order']['quote'][$key] = $data[$key];
}
}
$observer->getEvent()->getRequest()->setParams($request);
return $observer;
}
Solução
Ok, foi minha culpa.Eu estava trabalhando com dados de parâmetros, enquanto a função, que despachou o evento, usou dados de postagem. São dois arrays separados ...E lead examinou meu código e me aconselhou a usar um caminho mais orientado para js para a solução.Portanto, o observador não tem utilidade nisso.