Не срабатывает метод API shop.order.save

filziano

Добрый день! Ребята подскажите в чем может быть проблема. Уже все что мог проверил. При отправке данных выдает ошибку.

вот такую

Warning: Illegal string offset 'services' in D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\lib\classes\shopOrder.class.php on line 1803

Fatal error: Uncaught Error: Only variables can be passed by reference in D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\lib\classes\shopOrder.class.php:1803 Stack trace: #0 D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\lib\classes\shopOrder.class.php(413): shopOrder->parseItems(Array) #1 D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\lib\classes\shopOrder.class.php(285): shopOrder->setData('items', Array) #2 D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\api\v1\shop.order.save.method.php(20): shopOrder->__construct(Array, Array) #3 D:\OpenServer\OpenServer\domains\shop7.dev\wa-system\api\waAPIMethod.class.php(32): shopOrderSaveMethod->execute() #4 D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\lib\classes\shopApiMethod.class.php(35): waAPIMethod->getResponse(false) #5 D:\OpenServer\OpenServer\domains\shop7.dev\wa-system\api\waAPIController.class.php(138): shopApiMethod->getResponse() #6 D:\OpenServer\OpenServer\domains\shop7.dev\wa-system\api\waAPIController.class.php(86): wa in D:\OpenServer\OpenServer\domains\shop7.dev\wa-apps\shop\lib\classes\shopOrder.class.php on line 1803

Вот форма в которой передаю данные

<form action="http://shop7.dev/api.php/shop.order.save?access_to...<?=$token;?>" method="post">
<input name="id" hidden value='1'>
<input name="items[product_id]" hidden value='1'>
<input name="items[sku_id]" hidden value='2'>
<input name="items[services][service_id]" hidden value='null'>
<input name="items[services][service_variant_id]" hidden value='null'>
<input name="params[sales_channel] " hidden value="test">
<input name="params[storefront] " hidden value="testing">
<button type="submit">Изменить канал</button>
</form>

т.е. задача стоит в том чтобы изменить канал и витрину заказа, который создан методом shop.order.add

Спасибо за помощь.

19 февраля 2018
  • info@ravencode.ru 19 февраля 2018 17:03

    потому что у items не задан id т.е. должно быть что-то вроде

    items[0][services][service_id]
    items[1][services][service_id]
  • info@ravencode.ru 19 февраля 2018 17:05

    Ну и

    name="params[storefront] "

    поправьте

  • filziano 19 февраля 2018 17:49

    Спасибо большое за помощь, но опять ничего.

    Все изменил и та же ошибка

    <input name="id" hidden value="4">
    <input name="items[product_id]" hidden value="1">
    <input name="items[sku_id]" hidden value="2">
    <input name="items[4][services][service_id]" hidden value="null">
    <input name="items[4][services][service_variant_id]" hidden value="null">
    <input name="params[sales_channel]" hidden value="test">
    <input name="params[storefront]" hidden value="testing">


  • info@ravencode.ru 19 февраля 2018 19:53

    Мда..дно пробито.. почитайте как передавать через форму массивы.

    и не

    items[0][services][service_id]

    а

    items[0][services][0][service_id]
    
  • Syrnik.com 19 февраля 2018 22:31

    На хосте, где Shop-Script, случайно, не PHP 7.2?

  • filziano 19 февраля 2018 22:53

    стоит версия PHP Version 7.0.14

  • filziano 17 марта 2018 13:40

    Ребята, подскажите пожалуйста, кто использует этот метод в работе.

    Как должен выглядеть массив, который передается. Просто пример.

    Как построить запрос это не проблема. Только пример массива.

    Спасибо

  • Михаил Ушенин Webasyst 19 марта 2018 17:45

    Пример для JavaScript:

    {
        id: 1,
        items: [
            {
    	    id: 1,
                quantity: 3    //меняем количество товара в заказе
    	}
        ],
        discount: null,
        params: {
            shipping_id: 1
        }
    }
  • Ильнур Хасанов 8 ноября 2018 14:19

    Покажите, пожалуйста, полный пример curl (или php массив post параметров для curl запроса).
    Почему нет полных апидоков? Почему нет описания параметров для апи? Именно для апи!!!
    Почему нет нормальной перелинковки и навигации по документации?
    Почему, например, на странице https://developers.webasyst.ru... не показаны структуры массивов параметров? Где это посмотреть в один клик?
    Отправляю запрос с такими параметрами :

    [id] => 1
        [comment] => test comment
        [items] => Array
            (
                [30] => Array
                    (
                        [id] => 30
                        [order_id] => 71
                        [name] => test product 1 webasyst kusok
                        [product_id] => 1
                        [sku_code] => art1
                        [type] => product
                        [service_id] => 
                        [service_variant_id] => 
                        [price] => 1000.00
                        [quantity] => 3
                        [parent_id] => 
                        [stock_id] => 
                        [virtualstock_id] => 
                        [purchase_price] => 1000.00
                        [total_discount] => 0
                        [tax_percent] => 
                        [tax_included] => 0
                        [image_id] => 
                        [image_filename] => 
                        [sku_image_id] => 
                        [ext] => 
                        [file_name] => 
                        [file_size] => 0
                    )
    
            )
    
        [customer] => Array
            (
                [name] => Терминатор Арнольдович Пугачев
                [email] => ts@ts1.ru
                [phone] => 74561232523
            )
    
        [discount] => calculate

    Получаю:

    {"status":"fail","errors":["Items not found"]} 





Чтобы добавить комментарий, зарегистрируйтесь или войдите