setAccessToken($accessToken) ->setAccountBaseDomain($accessToken->getValues()['baseDomain']) ->onAccessTokenRefresh( function (AccessTokenInterface $accessToken, string $baseDomain) { saveToken( [ 'accessToken' => $accessToken->getToken(), 'refreshToken' => $accessToken->getRefreshToken(), 'expires' => $accessToken->getExpires(), 'baseDomain' => $baseDomain, ] ); } ); //Создадим каталог //$catalogsCollection = new CatalogsCollection(); //$catalog = new CatalogModel(); //$catalog->setName('Новый список'); //$catalog->setCatalogType(EntityTypesInterface::DEFAULT_CATALOG_TYPE_STRING); //$catalogsCollection->add($catalog); //try { // $apiClient->catalogs()->add($catalogsCollection); //} catch (AmoCRMApiException $e) { // printError($e); // die; //} //Создадим каталог счетов //$catalog = new CatalogModel(); //$catalog->setName('Новый список'); //$catalog->setCatalogType(EntityTypesInterface::INVOICES_CATALOG_TYPE_STRING); //$catalog->setCanBeDeleted(false); // //try { // $catalog = $apiClient->catalogs()->addOne($catalog); //} catch (AmoCRMApiException $e) { // printError($e); // die; //} //Получим каталоги по типу try { $catalogsFilter = new CatalogsFilter(); $catalogsFilter->setType(EntityTypesInterface::INVOICES_CATALOG_TYPE_STRING); $catalogsCollection = $apiClient->catalogs()->get($catalogsFilter); } catch (AmoCRMApiException $e) { printError($e); die; } //Получим все каталоги try { $catalogsCollection = $apiClient->catalogs()->get(); } catch (AmoCRMApiException $e) { printError($e); die; } //Получим каталог по названию $catalog = $catalogsCollection->getBy('name', 'Новый список'); //Установим сортировку и обновим каталог if ($catalog instanceof CatalogModel) { $catalog->setSort(100); } try { $apiClient->catalogs()->updateOne($catalog); } catch (AmoCRMApiException $e) { printError($e); } // обновим поле типа категория с вложенными подкатегориями // сразу укажем вложенность через временные метки request_id|parent_request_id /** @noinspection PhpUnhandledExceptionInspection */ $cf = (new CategoryCustomFieldModel()) ->setId(604229) ->setName('Поле Категория') ->setSort(1) ->setNested( (new CustomFieldNestedCollection()) ->add( (new NestedModel()) ->setValue('Категория 1') ->setSort(1) ->setRequestId('category1') ) ->add( (new NestedModel()) ->setValue('ПодКатегория 1') ->setSort(1) ->setRequestId('subcategory1') ->setParentRequestId('category1') ) ->add( (new NestedModel()) ->setValue('ПодПодКатегория 1') ->setSort(1) ->setParentRequestId('subcategory1') ) ); try { $cf = $apiClient ->customFields(EntityTypesInterface::CATALOGS . ':' . $catalog->getId()) ->updateOne($cf); echo json_encode($cf->toArray()); } catch (AmoCRMApiException $e) { printError($e); }