Проблема с получением продажной цены товара в Exact Online

Я пытаюсь использовать точный онлайн-API, мое веб-приложение может подключаться к API и создавать учетные записи, элементы и все остальное.

Но теперь внутри моего веб-приложения мне нужны эти учетные записи, элементы и т. Д., Я сделал это, чтобы выбрать все элементы и импортировать их в свою базу данных, но я не могу найти цену продажи элемента, только "CostPriceNew" и "CostPriceStandard"!

После некоторого поиска я обнаружил, что внутри этого класса есть еще один класс: ItemDetailsByID, я нашел SalesPrice

Сначала я получаю ошибку: Fatal error: Uncaught TypeError: Argument 1 passed to Picqer\Financials\Exact\ItemDetailsByID::get() must be of the type array, string given

Это код, который я использовал:

//Retrieve items
$items = new \Picqer\Financials\Exact\Item($connection);
$result = $items->get();

foreach ($result as $item) {

    try {

        $ItemDetails = new \Picqer\Financials\Exact\ItemDetailsByID($connection);
        $result1 = $ItemDetails->get($item->ID);

        foreach ($result1 as $ItemDetail) {

            var_dump($ItemDetail);

        }
        
    } catch (\Exception $e) {

        echo json_encode(array(get_class($e) . ' : ' . $e->getMessage()));

    }

}

`

После прочтения документации в Интернете мне все еще не удалось использовать этот класс... теперь я получаю эту ошибку: ["Picqer\\Financials\\Exact\\ApiException : Error 400: Bad Request - Error in query syntax."]

После первой ошибки я изменил свой код $result1 = $ItemDetails->get($item->ID);

в

$result1 = $ItemDetails->get(["eq guid" => "'$item->ID'"]);

Я пробовал несколько ключей массива, например: 'eq guid', 'Edm.Guid', 'guid', 'id', но все равно получаю сообщение об ошибке.

Я надеюсь, что кто-то может мне помочь или указать в правильном направлении.

2 ответа

Вы не хотите перечислять все цены на товары, поэтому вместо использования get вы должны использовать find. Поскольку вы получаете только один результат, после этого вы можете напрямую использовать возвращенный объект:

      $ItemDetails = new \Picqer\Financials\Exact\ItemDetailsByID($connection);
$result1 = $ItemDetails->find($item->ID);
var_dump($result1->SalesPrice);

Ваш вопрос не очень ясен, я пытаюсь дать вам общее предложение, прежде чем вы добавите дополнительную информацию.

зарегистрируйте протокол http и сравните его с документом, если у вас нет журнала клиента, вы можете отправить свой запрос на httpbin.org(будьте осторожны с вашим паролем и другим персональным пиратством, используя стороннюю службу), точно так же, как https: // httpbin.org/get?itemId=guid'00000000-0000-0000-0000-000000000000'&$select=Code,SalesCurrency,SalesPrice.

Он напечатает информацию о запросе, это может помочь отладить

{
    "args": {
        "$select": "Code,SalesCurrency,SalesPrice",
        "itemId": "guid'00000000-0000-0000-0000-000000000000'"
    },
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate, br",
        "Cache-Control": "no-cache",
        "Host": "httpbin.org",
        "User-Agent": "PostmanRuntime/7.26.5",
    },
    "origin": "a.b.c.d",
    "url": "https://httpbin.org/get?itemId=guid'00000000-0000-0000-0000-000000000000'&$select=Code,SalesCurrency,SalesPrice"
}
Другие вопросы по тегам