如何使用PHP版Facebook Business SDK创建电商产品目录批次
报错
(#100) The parameter requests is required的核心原因是你调用的createBatch是批量操作接口,必须传入requests参数承载批量商品操作集合,你当前直接将单个商品属性放在了顶层参数中,不符合接口参数规范。
正确实现代码
$api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = []; $params = [ // 批量操作请求集合,必填参数 'requests' => [ [ // 批量创建/更新商品统一用UPDATE方法,商品不存在时自动创建 'method' => 'UPDATE', // 商品自定义商家ID 'retailer_id' => 'retailer-6', // 商品属性全部放在data字段下 'data' => [ "availability" => "in stock", "brand" => "Nike", "category" => "t-shirts", "description" => "product description", "image_url" => "http://www.images.example.com/t-shirts/1.png", "name" => "product name", "price" => "10.00", "currency" => "USD", "condition" => "new", "url" => "http://www.images.example.com/t-shirts/1.png", "retailer_product_group_id" => "product-group-1" ] ] // 如需批量创建多个商品,在requests数组中继续追加上述结构的请求项即可 ] ]; echo json_encode((new ProductCatalog($id))->createBatch( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
补充说明
- 执行代码后返回结果会包含每个商品条目执行状态,若单条商品参数异常也会返回对应条目错误提示,可直接定位问题
- 如果仅需要创建单个商品,也可以直接调用单条商品创建接口,不需要使用
createBatch方法,避免参数结构复杂出错
内容的提问来源于stack exchange,提问作者Revat Tamontee
相关产品推荐
相关产品推荐

