Я думаю, что есть несколько способов сделать это, от простого до (немного) сложного.
Поскольку вы упоминаете только получение данных, простой способ заключается в создании новых представлений, перечисляющих все заказы, вы можете настроить эти представления для отображения вывода в виде XML или в формате JSON.Используемым модулем может быть экспорт данных Views или источник данных Views.
Второе решение заключается в создании пользовательского модуля, который использует hook_menu для создания настраиваемого URL-адреса конечной точки, который вызывает функцию обратного вызова, где вы можете определить желаемый вывод
function YOURMODULE_menu() {
$items = array();
$items['api/order'] = array(
'title' => 'API Orders',
'page callback' => 'YOURMODULE_api_orders_callback',
'access arguments' => array('access content')
);
$items['api/order/%'] = array(
'title' => 'API Orders',
'page callback' => 'YOURMODULE_api_orders_callback',
'page arguments' => array(2),
'access arguments' => array('access content')
);
return $items;
}
function YOURMODULE_api_orders_callback($order_id = NULL) {
$order_ids = array();
if(!is_null($order)) {
array_push($order_ids, $order_id);
}
// Load all orders or only 1 order
// We can use commerce_order_load_multiple()
// or use EntityFieldQuery() if need a complex logic filtering orders
$orders = commerce_order_load_multiple($order_ids);
drupal_json_output($orders);
}