tooyz / moysklad

Moysklad PHP JSON API library
MIT License
65 stars 58 forks source link

после создания записи product $product->create(); не возможно получить id #74

Closed makm closed 4 years ago

makm commented 4 years ago

после создания записи product $product->create(); не возможно получить id

 $productMoySklad = new Product(
            $this->moySklad,
            [
                "name"         => $product->getSet()->getCaption(),
                "description"  => $product->getSet()->getDescription(),
                'code'         => (string)$product->getId(),
                'externalCode' => (string)$product->getId(),
                'article'      => $product->getArt(),
                'barcodes'     => [$product->getBarcode()],
            ]
        );

$product->create();

вызов $product->id вернет Notice: Undefined property: stdClass::$id

и еще... сразу после создания сущности, например, productFolder $parentProductFolderMoySklad невозможно ее использоваться в билдере:

      // $parentProductFolderMoySklad - новая сущность сохраненная через    $parentProductFolderMoySklad->create();

        $productFolder = (new ProductFolder(
            $this->moySklad,
            [
                'code'         => (string)$category->getId(),
                'externalCode' => (string)$category->getId(),
                'name'         => $category->getCaption(),
            ]
        ));

        if ($parentProductFolderMoySklad) {
            $productFolder->buildCreation()->addProductFolder($parentProductFolderMoySklad);
        }

       $productFolder->create();

вернет

[MoySklad\Exceptions\ApiResponseException (2014)]

а дебаг покажет

^ array:1 [
  0 => {#1848
    +"errors": array:1 [
      0 => {#1844
        +"error": "Ошибка формата: отсутствует meta для поля 'productFolder'"
        +"code": 2014
        +"moreInfo": "https://online.moysklad.ru/api/remap/1.1/doc#обработка-ошибок-2014"
        +"line": 1
        +"column": 104285
      }
    ]
  }
]

Как то так

makm commented 4 years ago

Пока что решение простое - перезапрашиваю сущность и только потому использую в билдере, но, как кажется другого варианта нет.

EvilDevRu commented 4 years ago

$product = $product->create();

makm commented 4 years ago

Спасибо! из-за стиля, не заметил!