douchongbang6011 2017-04-04 08:54
浏览 68

Prestashop 1.6 Webservice Order

I'm trying to finish my custom module to import clients, addresses, carts and orders from a webservice.

Clients, Adresses and Carts imports works fine but when trying to insert new Order, it returns this error:

This call to PrestaShop Web Services failed and returned an HTTP status of 500. That means: Internal Server Error.

If i take a look to my apache2 error.log I can see this error:

 PHP Fatal error:  Call to a member function validateOrder() on boolean in /var/www/html/prestashop_pool/myshop/classes/order/Order.php on line 1463

This piece of code is the ones related to the order adittion via WebService:

// Getting the structure of an order
$xml = $webService->get(array('url' => PS_SHOP_PATH .'api/orders/?schema=blank'));

    // Adding dinamic and required fields
    // Required
$xml->order->id_address_delivery    = $id_address; // Customer address
$xml->order->id_address_invoice     = $id_address;        
$xml->order->id_cart                = $id_cart; 
$xml->order->id_currency            = $id_currency;
$xml->order->id_lang                = $id_lang;
$xml->order->id_customer            = $id_customer; 
$xml->order->id_carrier             = $id_carrier;
$xml->order->module                 = $order_module;
$xml->order->payment                = $order_payment;        
$xml->order->total_paid             = $total_paid;
$xml->order->total_paid_real        = $total_paid_real;
$xml->order->total_products         = $total_products;
$xml->order->total_products_wt      = $total_products_wt;
$xml->order->conversion_rate        = 1;
// Others
$xml->order->valid                      = 1; 
$xml->order->current_state              = $id_status;        
$xml->order->total_discounts            = $total_discounts;
$xml->order->total_discounts_tax_incl   = $total_discounts_tax_incl;
$xml->order->total_discounts_tax_excl   = $total_discounts_tax_excl;
$xml->order->total_paid_tax_incl        = $total_paid_tax_incl;
$xml->order->total_paid_tax_excl        = $total_paid_tax_excl;
$xml->order->total_shipping             = $total_shipping;
$xml->order->total_shipping_tax_incl    = $total_shipping_tax_incl;
$xml->order->total_shipping_tax_excl    = $total_shipping_tax_excl;
// Order Row. Required
$xml->order->associations->order_rows->order_row[0]->product_id = $products[0]['id_product'];
$xml->order->associations->order_rows->order_row[0]->product_attribute_id   = $products[0]['id_product_attribute'];
$xml->order->associations->order_rows->order_row[0]->product_quantity       = $products[0]['quantity'];
// Order Row. Others
$xml->order->associations->order_rows->order_row[0]->product_name           = $products[0]['name'];
$xml->order->associations->order_rows->order_row[0]->product_reference      = $products[0]['reference'];
$xml->order->associations->order_rows->order_row[0]->product_price          = $products[0]['product_price'];
$xml->order->associations->order_rows->order_row[0]->unit_price_tax_incl    = $products[0]['product_price'];
$xml->order->associations->order_rows->order_row[0]->unit_price_tax_excl    = $products[0]['product_price'];

// Creating the order
$opt = array( 'resource' => 'orders' );
$opt['postXml'] = $xml->asXML();
$xml = $webService->add( $opt );
$id_order = $xml->order->id

Anyone knows how to fix it?

  • 写回答

1条回答 默认 最新

  • dsxjot8620 2018-04-16 08:55
    关注

    It may be due to the wrong values you are passing in

    $xml->order->module = $order_module;
    $xml->order->payment = $order_payment;
    

    check this value, I think prestashop need ps_ prefix before adding module value.

    评论

报告相同问题?

悬赏问题

  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了