通过SquareConnect PHP API将项目添加到Square - ' category'和'费用' defs被排除在外

时间:2018-02-27 02:28:55

标签: php square-connect

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添加项目,请告诉我们!

提前谢谢。

2 个答案:

答案 0 :(得分:0)

第一部分,类别

如果您在项目创建期间查看有关指定项目类别的docs

category 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之前已创建,但其他所有内容都已存在。