/** * This function will create recurring order and entity programmatically. * @param $product_ids * @return \entity */ public static function createProgrammatically($product_ids) { global $user; global $entities; $product = array(); $quantity = 1; $uid = $user->uid; $add_shipping = FALSE; // $subscription_products = Utils::getSubscriptionProductsList()->verify(get_class()); foreach ($product_ids as $product_id) { if ($product = commerce_product_load($product_id)) { if ($product->type == 'product') { $add_shipping = TRUE; } if (in_array($product->sku, $subscription_products)) { $product->commerce_price[LANGUAGE_NONE][0]['amount'] = 0; $line_item = commerce_product_line_item_new($product, $quantity); } else { $line_item = commerce_product_line_item_new($product, $quantity); } commerce_cart_product_add($uid, $line_item); } } // if no product loaded then need to return null if (empty($product)) { return NULL; } $order = commerce_cart_order_load($uid); $order = commerce_order_status_update($order, "pending", TRUE); if ($add_shipping) { // Save and add the line item to the order. $line_item = new Shipping(NULL, $order->order_id); $line_item = $line_item->createShippingLineItemProgrammatically($order); $new_line_item = commerce_shipping_add_shipping_line_item($line_item, $order, TRUE); } commerce_avatax_calculate_sales_tax($order); commerce_order_save($order); drupal_static_reset('commerce_recurring_order_load_recurring_line_items'); commerce_checkout_complete($order); $order_object = new CommerceOrder($order->order_id); $entities['commerce_order'][$order_object->getId()] = $order_object; $order_object->reload(); return new Response(TRUE, $order_object, ""); }
function take_action($order, $rta2) { $order = commerce_order_load($order); $payment_method = commerce_payment_method_instance_load('bank_transfer|commerce_payment_bank_transfer'); $settings = $payment_method["settings"]; if ($rta2["StatusCode"] == "-1") { $status = $settings["status"]["aprobada"]; $transaction = commerce_payment_transaction_new('bank_transfer', $order->order_id); $transaction->instance_id = $payment_method['instance_id']; $transaction->amount = $rta2["Payload"]["Request"]["AMOUNT"] * 100; $transaction->status = COMMERCE_PAYMENT_STATUS_SUCCESS; $transaction->payload = print_r($rta2["Payload"], 1); $transaction->remote_id = $rta2["Payload"]["Answer"]["OPERATIONID"]; commerce_payment_transaction_save($transaction); commerce_order_status_update($order, $status); drupal_goto(commerce_checkout_order_uri($order)); } else { if ($rta2["Payload"]["Answer"]["BARCODETYPE"] != "") { $transaction = commerce_payment_transaction_new('bank_transfer', $order->order_id); $transaction->instance_id = $payment_method['instance_id']; $transaction->amount = $rta2["Payload"]["Request"]["AMOUNT"] * 100; $transaction->status = COMMERCE_PAYMENT_STATUS_PENDING; $transaction->payload = print_r($rta2["Payload"], 1); $transaction->remote_id = $rta2["Payload"]["Answer"]["OPERATIONID"]; commerce_payment_transaction_save($transaction); $status = $settings["status"]["offline"]; ?> <div id="content" style="width: 75%;"> <div><div class="titulos">Nro de Operación:</div><em><strong><?php echo $order->order_id; ?> </strong></em><hr></div> <div><div class="titulos">Total a pagar</div>$ <?php echo $rta2["Payload"]["Request"]["AMOUNT"] . ".-"; ?> <hr></div> <div class="titulos"><h3>DATOS PERSONALES<h3><hr></div> <div><div class="titulos">Nombre</div> <?php echo $user->name; ?> <hr></div> <?php if ($rta2["Payload"]["Answer"]["PAYMENTMETHODNAME"] == "PAGOFACIL") { $empresa = "PAGO FACIL"; } else { $empresa = "RAPIPAGO"; } $barcode = "12345678"; if (!empty($rta2["Payload"]["Answer"]["BARCODE"])) { $barcode = $rta2["Payload"]["Answer"]["BARCODE"]; } ?> <div><div class="titulos">Podrás pagar este cupón en los locales de:</div><?php echo $empresa; ?> <hr></div> <?php echo "<img src='" . $base_path . drupal_get_path('module', 'commerce_todo_pago') . "/includes/image.php?filetype=PNG&dpi=72&scale=5&rotation=0&font_family=Arial.ttf&font_size=8&text=" . $barcode . "&thickness=30&checksum=&code=BCGi25&' />"; ?> <br /> <div class="right"> <input type="button" name="imprimir" value="Imprimir" onclick="window.print();" class="button"> <a href="<?php echo commerce_checkout_order_uri($order); ?> ">Click aca para continuar.</a> </div> <br /> </div> <?php commerce_order_status_update($order, $status); } else { _tranUpdate($order->order_id, array("first_step" => null, "second_step" => null)); if ($rta2["StatusCode"] == 404) { drupal_goto('<front>'); return; } $status = $settings["status"]["rechazada"]; commerce_order_status_update($order, $status); drupal_set_message(t('Hubo un error en la transaccion, intente nuevamente'), 'error'); commerce_payment_redirect_pane_previous_page($order); drupal_goto(commerce_checkout_order_uri($order)); } } }