Square API - обновление объекта для нескольких местоположений - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь обновить объекты, используя конечную точку BatchRetrieveCatalogObjects (POST /v2/catalog/batch-upsert).

Когда я отправляю запрос, я получаю сообщение об ошибке

[type] => bad_request
[message] => Multi-location support is unavailable for this endpoint. Parameter `merchant_id` must correspond to a single-location account, not a business account

Как я могу обновить объекты, если есть несколько местоположений и если у элементов есть переопределения местоположения?

Есть ли другая конечная точка, которую я могу использовать?

UpsertCatalogObject (POST / v2 / catalog / object) также не работает. Та же ошибка.

Ниже приведен пример полезной нагрузки запроса:

Array
(
    [idempotency_key] => 1122334455667788
    [batches] => Array
        (
            [type] => ITEM
            [id] => 5BLFIPNYBTDD5ARZYQU4K7SV
            [item_data] => Array
                (
                    [name] =>  Honey Mead
                    [description] => Mead is an adult beverage brewed exclusively with honey. 
                    [category_id] => OIMGQF7DCO7W6SEXEMKGIJK5
                )

            [variations] => Array
                (
                    [type] => ITEM_VARIATION
                    [id] => BEQZ6FXAJACGW55RRZBMXDEI
                    [item_variation_data] => Array
                        (
                            [item_id] => 5BLFIPNYBTDD5ARZYQU4K7SV
                            [name] => Case (24 bottles)
                            [pricing_type] => FIXED_PRICING
                            [ordinal] => 4
                            [price_money] => Array
                                (
                                    [amount] => 11900
                                )

                            [location_overrides] => Array
                                (
                                    [0] => Array
                                        (
                                            [location_id] => 81J6E4K21KGC9
                                            [price_money] => Array
                                                (
                                                    [amount] => 11900
                                                )

                                            [pricing_type] => FIXED_PRICING
                                            [track_inventory] => 1
                                            [inventory_alert_type] => LOW_QUANTITY
                                            [inventory_alert_threshold] => 15
                                        )

                                )

                        )

                )

        )

)

Дополнительные примечания для уточнения:

Я пытаюсь редактировать цену на уровне варианта или location_overrides. Я получаю сообщение об ошибке при любом вызове в конечную точку. Я думаю, что разработчики Square API не разрешают какие-либо вызовы конечной точке для каких-либо многокомпонентных местоположений. Я также не могу удалить местоположения ни на веб-сайте, ни в API. Они только позволяют скрывать локации, что я и сделал. Но ошибка все еще сохраняется.

Я попробовал конечную точку v1 и получил странные результаты. V1 и V2 используют разные вариации_id. Так что, если я передам вариант v2 вариации_id конечной точке v1, он создаст новый вариант, а не обновит его. Новый вариант затем отображает новое поле с именем catalog_v1_id. Затем, когда я пытаюсь удалить вариант на веб-сайте, он исчезает из представления веб-сайта, но все еще существует в качестве активного элемента, когда я вызываю конечную точку списка версий v2. Я думаю, что этот API имеет целый ряд ошибок и не готов к прайм-тайм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...