SquareConnect API新手在这里。
我正在尝试使用PHP方法向Square添加项目:
$api_instance = new SquareConnect\Api\V1ItemsApi();
$body = new \SquareConnect\Model\V1Item($request_body);
$result = $api_instance->createItem($location_id, $body);
我的request_body定义:
$request_body = array(
"name" => "**ITEM NAME**",
"description" => "**ITEM DESCRIPTION**",
"category" => array(
"id" => "**CATEGORY ID**",
"name" => "**CATEGORY NAME**"
),
"variations" => array(
array(
"name" => "**VARIATION NAME**",
"sku" => "**SKU**",
"pricing_type" => "FIXED_PRICING",
"price_money" => array(
"currency_code" => "USD",
"amount" => "**AMOUNT**"
)
)
),
"fees" => array(
"enabled" => "1",
"name" => "Sales Tax",
"rate" => "0.0775",
"calculation_phase" => "FEE_SUBTOTAL_PHASE",
"adjustment_type" => "TAX",
"inclusion_type" => "ADDITIVE",
"type" => "US_SALES_TAX"
)
);
项目和变体数据正在添加到Square,但"类别"和"费用"定义未包括在内。因此,该项目最终会进入平面空间,这需要我登录主Square界面,将项目添加到相应的类别并设置其税务信息。如果可以避免,我不想采取这些额外的步骤。
"费用中的税务信息"从通过Square接口添加的项目中找到的定义逐字逐句。我已确认并重新确认类别ID和类别名称与所需类别的名称相匹配。我也试过更换"类别"数组有一个简单的" category_id" => " CATEGORY ID"定义。结果相同。
有人可以帮忙吗?另外,如果有更好的方法通过API向Square添加项目,请告诉我们!
提前谢谢。
答案 0 :(得分:0)
第一部分,类别
如果您在项目创建期间查看有关指定项目类别的docs:
您正在指定一个数组:
"category" => array(
"id" => "**CATEGORY ID**",
"name" => "**CATEGORY NAME**"
),
你应该使用字符串:
"category" => "**CATEGORY ID**",
第二部分,费用
如果您再次查看文档,则不会在V1项目创建中看到任何费用参考。那是因为您无法使用该端点创建费用。相反,你应该create a new fee。您可以在此处查看一些示例代码:https://github.com/square/connect-php-sdk/blob/master/docs/Api/V1ItemsApi.md#createfee
答案 1 :(得分:0)
我将专注于category_id,因为您似乎根据评论找出了“费用”问题。
我刚用它作为测试代码,并且成功设置了类别:
$items_api = new \SquareConnect\Api\V1ItemsApi();
$body = array(
"name" => "Test Item",
"category_id" => "YFIHMKYXNFJ7TE5FRBWQAGU6",
"variations" => array(
array(
"name" => "Small",
"pricing_type" => "FIXED_PRICING",
"price_money" => array(
"amount" => 100,
"currency_code" => "USD"
)
))
);
$result = $items_api->createItem($location_id, $body);
echo $result;
Location_id之前已创建,但其他所有内容都已存在。