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”定义替换“category”数组。结果相同。
有人可以帮忙吗?另外,如果有更好的方法通过API向Square添加项目,请告诉我们!
先感谢您。
第一部分,类别
如果你看看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
我将专注于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之前已创建,但其他所有内容都已存在。