public function saveorderdetail() { $this->layout = 'index'; $this->autoRender = false; $this->loadModel('OpenOrder'); $this->loadModel('AssignService'); App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = Configure::read('linnwork_api_username'); $password = Configure::read('linnwork_api_password'); $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $openorder = OrdersMethods::GetOpenOrders('100', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); foreach ($openorder->Data as $orderids) { $orders[] = $orderids->OrderId; } $results = OrdersMethods::GetOrders($orders, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); foreach ($results as $result) { $data['order_id'] = $result->OrderId; $data['num_order_id'] = $result->NumOrderId; $data['general_info'] = serialize($result->GeneralInfo); $data['shipping_info'] = serialize($result->ShippingInfo); $data['customer_info'] = serialize($result->CustomerInfo); $data['totals_info'] = serialize($result->TotalsInfo); $data['folder_name'] = serialize($result->FolderName); $data['items'] = serialize($result->Items); //Extra information will save my according to manage sorting station section $data['destination'] = $result->CustomerInfo->Address->Country; $this->OpenOrder->create(); $checkorder = $this->OpenOrder->find('all', array('conditions' => array('OpenOrder.order_id' => $result->OrderId))); if (count($checkorder) > 0) { } else { $this->OpenOrder->save($data); } } /* call the function for assign the postal servises */ $this->assign_services(); $this->getBarcode(); $this->setAgainAssignedServiceToAllOrder(); // Euraco Group }
public function saveorderdetail() { $this->layout = 'index'; $this->autoRender = false; $this->loadModel('OpenOrder'); $this->loadModel('AssignService'); $this->loadModel('Customer'); $this->loadModel('OrderItem'); $this->loadModel('Product'); App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = Configure::read('linnwork_api_username'); $password = Configure::read('linnwork_api_password'); $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $openorder = OrdersMethods::GetOpenOrders('100', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); foreach ($openorder->Data as $orderids) { $orders[] = $orderids->OrderId; } $results = OrdersMethods::GetOrders($orders, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); $countryArray = array('Austria' => 'Austria', 'Belgium' => 'Belgium', 'Bulgaria' => 'Bulgaria', 'Croatia' => 'Croatia', 'Cyprus' => 'Cyprus', 'Czech Republic' => 'Czech Republic', 'Denmark' => 'Denmark', 'Estonia' => 'Estonia', 'Finland' => 'Finland', 'France' => 'France', 'Germany' => 'Germany', 'Greece' => 'Greece', 'Hungary' => 'Hungary', 'Ireland' => 'Ireland', 'Italy' => 'Italy', 'Latvia' => 'Latvia', 'Lithuania' => 'Lithuania', 'Luxembourg' => 'Luxembourg', 'Malta' => 'Malta', 'Netherlands' => 'Netherlands', 'Poland' => 'Poland', 'Portugal' => 'Portugal', 'Romania' => 'Romania', 'Slovakia' => 'Slovakia', 'Slovenia' => 'Slovenia', 'Spain' => 'Spain', 'Sweden' => 'Sweden', 'United Kingdom' => 'United Kingdom'); foreach ($results as $result) { if (($result->GeneralInfo->Status == 1 || $result->GeneralInfo->Status == 4) && $result->GeneralInfo->HoldOrCancel == '') { $data['order_id'] = $result->OrderId; $data['num_order_id'] = $result->NumOrderId; $data['general_info'] = serialize($result->GeneralInfo); $data['shipping_info'] = serialize($result->ShippingInfo); $data['customer_info'] = serialize($result->CustomerInfo); $data['totals_info'] = serialize($result->TotalsInfo); $data['folder_name'] = serialize($result->FolderName); $data['items'] = serialize($result->Items); //Extra information will save my according to manage sorting station section $country = $data['destination'] = $result->CustomerInfo->Address->Country; $orderitems = unserialize($data['items']); $this->OpenOrder->create(); $checkorder = $this->OpenOrder->find('all', array('conditions' => array('OpenOrder.order_id' => $result->OrderId))); if (count($checkorder) > 0) { } else { $this->OpenOrder->save($data); //pr($result); exit; $getCurrencyText = $result->TotalsInfo->Currency; if ($getCurrencyText == "EUR") { $baseRate = '1'; } else { $baseRate = '1.38'; } //pr($orderitems); /***************** split the order item ******************/ $bundleIdentity = 0; foreach ($orderitems as $orderitem) { echo $orderitem->SKU . '==' . $orderitem->PricePerUnit; echo "<br>"; $splitskus = explode('-', $orderitem->SKU); $count = count($splitskus); if (count($orderitems) > 1) { $orderGroup = "Group B"; } else { $orderGroup = "Group A"; } //Find Country if (in_array($country, $countryArray)) { //It means, Inside EU country shipping for bundle with sameSKU if ($splitskus['0'] == 'B') { for ($i = 1; $i <= count($splitskus) - 2; $i++) { if ($count == 3) { echo $value = $orderitem->Quantity * $orderitem->PricePerUnit * $baseRate; //echo $value = $orderitem->CostIncTax * $baseRate; echo "<br>"; //For Euro if ($value <= 35 || $value > 150) { $numId = ''; if ($bundleIdentity > 0) { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId . '-' . $bundleIdentity; $splititem['product_order_id_identify'] = $numId; $splititem['order_split'] = $orderGroup; //$splititem['order_split'] = "split"; } else { if (count($orderitems) == 1) { $numId = $result->NumOrderId; } else { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId . '-' . $bundleIdentity; $splititem['product_order_id_identify'] = $numId; $splititem['order_split'] = $orderGroup; //$splititem['order_split'] = "split"; } } $splititem['order_split'] = $orderGroup; $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } else { if ($value <= 150 && $value > 35) { $total = 0; $perUnitPrice = $orderitem->Quantity * $orderitem->PricePerUnit; $orderQuantity = $orderitem->Quantity * $splitskus[$count - 1]; $itemPrice = $perUnitPrice / $orderQuantity; $inc = 0; $checkOuter = 0; $isLeader = false; if ($orderQuantity > 1) { //It will be the same as Linnworks custom script term , So now will split the orders with SEQUENCING $e = 0; while ($e <= $orderQuantity - 1) { //$total = $total + ( $baseRate * $itemPrice ); if ($total + $baseRate * $itemPrice <= 35) { $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; $inc++; $checkOuter++; $isLeader = true; if ($e == $orderQuantity - 1) { echo "Now Split" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } } else { if ($isLeader == false) { //Increase Counter $checkOuter++; $total = $total + $baseRate * $itemPrice; if ($e == $orderQuantity - 1) { $inc = 1; echo "Now Split " . $total; echo "<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['order_split'] = $orderGroup; //$splititem['order_split'] = "split"; $splititem['quantity'] = $checkOuter; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 0; } } else { if ($e == $orderQuantity - 1) { //For Previous calculate and store it split order into database echo "Now Split------" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; //Now store last index calculation if reaches at end point then //need to be remind , there is last one we have to also store into database echo "Now Split" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } else { echo "Now Split " . $total; echo "<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } } } $e++; } } } else { //echo "Exceed Limit to split."; exit; } } } else { //Get Count Sku for bundle with multiple $getLastIndex = $splitskus[count($splitskus) - 1]; //Handle Multiple Sku with type bundle echo $value = $orderitem->Quantity * ($orderitem->PricePerUnit / $getLastIndex) * $baseRate; //echo $value = $orderitem->CostIncTax * $baseRate; echo "<br>"; $anotherValue = $orderitem->Quantity * $orderitem->PricePerUnit * $baseRate; //For Euro if ($anotherValue <= 35 || $anotherValue > 150) { //Check bundle with single Sku if comes under 35 from single SKU /*$numId = ''; if( $bundleIdentity > 0 ) { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId .'-'. $bundleIdentity; $splititem['product_order_id_identify'] = $numId; $splititem['order_split'] = $orderGroup; } else { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId .'-'. $bundleIdentity; $splititem['product_order_id_identify'] = $numId; $splititem['order_split'] = $orderGroup; } $splititem['order_split'] = $orderGroup; $splititem['pack_order_quantity'] = $splitskus[$count-1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $value; //$orderitem->PricePerUnit; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-'.$splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku'] ))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save( $splititem );*/ if (count($splitskus) - 2 == $i) { echo $totalQuantity = $orderitem->Quantity * $getLastIndex; echo "<br>"; $combinedSkuForMulti .= ',' . $orderitem->Quantity . 'X' . 'S-' . $splitskus[$i]; if ($bundleIdentity > 0) { if (count($orderitems) > 1) { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId . '-' . $bundleIdentity; } else { $numId = $result->NumOrderId; } } else { if (count($orderitems) > 1) { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId . '-' . $bundleIdentity; } else { $numId = $result->NumOrderId; } } $splititem['product_order_id_identify'] = $numId; $splititem['order_split'] = "Group B"; $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['quantity'] = $totalQuantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $combinedSkuForMulti; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } else { echo $totalQuantity = $orderitem->Quantity * $getLastIndex; echo "<br>"; if ($i == 1) { $combinedSkuForMulti = $orderitem->Quantity . 'X' . 'S-' . $splitskus[$i]; } else { $combinedSkuForMulti .= ',' . $orderitem->Quantity . 'X' . 'S-' . $splitskus[$i]; } } } else { if ($anotherValue <= 150 && $anotherValue > 35) { $total = 0; $perUnitPrice = $orderitem->Quantity * ($orderitem->PricePerUnit / $getLastIndex); $orderQuantity = $orderitem->Quantity; $itemPrice = $perUnitPrice / $orderQuantity; $inc = 0; $checkOuter = 0; $isLeader = false; if ($orderQuantity > 0) { //It will be the same as Linnworks custom script term , So now will split the orders with SEQUENCING $e = 0; while ($e <= $orderQuantity - 1) { //$total = $total + ( $baseRate * $itemPrice ); if ($total + $baseRate * $itemPrice <= 35) { $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; $inc++; $checkOuter++; $isLeader = true; if ($e == $orderQuantity - 1) { echo "Now Split" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['order_split'] = "Group B"; //$orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } } else { if ($isLeader == false) { //Increase Counter $checkOuter++; $total = $total + $baseRate * $itemPrice; if ($e == $orderQuantity - 1) { $inc = 1; echo "Now Split " . $total; echo "<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['order_split'] = "Group B"; //$orderGroup; //$splititem['order_split'] = "split"; $splititem['quantity'] = $checkOuter; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 0; } } else { if ($e == $orderQuantity - 1) { //For Previous calculate and store it split order into database echo "Now Split------" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = "Group B"; //$orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; //Now store last index calculation if reaches at end point then //need to be remind , there is last one we have to also store into database echo "Now Split" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = "Group B"; //$orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } else { echo "Now Split " . $total; echo "<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = "Group B"; //$orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } } } $e++; } } } } } } } else { // Single SKU order splitting echo $value = $orderitem->Quantity * $orderitem->PricePerUnit * $baseRate; //echo $value = $orderitem->CostIncTax * $baseRate; echo "<br>"; //For Euro if ($value <= 35 || $value > 150) { $numId = ''; if ($bundleIdentity > 0) { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId . '-' . $bundleIdentity; $splititem['product_order_id_identify'] = $numId; //$splititem['order_split'] = "split"; } else { if (count($orderitems) == 1) { $numId = $result->NumOrderId; } else { $bundleIdentity = $bundleIdentity + 1; $numId = $result->NumOrderId . '-' . $bundleIdentity; $splititem['product_order_id_identify'] = $numId; //$splititem['order_split'] = "split"; } } $splititem['order_split'] = $orderGroup; $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } else { if ($value <= 150 && $value > 35) { $total = 0; $perUnitPrice = $orderitem->Quantity * $orderitem->PricePerUnit; $orderQuantity = $orderitem->Quantity; $itemPrice = $perUnitPrice / $orderQuantity; $inc = 0; $checkOuter = 0; $isLeader = false; if ($orderQuantity > 1) { //It will be the same as Linnworks custom script term , So now will split the orders with SEQUENCING $e = 0; while ($e <= $orderQuantity - 1) { //$total = $total + ( $baseRate * $itemPrice ); if ($total + $baseRate * $itemPrice <= 35) { $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; $inc++; $checkOuter++; $isLeader = true; if ($e == $orderQuantity - 1) { echo "Now Split" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } } else { if ($isLeader == false) { //Increase Counter $checkOuter++; $total = $total + $baseRate * $itemPrice; if ($e == $orderQuantity - 1) { $inc = 1; echo "Now Split " . $total; echo "<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $checkOuter; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 0; } } else { if ($e == $orderQuantity - 1) { //For Previous calculate and store it split order into database echo "Now Split------" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; //$splititem['order_split'] = "split"; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; //Now store last index calculation if reaches at end point then //need to be remind , there is last one we have to also store into database echo "Now Split" . $total; echo "<br>*********<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } else { echo "Now Split " . $total; echo "<br>"; //Splitting the order accordign the rule //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $total / $baseRate; $splititem['product_order_id_identify'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $inc; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); $total = 0; $inc = 1; $total = $total + $baseRate * $itemPrice; echo $total; echo "<br>"; } } } $e++; } } else { //If order item count is 1 then would be store directly $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } } else { //echo "Exceed Limit to split."; exit; } } } } else { //It means, Outside EU country shipping //pr($orderitem); if (count(explode('-', $orderitem->SKU)) == 2) { // For Single Type Sku //If order item count is 1 then would be store directly $splititem['pack_order_quantity'] = 0; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "single"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = $orderitem->SKU; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } else { if (count(explode('-', $orderitem->SKU)) == 3) { $splitskus = explode('-', $orderitem->SKU); // For Bundle with same type Sku //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[2]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->Quantity * $orderitem->PricePerUnit; $splititem['product_order_id_identify'] = $result->NumOrderId; $splititem['order_split'] = $orderGroup; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[1]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; pr($splititem); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } } if (count(explode('-', $orderitem->SKU)) > 3) { // For Bundle with muti type Sku } else { } } } //************** Merge Order after splitting with different scenarios ************** $this->mergeSplitOrdersByOrderId_AccordingRules($result->NumOrderId); //$this->loadModel( 'MergeOrder' ); //pr( $this->MergeOrder->find('all') ); exit; // code for save customer detail $customerInfo['Customer']['email'] = $result->CustomerInfo->Address->EmailAddress; $customerInfo['Customer']['address1'] = $result->CustomerInfo->Address->Address1; $customerInfo['Customer']['address2'] = $result->CustomerInfo->Address->Address2; $customerInfo['Customer']['address3'] = $result->CustomerInfo->Address->Address3; $customerInfo['Customer']['town'] = $result->CustomerInfo->Address->Town; $customerInfo['Customer']['region'] = $result->CustomerInfo->Address->Region; $customerInfo['Customer']['postcode'] = $result->CustomerInfo->Address->PostCode; $customerInfo['Customer']['country'] = $result->CustomerInfo->Address->Country; $customerInfo['Customer']['name'] = $result->CustomerInfo->Address->FullName; $customerInfo['Customer']['company'] = $result->CustomerInfo->Address->Company; $customerInfo['Customer']['phone'] = $result->CustomerInfo->Address->PhoneNumber; $customerInfo['Customer']['source'] = $result->GeneralInfo->Source; $customerInfo['Customer']['subsource'] = $result->GeneralInfo->SubSource; $customerdetails = $this->Customer->find('first', array('conditions' => array('Customer.email' => $customerInfo['Customer']['email']))); if (count($customerdetails) > 0) { //$customerdetails['Customer']['count'] = $customerdetails['Customer']['count'] + '1'; $this->Customer->updateAll(array('Customer.order_id' => $result->NumOrderId), array('Customer.email' => $customerdetails['Customer']['email'])); } else { $customerInfo['Customer']['order_id'] = $result->NumOrderId; $this->Customer->create(); $this->Customer->saveAll($customerInfo); } } } else { //Do something you required } } /* call the function for assign the postal servises */ $this->assign_services(); $this->getBarcode(); $this->setAgainAssignedServiceToAllOrder(); // Euraco Group App::import('Controller', 'Products'); $productModel = new ProductsController(); $productModel->prepareVirtualStock(); }
public function getPdfOfOpenOrders() { App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = "******"; $password = "******"; $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $order[] = 'b9f2eab0-f952-4fdb-91ac-f3af793eb075'; $results = OrdersMethods::GetOrders($order, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); pr($results); exit; }
public function saveopenorder() { $this->layout = ''; $this->autoRender = false; $this->loadModel('Order'); $this->loadModel('Item'); App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = Configure::read('linnwork_api_username'); $password = Configure::read('linnwork_api_password'); $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $openorder = OrdersMethods::GetOpenOrders('100', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); foreach ($openorder->Data as $orderids) { $orders[] = $orderids->OrderId; } $results = OrdersMethods::GetOrders($orders, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); $count = 0; foreach ($results as $result) { $finddata = $this->Order->find('first', array('conditions' => array('Order.num_order_id' => $result->NumOrderId))); if (empty($finddata)) { $data['Order']['num_order_id'] = $result->NumOrderId; $data['Order']['pk_order_id'] = $result->OrderId; $data['Order']['total'] = $result->TotalsInfo->TotalCharge; $data['Order']['postal_service'] = $result->ShippingInfo->PostalServiceName; $data['Order']['customer_name'] = $result->CustomerInfo->Address->FullName; $data['Order']['source'] = $result->GeneralInfo->Source; $dateTime = explode('T', $result->GeneralInfo->ReceivedDate); $data['Order']['received_date'] = $dateTime[0]; $this->Order->saveAll($data); $order_id = $this->Order->getLastInsertID(); foreach ($result->Items as $Item) { $dataNew['Item']['order_id'] = $order_id; $dataNew['Item']['sku'] = $Item->SKU; $dataNew['Item']['barcode'] = $Item->BarcodeNumber; $dataNew['Item']['quantity'] = $Item->Quantity; $dataNew['Item']['title'] = $Item->Title; $dataNew['Item']['priceperunit'] = $Item->PricePerUnit; $dataNew['Item']['discount'] = $Item->Discount; $dataNew['Item']['tax'] = $Item->Tax; $dataNew['Item']['costinctax'] = $Item->CostIncTax; $this->Item->saveAll($dataNew); } $count++; } } echo $count; }
public function saveorderdetail() { $this->layout = 'index'; $this->autoRender = false; $this->loadModel('OpenOrder'); $this->loadModel('AssignService'); $this->loadModel('Customer'); $this->loadModel('OrderItem'); $this->loadModel('Product'); App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = Configure::read('linnwork_api_username'); $password = Configure::read('linnwork_api_password'); $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $openorder = OrdersMethods::GetOpenOrders('100', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); foreach ($openorder->Data as $orderids) { $orders[] = $orderids->OrderId; } $results = OrdersMethods::GetOrders($orders, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); $countryArray = array('Austria' => 'Austria', 'Belgium' => 'Belgium', 'Bulgaria' => 'Bulgaria', 'Croatia' => 'Croatia', 'Cyprus' => 'Cyprus', 'Czech Republic' => 'Czech Republic', 'Denmark' => 'Denmark', 'Estonia' => 'Estonia', 'Finland' => 'Finland', 'France' => 'France', 'Germany' => 'Germany', 'Greece' => 'Greece', 'Hungary' => 'Hungary', 'Ireland' => 'Ireland', 'Italy' => 'Italy', 'Latvia' => 'Latvia', 'Lithuania' => 'Lithuania', 'Luxembourg' => 'Luxembourg', 'Malta' => 'Malta', 'Netherlands' => 'Netherlands', 'Poland' => 'Poland', 'Portugal' => 'Portugal', 'Romania' => 'Romania', 'Slovakia' => 'Slovakia', 'Slovenia' => 'Slovenia', 'Spain' => 'Spain', 'Sweden' => 'Sweden', 'United Kingdom' => 'United Kingdom'); foreach ($results as $result) { if (($result->GeneralInfo->Status == 1 || $result->GeneralInfo->Status == 4) && $result->GeneralInfo->HoldOrCancel == '') { $data['order_id'] = $result->OrderId; $data['num_order_id'] = $result->NumOrderId; $data['general_info'] = serialize($result->GeneralInfo); $data['shipping_info'] = serialize($result->ShippingInfo); $data['customer_info'] = serialize($result->CustomerInfo); $data['totals_info'] = serialize($result->TotalsInfo); $data['folder_name'] = serialize($result->FolderName); $data['items'] = serialize($result->Items); //Extra information will save my according to manage sorting station section $country = $data['destination'] = $result->CustomerInfo->Address->Country; $orderitems = unserialize($data['items']); $this->OpenOrder->create(); $checkorder = $this->OpenOrder->find('all', array('conditions' => array('OpenOrder.order_id' => $result->OrderId))); if (count($checkorder) > 0) { } else { $this->OpenOrder->save($data); //pr($orderitems); /***************** split the order item ******************/ foreach ($orderitems as $orderitem) { echo $orderitem->SKU . '==' . $orderitem->PricePerUnit; echo "<br>"; $splitskus = explode('-', $orderitem->SKU); $count = count($splitskus); //Find Country if (in_array($country, $countryArray)) { //It means, Inside EU country shipping for bundle with sameSKU if ($splitskus['0'] == 'B') { for ($i = 1; $i <= count($splitskus) - 2; $i++) { if ($count == 3) { echo $value = $orderitem->Quantity * $orderitem->PricePerUnit * 1.38; echo "<br>"; //For Euro if ($value < 35) { $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } else { if ($value <= 150 && $value >= 35) { $total = 0; $perUnitPrice = $orderitem->PricePerUnit; $orderQuantity = $orderitem->Quantity; $inc = 0; $bundleIdentity = 0; if ($splitskus[$count - 1] > 1) { //It will be the same as Linnworks custom script term , So now will split the orders with SEQUENCING $e = 0; while ($e <= $orderQuantity - 1) { $total = $total + 1.38 * $perUnitPrice; if ($total <= 35) { echo "Indes is :: " . $e . " <> Start ::" . $total; echo "<br>"; $inc++; } else { echo "Indes is :: " . $e . " <> Bigger ::" . $total; echo "<br>"; //Store previous then initialized $bundleIdentity++; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['product_order_id_identify'] = $result->NumOrderId; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $total = 0; $total = $total + 1.38 * $perUnitPrice; $inc = 1; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); if ($e == $orderQuantity - 1) { //Store previous then initialized $bundleIdentity++; $inc = 1; //Store and split the same SKU bundle order $splititem['pack_order_quantity'] = $splitskus[$count - 1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['product_order_id_identify'] = $result->NumOrderId; $splititem['quantity'] = $inc; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId . '-' . $bundleIdentity; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $total = 0; $total = $total + 1.38 * $perUnitPrice; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } } $e++; } } } else { //echo "Exceed Limit to split."; exit; } } } else { //Handle Multiple Sku with type bundle } } } else { $itemdata['price'] = $orderitem->PricePerUnit; $itemdata['product_type'] = "single"; $itemdata['order_id'] = $result->NumOrderId; $itemdata['sku'] = $orderitem->SKU; $itemdata['quantity'] = $orderitem->Quantity; $itemdata['barcode'] = $orderitem->BarcodeNumber; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $itemdata['sku']))); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $itemdata['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $itemdata['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $itemdata['sku'])); $this->OrderItem->create(); $this->OrderItem->save($itemdata); } } else { //It means, Outside EU country shipping } /*************************************************************************/ /*if($splitskus['0'] == 'B') { for( $i = 1; $i <= count($splitskus)-2 ; $i++ ) { if( $count == 3 ) { $splititem['pack_order_quantity'] = $splitskus[$count-1]; $splititem['product_sku_identifier'] = "single"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-'.$splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku'] ))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save( $splititem ); } else { $splititem['pack_order_quantity'] = $splitskus[$count]; $splititem['product_sku_identifier'] = "multiple"; $splititem['price'] = $orderitem->PricePerUnit; $splititem['quantity'] = $orderitem->Quantity; $splititem['product_type'] = "bundle"; $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-'.$splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku'] ))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save( $splititem ); } } } else { $itemdata ['price'] = $orderitem->PricePerUnit; $itemdata['product_type'] = "single"; $itemdata['order_id'] = $result->NumOrderId; $itemdata['sku'] = $orderitem->SKU; $itemdata['quantity'] = $orderitem->Quantity; $itemdata['barcode'] = $orderitem->BarcodeNumber; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $itemdata['sku'] ))); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $itemdata['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $itemdata['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $itemdata['sku'])); $this->OrderItem->create(); $this->OrderItem->save( $itemdata ); }*/ } /***********************************/ /*foreach( $orderitems as $orderitem ) { $itemdata['order_id'] = $result->NumOrderId; $itemdata['sku'] = $orderitem->SKU; $itemdata['quantity'] = $orderitem->Quantity; $itemdata['barcode'] = $orderitem->BarcodeNumber; $this->OrderItem->create(); $this->OrderItem->save( $itemdata ); }*/ // code for save customer detail $customerInfo['Customer']['email'] = $result->CustomerInfo->Address->EmailAddress; $customerInfo['Customer']['address1'] = $result->CustomerInfo->Address->Address1; $customerInfo['Customer']['address2'] = $result->CustomerInfo->Address->Address2; $customerInfo['Customer']['address3'] = $result->CustomerInfo->Address->Address3; $customerInfo['Customer']['town'] = $result->CustomerInfo->Address->Town; $customerInfo['Customer']['region'] = $result->CustomerInfo->Address->Region; $customerInfo['Customer']['postcode'] = $result->CustomerInfo->Address->PostCode; $customerInfo['Customer']['country'] = $result->CustomerInfo->Address->Country; $customerInfo['Customer']['name'] = $result->CustomerInfo->Address->FullName; $customerInfo['Customer']['company'] = $result->CustomerInfo->Address->Company; $customerInfo['Customer']['phone'] = $result->CustomerInfo->Address->PhoneNumber; $customerInfo['Customer']['source'] = $result->GeneralInfo->Source; $customerInfo['Customer']['subsource'] = $result->GeneralInfo->SubSource; $customerdetails = $this->Customer->find('first', array('conditions' => array('Customer.email' => $customerInfo['Customer']['email']))); if (count($customerdetails) > 0) { //$customerdetails['Customer']['count'] = $customerdetails['Customer']['count'] + '1'; $this->Customer->updateAll(array('Customer.order_id' => $result->NumOrderId), array('Customer.email' => $customerdetails['Customer']['email'])); } else { $customerInfo['Customer']['order_id'] = $result->NumOrderId; $this->Customer->create(); $this->Customer->saveAll($customerInfo); } } } else { //Do something you required } } /* call the function for assign the postal servises */ $this->assign_services(); $this->getBarcode(); $this->setAgainAssignedServiceToAllOrder(); // Euraco Group App::import('Controller', 'Products'); $productModel = new ProductsController(); $productModel->prepareVirtualStock(); }
public function saveorderdetail() { $this->layout = 'index'; $this->autoRender = false; $this->loadModel('OpenOrder'); $this->loadModel('AssignService'); $this->loadModel('Customer'); $this->loadModel('OrderItem'); App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = Configure::read('linnwork_api_username'); $password = Configure::read('linnwork_api_password'); $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $openorder = OrdersMethods::GetOpenOrders('100', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); foreach ($openorder->Data as $orderids) { $orders[] = $orderids->OrderId; } $results = OrdersMethods::GetOrders($orders, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); foreach ($results as $result) { $data['order_id'] = $result->OrderId; $data['num_order_id'] = $result->NumOrderId; $data['general_info'] = serialize($result->GeneralInfo); $data['shipping_info'] = serialize($result->ShippingInfo); $data['customer_info'] = serialize($result->CustomerInfo); $data['totals_info'] = serialize($result->TotalsInfo); $data['folder_name'] = serialize($result->FolderName); $data['items'] = serialize($result->Items); //Extra information will save my according to manage sorting station section $data['destination'] = $result->CustomerInfo->Address->Country; $orderitems = unserialize($data['items']); $this->OpenOrder->create(); $checkorder = $this->OpenOrder->find('all', array('conditions' => array('OpenOrder.order_id' => $result->OrderId))); if (count($checkorder) > 0) { } else { $this->OpenOrder->save($data); foreach ($orderitems as $orderitem) { $itemdata['order_id'] = $result->NumOrderId; $itemdata['sku'] = $orderitem->SKU; $itemdata['quantity'] = $orderitem->Quantity; $itemdata['barcode'] = $orderitem->BarcodeNumber; $this->OrderItem->create(); $this->OrderItem->save($itemdata); } // code for save customer detail $customerInfo['Customer']['email'] = $result->CustomerInfo->Address->EmailAddress; $customerInfo['Customer']['address1'] = $result->CustomerInfo->Address->Address1; $customerInfo['Customer']['address2'] = $result->CustomerInfo->Address->Address2; $customerInfo['Customer']['address3'] = $result->CustomerInfo->Address->Address3; $customerInfo['Customer']['town'] = $result->CustomerInfo->Address->Town; $customerInfo['Customer']['region'] = $result->CustomerInfo->Address->Region; $customerInfo['Customer']['postcode'] = $result->CustomerInfo->Address->PostCode; $customerInfo['Customer']['country'] = $result->CustomerInfo->Address->Country; $customerInfo['Customer']['name'] = $result->CustomerInfo->Address->FullName; $customerInfo['Customer']['company'] = $result->CustomerInfo->Address->Company; $customerInfo['Customer']['phone'] = $result->CustomerInfo->Address->PhoneNumber; $customerInfo['Customer']['source'] = $result->GeneralInfo->Source; $customerInfo['Customer']['subsource'] = $result->GeneralInfo->SubSource; $customerdetails = $this->Customer->find('first', array('conditions' => array('Customer.email' => $customerInfo['Customer']['email']))); if (count($customerdetails) > 0) { //$customerdetails['Customer']['count'] = $customerdetails['Customer']['count'] + '1'; $this->Customer->updateAll(array('Customer.order_id' => $result->NumOrderId), array('Customer.email' => $customerdetails['Customer']['email'])); } else { $customerInfo['Customer']['order_id'] = $result->NumOrderId; $this->Customer->create(); $this->Customer->saveAll($customerInfo); } } } /* call the function for assign the postal servises */ $this->assign_services(); $this->getBarcode(); $this->setAgainAssignedServiceToAllOrder(); // Euraco Group }
include "api/Auth.php"; //include("api/ImportExport.php"); include "api/Orders.php"; include "api/ProcessedOrders.php"; include "api/PrintService.php"; $username = "******"; $password = "******"; /*$username = "******"; $password = "******";*/ $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; //filters={"TextFields":[{"Type":0,"Text":"sample string 1","FieldCode":0} //GetOpenOrders('','1',$filters,'','00000000-0000-0000-0000-000000000000','',$token, $server) $result = OrdersMethods::GetOpenOrders('5', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); echo "<pre>"; print_r($result); exit; $orderId = '696e9699-62f0-4584-a5c1-744745dbf16d'; $scanPerformed = true; $fulfilmentCenter = '00000000-0000-0000-0000-000000000000'; //$result = OrdersMethods::ProcessOrder($orderId,$scanPerformed,$token, $server); //done //$result = OrdersMethods::CancelOrder($orderId,$fulfilmentCenter,86.2,'it is test order',$token, $server); //done $pkOrderId = 'e35b1f81-1f98-44ef-a9a9-1c7a0d3263f7'; $despatchLocation = '00000000-0000-0000-0000-000000000000'; $category = 'Health & Beauty'; $reason = 'In Transit'; $additionalCost = 15.04; //$result = ProcessedOrdersMethods::CreateFullResend($pkOrderId,$despatchLocation,$category,$reason,$additionalCost,$token, $server); //done //$result = PrintServiceMethods::GetTemplateList('Invoice Template',$token, $server); //done
public function saveorderdetail() { $this->layout = 'index'; $this->autoRender = false; $this->loadModel('OpenOrder'); $this->loadModel('AssignService'); $this->loadModel('Customer'); $this->loadModel('OrderItem'); $this->loadModel('Product'); App::import('Vendor', 'linnwork/api/Auth'); App::import('Vendor', 'linnwork/api/Factory'); App::import('Vendor', 'linnwork/api/Orders'); $username = Configure::read('linnwork_api_username'); $password = Configure::read('linnwork_api_password'); $multi = AuthMethods::Multilogin($username, $password); $auth = AuthMethods::Authorize($username, $password, $multi[0]->Id); $token = $auth->Token; $server = $auth->Server; $openorder = OrdersMethods::GetOpenOrders('100', '1', '', '', '00000000-0000-0000-0000-000000000000', '', $token, $server); foreach ($openorder->Data as $orderids) { $orders[] = $orderids->OrderId; } $results = OrdersMethods::GetOrders($orders, '00000000-0000-0000-0000-000000000000', true, true, $token, $server); foreach ($results as $result) { if ($result->GeneralInfo->status = 1 && $result->GeneralInfo->HoldOrCancel == '') { $data['order_id'] = $result->OrderId; $data['num_order_id'] = $result->NumOrderId; $data['general_info'] = serialize($result->GeneralInfo); $data['shipping_info'] = serialize($result->ShippingInfo); $data['customer_info'] = serialize($result->CustomerInfo); $data['totals_info'] = serialize($result->TotalsInfo); $data['folder_name'] = serialize($result->FolderName); $data['items'] = serialize($result->Items); //Extra information will save my according to manage sorting station section $data['destination'] = $result->CustomerInfo->Address->Country; $orderitems = unserialize($data['items']); $this->OpenOrder->create(); $checkorder = $this->OpenOrder->find('all', array('conditions' => array('OpenOrder.order_id' => $result->OrderId))); if (count($checkorder) > 0) { } else { $this->OpenOrder->save($data); /***************** split the order item ******************/ foreach ($orderitems as $orderitem) { $splitskus = explode('-', $orderitem->SKU); $count = count($splitskus); if ($splitskus['0'] == 'B') { for ($i = 1; $i <= count($splitskus) - 2; $i++) { if ($count == 3) { $splititem['quantity'] = $splitskus[$count - 1]; } else { $splititem['quantity'] = $orderitem->Quantity; } $splititem['order_id'] = $result->NumOrderId; $splititem['sku'] = 'S-' . $splitskus[$i]; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $splititem['sku']))); $splititem['barcode'] = $productDetail['ProductDesc']['barcode']; $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $splititem['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $splititem['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $splititem['sku'])); $this->OrderItem->create(); $this->OrderItem->save($splititem); } } else { $itemdata['order_id'] = $result->NumOrderId; $itemdata['sku'] = $orderitem->SKU; $itemdata['quantity'] = $orderitem->Quantity; $itemdata['barcode'] = $orderitem->BarcodeNumber; $productDetail = $this->Product->find('first', array('conditions' => array('Product.product_sku' => $itemdata['sku']))); $productDetail['Product']['current_stock_level'] = $productDetail['Product']['current_stock_level'] - $itemdata['quantity']; $productDetail['Product']['lock_qty'] = $productDetail['Product']['lock_qty'] + $itemdata['quantity']; $this->Product->updateAll(array('Product.current_stock_level' => $productDetail['Product']['current_stock_level'], 'Product.lock_qty' => $productDetail['Product']['lock_qty']), array('Product.product_sku' => $itemdata['sku'])); $this->OrderItem->create(); $this->OrderItem->save($itemdata); } } /***********************************/ /*foreach( $orderitems as $orderitem ) { $itemdata['order_id'] = $result->NumOrderId; $itemdata['sku'] = $orderitem->SKU; $itemdata['quantity'] = $orderitem->Quantity; $itemdata['barcode'] = $orderitem->BarcodeNumber; $this->OrderItem->create(); $this->OrderItem->save( $itemdata ); }*/ // code for save customer detail $customerInfo['Customer']['email'] = $result->CustomerInfo->Address->EmailAddress; $customerInfo['Customer']['address1'] = $result->CustomerInfo->Address->Address1; $customerInfo['Customer']['address2'] = $result->CustomerInfo->Address->Address2; $customerInfo['Customer']['address3'] = $result->CustomerInfo->Address->Address3; $customerInfo['Customer']['town'] = $result->CustomerInfo->Address->Town; $customerInfo['Customer']['region'] = $result->CustomerInfo->Address->Region; $customerInfo['Customer']['postcode'] = $result->CustomerInfo->Address->PostCode; $customerInfo['Customer']['country'] = $result->CustomerInfo->Address->Country; $customerInfo['Customer']['name'] = $result->CustomerInfo->Address->FullName; $customerInfo['Customer']['company'] = $result->CustomerInfo->Address->Company; $customerInfo['Customer']['phone'] = $result->CustomerInfo->Address->PhoneNumber; $customerInfo['Customer']['source'] = $result->GeneralInfo->Source; $customerInfo['Customer']['subsource'] = $result->GeneralInfo->SubSource; $customerdetails = $this->Customer->find('first', array('conditions' => array('Customer.email' => $customerInfo['Customer']['email']))); if (count($customerdetails) > 0) { //$customerdetails['Customer']['count'] = $customerdetails['Customer']['count'] + '1'; $this->Customer->updateAll(array('Customer.order_id' => $result->NumOrderId), array('Customer.email' => $customerdetails['Customer']['email'])); } else { $customerInfo['Customer']['order_id'] = $result->NumOrderId; $this->Customer->create(); $this->Customer->saveAll($customerInfo); } } } } /* call the function for assign the postal servises */ $this->assign_services(); $this->getBarcode(); $this->setAgainAssignedServiceToAllOrder(); // Euraco Group App::import('Controller', 'Products'); $productModel = new ProductsController(); $productModel->prepareVirtualStock(); }