Esto es muy sencillo gracias a lo que se llama "casting", que es la conversión forzada de un tipo en otro.
En PHP si quieres convertir un objeto a un array asociativo simplemente tienes que hacer el casting a array.
$jsonArray = (array) $jsonObject;
Usando tu código JSON, para convertirlo harías lo siguiente:
$json = '{
"type": "product",
"action": "buy",
"subject": "Compra de productos",
"messageBody": null
}';
$jsonArray = (array) json_decode($json);
Si haces un var_dump($jsonArray)
entonces tienes esta salida:
array(4) {
["type"]=>
string(7) "product"
["action"]=>
string(3) "buy"
["subject"]=>
string(19) "Compra de productos"
["messageBody"]=>
NULL
}