You are here

function commerce_paypal_checkout_update_order in Commerce PayPal 7.2

Update the PayPal order.

Parameters

$order: The order.

$payment_method: The payment method instance.

Return value

bool TRUE if the update was successful, FALSE otherwise.

See also

commerce_paypal_checkout_review_pane_checkout_form_submit()

1 call to commerce_paypal_checkout_update_order()
commerce_paypal_checkout_review_pane_checkout_form_submit in modules/checkout/includes/commerce_paypal_checkout.checkout_pane.inc
Submit handler for the PayPal Checkout review and confirm page.

File

modules/checkout/commerce_paypal_checkout.module, line 1197
Implements PayPal Checkout in Drupal Commerce checkout.

Code

function commerce_paypal_checkout_update_order($order, $payment_method) {
  if (!isset($order->data['commerce_paypal_checkout']['remote_id'])) {
    return FALSE;
  }
  $remote_id = $order->data['commerce_paypal_checkout']['remote_id'];
  $request_body = commerce_paypal_checkout_prepare_order_request($order, $payment_method['settings']);
  $update_params = array(
    array(
      'op' => 'replace',
      'path' => "/purchase_units/@reference_id=='default'",
      'value' => $request_body['purchase_units'][0],
    ),
  );
  drupal_alter('commerce_paypal_checkout_update_order_request', $update_params, $order);
  $api_client = commerce_paypal_checkout_api_client($payment_method['settings']);
  try {
    $api_client
      ->updateOrder($remote_id, $update_params);

    // Assume the update worked if we ended up here, if the update failed,
    // an exception was thrown.
    return TRUE;
  } catch (\Exception $exception) {
    watchdog_exception('commerce_paypal_checkout', $exception);
    return FALSE;
  }
}