protected function getMultipleProductsInfo() { $order_lines = field_get_items('commerce_order', $this->datasources["order"], 'commerce_line_items'); $line_item_ids = array(); foreach ($order_lines as $order_line) { $line_item_ids[] = $order_line['line_item_id']; } $line_items = commerce_line_item_load_multiple($line_item_ids); $product_ids = array(); $cant_prod = array(); foreach ($line_items as $line_item) { $tmp = field_get_items('commerce_line_item', $line_item, 'commerce_product'); $cant_prod[$tmp[0]['product_id']] = round($line_item->quantity); $product_ids[] = $tmp[0]['product_id']; } $products = commerce_product_load_multiple($product_ids); $code = array(); $description = array(); $name = array(); $sku = array(); $total = array(); $quantity = array(); $unit = array(); foreach ($products as $item) { $code[] = $this->getCategoryArray($item); if (!empty($item->description)) { $desc = $item->description; } else { $desc = $item->title; } $desc = strip_tags($desc); $desc = TodoPago\Sdk::sanitizeValue($desc); $desc = substr($desc, 0, 50); $description[] = $desc; $name[] = substr($item->title, 0, 250); $sku[] = substr(empty($item->sku) ? $item->product_id : $item->sku, 0, 250); $total[] = number_format(commerce_currency_amount_to_decimal($item->commerce_price[LANGUAGE_NONE][0]["amount"], $item->commerce_price[LANGUAGE_NONE][0]["currency_code"]) * $cant_prod[$item->product_id], 2, ".", ""); $quantity[] = $cant_prod[$item->product_id]; $unit[] = number_format(commerce_currency_amount_to_decimal($item->commerce_price[LANGUAGE_NONE][0]["amount"], $item->commerce_price[LANGUAGE_NONE][0]["currency_code"]), 2, ".", ""); } $productsData = array('CSITPRODUCTCODE' => join("#", $code), 'CSITPRODUCTDESCRIPTION' => join("#", $description), 'CSITPRODUCTNAME' => join("#", $name), 'CSITPRODUCTSKU' => join("#", $sku), 'CSITTOTALAMOUNT' => join("#", $total), 'CSITQUANTITY' => join("#", $quantity), 'CSITUNITPRICE' => join("#", $unit)); return $productsData; }
protected function getMultipleProductsInfo() { $productos = $this->datasources["cart"]->getProducts(); $code = array(); $description = array(); $name = array(); $sku = array(); $total = array(); $quantity = array(); $unit = array(); foreach ($productos as $item) { $prodDescription = ""; $code[] = $this->getCategoryArray($item['id_product']); //obtengo el string para CSITPRODUCTDESCRIPTION $prodDescription = TodoPago\Sdk::sanitizeValue($this->getProdDescription($item['id_product'])); $prodDescription = trim($prodDescription); if ($prodDescription == null || $prodDescription == "") { if ($item['description_short'] == null || $item['description_short'] == "") { $prodDescription = TodoPago\Sdk::sanitizeValue($item['name']); $prodDescription = trim($prodDescription); } else { $prodDescription = TodoPago\Sdk::sanitizeValue($item['description_short']); $prodDescription = trim($prodDescription); } } if (empty($prodDescription)) { $prodDescription = "product"; } $prodDescription = str_replace("#", "", $prodDescription); $prodDescription = strip_tags($prodDescription); $desc = $prodDescription; $desc = substr($desc, 0, 50); $description[] = $desc; $name[] = substr($item['name'], 0, 250); $sku[] = substr(empty($item['reference']) ? $item['id_product'] : $item['reference'], 0, 250); $total[] = number_format($item['total_wt'], 2, ".", ""); $quantity[] = number_format($item['cart_quantity'], 0, ".", ""); $unit[] = number_format($item['price_wt'], 2, ".", ""); } $productsData = array('CSITPRODUCTCODE' => join("#", $code), 'CSITPRODUCTDESCRIPTION' => join("#", $description), 'CSITPRODUCTNAME' => join("#", $name), 'CSITPRODUCTSKU' => join("#", $sku), 'CSITTOTALAMOUNT' => join("#", $total), 'CSITQUANTITY' => join("#", $quantity), 'CSITUNITPRICE' => join("#", $unit)); return $productsData; }
public function getField($datasources) { $return = ""; try { $this->logger->debug('entró: ' . $datasources); $return = TodoPago\Sdk::sanitizeValue($datasources); $return = str_replace('#', '', $return); $this->logger->info("devolvio: " . $return); } catch (Exception $e) { $this->logger->error("No se pudo agregar el campo", $e); } return $return; }