SquareConnect API новичок здесь.
Я пытаюсь добавить элемент в Square, используя метод PHP:
$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. Я подтвердил и повторно подтвердил, что идентификатор категории и название категории совпадают с номерами нужной категории. Я также попытался заменить массив «category» простым определением «category_id» => «ID КАТЕГОРИИ». Тот же результат.
Кто-нибудь может помочь? Также, если есть лучший способ добавить элемент в Square через API, пожалуйста, дайте мне знать!
Заранее спасибо.
Часть первая, категории
Если вы посмотрите на документы об указании категории элемента при создании элемента:
Вы указываете массив:
"category" => array(
"id" => "**CATEGORY ID**",
"name" => "**CATEGORY NAME**"),
вместо этого вы должны использовать строку:
"category" => "**CATEGORY ID**",
Часть вторая, сборы
Если вы снова посмотрите документы, вы не увидите никаких ссылок на сборы в элементах V1. Это потому, что вы не можете создать комиссию с этой конечной точкой. Вместо этого вы должны создать новую плату. Вы можете увидеть пример кода здесь: 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 был создан ранее, но все остальное есть.