} $config = array('ServiceURL' => $serviceURL, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3); $service = new MarketplaceWebService_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, $config, APPLICATION_NAME, APPLICATION_VERSION); //var_dump($service); exit; //exit('ffff'); $marketplaceIdArray = array("Id" => array(MARKETPLACE_ID)); $now = date(DATE_ATOM); //当前时间 $nowtime = time(); $mctime = $nowtime; $start = strtotime(date('Y-m-d', $nowtime - 3600 * $hours) . ' 00:00:00'); $end = strtotime(date('Y-m-d', $nowtime) . ' 23:59:59'); $omAvailableAct = new OmAvailableAct(); $where = 'WHERE is_delete=0 '; $where .= 'AND platformId = 11 '; $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', $where); //var_dump($GLOBAL_EBAY_ACCOUNT); $FLIP_GLOBAL_EBAY_ACCOUNT = array_flip($GLOBAL_EBAY_ACCOUNT); $accountId = $FLIP_GLOBAL_EBAY_ACCOUNT[$account]; /*$order_sql = " select ebay_orderid,ebay_account,ebay_ordersn,ebay_countryname, ebay_id,ebay_tracknumber,ebay_carrier,ebay_combine,recordnumber from ebay_order where ebay_user='******' AND ((scantime>=$start AND scantime<=$end) or ebay_status = '614') AND ebay_combine!='1' AND (ShippedTime ='' or ShippedTime is null) AND ebay_tracknumber!='' AND ebay_carrier!='' AND ebay_account = '".$account."' AND ebay_site = '".$site."'";// limit 0,7";*/ /*$order_sql = " select a.omOrderId
function __handle_ebay_orderxml(&$SellerOrderArray, $ebay_account) { global $FLIP_GLOBAL_EBAY_ACCOUNT; if (!isset($FLIP_GLOBAL_EBAY_ACCOUNT)) { $omAvailableAct = new OmAvailableAct(); $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', ' WHERE is_delete=0 '); $FLIP_GLOBAL_EBAY_ACCOUNT = array_flip($GLOBAL_EBAY_ACCOUNT); } global $mctime, $_allow_spide_itemid; $account_suffix = get_account_suffix($ebay_account); $message = ""; foreach ($SellerOrderArray as $SellerOrder) { //每个订单号 $oSellerOrderID = $SellerOrder->getElementsByTagName('OrderID')->item(0)->nodeValue; //oCreatingUserRole用于判断是否是 combined payments $oCreatingUserRole = @$SellerOrder->getElementsByTagName('CreatingUserRole')->item(0)->nodeValue; $oAmountPaid = $SellerOrder->getElementsByTagName('AmountPaid')->item(0)->nodeValue; $shippingDeatil = $SellerOrder->getElementsByTagName('ShippingDetails')->item(0); $oRecordNumber = $shippingDeatil->getElementsByTagName('SellingManagerSalesRecordNumber')->item(0)->nodeValue; $shippingDeatil = null; unset($shippingDeatil); //订单状态 $CheckoutStatus = $SellerOrder->getElementsByTagName('CheckoutStatus')->item(0); $LastTimeModified = strtotime($CheckoutStatus->getElementsByTagName('LastModifiedTime')->item(0)->nodeValue); $oeBayPaymentStatus = $CheckoutStatus->getElementsByTagName('eBayPaymentStatus')->item(0)->nodeValue; $oCompleteStatus = $CheckoutStatus->getElementsByTagName('Status')->item(0)->nodeValue; $oCheckStatus = $CheckoutStatus->getElementsByTagName('Status')->item(0)->nodeValue; $CheckoutStatus = null; unset($CheckoutStatus); //该订单交易信息 $osoTransArray = $SellerOrder->getElementsByTagName('Transaction'); //其他交易信息比如payapl整合到ebay $oTid = 0; //兼容表结构,其实此时还没有交易号的概念 $ExtTran = $SellerOrder->getElementsByTagName('ExternalTransaction')->item(0); $noptid_trans = false; if (!empty($ExtTran)) { $oPtid = $ExtTran->getElementsByTagName('ExternalTransactionID')->item(0)->nodeValue; $oFeeOrCreditAmount = $ExtTran->getElementsByTagName('FeeOrCreditAmount')->item(0)->nodeValue; } else { $oPtid = '0'; $oFeeOrCreditAmount = 0.0; echo " Notice : [{$oSellerOrderID}]Not ebay offical paypal trans\n"; $noptid_trans = true; } //以下信息强制以订单的transation数据中第一条交易为准而取 if (is_object($osoTransArray->item(0)->getElementsByTagName('Buyer')->item(0))) { $oEmail = str_rep($osoTransArray->item(0)->getElementsByTagName('Buyer')->item(0)->getElementsByTagName('Email')->item(0)->nodeValue); } else { echo "\n同步订单未获取邮箱\n"; $oEmail = ""; } $oSite = str_rep($osoTransArray->item(0)->getElementsByTagName('Item')->item(0)->getElementsByTagName('Site')->item(0)->nodeValue); if (empty($oSite)) { $oSite = str_rep($osoTransArray->item(0)->getElementsByTagName('TransactionSiteID')->item(0)->nodeValue); } //货币类型 $oCurrency = $osoTransArray->item(0)->getElementsByTagName('TransactionPrice')->item(0)->attributes->item(0)->nodeValue; //userid $oUserID = str_rep($SellerOrder->getElementsByTagName('BuyerUserID')->item(0)->nodeValue); $BuyerInfo = $SellerOrder->getElementsByTagName('ShippingAddress')->item(0); $oName = str_rep($BuyerInfo->getElementsByTagName('Name')->item(0)->nodeValue); $oName = mysql_real_escape_string($oName); $oStreet1 = str_rep($BuyerInfo->getElementsByTagName('Street1')->item(0)->nodeValue); $oStreet2 = str_rep($BuyerInfo->getElementsByTagName('Street2')->item(0)->nodeValue); $oCityName = str_rep($BuyerInfo->getElementsByTagName('CityName')->item(0)->nodeValue); $oStateOrProvince = str_rep($BuyerInfo->getElementsByTagName('StateOrProvince')->item(0)->nodeValue); $oCountry = str_rep($BuyerInfo->getElementsByTagName('Country')->item(0)->nodeValue); $oCountryName = str_rep($BuyerInfo->getElementsByTagName('CountryName')->item(0)->nodeValue); $oPostalCode = str_rep($BuyerInfo->getElementsByTagName('PostalCode')->item(0)->nodeValue); $oPhone = $BuyerInfo->getElementsByTagName('Phone')->item(0)->nodeValue; $BuyerInfo = null; unset($BuyerInfo); //顾客留言 $oBuyerCheckoutMessage = @str_rep($SellerOrder->getElementsByTagName('BuyerCheckoutMessage')->item(0)->nodeValue); //顾客购买留言 $oBuyerCheckoutMessage = str_replace('<![CDATA[', '', $oBuyerCheckoutMessage); $oBuyerCheckoutMessage = str_replace(']]>', '', $oBuyerCheckoutMessage); //付款时间 $oPaidTime = strtotime($SellerOrder->getElementsByTagName('PaidTime')->item(0)->nodeValue); $oCreateTime = strtotime($SellerOrder->getElementsByTagName('CreatedTime')->item(0)->nodeValue); $oShippedTime = @strtotime($SellerOrder->getElementsByTagName('ShippedTime')->item(0)->nodeValue); $SSS = $SellerOrder->getElementsByTagName('ShippingServiceSelected')->item(0); $oShipingService = $SSS->getElementsByTagName('ShippingService')->item(0)->nodeValue; $oShipingFee = $SSS->getElementsByTagName('ShippingServiceCost')->item(0)->nodeValue; $SSS = null; unset($SSS); //店铺收款paypal account //$oPayPalEmailAddress = @$SellerOrder->getElementsByTagName('PayPalEmailAddress')->item(0)->nodeValue; $_itemid = $osoTransArray->item(0)->getElementsByTagName('ItemID')->item(0)->nodeValue; $oPayPalEmailAddress = $this->getPayPalEmailAddress($_itemid); //var_dump($Item_Elements); //$oPayPalEmailAddress = $Item_Elements->getElementsByTagName('PayPalEmailAddress')->nodeValue; //echo $oCompleteStatus."======".$oeBayPaymentStatus."======".$oPaidTime; echo "\n"; if ($oCompleteStatus == "Complete" && $oeBayPaymentStatus == "NoPaymentFailure" && $oPaidTime > 0) { $oOrderStatus = 1; } if ($noptid_trans === true) { //不是通过ebay官方交易的paypal交易 if ($oCompleteStatus == "Complete" && $oeBayPaymentStatus == "NoPaymentFailure" && $oPaidTime > 0) { $oOrderStatus = 687; } } $is_allow_spide_itemid = false; if ($oPaidTime <= 0 || $oPaidTime == '' || empty($oPaidTime) && count($osoTransArray) == 1) { $_QuantityPurchased = $osoTransArray->item(0)->getElementsByTagName('QuantityPurchased')->item(0)->nodeValue; if (in_array($_itemid, $_allow_spide_itemid) && $_QuantityPurchased > 0) { echo "未付款促销订单抓取--------"; $oOrderStatus = $_QuantityPurchased == 1 ? 687 : 688; $oAmountPaid = 9999; $oPaidTime = $oCreateTime; $is_allow_spide_itemid = true; $buyAddress = $this->getSellerTransactions($oSellerOrderID); $oName = str_rep($buyAddress->getElementsByTagName('Name')->item(0)->nodeValue); $oName = mysql_real_escape_string($oName); $oStreet1 = str_rep($buyAddress->getElementsByTagName('Street1')->item(0)->nodeValue); $oCityName = str_rep($buyAddress->getElementsByTagName('CityName')->item(0)->nodeValue); $oStateOrProvince = str_rep($buyAddress->getElementsByTagName('StateOrProvince')->item(0)->nodeValue); $oCountry = str_rep($buyAddress->getElementsByTagName('Country')->item(0)->nodeValue); $oCountryName = str_rep($buyAddress->getElementsByTagName('CountryName')->item(0)->nodeValue); $oPostalCode = str_rep($buyAddress->getElementsByTagName('PostalCode')->item(0)->nodeValue); $oPhone = $buyAddress->getElementsByTagName('Phone')->item(0)->nodeValue; } } if ($oShippedTime > 0) { $oOrderStatus = 2; } //已经发货 $oRefundAmount = 0; //表示未垦退款 if ($oOrderStatus == 1 && $oShippedTime <= 0 && $oPaidTime > 0 || $oOrderStatus == 4 && $oShippedTime <= 0 || in_array($oOrderStatus, array(687, 688)) && $oShippedTime <= 0 && $is_allow_spide_itemid == true) { echo "eBay订单号[{$oSellerOrderID}]有效 ,订单类型[{$oOrderStatus}] "; $check_ebayorderid = true; //检查汇总表该 eBay 订单号是否已经存在 //echo "===={$oSellerOrderID}==={$ebay_account}====";//检测重复抓单信息 $where = " where orderid='" . $oSellerOrderID . "' and accountId='" . $FLIP_GLOBAL_EBAY_ACCOUNT[$ebay_account] . "' "; $check_ebayorderid = OrderidsModel::judgeOrderidsList('orderid', $where); //取消 $check_ebayorderid == false; $new_ebay_id = true; if ($check_ebayorderid === false) { //添加订单汇总 /* 生成一个本地系统订单号 */ //$our_sys_ordersn=date('Y-m-d-His').mt_rand(100,999).$oRecordNumber; $oorder_no = ''; //已废弃 $isNote = 0; if (!empty($oBuyerCheckoutMessage)) { $isNote = 1; } $orderData = array(); $orderData = array('orderData' => array('recordNumber' => $oRecordNumber, 'platformId' => 1, 'accountId' => $FLIP_GLOBAL_EBAY_ACCOUNT[$ebay_account], 'ordersTime' => $oCreateTime, 'paymentTime' => $oPaidTime, 'onlineTotal' => $oAmountPaid, 'actualTotal' => $oAmountPaid, 'transportId' => '', 'actualShipping' => $oShipingFee, 'orderStatus' => C("STATEPENDING"), 'orderType' => C("STATEPENDING_CONV"), 'orderAttribute' => 1, 'channelId' => '', 'orderAddTime' => $mctime, 'isNote' => $isNote, 'storeId' => 1), 'orderExtenData' => array('declaredPrice' => 0.0, 'paymentStatus' => $oCompleteStatus, 'transId' => 1, 'PayPalPaymentId' => $oPtid, 'site' => $oSite, 'orderId' => $oSellerOrderID, 'platformUsername' => $oUserID, 'currency' => $oCurrency, 'feedback' => $oBuyerCheckoutMessage, 'PayPalEmailAddress' => $oPayPalEmailAddress, 'eBayPaymentStatus' => $oeBayPaymentStatus), 'orderUserInfoData' => array('username' => $oName, 'platformUsername' => $oUserID, 'email' => $oEmail, 'countryName' => $oCountryName, 'countrySn' => $oCountry, 'currency' => $oCurrency, 'state' => $oStateOrProvince, 'city' => $oCityName, 'street' => $oStreet1, 'address2' => $oStreet2, 'address3' => '', 'landline' => $oPhone, 'phone' => $ebay_state, 'zipCode' => $oPostalCode)); echo "\tUserID:{$oUserID}" . " AMT:{$oAmountPaid} recordNO:{$oRecordNumber} 付款状态:{$oCompleteStatus} 付款时间:" . date('Y-m-d H:i:s', $oPaidTime) . "\n"; //添加订单明细 $obj_order_detail_data = array(); foreach ($osoTransArray as $transaction) { //该交易的销售编号 $tran_recordnumber = $transaction->getElementsByTagName('ShippingDetails')->item(0)->getElementsByTagName('SellingManagerSalesRecordNumber')->item(0)->nodeValue; /* 多属性订单 */ $attribute = ''; $buy_with_attr = false; $tran_varia = $transaction->getElementsByTagName('Variation')->item(0); if (is_object($tran_varia)) { //未添加明细的属性 20130301 if ($tran_varia->hasChildNodes()) { $Variation = $tran_varia->getElementsByTagName('NameValueList')->item(0); if (!empty($Variation) && $Variation->hasChildNodes()) { foreach ($Variation as $variate) { $aname = $variate->getElementsByTagName('Name')->item(0)->nodeValue; $avalue = $variate->getElementsByTagName('Value')->item(0)->nodeValue; $attribute .= $aname . ":" . $avalue . " "; } } $buy_with_attr = true; $Variation = null; unset($Variation); } } $tran_id = $transaction->getElementsByTagName('TransactionID')->item(0)->nodeValue; //该交易的物品信息 $odItem = $transaction->getElementsByTagName('Item')->item(0); if ($buy_with_attr === true) { $odItemTitle = @$tran_varia->getElementsByTagName('VariationTitle')->item(0)->nodeValue; $odSKU = @$tran_varia->getElementsByTagName('SKU')->item(0)->nodeValue; } else { $odItemTitle = str_rep($odItem->getElementsByTagName('Title')->item(0)->nodeValue); $odSKU = str_rep($odItem->getElementsByTagName('SKU')->item(0)->nodeValue); } $is_suffix = 0; if (!empty($account_suffix)) { list($truesku, $skusuffix) = explode(':', $odSKU); if (!empty($skusuffix)) { $odSKU = $truesku; $is_suffix = 1; } } ###########悲剧 目前getorder api 无法取得下面2个值######### //ebay刊登物品的分类ID,备用字段 //$CategoryID = @$odItem->getElementsByTagName('PrimaryCategory')->item(0)->getElementsByTagName('CategoryID')->item(0)->nodeValue; //$ListingType = @$odItem->getElementsByTagName('ListingType')->item(0)->nodeValue; $CategoryID = 0; $ListingType = ''; //购买数量 $QuantityPurchased = $transaction->getElementsByTagName('QuantityPurchased')->item(0)->nodeValue; //交易创建时间 $CreatedDate = strtotime($transaction->getElementsByTagName('CreatedDate')->item(0)->nodeValue); $FinalValueFee = $transaction->getElementsByTagName('FinalValueFee')->item(0)->nodeValue; $tran_price = $transaction->getElementsByTagName('TransactionPrice')->item(0)->nodeValue; $goodsshippingcost = $transaction->getElementsByTagName('ActualShippingCost')->item(0)->nodeValue; $goodsshippingcost = empty($goodsshippingcost) ? '0.0' : $goodsshippingcost; $tran_itemid = $odItem->getElementsByTagName('ItemID')->item(0)->nodeValue; $tran_site = $odItem->getElementsByTagName('Site')->item(0)->nodeValue; //$obj_order_detail =new eBayOrderDetail(); $obj_order_detail_data[] = array('orderDetailData' => array('recordNumber' => $tran_recordnumber, 'itemPrice' => $tran_price, 'sku' => strtoupper($odSKU), 'amount' => $QuantityPurchased, 'shippingFee' => $goodsshippingcost, 'createdTime' => $mctime), 'orderDetailExtenData' => array('itemId' => $tran_itemid, 'transId' => $tran_id, 'itemTitle' => $odItemTitle, 'itemURL' => '', 'shippingType' => $oShipingService, 'FinalValueFee' => $FinalValueFee, 'FeeOrCreditAmount' => $oFeeOrCreditAmount, 'ListingType' => $ListingType, 'note' => $oBuyerCheckoutMessage)); } $orderData['orderDetail'] = $obj_order_detail_data; $rtn = OldsystemModel::orderErpInsertorder($orderData); //var_dump($rtn); $insertData = array(); if ($rtn['errcode'] == 200) { var_dump($rtn); $rtn_data = $rtn['data']; $orderId = $rtn_data['orderId']; echo "插入老系统成功,订单编号 [{$orderId}] \n"; $pmId = $rtn_data['pmId']; $totalweight = $rtn_data['totalweight']; $shipfee = $rtn_data['shipfee']; $carrier = $rtn_data['carrier']; $carrierId = $rtn_data['carrierId']; $status = $rtn_data['status']; $orderData['orderData']['id'] = $orderId; //赋予新系统订单编号@20140501 $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 //var_dump($calcInfo); $orderData['orderData']['ORcalcWeight'] = $calcInfo[0]; $orderData['orderData']['calcWeight'] = $calcInfo[0]; $orderData['orderData']['pmId'] = $calcInfo[1]; if ($orderData['orderData']['calcWeight'] != $totalweight) { $insertData['old_totalweight'] = $totalweight; $insertData['new_totalweight'] = $orderData['orderData']['calcWeight']; } if ($orderData['orderData']['pmId'] != $pmId) { $insertData['old_pmId'] = $pmId; $insertData['new_pmId'] = $orderData['orderData']['pmId']; } if (count($orderData['orderDetail']) > 1) { $orderData['orderData']['orderAttribute'] = 3; } else { if (isset($orderData['orderDetail'][0]['orderDetailData']['amount']) && $orderData['orderDetail'][0]['orderDetailData']['amount'] > 1) { $orderData['orderData']['orderAttribute'] = 2; } } $calcShippingInfo = TransAPIModel::trans_carriers_best_get($orderData['orderData']['calcWeight'], $orderData['orderUserInfoData']['countryName'], $ebay_account, $orderData['orderData']['actualTotal']); //计算运费 //var_dump($calcShippingInfo); $orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']; $orderData['orderData']['transportId'] = $calcShippingInfo['carrierId']; $orderData['orderData']['ORtransportId'] = $calcShippingInfo['carrierId']; $orderData['orderData']['channelId'] = $calcShippingInfo['channelId']; $orderData['orderData']['ORchannelId'] = $calcShippingInfo['channelId']; if ($orderData['orderData']['calcShipping'] != $shipfee) { $insertData['old_shippfee'] = $shipfee; $insertData['new_shippfee'] = $orderData['orderData']['calcShipping']; } if ($orderData['orderData']['transportId'] != $carrierId) { $insertData['old_carrierId'] = $carrierId; $insertData['new_carrierId'] = $orderData['orderData']['transportId']; } if (!empty($insertData)) { $insertData['ebay_id'] = $orderId; $insertData['addtime'] = time(); var_dump($insertData); OldsystemModel::insertTempSyncRecords($insertData); // 插入临时对比记录表 } $orderData = AutoModel::auto_contrast_intercept($orderData); $statusArr = StatusMenuModel::getStatusMenuByOldStatus($status); if (empty($statusArr)) { echo "未获取老系统状态{$status}转换新码\n"; } else { $orderData['orderData']['ORorderStatus'] = $statusArr[0]; $orderData['orderData']['ORorderType'] = $statusArr[1]; $orderData['orderData']['orderStatus'] = $statusArr[0]; $orderData['orderData']['orderType'] = $statusArr[1]; } if (OrderAddModel::insertAllOrderRow($orderData)) { echo "本地 Record No. [{$oRecordNumber}] 入库成功\n"; $message .= "<font color='green'>本地订单号 [{$oRecordNumber}] 入库成功</font><br>"; } else { echo OrderAddModel::$errMsg; $message .= "<font color='red'>本地订单号 [{$oRecordNumber}] 入库失败</font><br>"; } } else { var_dump($rtn); } //exit; } else { echo "本地订单号 [{$oRecordNumber}] 入库失败\n"; $message .= "<font color='red'>本地订单号 [{$oRecordNumber}] 入库失败</font><br>"; } } else { echo "eBay订单号[{$oSellerOrderID}] 记录编号[{$oRecordNumber}] 无效 不入库...\t"; $message .= "<font color='red'>{$oSellerOrderID}无效 不入库...</font><br>"; if ($oShippedTime > 0 || $oOrderStatus == 2) { echo "已经发货\t"; $message .= "<font color='red'>{$oSellerOrderID}已经发货</font><br>"; } if ($oPaidTime <= 0 || $oPaidTime == '' || empty($oPaidTime)) { echo "未付款\t"; $message .= "<font color='red'>{$oSellerOrderID}未付款</font><br>"; } echo "\n"; //pop_ebay_orderid_queue($oSellerOrderID,$ebay_account); } } return $message; }
public static function overWeightSplitB2B($omOrderId) { !self::$dbConn ? self::initDB() : null; global $memc_obj; //调用memcache获取sku信息 $mctime = time(); //var_dump($moOrderIdArr); $tableName = 'om_unshipped_order'; $where = ' WHERE id = ' . $omOrderId . ' and is_delete = 0 and storeId = 1'; $orderData = OrderindexModel::showOrderList($tableName, $where); $orderDetail = $orderData[$omOrderId]['orderDetail']; $obj_order_data = $orderData[$omOrderId]['orderData']; $orderExtenData = $orderData[$omOrderId]['orderExtenData']; $orderUserInfoData = $orderData[$omOrderId]['orderUserInfoData']; $_actualTotal = $obj_order_data['actualTotal']; $_actualShipping = $obj_order_data['actualShipping']; $_platformId = $obj_order_data['platformId']; $_mainId = $obj_order_data['id']; $_transportId = $obj_order_data['transportId']; //var_dump($orderDetail); exit; $omAvailableAct = new OmAvailableAct(); $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', ' WHERE is_delete=0 AND platformId in(1,5) '); $weightlists = array(); $skuinfo = array(); $goods_sn_nums = 0; $shippfee_arr = array(); $ebay_total_be = 0; foreach ($orderDetail as $k => $f) { $sku = trim($f['orderDetailData']['sku']); $amount = $f['orderDetailData']['amount']; $shippingFee = $f['orderDetailData']['shippingFee']; $goods_sn_nums += $amount; $ebay_total_be += $f['orderDetailData']['amount'] * $f['orderDetailData']['itemPrice']; $shippfee_arr[$sku] = round($shippingFee / $amount, 3); //单个料号的运费 $skuinfo[$sku] = $f; for ($i = 1; $i <= $amount; $i++) { $var = $sku; $oneskuweight = CommonModel::calcOnlySkuWeight($var, 1); //一个sku的重量 $weightlists[$var][] = $oneskuweight[0]; } } $rate = $_actualTotal / $ebay_total_be; //var_dump($weightlists); exit; if ($goods_sn_nums <= 1) { self::$errCode = '0020'; self::$errMsg = "只有一个料号组成,不允许超重拆分"; return false; } //echo "==========="; exit; $keyarray = array(); $keyarrays = array(); $checkweight = 0; $arrinfo = CommonModel::calcNowOrderWeight($omOrderId); //var_dump($arrinfo); exit; $realweight = $arrinfo[0]; $realcosts = $arrinfo[2]; $itemprices = $arrinfo[3]; foreach ($weightlists as $wk => $wv) { foreach ($wv as $weightlist) { $checkweight += $weightlist; if ($checkweight > 1.85) { $keyarrays[] = $keyarray; $keyarray = array(); $checkweight = $weightlist; $keyarray[$wk][] = $wk; } else { $keyarray[$wk][] = $wk; } } } if (!empty($keyarray)) { $keyarrays[] = $keyarray; } //var_dump($keyarrays); exit; BaseModel::begin(); //开始事务 $insert_orderData = array(); foreach ($keyarrays as $keyarray) { $ebay_total = 0; $totalweight = 0; $insert_ebay_ids = array(); //var_dump($skuinfo); echo "<br>"; foreach ($keyarray as $k => $kav) { //var_dump($skuinfo[$k]['orderDetailData']['itemPrice'], count($kav)); //$ebay_total += ($skuinfo[$k]['orderDetailData']['itemPrice'] + $shippfee_arr[$k]) * count($kav); $ebay_total += $skuinfo[$k]['orderDetailData']['itemPrice'] * count($kav); } $ebay_total = $rate * $ebay_total; $shipfee = 0; //$val = generateOrdersn(); $insert_obj_order_data = $obj_order_data; unset($insert_obj_order_data['id']); $insert_obj_order_data['actualTotal'] = $ebay_total; $insert_obj_order_data['orderType'] = C('STATEPENDING_OWDONE'); $insert_obj_order_data['orderAddTime'] = $mctime; $insert_obj_order_data['isSplit'] = 2; $insert_orderExtenData = $orderExtenData; unset($insert_orderExtenData['id']); $insert_orderUserInfoData = $orderUserInfoData; unset($insert_orderUserInfoData['id']); $insert_orderData = array('orderData' => $insert_obj_order_data, 'orderExtenData' => $insert_orderExtenData, 'orderUserInfoData' => $insert_orderUserInfoData); /*$sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, create_date) values ('$recordnumber', '$ebay_id', '$insert_ebay_id', '".date("Y-m-d H:i:s")."')"; $split_log .= "添加主定单和拆分订单到关系表中\r\n".$sql ."\r\n"; $dbcon->execute($sql) or die("Fail : $sql");*/ $obj_order_detail_data = array(); foreach ($keyarray as $k => $kav) { $sku = $k; $amount = count($kav); $insert_orderDetailData = $skuinfo[$k]['orderDetailData']; unset($insert_orderDetailData['id']); $insert_orderDetailData['sku'] = strtoupper($sku); $insert_orderDetailData['amount'] = $amount; $insert_orderDetailData['createdTime'] = $mctime; if (isset($shippfee_arr[$sku])) { $insert_orderDetailData['shippingFee'] = $shippfee_arr[$sku] * $amount; //相同料号运费拆分 } $insert_orderDetailExtenData = $skuinfo[$k]['orderDetailExtenData']; unset($insert_orderDetailExtenData['id']); $obj_order_detail_data[] = array('orderDetailData' => $insert_orderDetailData, 'orderDetailExtenData' => $insert_orderDetailExtenData); } $insert_orderData['orderDetail'] = $obj_order_detail_data; //echo "<pre>"; //var_dump($obj_order_detail_data); exit; $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 //var_dump($calcInfo); exit; $insert_orderData['orderData']['calcWeight'] = $calcInfo[0]; $insert_orderData['orderData']['pmId'] = $calcInfo[1]; //var_dump($insert_orderData); exit; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insert_orderData, 1); //计算运费 //var_dump($calcShippingInfo); exit; $insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $insert_orderData['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; /*$interceptInfo = CommonModel :: auto_contrast_intercept($orderData); //print_r($interceptInfo); exit; $orderData['orderData']['orderStatus'] = $interceptInfo['orderStatus']; $orderData['orderData']['orderType'] = $interceptInfo['orderType'];*/ if ($_spitId = OrderAddModel::insertAllOrderRowNoEvent($insert_orderData)) { //echo $split_log .= 'insert success!' . "\n"; exit; //var_dump($_mainId,$_spitId); exit; if (!OrderLogModel::insertOrderLog($_spitId, 'INSERT ORDER')) { BaseModel::rollback(); self::$errCode = '0021'; self::$errMsg = "split error!"; return false; } if (!OrderRecordModel::insertSpitRecords($_mainId, $_spitId)) { BaseModel::rollback(); self::$errCode = '0022'; self::$errMsg = "split error!"; return false; } } else { $split_log .= 'insert error!' . "\n"; BaseModel::rollback(); self::$errCode = '0023'; self::$errMsg = "split error!"; return false; } if (!OrderindexModel::deleteOrderData($tableName, $where)) { self::$errCode = '0024'; self::$errMsg = "split error!"; return false; } if (!OrderLogModel::insertOrderLog($_mainId, 'DELETE ORDER')) { BaseModel::rollback(); self::$errCode = '0025'; self::$errMsg = "split error!"; return false; } BaseModel::commit(); BaseModel::autoCommit(); } self::$errCode = '200'; self::$errMsg = "split success!"; return true; }
public function act_updateDetail() { global $memc_obj; $start = time(); //ob_start();//不加这个是不行的(貌似不加可以) $omAvailableAct = new OmAvailableAct(); global $definedArr; require_once WEB_PATH . "conf/scripts/script.ebay.config.php"; $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', ' WHERE is_delete=0 '); $FLIP_GLOBAL_EBAY_ACCOUNT = array_flip($GLOBAL_EBAY_ACCOUNT); $definedArr = get_defined_vars(); /*$end = time(); echo $end-$start; echo "<br>"; $start = $end;*/ //var_dump($_POST); exit; $orderid = $_POST['orderid']; $omOrderDetailId = $_POST['omOrderDetailId']; //$data = unset($_POST['omOrderDetailId']); $update_detail = array(); $update_detail_extral = array(); $update_detail['recordNumber'] = $_POST['recordNumber']; $update_detail['sku'] = $_POST['sku']; $update_detail_extral['itemTitle'] = $_POST['itemTitle']; $update_detail['itemPrice'] = $_POST['itemPrice']; $update_detail['shippingFee'] = $_POST['shippingFee']; $update_detail['amount'] = $_POST['amount']; $update_detail_extral['note'] = $_POST['note']; $platformId = $_POST['detail_platformId']; $platfrom = omAccountModel::getPlatformSuffixById($platformId); $extension = $platfrom['suffix']; //获取后缀名称 $detailArr = explode(',', $omData); //缺少事件 BaseModel::begin(); //开始事务 $tableName = "om_unshipped_order_detail"; $where = " WHERE id = " . $omOrderDetailId; if ($update_detail) { $rtn = OrderindexModel::updateOrder($tableName, $update_detail, $where); if ($rtn) { /*$tableName = "om_unshipped_order"; $where = " WHERE id = ".$orderid; $updateOrder = array(); $orderData = OrderindexModel::showOrderList($tableName, $where); $orderData = $orderData[$orderid]; //var_dump($orderData); $orderDetail = $orderData['orderDetail']; $calcInfo = CommonModel :: calcAddOrderWeight($orderDetail);//计算重量和包材 //var_dump($calcInfo); exit; $updateOrder['calcWeight'] = $calcInfo[0]; $updateOrder['pmId'] = $calcInfo[1]; if(count($orderDetail) > 1){ $updateOrder['orderAttribute'] = 3; }else if(isset($orderDetail[0]['orderDetailData']['amount']) && $orderDetail[0]['orderDetailData']['amount'] > 1){ $updateOrder['orderAttribute'] = 2; } $calcShippingInfo = CommonModel :: calcAddOrderShippingFee($orderData,1);//计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $updateOrder['channelId'] = $calcShippingInfo['fee']['channelId']; $interceptInfo = CommonModel :: auto_contrast_intercept($orderData); //print_r($interceptInfo); exit; $updateOrder['orderStatus'] = $interceptInfo['orderStatus']; $updateOrder['orderType'] = $interceptInfo['orderType']; $rtn2 = OrderindexModel::updateOrder($tableName, $updateOrder, $where); if(!$rtn2){ BaseModel :: rollback(); }*/ } else { BaseModel::rollback(); } } //ob_end_clean(); if ($update_detail_extral) { $tableName = "om_unshipped_order_detail_extension_" . $extension; $where = " WHERE omOrderdetailId = " . $omOrderDetailId; $rtn = OrderindexModel::updateOrder($tableName, $update_detail_extral, $where); if (!$rtn) { BaseModel::rollback(); } } BaseModel::commit(); BaseModel::autoCommit(); self::$errCode = OrderindexModel::$errCode; self::$errMsg = OrderindexModel::$errMsg; return $rtn; }
public function addOrder($account) { if (!defined('WEB_PATH')) { define("WEB_PATH", "/data/web/order.valsun.cn/"); } require_once WEB_PATH . "crontab/scripts.comm.php"; require_once WEB_PATH_CONF_SCRIPTS . "script.ebay.config.php"; require_once WEB_PATH_LIB_SDK_EBAY . "GetCertainOrder.php"; require_once WEB_PATH_LIB_SCRIPTS_EBAY . "ebay_order_cron_func.php"; $rmq_config = C("RMQ_CONFIG"); $rabbitMQClass = new RabbitMQClass($rmq_config['fetchOrder'][1], $rmq_config['fetchOrder'][2], $rmq_config['fetchOrder'][4], $rmq_config['fetchOrder'][0]); //队列对象 $omAvailableAct = new OmAvailableAct(); $where = 'WHERE is_delete=0 '; $where .= 'AND platformId in(1,5) '; $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', $where); $FLIP_GLOBAL_EBAY_ACCOUNT = array_flip($GLOBAL_EBAY_ACCOUNT); if (!preg_match('#^[\\da-zA-Z]+$#i', $account)) { $message .= "<font color='red'>Invalid ebay account: {$account}!</font><br>"; self::$errCode = 101; self::$errMsg = $mesage; return false; } if (!in_array($account, $GLOBAL_EBAY_ACCOUNT)) { //exit("$account is not support now !\n"); $message .= "<font color='red'>{$account} is not support now !</font><br>"; self::$errCode = 102; self::$errMsg = $mesage; return false; } //预先判断ebaytoken文件 $__token_file = WEB_PATH_CONF_SCRIPTS_KEYS_EBAY . 'keys_' . $account . '.php'; if (!file_exists($__token_file)) { //exit($__token_file." does not exists!!!"); $message .= "<font color='red'>{$__token_file} does not exists!!!</font><br>"; self::$errCode = 103; self::$errMsg = $mesage; return false; } $express_delivery = array(); $express_delivery_value = array(); $no_express_delivery = array(); $no_express_delivery_value = array(); $express_delivery_arr = CommonModel::getTransCarrierInfo(1); foreach ($express_delivery_arr['data'] as $value) { $express_delivery_value[$value['id']] = $value['carrierNameCn']; } $express_delivery = array_keys($express_delivery_value); //var_dump($express_delivery); $no_express_delivery_arr = CommonModel::getTransCarrierInfo(); foreach ($no_express_delivery_arr['data'] as $value) { $no_express_delivery_value[$value['id']] = $value['carrierNameCn']; } $no_express_delivery = array_keys($no_express_delivery_value); //var_dump($no_express_delivery); exit; #########全局变量设置######## date_default_timezone_set('Asia/Chongqing'); $detailLevel = 0; $Sordersn = "eBay"; $mctime = time(); $cc = $mctime; $nowtime = date("Y-m-d H:i:s", $cc); $nowd = date("Y-m-d", $cc); #################以下账号用于测试############# //$account= $__ebayaccount; #############类或API 实例化############## $api_gco = new GetCertainOrderAPI($account); //$oa =new OrderAction(); //程序计时器 $time_start = $cc; //echo "\n=====[".date('Y-m-d H:i:s',$time_start)."] 系统【开始】抓取账号【 $account 】订单 ====>\n\n"; $message = $api_gco->GetCertainOrder($account); //监听获取队列信息 if ($message === true) { self::$errCode = 200; self::$errMsg = "成功抓取订单!"; return true; } elseif ($message === false) { self::$errCode = 104; self::$errMsg = "抓取订单失败!"; return false; } else { self::$errCode = 105; self::$errMsg = $message; return; } //return $message; }
//define('SCRIPTS_PATH_CRONTAB', '/data/web/erpNew/order.valsun.cn/crontab/'); require_once WEB_PATH . "crontab/scripts.comm.php"; require_once WEB_PATH_CONF_SCRIPTS . "script.ebay.config.php"; //$taobao_user = '******'; $configFile = WEB_PATH_CONF_SCRIPTS_KEYS_TAOBAO . "config_" . $taobao_user . ".php"; if (file_exists($configFile)) { include_once $configFile; } else { echo "error: 未找对应的config文件!\n"; exit; } require_once WEB_PATH_LIB_SDK_TAOBAO . 'lib/taobao.trade.get.php'; require_once WEB_PATH_LIB_SDK_TAOBAO . 'lib/taobao.trades.sold.get.php'; require_once WEB_PATH_LIB_SCRIPTS_TAOBAO . 'taobao_order_func.php'; $omAvailableAct = new OmAvailableAct(); $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', " WHERE is_delete = 0 AND platformId in(12,13) "); //echo $account; echo "\n"; $FLIP_GLOBAL_EBAY_ACCOUNT = array_flip($GLOBAL_EBAY_ACCOUNT); //$debug_mode = 'false'; //调试模式 //获取第一页数据 //2013-05-14 01:01:00 //$json_data = taobaoTradesSoldGet($url,$session,$appSecret,$appKey,"WAIT_SELLER_SEND_GOODS",1,$page_size,"","","wanchi1224"); $json_data = taobaoTradesSoldGet($url, $session, $appSecret, $appKey, $status, 1, $page_size); //print_r(get_account_id($account));die; //var_dump($json_data);die; //exit; //分页获取后面的数据 $total_page = 1; if (isset($json_data['trades_sold_get_response']['total_results'])) { $total = intval($json_data['trades_sold_get_response']['total_results']); if ($total > $page_size) { $total_page = ceil($total / $page_size);