def METHOD_NAME(
    checkout_info: "CheckoutInfo",
    lines: Iterable["CheckoutLineInfo"],
    unavailable_variant_pks: Iterable[int],
    manager: "PluginsManager",
):
    """Validate all required data for converting checkout into order."""
    if not checkout_info.channel.is_active:
        raise ValidationError(
            {
                "channel": ValidationError(
                    "Cannot complete checkout with inactive channel.",
                    code=OrderCreateFromCheckoutErrorCode.CHANNEL_INACTIVE.value,
                )
            }
        )
    if unavailable_variant_pks:
        not_available_variants_ids = {
            graphene.Node.to_global_id("ProductVariant", pk)
            for pk in unavailable_variant_pks
        }
        code = OrderCreateFromCheckoutErrorCode.UNAVAILABLE_VARIANT_IN_CHANNEL.value
        raise ValidationError(
            {
                "lines": ValidationError(
                    "Some of the checkout lines variants are unavailable.",
                    code=code,
                    params={"variants": not_available_variants_ids},
                )
            }
        )
    if not lines:
        raise ValidationError(
            {
                "lines": ValidationError(
                    "Cannot complete checkout without lines",
                    code=OrderCreateFromCheckoutErrorCode.NO_LINES.value,
                )
            }
        )
    if checkout_info.checkout.voucher_code and not checkout_info.voucher:
        raise ValidationError(
            {
                "voucher_code": ValidationError(
                    "Voucher not applicable",
                    code=OrderCreateFromCheckoutErrorCode.VOUCHER_NOT_APPLICABLE.value,
                )
            }
        )
    validate_checkout_email(checkout_info.checkout)
    clean_billing_address(checkout_info, OrderCreateFromCheckoutErrorCode)
    clean_checkout_shipping(checkout_info, lines, OrderCreateFromCheckoutErrorCode)
    _validate_gift_cards(checkout_info.checkout)
    # call plugin's hooks to validate if we are able to create an order
    # can raise TaxError
    try:
        manager.preprocess_order_creation(checkout_info, lines)
    except TaxError as tax_error:
        raise ValidationError(
            f"Unable to calculate taxes - {str(tax_error)}",
            code=OrderCreateFromCheckoutErrorCode.TAX_ERROR.value,
        )