Обновить сумму в полях "Тип цены" у элементов

Ребята подскажите пожалуйста, очень нужно. У меня есть инфоблок "Услуги", в нем есть элементы, у каждого элемента есть базовая цена и несколько вариантов "Тип цены" для других городов. Эти элементы делались в ручную и не участвуют в обмене с 1С.

Сейчас стоит задача автоматизировать все это дело, через SOAP получаю данные по этим элементам в таком виде:

[0] => stdClass Object
                    (
                        [tovar] => Установка встраиваемой посудомоечной машины: PREMIUM
                        [shortname] => test
                        [guid] => c5683b2e-d780-11e8-80eb-1866da78d386
                        [codbitrix] => 10516575
                        [tablesprice] => stdClass Object
                            (
                                [spisok] => Array
                                    (
                                        [0] => stdClass Object
                                            (
                                                [name] => Розничная NewCastle
                                                [guid] => c6e0d04e-008a-11e7-bfb0-001e670c9280
                                                [price] => 0
                                            )

                                        [1] => stdClass Object
                                            (
                                                [name] => Розничная Bosch Manchester
                                                [guid] => 746e270b-fdd2-11e8-80ef-1866da78d386
                                                [price] => 0
                                            )

                                        [2] => stdClass Object
                                            (
                                                [name] => Розничная Sony Studgart
                                                [guid] => 42f61408-1802-11e4-9698-001e670c9280
                                                [price] => 0
                                            )

                                        [3] => stdClass Object
                                            (
                                                [name] => Розничная Val
                                                [guid] => fbb1d90d-250f-11e3-a8b4-001e670c9280
                                                [price] => 12990
                                            )

                                        [4] => stdClass Object
                                            (
                                                [name] => Розничная London
                                                [guid] => efc9496c-b790-11e1-afc8-001e670c9281
                                                [price] => 13990
                                            )

                                        [5] => stdClass Object
                                            (
                                                [name] => Розничная Simple
                                                [guid] => 5ffdd770-c548-11e3-b70c-001e670c9280
                                                [price] => 12990

Пытаюсь обновлять данные из [spisok] по полю guid, он соответствует полю xml_id, но в CPrice::Update нужно передавать CATALOG_GROUP_ID, который соответсвует id на стороне bitrix, а как можно сверить внешний ключ "XML_ID" который пришел из 1С "5ffdd770-c548-11e3-b70c-001e670c9280", и то что на стороне сайта соотвествует этому XML_ID и установить ему цену например 12990 у которой guid = 5ffdd770-c548-11e3-b70c-001e670c9280

Несколько дней пытаюсь, не получается установить нужные цены нужным "Тип цены".


Ответы (1 шт):

Автор решения: alexyarik

Непонятно в чём сложность. Задавать соответствие guid и XML_ID типа цены вы можете сами и проверять в своём РНР скрипте на стороне битрикс. Если ваши цены не создавались при обмене, то внешний код не будет совпадать с тем что в 1С. Получать данные значений XML_ID битрикса можно с помощью GetByID https://dev.1c-bitrix.ru/api_help/catalog/classes/ccataloggroup/ccataloggroup__getbyid.cc56219b.php

→ Ссылка