Beispiel #1
0
    def test_rate_service(self):
        credentials = {
            'username': '',
            'password': '',
            'access_license': '',
            'shipper_number': ''
        }

        shipper = Address(name='shipper address name',
                          city='rio de janeiro',
                          address=u'R. Mexico, 3 - 13º andar',
                          address2='Centro',
                          state='',
                          zip='20031144',
                          country='BR')

        recipient = Address(name='shipper address name',
                            city='anniston',
                            address='',
                            state='AL',
                            zip='36201',
                            country='US')

        packages = [Package(2, 3, 4, 5)]

        ups = UPSClient(credentials)
        response = ups.rate(packages=packages,
                            packaging_type='21',
                            shipper=shipper,
                            recipient=recipient)
Beispiel #2
0
def calculate_ups_rates(weight, street, city, state, zip, country):
    settings = get_settings()
    credentials = {
        'username': settings.ups_username,
        'password': settings.ups_password,
        'access_license': settings.ups_api_key,
        'shipper_number': settings.ups_account,
    }
    shipper = Address(
        name=settings.ship_from_name,
        address=settings.ship_from_address,
        city=settings.ship_from_city,
        state=settings.ship_from_state,
        zip=settings.ship_from_zip,
        country=settings.ship_from_country,
    )

    client = UPSClient(credentials, weight_unit='LBS', dimension_unit='IN')
    country = UPS_COUNTRY_MAP[country]
    recipient = Address(name='Recipient',
                        city=city,
                        address=street,
                        state=state,
                        zip=zip,
                        country=country)
    packages = [Package(weight, 0, 0, 0)]
    res = client.rate(
        packages=packages,
        packaging_type='02',  # Customer-supplied packaging
        shipper=shipper,
        recipient=recipient)
    rates = {s['service']: Decimal(s['cost']) for s in res['info']}
    return rates
Beispiel #3
0
    def _get_quote(self):
        ups_cfg = self._ups_config()

        credentials = {
            'username': ups_cfg.username,
            'password': ups_cfg.password,
            'access_license': ups_cfg.access_license,
            'shipper_number': ups_cfg.shipper_number,
        }

        shipper = Address(name=ups_cfg.shipper_name,
                          address=ups_cfg.shipper_address,
                          city=ups_cfg.shipper_city,
                          state=ups_cfg.shipper_state,
                          zip=ups_cfg.shipper_zipcode,
                          country=ups_cfg.shipper_country.code)

        customer = get_customer(self.request)
        ship_address = customer.get_selected_shipping_address()
        recipient = Address(name=' '.join(
            [ship_address.firstname or '', ship_address.lastname or '']),
                            address=' '.join([
                                ship_address.line1 or '', ship_address.line2
                                or ''
                            ]),
                            city=ship_address.city,
                            state=ship_address.state,
                            zip=ship_address.zip_code,
                            country=ship_address.country.code)

        cart = get_cart(self.request)

        #weight, length, width, height
        product_info = [0, 0, 0, 0]
        for line_item in cart.get_items():
            product_info[0] += line_item.product.weight * line_item.amount
            product_info[1] += line_item.product.length * line_item.amount
            product_info[2] += line_item.product.width * line_item.amount
            product_info[3] += line_item.product.height * line_item.amount

        #import pdb; pdb.set_trace()
        quote = 0.0
        if all(product_info):
            packages = [Package(*product_info)]
            ups = UPSClient(credentials)
            response = ups.rate(packages=packages,
                                packaging_type=ups_cfg.default_packaging_type,
                                shipper=shipper,
                                recipient=recipient)
            quote = float(response['info'][0]['cost'])

        return quote
    def __init__(self, ups_carrier):

        credentials = {
            'username': ups_carrier.ups_login,
            'password': ups_carrier.ups_password,
            'access_license': ups_carrier.ups_api_key,
            'shipper_number': ups_carrier.ups_id,
        }
        self.shipper = Address(name='shipper address name',
                               city=ups_carrier.city,
                               address=ups_carrier.address_line_1,
                               state=ups_carrier.state.iso,
                               zip=ups_carrier.zip_code,
                               country=ups_carrier.country.iso,
                               address2=ups_carrier.address_line_2)

        self.ups = UPSClient(credentials,
                             weight_unit=ups_carrier.weight_unit,
                             dimension_unit=ups_carrier.dimension_unit,
                             currency_code=ups_carrier.currency_code)

        self.package_type = ups_carrier.package_type