gabrielbull / php-ups-api

PHP Wrapper for all UPS API
MIT License
456 stars 255 forks source link

Failure: A shipment cannot have a KGS/IN or LBS/CM or OZS/CM as its unit of measurements (110548) #365

Open manish28112022 opened 1 year ago

manish28112022 commented 1 year ago

Facing this issue in "Rate Class" API

        $from = $request->from_zip;
        $to = $request->to_zip;

        $accessKey = env("UPS_ACCESS_KEY");
        $userId = env("UPS_USER_ID");
        $password = env("UPS_PASSWORD");

        $rate = new Rate($accessKey,$userId,$password);
        // dd($rate);

        try {
            $shipment = new Shipment();

            $shipperAddress = $shipment->getShipper()->getAddress();
            $shipperAddress->setPostalCode($from);

            $address = new Address();
            $address->setPostalCode($from);
            $shipFrom = new ShipFrom();
            $shipFrom->setAddress($address);

            $shipment->setShipFrom($shipFrom);

            $shipTo = $shipment->getShipTo();
            $shipTo->setCompanyName('Test Ship To');
            $shipToAddress = $shipTo->getAddress();
            $shipToAddress->setPostalCode($to);

            $package = new Package();
            $package->getPackagingType()->setCode(PackagingType::PT_PACKAGE);
            $package->getPackageWeight()->setWeight(1);

            // if you need this (depends of the shipper country)
            $weightUnit = new UnitOfMeasurement;
            $weightUnit->setCode(UnitOfMeasurement::UOM_KGS);
            $package->getPackageWeight()->setUnitOfMeasurement($weightUnit);

            $dimensions = new Dimensions();
            $dimensions->setHeight(5);
            $dimensions->setWidth(5);
            $dimensions->setLength(5);

            $unit = new UnitOfMeasurement;
            $unit->setCode(UnitOfMeasurement::UOM_IN);

            $dimensions->setUnitOfMeasurement($unit);
            $package->setDimensions($dimensions);

            $shipment->addPackage($package);

            var_dump($rate->getRate($shipment));
        } catch (Exception $e) {
            var_dump($e);
        }
kenrutten commented 1 year ago

Change UOM_KGS to UOM_LBS, that should fix it