$ShenBaoQuantity = mysql_real_escape_string(trim($detail['ShenBaoQuantity'])); $ShenBaoUnitPrice = mysql_real_escape_string(trim($detail['ShenBaoUnitPrice'])); $salePrice = round_num(mysql_real_escape_string(trim($detail['SalePrice'])), 2); //实际SKU付款价 /*************END 订单详细扩展表数据***************/ /*$sql = array2sql($orderDetailExtDL); $msg = DLdlModel::insertOrderDetailExtDL($sql); if(!$msg){ echo "订单{$orderdata['recordnumber']}订单明细扩展信息插入失败!\r\n"; BaseModel::rollback(); }*/ $obj_order_detail_data[] = array('orderDetailData' => $orderdata_detail, 'orderDetailExtenData' => $orderDetailExtDL); $ebay_fedex_remark[$categoryName][] = array('real_price' => $ShenBaoQuantity, 'qty' => $ShenBaoUnitPrice, 'hamcodes' => $customCode, 'detail' => $material); } $insertOrder = array('orderData' => $orderdata, 'orderExtenData' => $orderExtDL, 'orderUserInfoData' => $orderUserInfo, 'orderDetail' => $obj_order_detail_data, 'orderNote' => $orderNote); $calcInfo = CommonModel::calcAddOrderWeight($insertOrder['orderDetail']); //计算重量和包材 //var_dump($calcInfo); exit; $insertOrder['orderData']['calcWeight'] = $calcInfo[0]; $insertOrder['orderData']['pmId'] = $calcInfo[1]; //$insertOrder['orderData']['transportId'] = $flip_transportList[get_carrier($insertOrder['orderData']['calcWeight'], $insertOrder['orderUserInfoData']['countryName'])]; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $insertOrder['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrder = AutoModel::auto_contrast_intercept($insertOrder); $omOrderId = OrderAddModel::insertAllOrderRow($insertOrder, 'cndl'); if ($omOrderId) { echo "订单 {$orderdata['recordnumber']} 信息添加成功!ERP订单号为{$omOrderId}--" . date("Y-M-d H:i:s", $mctime) . "--\n"; }
public static function auto_contrast_intercept($orderData) { global $SYSTEM_ACCOUNTS, $__liquid_items_fenmocsku, $__liquid_items_BuiltinBattery, $__liquid_items_SuperSpecific, $__liquid_items_Paste; global $GLOBAL_EBAY_ACCOUNT; global $express_delivery, $no_express_delivery; if (!$SYSTEM_ACCOUNTS) { $__liquid_items_array = PurchaseAPIModel::getAdjustransportFromPurchase(); //var_dump($__liquid_items_array); //echo time(); echo "<br>"; $__liquid_items_postbyhkpost = array_filter(explode(",", $__liquid_items_array['液体产品'])); //液体产品 $__liquid_items_postbyfedex = array_filter(explode(",", $__liquid_items_array['贵重产品'])); //贵重物品走联邦 $__liquid_items_cptohkpost = array_filter(explode(",", $__liquid_items_array['指甲油产品'])); //指甲油转香港小包 $__liquid_items_elecsku = array_filter(explode(",", $__liquid_items_array['电子类产品'])); //电子类产品走香港小包 //$__elecsku_countrycn_array = array_filter(explode(",", $__liquid_items_array['']));//电子类产品指定国家 $__liquid_items_fenmocsku = array_filter(explode(",", $__liquid_items_array['粉末状产品'])); //粉末状SKU $__liquid_items_BuiltinBattery = array_filter(explode(",", $__liquid_items_array['内置电池产品'])); //内置电池类产品 $__liquid_items_SuperSpecific = array('6471', '14995'); //超规格的产品,长度大于60cm, 三边大于 90cm $__liquid_items_Paste = array_filter(explode(",", $__liquid_items_array['膏状产品'])); //膏状SKU*/ $__liquid_items_elecWithoutBattery = array_filter(explode(",", $__liquid_items_array['电子类【不带电池】'])); //电子类【不带电池】*/ $__liquid_items_OutWeight = array_filter(explode(",", $__liquid_items_array['超重产品>=1.9kg'])); //超重产品>=1.9kg*/ //取统一包装材料重量数据 //$MaterInfo = CommonModel::getMaterInfo(); //取统一国家中文名对应英文名 /*$ec = "select * from ebay_countrys where ebay_user='******' "; $result = $dbConn->execute($ec); $ebay_country_lists = $dbConn->getResultArray($result); $global_countrycn_coutryen = array(); foreach($ebay_country_lists AS $ebay_country_list){ $global_countrycn_coutryen[trim($ebay_country_list['countryen'])] = trim($ebay_country_list['countrycn']); }*/ //取各个平台的账号名称 $SYSTEM_ACCOUNTS = OmAvailableModel::getPlatformAccount(); //echo "<pre>";print_r($SYSTEM_ACCOUNTS); $express_delivery = array(); $express_delivery_value = array(); $no_express_delivery = array(); $no_express_delivery_value = array(); $express_delivery_value = CommonModel::getCarrierListById(1); /*foreach($express_delivery_arr as $value){ $express_delivery_value[$value['id']] = $value['carrierNameCn']; }*/ $express_delivery = array_keys($express_delivery_value); //var_dump($express_delivery); $no_express_delivery_value = CommonModel::getCarrierListById(0); /*foreach($no_express_delivery_arr as $value){ $no_express_delivery_value[$value['id']] = $value['carrierNameCn']; }*/ $no_express_delivery = array_keys($no_express_delivery_value); } if (!$GLOBAL_EBAY_ACCOUNT) { $GLOBAL_EBAY_ACCOUNT = array(); foreach ($SYSTEM_ACCOUNTS as $acct) { foreach ($acct as $key => $value) { $GLOBAL_EBAY_ACCOUNT[$key] = $value; } } } //var_dump($GLOBAL_EBAY_ACCOUNT);exit; self::initDB(); //var_dump($orderData); echo "\n"; $log_data = ""; $actualTotal0 = 0; //该订单实际总数 //$ebay_id = $orderData['orderData']['id']; $orderStatus = empty($orderData['orderData']['orderStatus']) ? C('STATEPENDING') : $orderData['orderData']['orderStatus']; $orderType = empty($orderData['orderData']['orderType']) ? C('STATEPENDING_CONV') : $orderData['orderData']['orderType']; $returnStatus = array('orderStatus' => $orderStatus, 'orderType' => $orderType); $isNote = $orderData['orderData']['isNote']; if ($isNote) { $orderType = C('STATEPENDING_MSG'); } $calcWeight = $orderData['orderData']['calcWeight']; $pmId = $orderData['orderData']['pmId']; //var_dump($calcWeight); echo "\n"; $orderdetaillist = $orderData['orderDetail']; if (empty($calcWeight)) { $calcInfo = CommonModel::calcAddOrderWeight($orderdetaillist); //计算重量和包材 $calcWeight = $calcInfo[0]; $pmId = $calcInfo[1]; $orderData['orderData']['calcWeight'] = $calcWeight; $orderData['orderData']['pmId'] = $pmId; } //var_dump($calcWeight); echo "\n"; $transportId = @$orderData['orderData']['transportId']; $countryName = $orderData['orderUserInfoData']['countryName']; $accountId = $orderData['orderData']['accountId']; $actualTotal = $orderData['orderData']['actualTotal']; $ebay_username = $orderData['orderUserInfoData']['username']; $orderDataid = $orderData['orderExtenData']['orderId']; $ebay_usermail = $orderData['orderUserInfoData']['email']; $PayPalEmailAddress = @$orderData['orderExtenData']['PayPalEmailAddress']; //echo "------$countryName-----\n"; //echo "订单计算重量:$calcWeight\t\n"; $contain_special_item = false; $contain_os_item = false; $ow_status = array(); //foreach ($orderdetaillist AS $orderdetail){ for ($i = 0; $i < count($orderdetaillist); $i++) { $sku = $orderdetaillist[$i]['orderDetailData']['sku']; $itemPrice = $orderdetaillist[$i]['orderDetailData']['itemPrice']; $amount = $orderdetaillist[$i]['orderDetailData']['amount']; $shippingFee = $orderdetaillist[$i]['orderDetailData']['shippingFee']; //var_dump($sku); $sku_arr = GoodsModel::get_realskuinfo($sku); //var_dump($sku_arr); exit; $actualTotal0 += $itemPrice * $amount + $shippingFee; foreach ($sku_arr as $or_sku => $or_nums) { if (in_array($or_sku, $__liquid_items_fenmocsku) || in_array($or_sku, $__liquid_items_SuperSpecific) || in_array($or_sku, $__liquid_items_BuiltinBattery)) { //粉末状,超规格产品 走福建邮局 $contain_special_item = true; } if (preg_match("/^US01\\+.*/", $or_sku, $matchArr) || preg_match("/^US1\\+.*/", $or_sku, $matchArr)) { //$log_data .= "[".date("Y-m-d H:i:s")."]\t包含海外仓料号订单---{$ebay_id}-----料号:{$or_sku}--!\n\n"; $contain_os_item = true; if (strpos($or_sku, "US01+") !== false) { $matchStr = substr($matchArr[0], 5); //去除前面 //$matchStr = str_replace("US1+", "", $or_sku); } else { //$matchStr=substr($matchArr[0],5);//去除前面 $matchStr = str_replace("US1+", "", $or_sku); } $n = strpos($matchStr, ':'); //寻找位置 if ($n) { $matchStr = substr($matchStr, 0, $n); } //删除后面 if (preg_match("/^0+(\\w+)/", $matchStr, $matchArr)) { $matchStr = $matchArr[1]; } $orderData['orderDetail'][$i]['orderDetailData']['sku'] = $matchStr; //OrderAddModel::updateDetailExtension(array('sku'=>$matchStr), " id = {$orderdetail['ebay_id']} "); //$virtualnum = check_oversea_stock($matchStr); //检查海外仓虚拟库存 $virtualnum = 1; //预留获取海外仓虚拟库存接口 20131225 if ($virtualnum >= 0) { $ow_status[] = C('STATEPENDING_OVERSEA'); //海外仓待处理 } else { $ow_status[] = C('STATEOUTOFSTOCK_OVERSEA'); //海外仓缺货 } } } } if ($contain_special_item) { /*$sql = "update ebay_order set ebay_carrierstyle ='1' where ebay_id ={$ebay_id}"; //add by Herman.Xi 记录该订单含有特殊料号 $dbConnn->query($sql); $log_data .= "[".date("Y-m-d H:i:s")."]\t包含粉末状超规格产品---{$ebay_id}---!\n\n";*/ } if ($contain_os_item) { if (in_array(C('STATEOUTOFSTOCK_OVERSEA'), $ow_status)) { $orderData['orderData']['orderStatus'] = C('STATEPENDING_OS'); $orderData['orderData']['orderType'] = C('STATEOUTOFSTOCK_OVERSEA'); } else { $orderData['orderData']['orderStatus'] = C('STATEPENDING_OS'); $orderData['orderData']['orderType'] = C('STATEPENDING_OVERSEA'); } //$log_data .= "[".date("Y-m-d H:i:s")."]\t更新海外仓料号订单状态为{$final_status}---{$ebay_id}--{$sql}-!\n\n"; /*if($final_status == C('STATEPENDING_OVERSEA')){ $calcWeight = calcWeight($ebay_id); $skunums = checkSkuNum($ebay_id); if($skunums === true){ continue; }else if ($calcWeight>20) { if($skunums==1){ usCalcShipCost($ebay_id); } } else { usCalcShipCost($ebay_id); } }*/ //$calcWeight = recalcorderweight($order_sn, $ebay_packingmaterial); //modified by Herman.Xi 2012-10-17 $log_data .= "[" . date("Y-m-d H:i:s") . "]\t包含海外仓料号---自动跳转---的状态为---{$final_status}!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; //continue; } $interceptrtn = self::intercept_exception_orders($orderData); //var_dump($interceptrtn); if ($interceptrtn) { $orderData['orderData']['orderStatus'] = $interceptrtn['orderStatus']; $orderData['orderData']['orderType'] = $interceptrtn['orderType']; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } $record_details = array(); $is_640 = false; //var_dump($orderdetaillist); exit; foreach ($orderdetaillist as $orderdetail) { //var_dump($orderdetail['sku']); $sku = $orderdetail['orderDetailData']['sku']; //$itemPrice = $orderdetail['orderDetailData']['itemPrice']; $amount = $orderdetail['orderDetailData']['amount']; //$shippingFee = $orderdetail['orderDetailData']['shippingFee']; $sku_arr = GoodsModel::get_realskuinfo($sku); //var_dump($sku_arr); exit; $hava_goodscount = true; foreach ($sku_arr as $or_sku => $or_nums) { $allnums = $or_nums * $amount; if (!CommonModel::check_sku($or_sku, $allnums)) { //超大订单状态 $orderStatus = C('STATEOVERSIZEDORDERS'); if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['aliexpress']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['DHgate']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['出口通']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['线下结算客户'])) { $orderType = C('STATEOVERSIZEDORDERS_CONFIRM'); } else { $orderType = C('STATEOVERSIZEDORDERS_PEND'); } //self::insert_mark_shipping($ebay_id); $is_640 = true; break; } else { $skuinfo = CommonModel::get_sku_info($or_sku); $salensend = CommonModel::getpartsaleandnosendall($or_sku); //$log_data .= "[".date("Y-m-d H:i:s")."]\t---{$sql}\n\n"; $log_data .= "订单==={$ebay_id}===料号=={$or_sku}===实际库存为{$skuinfo['realnums']}===需求量为{$allnums}===待发货数量为{$salensend}===\n"; if (!isset($skuinfo['realnums']) || empty($skuinfo['realnums']) || $skuinfo['realnums'] - $salensend - $allnums < 0) { $hava_goodscount = false; break; } } } if ($hava_goodscount) { $record_details[] = $orderdetail; } } if ($is_640) { $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } $count_record_details = count($record_details); $count_orderdetaillist = count($orderdetaillist); $final_status = $orderStatus; //原始状态 if ($count_record_details == 0) { //更新至自动拦截发货状态 /*if (!in_array($ebay_carrier, $no_express_delivery)){ $final_status = 658; }else { $final_status = 661; }*/ //$sql = "UPDATE ebay_order SET ebay_status='$final_status' WHERE ebay_id ='$ebay_id' and ebay_status = '{$orderStatus}' "; $orderStatus = C('STATEOUTOFSTOCK'); $orderType = C('STATEOUTOFSTOCK_AO'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为---".C('STATEOUTOFSTOCK_AO')."!\n\n"; //self::insert_mark_shipping($ebay_id); //self::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } else { if ($count_record_details < $count_orderdetaillist) { //更新至自动部分发货状态 /*if (!in_array($ebay_carrier, $no_express_delivery)){ //$final_status = 659; $final_status = 640; }else { $final_status = 660; }*/ $orderStatus = C('STATEOUTOFSTOCK'); $orderType = C('STATEOUTOFSTOCK_PO'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为---".C('STATEOUTOFSTOCK_PO')."!\n\n"; //self::insert_mark_shipping($ebay_id); //$returnStatus = array('orderStatus'=>C('STATEOUTOFSTOCK'), 'orderType'=>C('STATEOUTOFSTOCK_PO')); //self::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } else { if ($count_record_details == $count_orderdetaillist) { //正常发货状态 if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['ebay'])) { if (in_array($orderStatus, array(C('STATEOUTOFSTOCK_PO'), C('STATEOUTOFSTOCK_PO')))) { //$final_status = 618;//ebay订单自动拦截有货不能移动到待处理和有留言 modified by Herman.Xi @ 20130325(移动到缺货需打印中) $orderStatus = C('STATEPENDING'); if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } else { $orderType = C('STATEPENDING_HASARRIVED'); } } else { $orderStatus = C('STATEPENDING'); if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } else { $orderType = C('STATEPENDING_CONV'); } } } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['aliexpress'])) { if (in_array($countryName, array('Russian Federation', 'Russia')) && strpos($ebay_carrier, '中国邮政') !== false && str_word_count($ebay_username) < 2) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['DHgate'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['dresslink.com'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['cndirect.com'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['Amazon'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } } } } } } if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } /*if(self::judge_contain_combinesku_new($orderdetaillist)){ $final_status = 606; }*/ if ($calcWeight > 2) { echo "\t 超重订单"; $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_OW'); } $expressArr = CommonModel::getCarrierInfoById(1); if (in_array($transportId, $expressArr)) { $orderType = C('STATEPENDING_HASARRIVED'); } /*if (!in_array($ebay_carrier, $no_express_delivery) && !empty($ebay_carrier)){ if(in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['ebay']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['海外销售平台'])){ $final_status = 641;//ebay和海外都跳转到 待打印线下和异常订单 }else{ $final_status = 639; } }*/ } else { $log_data .= "[" . date("Y-m-d H:i:s") . "]\t订单同步状态有误,请联系IT解决!"; } } } //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; //print_r($GLOBAL_EBAY_ACCOUNT); CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; }
function act_addDistributorOrder() { $orderArrJson = json_decode($_POST["orderArr"], true); $app_key = trim($_POST['app_key']); $account = $this->getOrderSystemAccount($app_key); $accountInfo = omAccountModel::getAccountInfoByName($account); $accountId = $accountInfo['id']; $orderAddAct = new OrderAddAct(); $rtnArr = array(); foreach ($orderArrJson as $val) { $itemRtn = array(); $orderId = $val['orderId']; $check = $orderAddAct->checkDuplicateOrder($orderId, '16'); if ($check) { $itemRtn["errcode"] = 80001; $itemRtn["orderId"] = $orderId; $itemRtn["msg"] = "系统已经存在[" . $orderId . "]这个订单"; $rtnArr[] = $itemRtn; continue; } //return $rtnArr; $insertOrder = array(); /***************BEGIN 订单表数据***************/ //$unshipedOrder = array(); $orderdata['recordNumber'] = $orderId; $orderdata['platformId'] = 16; //国内销售部 $orderdata['accountId'] = $accountId; $orderdata['orderStatus'] = C('STATEPENDING'); $orderdata['orderType'] = C('STATEPENDING'); //daichu //$gmtCreate = time_shift($val['gmtCreate']); $orderdata['ordersTime'] = $val['gmtCreate']; $orderdata['paymentTime'] = ""; //$pay_time[0]; $orderdata['onlineTotal'] = ""; //$order['initOderAmount']['amount']; //线上总金额 $orderdata['actualTotal'] = ""; //$orderDetail2['payAmount']['amount'];//付款总金额 $orderdata['calcShipping'] = $orderdata['orderAddTime'] = time(); $orderdata['isFixed'] = 1; /***************END 订单表数据***************/ /***************BEGIN 订单扩展表数据***************/ $orderExtAli = array(); // $orderExtAli['declaredPrice'] = $val['orderAmount']['amount']; $orderExtAli['paymentStatus'] = ""; //$order['fundStatus']; $orderExtAli['transId'] = ""; //$val['tradeID'];//$order['id'];//$orderdetail["id"]; // 交易id;; //$orderExtAli[PayPalPaymentId"] = ''; //$orderExtAli["site"] = ''; $orderExtAli['orderId'] = $val['orderId']; $orderExtAli['platformUsername'] = ""; //$order['buyerSignerFullname'];; $orderExtAli['currency'] = $val['orderAmount']['currencyCode']; $orderExtAli['PayPalEmailAddress'] = ""; //$order['buyerInfo']['email'];; $orderExtAli['eBayPaymentStatus'] = ""; //1?//$order['orderStatus']; //订单状态; /***************END 订单扩展表数据***************/ /***************BEGIN 订单用户表数据***************/ $orderUserInfo = array(); $orderUserInfo['username'] = $val['receiptAddress']['contactPerson']; $orderUserInfo['platformUsername'] = ""; //$order['buyerSignerFullname']; $orderUserInfo['email'] = ""; //$order['buyerInfo']['email']; $orderUserInfo['countryName'] = get_country_name($val['receiptAddress']['country']); $orderUserInfo['countrySn'] = $val['receiptAddress']['country']; $orderUserInfo['currency'] = $val['orderAmount']['currencyCode']; $orderUserInfo['state'] = $val['receiptAddress']['province']; $orderUserInfo['city'] = $val['receiptAddress']['city']; $orderUserInfo['street'] = $val['receiptAddress']['address1']; //?//$val['receiptAddress']['detailAddress']; $orderUserInfo['address2'] = isset($val['receiptAddress']['address2']) ? $val['receiptAddress']['address2'] : ""; $orderUserInfo['zipCode'] = $val['receiptAddress']['zip']; $orderUserInfo['phone'] = $val['receiptAddress']['phoneNumber']; /*************END 订单用户表数据***************/ $carrier = array(); $item_notes = array(); $noteb = array(); $insertOrder = array('orderData' => $orderdata, 'orderExtenData' => $orderExtAli, 'orderUserInfoData' => $orderUserInfo); $orderweight = ""; $obj_order_detail_data = array(); foreach ($val['childOrderList'] as $orderdetail) { //明细表 $orderdata_detail = array(); //$orderdata_detail['omOrderId'] = $insertId;//$order["id"]; $orderdata_detail['recordNumber'] = $orderId; $orderdata_detail['sku'] = $orderdetail['productAttributes']['sku']; //substr($orderdetail['skuCode'],0,stripos($orderdetail['skuCode'],'#')); $orderdata_detail['itemPrice'] = $orderdetail['productAttributes']['itemPrice']; $orderdata_detail['amount'] = $orderdetail['lotNum']; //$orderdata_detail["shippingFee"] = ''; //$orderdata_detail["reviews"] = ''; $orderdata_detail['createdTime'] = time(); //明细扩展表 $orderDetailExtAli = array(); $orderDetailExtAli['itemTitle'] = $orderdetail['productAttributes']['itemTitle']; $orderDetailExtAli['itemURL'] = $orderdetail['productAttributes']['skuUrl']; $orderDetailExtAli['itemId'] = ""; //$orderdetail['productId']; $orderDetailExtAli['transId'] = 0; //$orderId;//$orderdetail['orderId']; // 交易id; $orderDetailExtAli['note'] = ""; //$item_notes[$orderdetail['orderId']]; $obj_order_detail_data[] = array('orderDetailData' => $orderdata_detail, 'orderDetailExtenData' => $orderDetailExtAli); } $insertOrder['orderDetail'] = $obj_order_detail_data; $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 $insertOrder['orderData']['calcWeight'] = $calcInfo[0]; $insertOrder['orderData']['pmId'] = $calcInfo[1]; if (count($insertOrder['orderDetail']) > 1) { $insertOrder['orderData']['orderAttribute'] = 3; } else { if (isset($insertOrder['orderDetail'][0]['orderDetailData']['amount']) && $insertOrder['orderDetail'][0]['orderDetailData']['amount'] > 1) { $insertOrder['orderData']['orderAttribute'] = 2; } } $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 $insertOrder['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrder = AutoModel::auto_contrast_intercept($insertOrder); $opflag = "false"; if (OrderAddModel::insertAllOrderRow($insertOrder)) { $itemRtn["errcode"] = 0; $itemRtn["orderId"] = $orderId; $itemRtn["msg"] = "success"; $rtnArr[] = $itemRtn; $opflag = "success"; } else { $itemRtn["errcode"] = 80005; $itemRtn["orderId"] = $orderId; $itemRtn["msg"] = "添加订单失败"; $rtnArr[] = $itemRtn; } $logfile = date("Y-m-d") . ".log"; @file_put_contents("/home/ebay_order_cronjob_logs/auto_contrast_intercept/" . $account . "/" . $logfile, $_POST["orderArr"] . "==" . $opflag . "\r\n", FILE_APPEND); } $rtnStr = json_encode($rtnArr); echo $rtnStr; }
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 function act_recalculated_bak() { $orderId = isset($_REQUEST['orderid']) ? $_REQUEST['orderid'] : ''; if (empty($orderId)) { self::$errCode = "006"; self::$errMsg = "订单号错误!"; return false; } $tNameUnShipped = 'om_unshipped_order'; //未發貨订单表 $where = ' WHERE id = "' . $orderId . '" '; $shipOrderList = OrderindexModel::showOrderList($tNameUnShipped, $where); $shipOrderList = isset($shipOrderList[$orderId]) ? $shipOrderList[$orderId] : ''; if (empty($shipOrderList)) { self::$errCode = "007"; self::$errMsg = "查询数据出错!"; return false; } $orderDetail = $shipOrderList['orderDetail']; $obj_order_detail_data = array(); foreach ($orderDetail as $k => $v) { $orderdata_detail = array(); $orderdata_detail['recordNumber'] = $v['orderDetailData']['recordNumber']; $orderdata_detail['sku'] = $v['orderDetailData']['sku']; $orderdata_detail['itemPrice'] = $v['orderDetailData']['itemPrice']; $orderdata_detail['amount'] = $v['orderDetailData']['amount']; $orderdata_detail['createdTime'] = time(); $orderDetailExtAli = array(); $orderDetailExtAli['itemTitle'] = $v['orderDetailExtenData']['itemTitle']; $orderDetailExtAli['itemURL'] = $v['orderDetailExtenData']['itemURL']; $orderDetailExtAli['itemId'] = $v['orderDetailExtenData']['itemId']; $orderDetailExtAli['transId'] = $v['orderDetailExtenData']['transId']; $orderDetailExtAli['note'] = $v['orderDetailExtenData']['note']; $obj_order_detail_data[] = array('orderDetailData' => $orderdata_detail, 'orderDetailExtenData' => $orderDetailExtAli); } $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 if (isset($calcInfo[0])) { return $calcInfo[0]; } else { self::$errCode = "008"; self::$errMsg = "计算数据出错!"; return false; } }
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; }
function act_invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request, $account, $site, $accountId, $flip_transportList, $message) { // /global $account, $site, $accountId, $flip_transportList , $message; try { $response = $service->getOrder($request); //echo ("Service Response\n"); //echo ("=============================================================================\n"); if ($response->isSetGetOrderResult()) { //echo ("ListOrdersResult\n"); $listOrdersResult = $response->getGetOrderResult(); /*if ($listOrdersResult->isSetNextToken()) { //echo (" NextToken----"); //echo ($listOrdersResult->getNextToken() . "\n"); } if ($listOrdersResult->isSetCreatedBefore()) { //echo ("CreatedBefore----"); //echo ($listOrdersResult->getCreatedBefore() . "\n"); } if ($listOrdersResult->isSetLastUpdatedBefore()) { //echo ("LastUpdatedBefore----"); //echo ($listOrdersResult->getLastUpdatedBefore() . "\n"); }*/ if ($listOrdersResult->isSetOrders()) { $orders = $listOrdersResult->getOrders(); $orderList = $orders->getOrder(); $orderIndex = 1; $now = time(); //BaseModel :: begin(); //开始事务 foreach ($orderList as $order) { //echo ("***********Orders $orderIndex************\n\n"); $orderIndex++; $orderData = array(); //om_unshipped_order $orderUserInfoData = array(); //om_unshipped_order_userInfo $orderExtenData = array(); //om_unshipped_order_extension $street2 = ''; //街道2 $street3 = ''; //街道3 if ($order->isSetAmazonOrderId() && $order->isSetOrderStatus() && $order->getOrderStatus() == 'Unshipped') { //$orderData['ebay_status'] = 1; //同步进来的订单的状态 $orderData['recordNumber'] = $order->getAmazonOrderId(); //平台上的订单id //echo "AmazonOrderId ==== {$orderData['recordNumber']}\n"; } else { //echo 'getOrderStatus======' . $order->getOrderStatus() . "\n"; if ($order->getOrderStatus() == 'Shipped') { //表示已经发货了的订单 $shippedRecordNum = $order->getAmazonOrderId(); $tName = 'om_shipped_order'; $where = "WHERE recordNumber='{$shippedRecordNum}' and accountId='{$accountId}' and ShippedTime=''"; $set = "SET ShippedTime='{$now}'"; //标记发货时间 $affectRow = OmAvailableModel::updateTNameRow($tName, $set, $where); if ($affectRow) { $message .= "<font color='green'>update {$shippedRecordNum} ShippedTime success" . "</font><br>"; } else { $message .= "<font color='red'>update {$shippedRecordNum} ShippedTime fail may be has shippedTime or had no this recordNumber" . "</font><br>"; } } continue; } if ($order->isSetPurchaseDate()) { //亚马逊平台上的下单时间 $orderData['ordersTime'] = strtotime($order->getPurchaseDate()); //echo ("addTime ==== {$order->getPurchaseDate()}\n"); } if ($order->isSetLastUpdateDate()) { //支付时间 $orderData['paymentTime'] = strtotime($order->getLastUpdateDate()); //echo ("paidTime ==== {$order->getLastUpdateDate()}\n"); } $orderstatus = ''; //订单状态 //if ($order->isSetOrderStatus()) { // if($order->getOrderStatus() == 'Unshipped'){ // $orderstatus = 1; // } // } if ($order->isSetFulfillmentChannel()) { $orderExtenData['FulfillmentChannel'] = $order->getFulfillmentChannel(); //echo ("FulfillmentChannel ==== "); //订单配送方式 //echo ($orderExtenData['FulfillmentChannel'] . "\n"); } if ($order->isSetSalesChannel()) { $orderExtenData['SalesChannel'] = $order->getSalesChannel(); //echo ("SalesChannel ==== "); //echo ($orderExtenData['SalesChannel'] . "\n"); } if ($order->isSetOrderChannel()) { $orderExtenData['OrderChannel'] = $order->getOrderChannel(); //echo ("OrderChannel ===="); //echo ($orderExtenData['OrderChannel'] . "\n"); } if ($order->isSetShipServiceLevel()) { $orderExtenData['ShipServiceLevel'] = $order->getShipServiceLevel(); //echo ("ShipServiceLevel ==== "); //echo ($orderExtenData['ShipServiceLevel'] . "\n"); } if ($order->isSetShippingAddress()) { //判断是否设置了地址 $shippingAddress = $order->getShippingAddress(); if ($shippingAddress->isSetName()) { //获取收件人姓名 $orderUserInfoData['username'] = htmlentities($shippingAddress->getName(), ENT_QUOTES); //echo ("username ==== "); //echo ($orderUserInfoData['username'] . "\n"); } if ($shippingAddress->isSetAddressLine1()) { //街道1 $orderUserInfoData['street'] = htmlentities($shippingAddress->getAddressLine1(), ENT_QUOTES); //echo ("street ==== "); //echo ($orderUserInfoData['street'] . "\n"); } if ($shippingAddress->isSetAddressLine2()) { //街道2 $street2 = htmlentities($shippingAddress->getAddressLine2(), ENT_QUOTES); } if ($shippingAddress->isSetAddressLine3()) { //街道3 $street3 = htmlentities($shippingAddress->getAddressLine3(), ENT_QUOTES); } if ($shippingAddress->isSetCity()) { //城市 $orderUserInfoData['city'] = htmlentities($shippingAddress->getCity(), ENT_QUOTES); //echo ("city ==== "); //echo ($orderUserInfoData['city'] . "\n"); } if ($shippingAddress->isSetCounty()) { //郡,县 $orderUserInfoData['address2'] = htmlentities($shippingAddress->getCounty() . ' ' . $street2, ENT_QUOTES); $orderUserInfoData['address3'] = htmlentities($shippingAddress->getCounty() . ' ' . $street3, ENT_QUOTES); //echo ("address2 ==== "); //echo ($orderUserInfoData['address2'] . "\n"); //echo ("address3 ==== "); //echo ($orderUserInfoData['address3'] . "\n"); } if ($shippingAddress->isSetDistrict()) { //地方,区 //echo ("District ==== " . $shippingAddress->getDistrict() . "\n"); } if ($shippingAddress->isSetStateOrRegion()) { //州 $orderUserInfoData['state'] = htmlentities($shippingAddress->getStateOrRegion(), ENT_QUOTES); //echo ("state ==== "); //echo ($orderUserInfoData['state'] . "\n"); } if ($shippingAddress->isSetPostalCode()) { //邮编 $orderUserInfoData['zipCode'] = htmlentities($shippingAddress->getPostalCode(), ENT_QUOTES); //echo ("zipCode ==== "); //echo ($orderUserInfoData['zipCode'] . "\n"); } if ($shippingAddress->isSetCountryCode()) { //国家简称 /*$ebay_countrynames = array('US'=>'United States', "UK"=>"United Kingdom"); $orderData['ebay_couny'] = $shippingAddress->getCountryCode() ; $orderData['ebay_site'] = $shippingAddress->getCountryCode() ; $orderData['ebay_countryname'] = $ebay_countrynames[$shippingAddress->getCountryCode()];*/ //$sql = "SELECT regions_en FROM ebay_region WHERE regions_jc = '".$shippingAddress->getCountryCode()."'"; // $sql = $dbcon->execute($sql); // $amazon_countryname = $dbcon->fetch_one($sql); $orderUserInfoData['countrySn'] = $shippingAddress->getCountryCode(); //这里要调用运输方式管理系统的数据,获取国家简称对应的国家名称 $countryNameInfo = CommonModel::getCountrieInfoBySn($orderUserInfoData['countrySn']); //根据国家简称获取该国家的信息 //$orderData['ebay_site'] = $shippingAddress->getCountryCode() ; $orderUserInfoData['countryName'] = trim($countryNameInfo['regions_en']); //获得国家名称 //echo ("getCountryCode==== " . $orderUserInfoData['countrySn'] . "\n"); } if ($shippingAddress->isSetPhone()) { //手机 $orderUserInfoData['phone'] = $shippingAddress->getPhone(); //echo ("phone ==== "); //echo ($orderUserInfoData['phone'] . "\n"); } } if ($order->isSetOrderTotal()) { $orderTotal = $order->getOrderTotal(); if ($orderTotal->isSetCurrencyCode()) { //币种 $orderUserInfoData['currency'] = $orderTotal->getCurrencyCode(); //echo ("currency ==== "); //echo ($orderUserInfoData['currency'] . "\n"); } if ($orderTotal->isSetAmount()) { //订单总价,线上总价 $orderData['onlineTotal'] = $orderTotal->getAmount(); $orderData['actualTotal'] = $orderTotal->getAmount(); //echo ("onlineTotal ==== "); //echo ($orderData['onlineTotal'] . "\n"); } } if ($order->isSetNumberOfItemsShipped()) { //echo ("ItemsShipped ==== " . $order->getNumberOfItemsShipped() . "\n"); } if ($order->isSetNumberOfItemsUnshipped()) { //echo ("NumberOfItemsUnshipped ==== " . $order->getNumberOfItemsUnshipped() . "\n"); } if ($order->isSetPaymentExecutionDetail()) { $paymentExecutionDetail = $order->getPaymentExecutionDetail(); $paymentExecutionDetailItemList = $paymentExecutionDetail->getPaymentExecutionDetailItem(); foreach ($paymentExecutionDetailItemList as $paymentExecutionDetailItem) { echo "######PaymentExecutionDetailItem######\n"; if ($paymentExecutionDetailItem->isSetPayment()) { $payment = $paymentExecutionDetailItem->getPayment(); if ($payment->isSetCurrencyCode()) { //echo ("CurrencyCode ==== "); //echo ($payment->getCurrencyCode() . "\n"); } if ($payment->isSetAmount()) { //echo (" Amount ==== "); //echo ($payment->getAmount() . "\n"); } } if ($paymentExecutionDetailItem->isSetSubPaymentMethod()) { //echo ("SubPaymentMethod ==== "); //echo ($paymentExecutionDetailItem->getSubPaymentMethod() . "\n"); } } } if ($order->isSetPaymentMethod()) { $orderExtenData['PaymentMethod'] = $order->getPaymentMethod(); //echo ("PaymentMethod ==== "); //echo ($orderExtenData['PaymentMethod'] . "\n"); } if ($order->isSetMarketplaceId()) { $orderExtenData['MarketplaceId'] = $order->getMarketplaceId(); //echo ("MarketplaceId ==== "); //echo ($orderExtenData['MarketplaceId'] . "\n"); } if ($order->isSetBuyerName()) { //买家ID $orderUserInfoData['platformUsername'] = htmlentities($order->getBuyerName(), ENT_QUOTES); //echo ("platformUsername ==== "); //echo ($orderUserInfoData['platformUsername'] . "\n"); } if ($order->isSetBuyerEmail()) { //买家email $orderUserInfoData['email'] = $order->getBuyerEmail(); //echo ("email ==== "); //echo ($orderUserInfoData['email'] . "\n"); } if ($order->isSetShipmentServiceLevelCategory()) { $orderExtenData['ShipmentServiceLevelCategory'] = $order->getShipmentServiceLevelCategory(); //echo ("ShipmentServiceLevelCategory ==== "); //echo ($orderExtenData['ShipmentServiceLevelCategory'] . "\n"); } //$orderData['ebay_user'] = $user; $orderData['platformId'] = 11; //amazon的平台ID为11 $orderData['accountId'] = $accountId; //amazon的账号ID //echo ("accountId ==== "); //echo ($orderData['accountId'] . "\n"); $orderData['orderAddTime'] = time(); //添加到系统的时间 //echo ("orderAddTime ==== "); //echo ($orderData['orderAddTime'] . "\n"); $orderData['orderStatus'] = C('STATEPENDING'); //默认订单状态 $orderData['orderType'] = C('STATEPENDING_INITIAL'); //默认订单类型 $orderData = array('orderData' => $orderData, 'orderExtenData' => $orderExtenData, 'orderUserInfoData' => $orderUserInfoData); $tName = 'om_unshipped_order'; $where = "WHERE recordNumber='{$orderData['orderData']['recordNumber']}' AND platformId={$orderData['orderData']['platformId']} and is_delete ='0'"; $flagCountUnshipped = OmAvailableModel::getTNameCount($tName, $where); $tName = 'om_shipped_order'; $flagCountshipped = OmAvailableModel::getTNameCount($tName, $where); if (empty($flagCountUnshipped) && empty($flagCountshipped)) { //判断订单是否已经在系统2个订单表(未发货和已发货)中存在 //$orderData['ebay_ordersn'] = generateOrdersn(); $detailrequest = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $detailrequest->setSellerId(MERCHANT_ID); $detailrequest->setAmazonOrderId($orderData['orderData']['recordNumber']); $orderDetailArr = self::act_invokeListOrderItems($service, $detailrequest); //var_dump($orderDetailArr); exit; for ($i = 0; $i < count($orderDetailArr); $i++) { $orderDetailArr[$i]['orderDetailData']['recordNumber'] = $orderData['orderData']['recordNumber']; } //print_r($orderDetailArr); if (!empty($orderDetailArr)) { $orderData['orderDetail'] = $orderDetailArr; $insertData = array(); //var_dump($obj_order_detail_data); echo "<br>"; $calcInfo = CommonModel::calcAddOrderWeight($orderDetailArr); //计算重量和包材 //var_dump($calcInfo); exit; $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']; } $newcarrier = get_carrier($orderData['orderData']['calcWeight'], $orderData['orderUserInfoData']['countryName'], $account, $orderData['orderUserInfoData']['currency']); $orderData['orderData']['transportId'] = $flip_transportList[$newcarrier]; $orderData['orderData']['ORtransportId'] = $flip_transportList[$newcarrier]; $rtn = OldsystemModel::orderErpInsertorder($orderData); //var_dump($rtn); if ($rtn['errcode'] == 200) { //var_dump($rtn); $rtn_data = $rtn['data']; $orderId = $rtn_data['orderId']; $message .= "<font color='green'>" . date("Y-m-d H:i:s") . " 插入老系统成功,订单编号 [{$orderId}] </font><br>"; $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 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 = CommonModel :: calcAddOrderShippingFee($orderData,1);//计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $orderData['orderData']['channelId'] = $calcShippingInfo['fee']['channelId'];*/ $calcShippingInfo = TransAPIModel::trans_carriers_fix_get($orderData['orderData']['transportId'], $orderData['orderData']['calcWeight'], $orderData['orderUserInfoData']['countryName']); //计算运费 //var_dump($calcShippingInfo); $orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']; //$orderData['orderData']['transportId'] = $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); //print_r($interceptInfo); exit; /*$orderData['orderData']['orderStatus'] = $interceptInfo['orderStatus']; $orderData['orderData']['orderType'] = $interceptInfo['orderType'];*/ //var_dump($orderData); exit; if (OrderAddModel::insertAllOrderRow($orderData)) { //echo 'insert success!' . "\n"; $message .= "<font color='green'>" . date("Y-m-d H:i:s") . ", 新增订单{$orderData['orderData']['recordNumber']}成功</font><br>"; } else { $message .= "<font color='red'>" . date("Y-m-d H:i:s") . ", 新增订单{$orderData['orderData']['recordNumber']}失败</font><br>"; //echo OrderAddModel :: $errMsg; } } } else { //echo "Amazon ID: ".$orderData['recordnumber']." 订单详情添加失败\n"; $message .= "<font color='red'>Amazon ID: " . $orderData['orderData']['recordNumber'] . " has no detail </font><br>"; } } else { $message .= "<font color='red'>Amazon ID: " . $orderData['orderData']['recordNumber'] . " had exist</font><br>"; } } } } } catch (MarketplaceWebServiceOrders_Exception $ex) { $message .= "Caught Exception: " . $ex->getMessage() . "<br>"; $message .= "Response Status Code: " . $ex->getStatusCode() . "<br>"; $message .= "Error Code: " . $ex->getErrorCode() . "<br>"; $message .= "Error Type: " . $ex->getErrorType() . "<br>"; $message .= "Request ID: " . $ex->getRequestId() . "<br>"; $message .= "XML: " . $ex->getXML() . "<br>"; } catch (Exception $e) { BaseModel::rollback(); BaseModel::autoCommit(); $message .= $e->getMessage() . "<br>"; } return $message; }
public function act_transportFee() { $omOrderId = $_POST['id']; $tableName = 'om_unshipped_order'; $where = ' WHERE id = ' . $omOrderId; $orderList = OrderindexModel::showOrderList($tableName, $where); $orderData = $orderList[$omOrderId]; $data = array(); //print_r($orderData); $obj_order_detail_data = array(); foreach ($orderData['orderDetail'] as $sku => $detail) { $obj_order_detail_data[] = $detail['orderDetailData']; } $weightfee = commonModel::calcOrderWeight($obj_order_detail_data); $data['calcWeight'] = $weightfee[0]; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($orderData, 1); //计算运费 //var_dump($calcShippingInfo); exit; $calcInfo = CommonModel::calcAddOrderWeight($orderData['orderDetail']); //计算重量和包材 //var_dump($calcInfo); exit; $data['calcWeight'] = $calcInfo[0]; $data['pmId'] = $calcInfo[1]; $data['calcShipping'] = $calcShippingInfo['fee']['fee']; $data['channelId'] = $calcShippingInfo['fee']['channelId']; if (OrderindexModel::updateOrder($tableName, $data, $where)) { self::$errCode = OrderindexModel::$errCode; self::$errMsg = OrderindexModel::$errMsg; return true; } else { self::$errCode = OrderindexModel::$errCode; self::$errMsg = OrderindexModel::$errMsg; return false; } }
public static function auto_contrast_intercept($orderData) { global $SYSTEM_ACCOUNTS, $__liquid_items_fenmocsku, $__liquid_items_BuiltinBattery, $__liquid_items_SuperSpecific, $__liquid_items_Paste; global $GLOBAL_EBAY_ACCOUNT; global $express_delivery, $no_express_delivery; if (!$SYSTEM_ACCOUNTS) { if (!defined('WEB_PATH')) { define("WEB_PATH", "/data/web/order.valsun.cn/"); //define("WEB_PATH","/data/web/framework.valsun.cn/"); } include WEB_PATH . "conf/scripts/script.ebay.config.php"; } if (!$GLOBAL_EBAY_ACCOUNT) { $GLOBAL_EBAY_ACCOUNT = array(); foreach ($SYSTEM_ACCOUNTS as $acct) { foreach ($acct as $key => $value) { $GLOBAL_EBAY_ACCOUNT[$key] = $value; } } } //var_dump($GLOBAL_EBAY_ACCOUNT); self::initDB(); //var_dump($orderData); echo "\n"; $log_data = ""; $actualTotal0 = 0; //该订单实际总数 //$ebay_id = $orderData['orderData']['id']; $orderStatus = empty($orderData['orderData']['orderStatus']) ? C('STATEPENDING') : $orderData['orderData']['orderStatus']; $orderType = empty($orderData['orderData']['orderType']) ? C('STATEPENDING_CONV') : $orderData['orderData']['orderType']; $returnStatus = array('orderStatus' => $orderStatus, 'orderType' => $orderType); $isNote = $orderData['orderData']['isNote']; if ($isNote) { $orderType = C('STATEPENDING_MSG'); } $calcWeight = $orderData['orderData']['calcWeight']; $pmId = $orderData['orderData']['pmId']; //var_dump($calcWeight); echo "\n"; $orderdetaillist = $orderData['orderDetail']; if (empty($calcWeight)) { $calcInfo = CommonModel::calcAddOrderWeight($orderdetaillist); //计算重量和包材 $calcWeight = $calcInfo[0]; $pmId = $calcInfo[1]; $orderData['orderData']['calcWeight'] = $calcWeight; $orderData['orderData']['pmId'] = $pmId; } //var_dump($calcWeight); echo "\n"; $transportId = @$orderData['orderData']['transportId']; $countryName = $orderData['orderUserInfoData']['countryName']; $accountId = $orderData['orderData']['accountId']; $actualTotal = $orderData['orderData']['actualTotal']; $ebay_username = $orderData['orderUserInfoData']['username']; $orderDataid = $orderData['orderExtenData']['orderId']; $ebay_usermail = $orderData['orderUserInfoData']['email']; $PayPalEmailAddress = @$orderData['orderExtenData']['PayPalEmailAddress']; //echo "------$countryName-----\n"; //echo "订单计算重量:$calcWeight\t\n"; $contain_special_item = false; $contain_os_item = false; $ow_status = array(); $all_splited_sku = array(); //汇总改订单的sku //foreach ($orderdetaillist AS $orderdetail){ for ($i = 0; $i < count($orderdetaillist); $i++) { $sku = $orderdetaillist[$i]['orderDetailData']['sku']; $itemPrice = $orderdetaillist[$i]['orderDetailData']['itemPrice']; $amount = $orderdetaillist[$i]['orderDetailData']['amount']; $shippingFee = $orderdetaillist[$i]['orderDetailData']['shippingFee']; //var_dump($sku); $sku_arr = GoodsModel::get_realskuinfo($sku); //将sku的信息汇总到汇总sku列表中 foreach ($sku_arr as $f_sku => $f_num) { if (array_key_exists($f_sku, $all_splited_sku)) { $all_splited_sku[$f_sku] = $all_splited_sku[$f_sku] + $f_num; } else { $all_splited_sku[$f_sku] = $f_num; } } //var_dump($sku_arr); exit; $actualTotal0 += $itemPrice * $amount + $shippingFee; foreach ($sku_arr as $or_sku => $or_nums) { if (in_array($or_sku, $__liquid_items_fenmocsku) || in_array($or_sku, $__liquid_items_SuperSpecific) || in_array($or_sku, $__liquid_items_BuiltinBattery)) { //粉末状,超规格产品 走福建邮局 $contain_special_item = true; } if (preg_match("/^US01\\+.*/", $or_sku, $matchArr) || preg_match("/^US1\\+.*/", $or_sku, $matchArr)) { //$log_data .= "[".date("Y-m-d H:i:s")."]\t包含海外仓料号订单---{$ebay_id}-----料号:{$or_sku}--!\n\n"; $contain_os_item = true; if (strpos($or_sku, "US01+") !== false) { $matchStr = substr($matchArr[0], 5); //去除前面 //$matchStr = str_replace("US1+", "", $or_sku); } else { //$matchStr=substr($matchArr[0],5);//去除前面 $matchStr = str_replace("US1+", "", $or_sku); } $n = strpos($matchStr, ':'); //寻找位置 if ($n) { $matchStr = substr($matchStr, 0, $n); } //删除后面 if (preg_match("/^0+(\\w+)/", $matchStr, $matchArr)) { $matchStr = $matchArr[1]; } $orderData['orderDetail'][$i]['orderDetailData']['sku'] = $matchStr; //OrderAddModel::updateDetailExtension(array('sku'=>$matchStr), " id = {$orderdetail['ebay_id']} "); //$virtualnum = check_oversea_stock($matchStr); //检查海外仓虚拟库存 $virtualnum = self::checkHasRepertoryOs($matchStr, $or_nums); //预留获取海外仓虚拟库存接口 20131225 if ($virtualnum >= 0) { $ow_status[] = C('STATEPENDING_OVERSEA'); //海外仓待处理 } else { $ow_status[] = C('STATEOUTOFSTOCK_OVERSEA'); //海外仓缺货 } } } } if ($contain_special_item) { /*$sql = "update ebay_order set ebay_carrierstyle ='1' where ebay_id ={$ebay_id}"; //add by Herman.Xi 记录该订单含有特殊料号 $dbConnn->query($sql); $log_data .= "[".date("Y-m-d H:i:s")."]\t包含粉末状超规格产品---{$ebay_id}---!\n\n";*/ } if ($contain_os_item) { if (in_array(C('STATEOUTOFSTOCK_OVERSEA'), $ow_status)) { $orderData['orderData']['orderStatus'] = C('STATEPENDING_OS'); $orderData['orderData']['orderType'] = C('STATEOUTOFSTOCK_OVERSEA'); } else { $orderData['orderData']['orderStatus'] = C('STATEPENDING_OS'); $orderData['orderData']['orderType'] = C('STATEPENDING_OVERSEA'); } //$log_data .= "[".date("Y-m-d H:i:s")."]\t更新海外仓料号订单状态为{$final_status}---{$ebay_id}--{$sql}-!\n\n"; /*if($final_status == C('STATEPENDING_OVERSEA')){ $calcWeight = calcWeight($ebay_id); $skunums = checkSkuNum($ebay_id); if($skunums === true){ continue; }else if ($calcWeight>20) { if($skunums==1){ usCalcShipCost($ebay_id); } } else { usCalcShipCost($ebay_id); } }*/ //$calcWeight = recalcorderweight($order_sn, $ebay_packingmaterial); //modified by Herman.Xi 2012-10-17 $owShipDes = new OwShippingWayDesisionModel(); $outside = $owShipDes->culPackageLWH($all_splited_sku); $zipCode = $orderData['orderData']['userInfo']['zipCode']; $shipping = new ExpressLabelApplyModel(); $zone = $shipping->getZoneCode($zipCode); $zone = FALSE !== $zone ? $zone : 6; //如果没找到分区则默认为6区 $shippingInfo = $owShipDes->chooseShippingWay($all_splited_sku, $calcWeight, $outside, $zone); if ($shippingInfo) { $transId = $shipping->reflectCodeToId($shipping['shippingCode']); } else { $transId = 0; } $orderData['orderData']['transportId'] = $transId; if ($transId) { //找到运输方 则放到待处理 $orderData['orderData']['orderStatus'] = 911; $orderData['orderData']['orderType'] = 115; } $orderStatus = empty($orderData['orderData']['orderStatus']) ? C('STATEPENDING') : $orderData['orderData']['orderStatus']; $orderType = empty($orderData['orderData']['orderType']) ? C('STATEPENDING_CONV') : $orderData['orderData']['orderType']; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t包含海外仓料号---自动跳转---的状态为---{$final_status}!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; //continue; } $interceptrtn = self::intercept_exception_orders($orderData); //var_dump($interceptrtn); if ($interceptrtn) { $orderData['orderData']['orderStatus'] = $interceptrtn['orderStatus']; $orderData['orderData']['orderType'] = $interceptrtn['orderType']; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } $record_details = array(); $is_640 = false; //var_dump($orderdetaillist); exit; foreach ($orderdetaillist as $orderdetail) { //var_dump($orderdetail['sku']); $sku = $orderdetail['orderDetailData']['sku']; //$itemPrice = $orderdetail['orderDetailData']['itemPrice']; $amount = $orderdetail['orderDetailData']['amount']; //$shippingFee = $orderdetail['orderDetailData']['shippingFee']; $sku_arr = GoodsModel::get_realskuinfo($sku); //var_dump($sku_arr); exit; $hava_goodscount = true; foreach ($sku_arr as $or_sku => $or_nums) { $allnums = $or_nums * $amount; if (!CommonModel::check_sku($or_sku, $allnums)) { //超大订单状态 $orderStatus = C('STATEOVERSIZEDORDERS'); if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['aliexpress']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['DHgate']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['出口通']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['线下结算客户'])) { $orderType = C('STATEOVERSIZEDORDERS_CONFIRM'); } else { $orderType = C('STATEOVERSIZEDORDERS_PEND'); } //self::insert_mark_shipping($ebay_id); $is_640 = true; break; } else { $skuinfo = CommonModel::get_sku_info($or_sku); $salensend = CommonModel::getpartsaleandnosendall($or_sku); //$log_data .= "[".date("Y-m-d H:i:s")."]\t---{$sql}\n\n"; $log_data .= "订单==={$ebay_id}===料号=={$or_sku}===实际库存为{$skuinfo['realnums']}===需求量为{$allnums}===待发货数量为{$salensend}===\n"; if (!isset($skuinfo['realnums']) || empty($skuinfo['realnums']) || $skuinfo['realnums'] - $salensend - $allnums < 0) { $hava_goodscount = false; break; } } } if ($hava_goodscount) { $record_details[] = $orderdetail; } } if ($is_640) { $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } $count_record_details = count($record_details); $count_orderdetaillist = count($orderdetaillist); $final_status = $orderStatus; //原始状态 if ($count_record_details == 0) { //更新至自动拦截发货状态 /*if (!in_array($ebay_carrier, $no_express_delivery)){ $final_status = 658; }else { $final_status = 661; }*/ //$sql = "UPDATE ebay_order SET ebay_status='$final_status' WHERE ebay_id ='$ebay_id' and ebay_status = '{$orderStatus}' "; $orderStatus = C('STATEOUTOFSTOCK'); $orderType = C('STATEOUTOFSTOCK_AO'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为---".C('STATEOUTOFSTOCK_AO')."!\n\n"; //self::insert_mark_shipping($ebay_id); //self::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } else { if ($count_record_details < $count_orderdetaillist) { //更新至自动部分发货状态 /*if (!in_array($ebay_carrier, $no_express_delivery)){ //$final_status = 659; $final_status = 640; }else { $final_status = 660; }*/ $orderStatus = C('STATEOUTOFSTOCK'); $orderType = C('STATEOUTOFSTOCK_PO'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为---".C('STATEOUTOFSTOCK_PO')."!\n\n"; //self::insert_mark_shipping($ebay_id); //$returnStatus = array('orderStatus'=>C('STATEOUTOFSTOCK'), 'orderType'=>C('STATEOUTOFSTOCK_PO')); //self::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } else { if ($count_record_details == $count_orderdetaillist) { //正常发货状态 if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['ebay'])) { if (in_array($orderStatus, array(C('STATEOUTOFSTOCK_PO'), C('STATEOUTOFSTOCK_PO')))) { //$final_status = 618;//ebay订单自动拦截有货不能移动到待处理和有留言 modified by Herman.Xi @ 20130325(移动到缺货需打印中) $orderStatus = C('STATEPENDING'); if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } else { $orderType = C('STATEPENDING_HASARRIVED'); } } else { $orderStatus = C('STATEPENDING'); if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } else { $orderType = C('STATEPENDING_CONV'); } } } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['aliexpress'])) { if (in_array($countryName, array('Russian Federation', 'Russia')) && strpos($ebay_carrier, '中国邮政') !== false && str_word_count($ebay_username) < 2) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; } } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['DHgate'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['dresslink.com'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['cndirect.com'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['Amazon'])) { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } else { $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV'); } } } } } } if ($isNote == 1) { echo "有留言\t"; $orderType = C('STATEPENDING_MSG'); } /*if(self::judge_contain_combinesku_new($orderdetaillist)){ $final_status = 606; }*/ if ($calcWeight > 2) { echo "\t 超重订单"; $orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_OW'); } $expressArr = CommonModel::getCarrierInfoById(1); if (in_array($transportId, $expressArr)) { $orderType = C('STATEPENDING_HASARRIVED'); } /*if (!in_array($ebay_carrier, $no_express_delivery) && !empty($ebay_carrier)){ if(in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['ebay']) || in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['海外销售平台'])){ $final_status = 641;//ebay和海外都跳转到 待打印线下和异常订单 }else{ $final_status = 639; } }*/ } else { $log_data .= "[" . date("Y-m-d H:i:s") . "]\t订单同步状态有误,请联系IT解决!"; } } } //$returnStatus = array('orderStatus'=>$orderStatus, 'orderType'=>$orderType); $orderData['orderData']['orderStatus'] = $orderStatus; $orderData['orderData']['orderType'] = $orderType; $log_data .= "[" . date("Y-m-d H:i:s") . "]\t自动跳转的状态为--" . $orderStatus . "--" . $orderType . "!\n\n"; CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return $orderData; }
$orderDetailExtTaobao['transId'] = $recordnumber; // 交易id; $orderDetailExtTaobao['note'] = round_num($order['payment'], 2); //实际SKU付款价 /*************END 订单详细扩展表数据***************/ $obj_order_detail_data[] = array('orderDetailData' => $orderdata_detail, 'orderDetailExtenData' => $orderDetailExtTaobao); } //包含HH555料号的订单移动到淘宝待审核 if (in_array('HH555', $sku_infos)) { $orderdata['orderType'] = C('STATEPENDING_LYNXPEND'); } $insertOrder = array('orderData' => $orderdata, 'orderExtenData' => $orderExtTaobao, 'orderUserInfoData' => $orderUserInfo); //var_dump($obj_order_detail_data); exit; $insertOrder['orderDetail'] = $obj_order_detail_data; //var_dump($obj_order_detail_data); echo "<br>"; $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 //var_dump($calcInfo); exit; $insertOrder['orderData']['calcWeight'] = $calcInfo[0]; $insertOrder['orderData']['pmId'] = $calcInfo[1]; if (count($insertOrder['orderDetail']) > 1) { $insertOrder['orderData']['orderAttribute'] = 3; } else { if (isset($insertOrder['orderDetail'][0]['orderDetailData']['amount']) && $insertOrder['orderDetail'][0]['orderDetailData']['amount'] > 1) { $insertOrder['orderData']['orderAttribute'] = 2; } } $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee'];
public function act_operateAbOrderAPI() { if (!isset($_POST['omData'])) { self::$errCode = 500; self::$errMsg = '未成功接收数据!'; return false; } $ostatus = 770; $otype = 0; $storeId = 1; $orderstr = $_POST['omData']; $orderstr2 = $_POST['omData2']; $orderids = array_unique(explode(',', $orderstr)); $invoiceids = array_unique(explode(',', $orderstr2)); if (!$orderids) { self::$errCode = 400; self::$errMsg = '未获取订单编号信息!'; return false; } //var_dump($orderids); exit; $OrderindexAct = new OrderindexAct(); $WarehouseAPIAct = new WarehouseAPIAct(); foreach ($orderids as $k => $orderId) { BaseModel::begin(); //开始事务 $insertOrderData = array(); $AbOrderInfo = $WarehouseAPIAct->act_getAbOrderInfo($invoiceids[$k]); //var_dump($AbOrderInfo); echo "<br>"; //exit; $where = ' WHERE id = ' . $orderId . ' and is_delete = 0 AND storeId = ' . $storeId . ' LIMIT 1'; $orderList = $OrderindexAct->act_showOrderList($ostatus, $otype, $where); //var_dump($orderList);exit; $order = $orderList[$orderId]; $orderData = $order['orderData']; $insert_orderData = $orderData; unset($insert_orderData['id']); $insert_orderData['orderStatus'] = C('STATEOUTOFSTOCK'); $insert_orderData['orderType'] = C('STATEOUTOFSTOCK_ABNORMAL'); $orderExtenData = $order['orderExtenData']; $insert_orderExtenData = $orderExtenData; unset($insert_orderExtenData['omOrderId']); $orderUserInfoData = $order['orderUserInfoData']; $insert_orderUserInfoData = $orderUserInfoData; unset($insert_orderUserInfoData['omOrderId']); //$orderTracknumber = $order['orderTracknumber']; //$orderAudit = $order['orderAudit']; $orderDetail = $order['orderDetail']; $insertOrderData['orderData'] = $insert_orderData; $insertOrderData['orderExtenData'] = $insert_orderExtenData; $insertOrderData['orderUserInfoData'] = $insert_orderUserInfoData; $insert_orderDetail = array(); $need_delete_ids = array(); foreach ($orderDetail as $dkey => $detailValue) { $orderDetailData = $detailValue['orderDetailData']; $orderDetailExtenData = $detailValue['orderDetailExtenData']; if (!isset($AbOrderInfo[$orderDetailData['sku']]) || $AbOrderInfo[$orderDetailData['sku']] == 0) { $insert_orderDetailData = $orderDetailData; unset($insert_orderDetailData['id']); unset($insert_orderDetailData['omOrderId']); $insert_orderDetailExtenData = $orderDetailExtenData; unset($insert_orderDetailExtenData['omOrderdetailId']); $insert_orderDetail[$dkey]['orderDetailData'] = $insert_orderDetailData; $insert_orderDetail[$dkey]['orderDetailExtenData'] = $insert_orderDetailExtenData; $need_delete_ids[] = $orderDetailData['id']; } } $insertOrderData['orderDetail'] = $insert_orderDetail; $count_insert_orderDetail = count($insert_orderDetail); $count_orderDetail = count($orderDetail); $tableName = "om_unshipped_order"; if ($count_insert_orderDetail > 0 && $count_insert_orderDetail < $count_orderDetail) { $calcWeight = CommonModel::calcNowOrderWeight($orderId); //重新计算原来订单的重量 if (!OrderindexModel::deleteOrderDetail(array('is_delete' => 1), ' where id in(' . join(',', $need_delete_ids) . ')')) { BaseModel::rollback(); self::$errCode = '005'; self::$errMsg = "删除原订单明细失败!"; return false; } $insertOrderData['orderData']['isCopy'] = 2; $insertOrderData['orderData']['actualTotal'] = 0.0; //var_dump($orderData);exit; $calcInfo = CommonModel::calcAddOrderWeight($insert_orderDetail); //计算重量和包材 //var_dump($calcInfo); exit; $insertOrderData['orderData']['calcWeight'] = $calcInfo[0]; $insertOrderData['orderData']['pmId'] = $calcInfo[1]; if (count($insertOrderData['orderDetail']) > 1) { $insertOrderData['orderData']['orderAttribute'] = 3; } else { if (isset($insertOrderData['orderDetail'][0]['orderDetailData']['amount']) && $insertOrderData['orderDetail'][0]['orderDetailData']['amount'] > 1) { $insertOrderData['orderData']['orderAttribute'] = 2; } } $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 $insertOrderData['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; //print_r($insertOrderData); exit; if ($_spitId = OrderAddModel::insertAllOrderRowNoEvent($insertOrderData)) { if (!OrderLogModel::insertOrderLog($_spitId, 'INSERT ORDER')) { BaseModel::rollback(); self::$errCode = '001'; self::$errMsg = "插入订单日志失败!"; return false; } if (!OrderRecordModel::insertSpitRecords($orderId, $_spitId)) { BaseModel::rollback(); self::$errCode = '002'; self::$errMsg = "插入拆分日志失败!"; return false; } } else { BaseModel::rollback(); self::$errCode = '010'; self::$errMsg = "插入订单信息失败!"; return false; } $returnStatus0 = array('isCopy' => 1, 'calcWeight' => $calcWeight); $rtn = $WarehouseAPIAct->act_operateAbOrder($invoiceids[$k], $calcWeight); if (!$rtn) { BaseModel::rollback(); self::$errCode = '011'; self::$errMsg = "调用仓库系统拆分功能失败!"; return false; } } else { $returnStatus0 = array('orderStatus' => $insert_orderData['orderStatus'], 'orderType' => $insert_orderData['orderType']); } if (!OrderindexModel::updateOrder($tableName, $returnStatus0, $where)) { BaseModel::rollback(); self::$errCode = '002'; self::$errMsg = "订单移动到缺货异常失败!"; return false; } BaseModel::commit(); BaseModel::autoCommit(); } self::$errCode = 200; self::$errMsg = '缺货拆分完成!'; return true; }