Store Pickup + Delivery is now compatible with Bolds recurring orders app. Although a little bit of configuration is needed to get it working. Follow the instructions below to get started. 

Ensure you are using storepickup.liquid version 4.0.5 (or above)

Within Shopify click Online Store 

Click Actions then Edit code 

Open the storepickup.liquid file and check the version number at the top of the file 

If you are not using 4.0.5 or above please contact [email protected] so we can get you upgraded.

Add the Bold Recurring Orders snippet to your theme

Whilst editing your theme click Add a new snippet

Enter the name storepickup-bold-ro into the field that appears and click Create snippet

Copy and paste the following code into your newly created snippet

<script type="text/javascript">
window.ZapietRO = {};

ZapietRO.CartIntegration = function() {
  this.init();
}
ZapietRO.CartIntegration.prototype.init = function() {
  this.addListeners();
}
ZapietRO.CartIntegration.prototype.addListeners = function() {
 
  window.ZapietEvent.listen('selected_method', function(method) {
    switch(method) {
      case 'shipping':
      case 'delivery':
        BOLD.recurring_orders.app.cartWidget.pickupEnabled = false;
        break;
      case 'pickup':
        BOLD.recurring_orders.app.cartWidget.pickupEnabled = true;
        break;
    }
  });
 
  window.ZapietEvent.listen('disableCheckout', function(response) {
    BOLD.recurring_orders.app.cartWidget.checkoutEnabled = false;
  });
 
  window.ZapietEvent.listen('activateCheckout', function(response) {
   
    BOLD.recurring_orders.app.cartWidget.checkoutEnabled = true;
   
    if(response && response.method && response.method === 'pickup' && response.location) {
      BOLD.customer.address1 = response.location.address_line_1 || "";
      BOLD.customer.address2 = response.location.address_line_2 || "";
      BOLD.customer.city = response.location.city || "";
      BOLD.customer.company = response.location.company_name || "";
      BOLD.customer.country = response.location.country || "";
      BOLD.customer.province = response.location.region || "";
      BOLD.customer.zip = response.location.postal_code || "";
      BOLD.recurring_orders.app.cartWidget.loadCustomerData();
    }
   
   if(response && response.method && response.method === 'delivery' && response.location && response.postal_code) {      
      BOLD.customer.city = response.location.city || "";
      BOLD.customer.country = response.location.country || "";
      BOLD.customer.province = response.location.region || "";
      BOLD.customer.zip = response.postal_code || "";
      BOLD.recurring_orders.app.cartWidget.loadCustomerData();
    }
  });
}

if(typeof window.Zapiet !== 'undefined' &&
   typeof window.ZapietEvent !== 'undefined' &&
   typeof BOLD !== 'undefined' &&
   typeof BOLD.recurring_orders !== 'undefined' &&
   typeof BOLD.recurring_orders.app !== 'undefined' &&
   typeof BOLD.customer !== 'undefined') {
  ZapietRO.cart = new ZapietRO.CartIntegration();
}
</script>

Click Save

Open your theme.liquid file and and find the closing </body> tag

Insert the following code directly above that tag

{% include "storepickup-bold-ro" %}

If you followed the instructions correctly both Store Pickup + Delivery and Bold Recurring Orders should play beautifully together.

Technical limitations 

  • Recurring orders pickup and delivery dates will not be automatically offset. Their original pickup/delivery date and time will appear on subsequent orders. 
  • You must use either Multiple Product or Recurring cart type.
  • It's not possible to translate the wording with the checkout process based upon whether the customer selected pickup, delivery or shipping.

Did this answer your question?