Skip to content

How does it work ​

Store Pickup lets your customers choose to pick up their order at one of your locations instead of having it shipped. The module has no template tags of its own: the locations show up in the normal checkout of Reinos Store, so you use the regular Store tags in your templates. You manage the locations in the CP of the module, see CP Overview.

What changes in Reinos Store ​

When the module is installed:

  • Shipping methods: every pickup location is listed as a shipping method in the shipping_methods tag, with the label and price of the location.
  • Payment: a location can allow the customer to pay at pickup, see Pay at pickup.
  • Orders: a pickup order gets the Gateway Label of the location as shipping carrier and starts with the shipping status Not Picked Up.
  • Order detail in the CP: a pickup order gets an Is Picked Up toggle instead of the Is shipped toggle.
  • Global variable: {reinos_store_pickup_module_installed} tells you the module is installed (see global variables).

No settings of Reinos Store are hidden or taken over. The Always select first shipping method setting in the module CP is the same setting as in Reinos Store.

Shipping methods ​

Every location is a shipping method named pickup__ followed by the location ID (e.g. pickup__1). Locations are per site (MSM). Let the customer choose one and post it as shipping_method in the checkout tag, just like any other shipping method:

{exp:reinos_store:shipping_methods}
    <input {if shipping_methods:selected}checked{/if} id="{shipping_methods:name}" type="radio" name="shipping_method" value="{shipping_methods:name}" />
    <label for="{shipping_methods:name}">{shipping_methods:title} ({shipping_methods:price_plus_tax:formatted})</label>
{/exp:reinos_store:shipping_methods}

Checkout flow ​

  1. The customer sees your pickup locations in the list of shipping methods (next to the methods of other shipping add-ons).
  2. The customer chooses a location. The shipping cost of the cart becomes the price of that location.
  3. On checkout, the order gets the Gateway Label of the location as shipping carrier.
  4. The customer pays online, or pays at pickup when the location allows it (see Pay at pickup).
  5. The order is created with the shipping status Not Picked Up.

Good to know:

  • Tax: the tax on the pickup price comes from the shipping tax of Store Tax. Without Store Tax, no tax is added to the pickup price.
  • Free shipping: when the cart has free shipping (the Free shipping above setting, a free shipping rule of Store Price Rule or the disable_shipping parameter), the pickup price becomes 0 as well.
  • The label of the location is not stored on the order: {order:shipping_method} shows the Gateway Label of the location.
  • When a location is deleted, it is removed from carts that still had it selected.

Pay at pickup ​

When Allow checkout without payment is on for the selected location, the gateway_list tag shows an extra payment option with the Gateway Label of the location, so the customer can pay at pickup. What happens on checkout:

  • No payment method posted: the order is placed without payment. It gets the status complete and is not marked as paid.
  • The pay at pickup option chosen: the Manual gateway must be enabled in Reinos Store, otherwise the checkout returns Invalid payment method. The order stays open and is not marked as paid.
  • Another payment method chosen: the customer pays online as usual.

The extra option only shows up when the pickup location is already saved in the cart when the payment methods are shown. Use a stepped checkout, or reload the payment methods after the customer changes the shipping method (as the checkout-single-page.html example template does). The option is also only shown when at least one gateway is enabled in Reinos Store.

Picked up status ​

A new pickup order gets the shipping status Not Picked Up. When the customer has collected the order, open it in the CP of Reinos Store and turn on Is Picked Up; the status becomes Picked Up. The toggle is shown for every pickup order (also when Manage Shipping Status is off) and can be changed while the order is pending, open or complete.

In your templates you can use the variables of the order tag:

{if order:is_pickup}
    Picked up: {if order:is_picked_up}Yes{if:else}No{/if}
{/if}
  • {order:is_picked_up} is also true for orders that are not a pickup order, so always combine it with {order:is_pickup}.
  • {order:shipping_status} returns a styled HTML label (e.g. Not Picked Up) for a pickup order.

Other add-ons ​

Every shipping add-on adds its own methods to the same list, so they can be combined:

  • Store Shipping and Store MyParcel: their methods are listed next to your pickup locations, and the default Store shipping option is removed. Pickup orders are never exported to MyParcel; the pickup points of MyParcel itself have nothing to do with this module.
  • Store Tax: calculates the tax on the pickup price.
  • Store Price Rule: a free shipping rule also makes the pickup price 0.

Uninstall ​

Uninstalling the module deletes all locations, settings and logs. Existing orders keep their pickup shipping method, carrier and status: Reinos Store still shows the Is Picked Up toggle for them, but the status is shown as plain text (not_picked_up / is_picked_up). A cart with a pickup location selected loses it the next time the shipping methods are loaded.

Common pitfalls ​

  • "No shipping method selected" with the default shipping option: when Store Pickup is your only shipping add-on, the default Store shipping option is still listed, but choosing it fails on checkout. To offer shipping next to pickup, use Store Shipping or Store MyParcel.
  • "Invalid payment method" when the pay at pickup option is chosen: enable the Manual gateway in Reinos Store, or don't post a payment method for that location (see Pay at pickup).
  • No pay at pickup option: Allow checkout without payment is off for the location, the location was not yet saved in the cart when the payment methods were shown, or no gateway is enabled in Reinos Store.
  • No locations in the checkout: no locations exist for the current site, or the template does not use the {exp:reinos_store:shipping_methods} tag. The posted field must be named shipping_method.
  • Gateway Label cannot be changed: changes to the Gateway Label of a location are currently not saved, so the default pickup at location is used as payment option label and as shipping carrier on the order.
  • Always select first shipping method is not saved: changing this setting in the module CP currently has no effect. Change it in the settings of Reinos Store (or of Store Shipping when that is installed).
  • Shipping address still required: choosing a pickup location does not make the shipping address optional; that is controlled by the checkout tag of Reinos Store.
  • Pickup price without tax: Store Tax is not installed.
  • Where to look for errors: checkout errors are the normal checkout tag errors (e.g. shipping_method_missing, gateway_not_exists) and payment errors are logged by Reinos Store. The Logs page of the module currently gets no entries from the checkout.