Purchase Order in Craft Commerce I read through the docs for Commerce, but could not figure out how to use Purchase Orders with Commerce.  I am still working through the trial version to make sure Commerce can do what the client is wanting.  I know the paid version has a manual gateway.  Want to make sure it will allow the collection of a Purchase Order.

Jeremy I tried what you suggest.  Here is what I have...

    {% if not craft.commerce.paymentMethods|length %}
        &lt;p&gt;No payment methods available.&lt;/p&gt;
    {% endif %}

    {% if craft.commerce.paymentMethods|length %}
        &lt;form method="POST" id="paymentMethod" class="form-inline"&gt;

            &lt;input type="hidden" name="action" value="commerce/cart/updateCart"&gt;
            &lt;input type="hidden" name="redirect" value="commerce/checkout/payment"&gt;

            {{ getCsrfInput() }}

            &lt;label for=""&gt;Payment Method&lt;/label&gt;&lt;br &gt;
            &lt;select id="paymentMethodId" name="paymentMethodId"
                    class="form-control"&gt;
                {% for id,name in craft.commerce.paymentMethods %}
                    &lt;option value="{{ id }}"
                            {% if id == cart.paymentMethod.id %}selected{% endif %}&gt;{{ name }}&lt;/option&gt;
                {% endfor %}
            &lt;/select&gt;

            &lt;div class="purchase-order-block"&gt;
                &lt;label&gt;Purchase Order Number&lt;/label&gt;
                &lt;input type="text" name="purchaseOrder"
                    placeholder="Purchase Order"
                    class="purchase-order-field"
                    value="{{ formValues.lastName }}"&gt;
            &lt;/div&gt;

        &lt;/form&gt;
    {% endif %}


I am not surprised that it is not working as I really don't know what I am doing here.  Sure my form is wrong.  Any suggestions.  With your help on other areas I am almost finished.  This is the last thing I need to do and I will be finished.  Any suggestions or help will be greatly appreciated.
There are many ways to skin this particular cat I'm sure, but the easiest way is just to use the manual payment gateway and a/some custom field(s) on your order to record the purchase order details.

Whenever you call the updateCart controller, from your input form where you gather the PO details, you can then pass in the POST parameters as fields[purchaseOrderDetails] to save the data to your field named purchaseOrderDetails for later processing.

Update using your code above:

{% if not craft.commerce.paymentMethods|length %}
    &lt;p&gt;No payment methods available.&lt;/p&gt;
{% endif %}

{% if craft.commerce.paymentMethods|length %}
    &lt;form method="POST" id="paymentMethod" class="form-inline"&gt;

        &lt;input type="hidden" name="action" value="commerce/cart/updateCart"&gt;
        &lt;input type="hidden" name="redirect" value="commerce/checkout/payment"&gt;

        {{ getCsrfInput() }}

        &lt;label for=""&gt;Payment Method&lt;/label&gt;&lt;br &gt;
        &lt;select id="paymentMethodId" name="paymentMethodId"
                class="form-control"&gt;
            {% for id,name in craft.commerce.paymentMethods %}
                &lt;option value="{{ id }}"
                        {% if id == cart.paymentMethod.id %}selected{% endif %}&gt;{{ name }}&lt;/option&gt;
            {% endfor %}
        &lt;/select&gt;

        &lt;div class="purchase-order-block"&gt;
            &lt;label&gt;Purchase Order Number&lt;/label&gt;
            &lt;input type="text" name="fields[purchaseOrder]"
                placeholder="Purchase Order"
                class="purchase-order-field"
                value="{{ cart.purchaseOrder }}"&gt;
        &lt;/div&gt;

    &lt;/form&gt;
{% endif %}


All I have really done here is change how you're referencing the filed  on our order (which must have a handle of purchaseOrder for the above to work).  And I am presuming you have the cart available in cart obviously.

Don't forget to accept the answer if it gets you going!
Untested, but that's pretty much it, you were almost there really!