IMP delivery_stamps Use is_amazon() method to flag orders

This commit is contained in:
Jared Kipe
2019-08-08 09:44:44 -07:00
parent 77673bbcb2
commit 451c7cc900
6 changed files with 10660 additions and 6774 deletions

View File

@@ -15,7 +15,7 @@ from urllib.parse import urljoin
import os
VERSION = 49
VERSION = 84
class StampsConfiguration(object):

View File

@@ -145,7 +145,7 @@ class StampsService(BaseService):
def create_add_on(self):
"""Create a new add-on object.
"""
return self.create("AddOnV7")
return self.create("AddOnV15")
def create_customs(self):
"""Create a new customs object.
@@ -182,10 +182,13 @@ class StampsService(BaseService):
return ret_val
def create_extended_postage_info(self):
return self.create("ExtendedPostageInfoV1")
def create_shipping(self):
"""Create a new shipping object.
"""
return self.create("RateV18")
return self.create("RateV31")
def get_address(self, address):
"""Get a shipping address.
@@ -200,7 +203,7 @@ class StampsService(BaseService):
return self.call("GetAccountInfo")
def get_label(self, from_address, to_address, rate, transaction_id, image_type=None,
customs=None, sample=False):
customs=None, sample=False, extended_postage_info=False):
"""Get a shipping label.
:param from_address: The shipping 'from' address.
@@ -213,7 +216,7 @@ class StampsService(BaseService):
"""
return self.call("CreateIndicium", IntegratorTxID=transaction_id,
Rate=rate, From=from_address, To=to_address, ImageType=image_type, Customs=customs,
SampleOnly=sample)
SampleOnly=sample, ExtendedPostageInfo=extended_postage_info)
def get_postage_status(self, transaction_id):
"""Get postage purchase status.

View File

@@ -46,7 +46,7 @@ def get_rate(service):
ret_val.ToState = rate.ToState
add_on = service.create_add_on()
add_on.AddOnType = "US-A-DC"
ret_val.AddOns.AddOnV7.append(add_on)
ret_val.AddOns.AddOnV15.append(add_on)
return ret_val

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -114,6 +114,7 @@ class ProviderStamps(models.Model):
ret_val.PackageType = self._stamps_package_type()
ret_val.ServiceType = self.stamps_service_type
ret_val.WeightLb = weight
ret_val.ContentType = 'Merchandise'
return ret_val
def _stamps_get_addresses_for_picking(self, picking):
@@ -143,6 +144,7 @@ class ProviderStamps(models.Model):
ret_val.Height = h
ret_val.ServiceType = self.stamps_service_type
ret_val.WeightLb = weight
ret_val.ContentType = 'Merchandise'
ret.append((package.name + ret_val.ShipDate + str(ret_val.WeightLb), ret_val))
if not ret:
weight = self._stamps_convert_weight(picking.shipping_weight)
@@ -159,6 +161,7 @@ class ProviderStamps(models.Model):
ret_val.Height = h
ret_val.ServiceType = self.stamps_service_type
ret_val.WeightLb = weight
ret_val.ContentType = 'Merchandise'
ret.append((picking.name + ret_val.ShipDate + str(ret_val.WeightLb), ret_val))
return ret
@@ -266,14 +269,14 @@ class ProviderStamps(models.Model):
add_on.AddOnType = 'US-A-DC'
add_on2 = service.create_add_on()
add_on2.AddOnType = 'SC-A-HP'
shipping.AddOns.AddOnV7 = [add_on, add_on2]
shipping.AddOns.AddOnV15 = [add_on, add_on2]
extended_postage_info = service.create_extended_postage_info()
if self.is_amazon(picking=picking):
extended_postage_info.bridgeProfileType = 'Amazon MWS'
label = service.get_label(from_address, to_address, shipping,
transaction_id=txn_id, image_type=self.stamps_image_type)
transaction_id=txn_id, image_type=self.stamps_image_type,
extended_postage_info=extended_postage_info)
package_labels.append((txn_id, label))
# self.service.get_tracking(label.StampsTxID)
# self.service.get_tracking(label.TrackingNumber)
# self.service.remove_label(label.StampsTxID)
# print label
except WebFault as e:
_logger.warn(e)
if package_labels: