Вывод всех заказов в бэкенде

Сам такой

Привет. Хочу получить все заказы магазина их 5000, но фигу, стоит какое то ограничение, подозреваю что по запросам к mysql.

$limit_order = 5000;

$output = $this->getOrders('*', 0, $limit_order);

получаю

Query Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*,50' at line 1

Query: SELECT * FROM `shop_order` WHERE `state_id` IN ('new','processing','shipped','paid') ORDER BY create_datetime DESC, id LIMIT *,50

если $output = $this->getOrders(0, $limit_order);

То получаю именно 50 заказов, понятно что ограничение, но где оно и как его снять? запутался.

очень жду помощи, благодарю ответивших.

30 июля 2017
  • BNP (Дмитрий) 30 июля 2017 11:57

    По идеи вот это

    $output = $this->getOrders(0, $limit_order);

    должно работать, если Вы наследуете свой класс от shopOrderListAction. НО, даже если Вы посмотрите на ошибку, Вы увидите, что выборка идет по определенным статусам

    ('new','processing','shipped','paid')

    Я не знаю в каком месте кода Вы хотите получить все заказы и для каких целей, но это можно сделать вот так

    $hash = '';
    $collection = new shopOrdersCollection($hash);
    $orders = $collection->getOrders('*', 0, $collection->count());

    Рекомендую заглянуть в исходники класса shopOrdersCollection, там все подробно расписано.

    Следует учесть, что выборка большого кол-ва заказов может сложить сервер. Лучше выдирать заказы кусками используя $limit и $offset

  • Сам такой 30 июля 2017 15:43

    Благодарю за ответ, вывод хочу во всплывающем окне в разделе шоп заказы.

    ограничить то я собираюсь, но иметь возможность увеличить более 50ти тоже надо.

    То что вы описали я уже пробовал, все равно затык,

    Статусов с 10ток, я описал только стандартные.

    Это работает $output = $this->getOrders(0, $limit_order);

    НО, только 50 заказов выводит, в том то и проблема.



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