我们假设我在Drupal上有商业网站。有Drupal Commerce模块。我想用api从我的商店检索完整的订单。可能吗?我无法找到这些请求的任何信息(响应格式等)。另外我不需要php示例,也许还有Rest API?
答案 0 :(得分:0)
我认为从简单到(有点)复杂的方法很少。
由于您提到仅检索数据,简单的方法是创建列出所有订单的新视图,您可以配置此视图以将输出呈现为XML或JSON。使用的模块可以是视图数据导出,也可以是视图数据源。
第二个解决方案是创建一个自定义模块,使用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);
}