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)
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
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