if ($orderItem->getIsVirtual()) { continue; } $item = $convertor->itemToShipmentItem($orderItem); $qty = $orderItem->getQtyToShip(); $item->setQty($qty); $shipment->addItem($item); } $MagentoShipMethod = strtolower($myOrder->getShippingMethod()); $MagentoShipDescription = strtolower($myOrder->getShippingDescription()); //just returns the useless googlecheckout_carrier var //var_dump($myOrder->getShippingCarrier()->getCarrierCode()); //var_dump($myOrder->getShippingCarrier()); //find what carrier PA actually shipped with. may differ from customer-specified method //if tracking doesn't match a pattern we know, use the customer-specified method and log the issue. $carrier = find_carrier($TrackingNumber); if ($carrier == "") { $carrier = getShipCarrier($MagentoShipDescription); $log->lwrite("Tracking number not matched to carrier: " . $TrackingNumber); } $data = array(); $data['carrier_code'] = $carrier; // translate the actual shipping method title $carrier_name = ucwords($MagentoShipDescription); switch ($carrier) { case "ups": $carrier_name = "United Parcel Service"; break; case "fedex": $carrier_name = "Federal Express"; break;
echo "matched: : {$matches[0]}\n"; function find_carrier($track) { $ups = '/[0-9A-Z]{2} ?[0-9A-Z]{4} ?[0-9A-Z]{3} ?[0-9A-Z]{8}/i'; $usps = '/^(EA|EC|CP|RA|CJ)[0-9]{9}[A-Z]{2}?$|^94[0-9]{20}/i'; $fedex = '/^[0-9]{12}?$|^[0-9]{15}$/i'; $carrier = ""; if (preg_match($usps, $track)) { $carrier = "usps"; } else { if (preg_match($ups, $track)) { $carrier = "ups"; } else { if (preg_match($fedex, $track)) { $carrier = "fedex"; } } } return $carrier; } echo "carrier is " . find_carrier('EC691036825US') . "\n"; //usps echo "carrier is " . find_carrier('CJ221020023US') . "\n"; //usps echo "little z carrier is " . find_carrier('1z7a5v061340194575') . "\n"; //ups echo "carrier is " . find_carrier('439230031461237') . "\n"; //fedex echo "carrier is " . find_carrier('230014970309444') . "\n"; echo "this returns empty string" . find_carrier('1234') . "see?";