通过SquareConnect PHP API将项目添加到Square - “类别”和“费用”defs被排除在外

问题描述 投票:0回答:2

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

先感谢您。

php square-connect
2个回答
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


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

© www.soinside.com 2019 - 2024. All rights reserved.