ecommerce_worker/fulfillment/v1/tasks.py
def fulfill_order(self, order_number, site_code=None, email_opt_in=False):
    """Fulfills an order.

    Arguments:
        order_number (str): Order number indicating which order to fulfill.

    Returns:
        None
    """
    max_fulfillment_retries = get_configuration('MAX_FULFILLMENT_RETRIES', site_code=site_code)
    api = get_ecommerce_client(site_code=site_code)
    try:
        logger.info('Requesting fulfillment of order [%s].', order_number)
        api.orders(order_number).fulfill.put(email_opt_in=email_opt_in)
    except exceptions.HttpClientError as exc:
        status_code = exc.response.status_code  # pylint: disable=no-member
        if status_code == 406:
            # The order is not fulfillable. Therefore, it must be complete.
            logger.info('Order [%s] has already been fulfilled. Ignoring.', order_number)
            raise Ignore()
        else:
            # Unknown client error. Let's retry to resolve it.
            logger.warning(
                'Fulfillment of order [%s] failed because of HttpClientError. Retrying',
                order_number,
                exc_info=True
            )
            _retry_order(self, exc, max_fulfillment_retries, order_number)

    except (exceptions.HttpServerError, exceptions.Timeout, SSLError) as exc:
        # Fulfillment failed, retry
        _retry_order(self, exc, max_fulfillment_retries, order_number)
def fulfill_order(self, order_number, site_code=None, email_opt_in=False):
    max_fulfillment_retries = get_configuration('MAX_FULFILLMENT_RETRIES', site_code=site_code)
    api = get_ecommerce_client(site_code=site_code)
    try:
        logger.info('Requesting fulfillment of order [%s].', order_number)
        api.orders(order_number).fulfill.put(email_opt_in=email_opt_in)
    except exceptions.HttpClientError as exc:
        status_code = exc.response.status_code  # pylint: disable=no-member
        if status_code == 406:
            # The order is not fulfillable. Therefore, it must be complete.
            logger.info('Order [%s] has already been fulfilled. Ignoring.', order_number)
            raise Ignore()
        else:
            # Unknown client error. Let's retry to resolve it.
            logger.warning(
                'Fulfillment of order [%s] failed because of HttpClientError. Retrying',
                order_number,
                exc_info=True
            )
            _retry_order(self, exc, max_fulfillment_retries, order_number)

    except (exceptions.HttpServerError, exceptions.Timeout, SSLError) as exc:
        # Fulfillment failed, retry
        _retry_order(self, exc, max_fulfillment_retries, order_number)
def fulfill_order ( self , order_number , site_code = None , email_opt_in = False ) : max_fulfillment_retries = get_configuration ( 'MAX_FULFILLMENT_RETRIES' , site_code = site_code ) api = get_ecommerce_client ( site_code = site_code ) try : logger . info ( 'Requesting fulfillment of order [%s].' , order_number ) api . orders ( order_number ) . fulfill . put ( email_opt_in = email_opt_in ) except exceptions . HttpClientError as exc : status_code = exc . response . status_code # pylint: disable=no-member if status_code == 406 : # The order is not fulfillable. Therefore, it must be complete. logger . info ( 'Order [%s] has already been fulfilled. Ignoring.' , order_number ) raise Ignore ( ) else : # Unknown client error. Let's retry to resolve it. logger . warning ( 'Fulfillment of order [%s] failed because of HttpClientError. Retrying' , order_number , exc_info = True ) _retry_order ( self , exc , max_fulfillment_retries , order_number ) except ( exceptions . HttpServerError , exceptions . Timeout , SSLError ) as exc : # Fulfillment failed, retry _retry_order ( self , exc , max_fulfillment_retries , order_number )
Fulfills an order.

    Arguments:
        order_number (str): Order number indicating which order to fulfill.

    Returns:
        None
Fulfills an order .