К содержанию

minishop2 вытащить для плагина данные заказа по id

как в плагине самописном по АПИ вытащить данные заказа, зная ID этого заказа
события из минишопа не используются
alexandr.skyrda
alexandr.skyrda
24 ноября 2021, 19:07
modx.pro
2 653
Реклама

Комментарии: 7

Артур Шевченко
24 ноября 2021, 21:45
$order = $modx->getObject('msOrder', $id);
    alexandr.skyrda
    alexandr.skyrda Старожил
    24 ноября 2021, 23:33
    Спасибо
    Тодор
    Тодор Старожил
    24 ноября 2021, 23:23
    Абсолютно все данные о заказе (вроде):
    $order = $modx->getObject('msOrder', $orderID);
    $output = array(
        'order' => $order->toArray(),
        'user' => $order->User->toArray(),
        'profile' => $order->UserProfile->toArray(),
        'address' => $order->Address->toArray(),
        'delivery' => $order->Delivery->toArray(),
        'payment' => $order->Payment->toArray(),
        'status' => $order->Status->toArray(),
        'products' => []
    );
    foreach($order->Products as $product){
        $output['products'][] = $product->toArray();
    }
    
    print_r($output);
      alexandr.skyrda
      alexandr.skyrda Старожил
      24 ноября 2021, 23:33
      мне надо было вытащить именно доп поля extfld, которые я создавал
        Артур Шевченко
        24 ноября 2021, 23:39
        Не знаю как ты создавал дополнительные поля, но предположу, что по инструкции из сети, и тогда, скорее всего, данные сохраняются в поле properties в формате json, в этом случае можно из получить так
        $extFields = json_decode($order->get('properties'),1); // в результате получишь массив
          alexandr.skyrda
          alexandr.skyrda Старожил
          24 ноября 2021, 23:44
          доп поля делал по этой инструкции
          в плагине так вытаскивал

          $order = $modx->getObject('msOrderAddress', array('id'=> $properties['id']));
          $prop = $order->get('properties');
          и дальше из массива prop брал поля нужные, по идее правильно, по крайней мере работает)
          Тодор
          Тодор Старожил
          25 ноября 2021, 00:08
          $order = $modx->getObject('msOrder', $orderID);
          $prop = $order->Address->get('properties');
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7