Привет. пытаюсь внедрить обмен статусами заказов со старого 1.5 на новый 2.3 експорт в 1с работает как часы. а вот импорт из 1с не получается. при запуске импорта получаю ошибку Notice: Undefined variable: status in /var/www/www-root/data/www/сайт/export/import_xml.php on line 58 участок кода $order_id = getPostArg( "order_id" ); $order_status_id = getPostArg( "order_status_id" ); $notify = getPostArg( "notify" ); $comment = getPostArg( "comment" ); if ( !is_numeric( $order_id ) ) { if ( !empty($status) ) $status .= "; "; $status .= "order_id is not a number"; } if ( !is_numeric( $order_status_id ) ) { if ( !empty($status) ) $status .= "; "; $status .= "order_status_id is not a number"; } if ( !empty($status) ) { echo("ERROR: " . $status); } else { $order = new ModelCheckoutOrder( $registry ); $order->update( $order_id, $order_status_id, $comment, $notify ); echo("OK"); } } catch ( Exception $e ) { echo("ERROR: " . $php_errormsg); } строка на которую ругается $status .= "order_id is not a number"; не могу понять в чем же собственно проблема и что это за проверка такая if ( !is_numeric( $order_id ) ) { if ( !empty($status) ) $status .= "; "; $status .= "order_id is not a number"; } то есть что пытаемся проверить понимаю. но почему именно так и в чем же причина ошибки не пойму. в php только пытаюсь вникать, поэтому не судите строго. спасибо за любую помощь
if ( !is_numeric( $order_id ) ) - проверяет является ли $order_id числом, если является то идем дальше if ( !empty($status) ) - проверяет пустая переменная $status или нет, если нет то к переменной $status добавляем ; order_id is not a number переводится как - order_id это не число и тогда согласно логике тут должно быть так Код: if ( !is_numeric( $order_id ) ) { if ( !empty($status) ) $status .= "; "; } else { $status = "order_id is not a number"; } хотя по логике и в этой строке должно быть что то такого Код: if ( !empty($status) ) $status .= "; "; else $status = "status empty;"; в общем как то так )
тут разобрался- потеряли переменную ) теперь получаю ошибку Fatal error: Call to undefined method Model Checkout Order::update() in в строке $order->update( $order_id, $order_status_id, $comment, $notify ); вот этого участка if ( !empty($status) ) { echo("ERROR: " . $status); } else { $order = new ModelCheckoutOrder( $registry ); $order->update( $order_id, $order_status_id, $comment, $notify ); echo("OK"); } подскажите как решить с этим определением метода )
да действительно - добавил переменную $status = ""; и ошибка пропала. но Fatal eror не определен метод
заменил код $order = new ModelCheckoutOrder( $registry ); $order->addOrderHistory( $order_id, $order_status_id, $comment, $notify ); echo("OK"); получаю https://clip2net.com/s/46nnnhF что не так?
все оказалось просто до смешного в обработчик нужно было добавить // Event $event = new Event($registry); $registry->set('event', $event); // Cache $registry->set('cache', new Cache('file'));