Specify recipient e-mail for notifications; remove it for sandbox

This commit is contained in:
Harald Welte 2021-02-15 15:15:43 +01:00
parent 06414d363d
commit 34aa1bbd58
2 changed files with 8 additions and 3 deletions

View File

@ -94,6 +94,9 @@ class api(object):
# Assume if the user passed a sandbox API key, we use it for create shipment requests
sandbox = True if self._transport._auth_sandbox else False
sh = shipment.copy()
# don't send any shipping notifications to the real recipient when in sandbox
if sandbox:
sh['notification_mail'] = None
sh['create_shipping_label'] = gen_label
res = self._transport.rest_post('/shipments', sh, sandbox)
# {u'label_url': u'https://shipping-labels.shipcloud.io/shipments/a948e8c2/e3fb26be59/label/shipping_label_e3fb26be59.pdf', u'price': 0.0, u'id': u'e3fb26be59a68acd04d565dda027efd415ca8117', u'tracking_url': u'https://track.shipcloud.io/e3fb26be59a68acd04d565dda027efd415ca8117', u'carrier_tracking_no': u'1ZV306W00493609016'}
@ -165,7 +168,8 @@ def gen_package(width_cm, length_cm, height_cm, weight_kgs, value=None, currency
return package
def gen_shipment(from_addr, to_addr, pkg, ref, carrier='ups', service='one_day', label_fmt='pdf_a5', descr=None, customs_decl=None, incoterm='dap'):
def gen_shipment(from_addr, to_addr, pkg, ref, carrier='ups', service='one_day', label_fmt='pdf_a5',
descr=None, customs_decl=None, incoterm='dap', notification_mail=None):
"""Generate a dict for a shipment in accordance with
https://developers.shipcloud.io/reference/shipments_request_schema.html"""
shipment = {
@ -178,7 +182,7 @@ def gen_shipment(from_addr, to_addr, pkg, ref, carrier='ups', service='one_day',
'label': {
'format': label_fmt,
},
'notification_mail': 'hwelte@sysmocom.de',
'notification_mail': notification_mail,
'incoterm': incoterm,
'create_shipping_label': False,
}

View File

@ -227,7 +227,8 @@ class SCDeliveryCarrier(models.Model):
# build the actual shipment object
shp = shipcloud.gen_shipment(from_addr, to_addr, pkg, pickings.name, customs_decl=customs,
carrier=carrier_service.carrier, service=carrier_service.service,
label_fmt=carrier_service.label_size, descr=content_desc)
label_fmt=carrier_service.label_size, descr=content_desc,
notification_mail=recipient.email or None)
api = self._shipcloud_api()
try:
_logger.debug("shipcloud Shipment dict: %s", shp)