• Skip to main content
  • Skip to footer

EqualServing

WooCommerce, ActiveCampaign, 1ShoppingCart, Infusionsoft Expertise.

  • Services
    • Build Websites
    • Task Automation
      • ActiveCampaign Marketing Automation
      • Process Automation with Infusionsoft
    • Website Content Migration
    • Service Bundles
    • Third Party Software Integration
    • WordPress Plugin Development
  • About Us
  • Contact
  • Blog
  • Shop
    • Service Bundles
    • WordPress Plugin For 1ShoppingCart.com V2.0
    • WordPress Themes
    • All Our WordPress Plugins
  • Support
    • FAQ – 1ShoppingCart Plugin For WordPress – GENERAL
    • FAQ – 1ShoppingCart Plugin For WordPress – FREE
    • FAQ – 1ShoppingCart Plugin For WordPress – PREMIUM
    • Contact Support
You are here: Home / 2019 / Archives for August 2019

Archives for August 2019

ActiveCampaign Last Order Details

August 26, 2019 by Michele Leave a Comment

I have a B2B client, who wants to remind customers to place an order if they have not ordered in the last 35 days.

Since orders do not vary much, the goal was to send the customer the details of the last order 35 days after the purchase so they could easily re-order.

This client uses the WooCommerce Deep Data Integration, and ActiveCampaign stores the order details in the CRM. In an ideal world, we should be able to simply insert a tag in the email to display the details of the last order. Included in the email should be an introduction text explaining that it has been five weeks since their last order, plus a call to action to refresh inventory levels.

Sadly, this is not possible. The full order, while stored in ActiveCampaign, is not retrievable for purposes of inserting into an email. Using personalization tags, you can insert any of the elements below but you are unable to insert all the products purchased. If the customer purchased five (5) products in the last order, only the last product in the order would be available to insert into the email.

ActiveCampaign eCommerce Personalization Tag Names

  • Contact’s total revenue
  • Contact’s total # of orders
  • Total # of products ordered
  • Price of last order
  • Currency of last order
  • Shipping method of last order
  • Product count of last order
  • ID of last product purchased
  • Name of last product purchased
  • Category of last product purchased

For more information about ActiveCampaign’s Deep Data Personalization, please see this ActiveCampaign help page.

Being a programmer and the author of the WooCommerce ActiveCampaign plugin, I thought I could enhance the plugin and store the details of the last order in a custom text field in ActiveCampaign. After considering this idea, however, I realized that it did not make sense to limit the orders to the very last order. Furthermore, why store that information in parallel to the data already collected via the Deep Data Integration?

What is possible Without Coding?

Our goal – remind customers to purchase if they have not placed an order in the last 35 days and provide a way to see the details of their last order.

First and foremost, we need to record the date of the last order in ActiveCampaign. This can be done via an automation that ActiveCampaign published in their Marketplace called Store Last Purchase Date.

A second automation is needed to trigger the email after the number of specified days, 35 in our case. ActiveCampaign published that automation recipe in the Marketplace. It is called Reminder to Re-Purchase.

Note: Make sure you create a custom date field in ActiveCampaign before importing either of these automation recipes so that you can select the proper field when prompted.

All our customers have registered accounts in WooCommerce. So, we insert a link to the customer dashboard in the email to make it easy for each customer to view the details of recent orders. That dashboard page is located at https://{website}/my-account/orders/.

This approach satisfies the basic requirement – we notify the customer and using a link on the WooCommerce page, the customer is able to view the details of their recent orders.

WooCommerce Customer Dashboard list of recent orders

What Is Possible With A Bit Of Coding?

My client does not have a very extensive list of products and I thought it would be nice to display all the unique products the customer ever purchased with an ‘Add to Cart’ button for easy re-ordering.

We accomplished that additional requirement by adding a little piece of code from Business Bloomer to the theme’s functions.php file. You can find it at https://businessbloomer.com/woocommerce-display-products-purchased-user/. This piece of code will display the products in the same grid format used in the WooCommerce shop as shown below.

WooCommerce customer dashboard recent orders with grid of unique product purchased.

Our Final Rendition

WooCommerce customer dashboard showing list of recent orders plus table or unique products purchased perfect substitute for ActiveCampaign Last Order Details.

While the above certainly satisfied the requirements, I was not happy with the display. So, I did a little more research and found a free plugin called WC Product Table Lite that presents products in a nicely formatted table rather than the default WooCommerce grid.

WC Product Table Lite lets you create a table with only the columns you want in the order you prefer and the button text you specify. I created my table with the columns – Image (Image), Title (Name), Excerpt (Description), Price, Qty and Add to Cart button. For a list of tutorials to create your first table, go to https://wcproducttable.com/tutorials.

I then tweaked the code I found on Business Bloomer. I swapped out the original shortcode to use the newly created WC Product Table Lite shortcode and I added a <div tag to align the table under the orders table and included a title for the section.

I changed this line from –

return do_shortcode("[products ids='$product_ids_str']");

To the following line where ‘99999’ is the id of the WC Product Table you create.

return '<div class="woocommerce-MyAccount-content"><header class="woocommerce-Purchases-title title"><h4>Products You Have  Purchased</h4></header>'.do_shortcode("[product_table id='99999' ids='$product_ids_str']")."</div>";

Additionally, I wanted to only have this table appear on two pages “/my-account/downloads” and “/my-account/orders.” This was accomplished by inserting the following code at the very top of the function.

	global $wp;
	$url = home_url( $wp->request );
	if (substr($url,-21)=="/my-account/downloads" || substr($url,-18)=="/my-account/orders") {
	} else {
		return;
	}

When the customer logs in to our site to view their recent orders, they are presented with a page that looks like the snapshot below. We are much more satisfied with this final result because our customers find it easier to renew inventory levels with a few clicks.

The full code that we used can be found below:

/**
 * @snippet       Display All Products Purchased by User via Shortcode - WooCommerce
 * @how-to        Watch tutorial @ https://businessbloomer.com/?p=19055
 * @author        Rodolfo Melogli
 * @compatible    WooCommerce 3.6.3
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 * @modified      EqualServing to use WC Product Table Lite instead of WooCommerce grid
 */

add_shortcode( 'eswcac_purchased_products', 'eswcac_products_bought_by_curr_user' );

function eswcac_products_bought_by_curr_user() {
	global $wp;
	$url = home_url( $wp->request );
	if (substr($url,-21)=="/my-account/downloads" || substr($url,-18)=="/my-account/orders") {
	} else {
		return;
	}

    // GET CURR USER
    $current_user = wp_get_current_user();
    if ( 0 == $current_user->ID ) return;

    // GET USER ORDERS (COMPLETED + PROCESSING)
    $customer_orders = get_posts( array(
        'numberposts' => -1,
        'meta_key'    => '_customer_user',
        'meta_value'  => $current_user->ID,
        'post_type'   => wc_get_order_types(),
        'post_status' => array_keys( wc_get_is_paid_statuses() ),
    ) );

    // LOOP THROUGH ORDERS AND GET PRODUCT IDS
    if ( ! $customer_orders ) return;
    $product_ids = array();
    foreach ( $customer_orders as $customer_order ) {
        $order = wc_get_order( $customer_order->ID );
        $items = $order->get_items();
        foreach ( $items as $item ) {
            $product_id = $item->get_product_id();
            $product_ids[] = $product_id;
        }
    }
    $product_ids = array_unique( $product_ids );
    $product_ids_str = implode( ",", $product_ids );

    // PASS PRODUCT IDS TO PRODUCTS SHORTCODE
    return '<div class="woocommerce-MyAccount-content"><header class="woocommerce-Purchases-title title"><h4>Products You Have  Purchased</h4></header>'.do_shortcode("[[product_table id='5399' ids='$product_ids_str']]")."</div>";
}

Filed Under: ActiveCampaign, WooCommerce, Wordpress

Missing Indexes and/or Missing Auto_Increment Attribute

August 12, 2019 by Michele Leave a Comment

When migrating a WordPress installation from one server to another, it is important that you verify the integrity of the database. The tables can be created properly but you must check for missing indexes and ensure that all primary key columns have the AUTO_INCREMENT column attribute.

Missing indexes and auto_increment column attributes in a WordPress database throw error messages which make it difficult to debug the problem and fix your WordPress installation.

When tables are missing indexes or the AUTO_INCREMENT column attributes are missing, data is saved to tables without a unique identifier which makes finding the data more difficult later when needed.

I got an email today from a person who paid to have their site migrated from one server to another. They told me about the horrendous process they had been through and yet they were still encountering problems.

When they tried to create a new page or post, they encountered this error – “You are currently editing the page that shows your latest posts.“

Missing index auto_increment can generate WordPress error - You are currently editing the page that shows your latest posts.

The person explained that they were not editing a page but creating a new page and the error message made absolutely no sense.

I did a search on Google and found numerous posts explaining that this error message was generated when an index was missing on the wp_posts table. This particular WordPress installation was a multi-site instance which complicated matters because the main site worked fine – new posts could be added without issue. It was the sub-site that was having the problem. So, I checked the wp_posts, wp_2_posts, and wp_3_posts tables in the database, I found that the indexes were in place. Thinking that the indexes could be corrupt, I deleted them and re-created them. The error still displayed.

Then I checked for the AUTO_INCREMENT attribute on the ID columns. Sure enough, they were missing on all the sub-site tables (wp_2_posts and wp_3_posts). I altered the tables to add it, retried the page and the error was gone.

The WordPress error messages generated don’t always make sense but if you encounter the error message “You are currently editing the page that shows your latest posts.” check your indexes and primary key column attribute for any missing AUTO_INCREMENT attributes.

Filed Under: Wordpress, Wordpress Errors

How To: Configure Our WooCommerce ActiveCampaign Plugin

August 11, 2019 by Michele Leave a Comment

Before we begin to configure our WooCommerce ActiveCampaign plugin, please know ActiveCampaign has four (4) subscription levels – Lite, Plus, Professional and Enterprise. The Plus, Professional and Enterprise subscriptions offer Deep Data Integration that works with WooCommerce and other popular eCommerce solutions to synchronize online sales with the ActiveCampaign CRM. This integration collects your contact’s sales history which can trigger automations and/or subscribe contacts to lists depending upon the value of the sale or the contents of the order.

The Deep Data Integration and site tracking that is offered with the ActiveCampaign premium subscriptions enable you to track abandoned carts. Cart abandonment rates are almost 75% according to a recent study. Therefore, your sales conversion rates may improve by subscribing to a premium level of ActiveCampaign.

For those using the Lite subscription, we have an alternative way to track your customer purchases. We built our plugin before ActiveCampaign built their Deep Data Integration and it still serves a great many businesses.

Time needed: 20 minutes.

Follow these steps to configure the WooCommerce ActiveCampaign Plugin by EqualServing to get your plugin setup and ready.

  1. Visit ‘Plugins > Add New’

    From your WordPress administration, mouse over Plugin and select Add New from the pop-out menu.

  2. Search for ‘WooCommerce ActiveCampaign’

    In the keyword search box, enter the keywords ‘activecampaign woocommerce‘ and select the plugin authored by EqualServing.

  3. Activate the plugin

    Activate the WooCommerce ActiveCampaign plugin from your Plugins page.

  4. Establish WooCommerce Integration

    Mouse over the WooCommerce menu item and select Settings from the pop-out menu.WooCommerce ActiveCampaign settings integration page

  5. Click on the Integration tab.

    The ActiveCampaign configuration panel should display. If other integrations are available, just make sure you select the link labeled ‘ActiveCampaign.’

  6. Enable the plugin and enter the necessary API information.

    Press the Save changes button to continue with the rest of the configuration.

  7. Select the Subscribe event.

    WooCommerce has various order statuses to denote the stage in the order processing. The statuses are – Pending payment, Failed, Processing, Completed, On-Hold, Cancelled, Refunded. For more information, please see the WooCommerce docs. Of these statuses, our plugin can subscribe your customer at one of three statuses – Order Created, Order Processing, or Order Completed.

  8. Select the Main List you want your customers subscribed to.

    This dropdown list will be populated with all the List names you have created in ActiveCampaign. Select the List you want your customers subscribed to for future correspondence. If you don’t see a list you created, click the link to reset the list and a call will be made to ActiveCampaign to refresh the list.

  9. Apply a specific tag to your customers.

    This dropdown list will be populated with every tag you have created in ActiveCampaign. If you want a particular tag applied to your customer, you can select it from this list.

  10. Select Display Opt-In Field

    Visible, checked by default – customers will be presented with an “Opt-in” checkbox during checkout which will be checked by default but the contact will only be added to the Main List above if the checkbox remains checked during the checkout process.
    Visible, unchecked by default – customers will be presented with an “Opt-in” checkbox during checkout which will not be checked by default but the contact will only be added to the Main List above if they opt-in.
    Hidden, checked by default – customers will not see an “opt-in” checkbox during checkout and all customers will be added to the List selected in the Main List option.

  11. Enter an Opt-In Field Label

    Here you can enter the text you would like to see displayed next to the opt-in checkbox visible from the above step. WooCommerce ActiveCampaign display label

  12. Do you want the Opt-In Field Positioned Above Order Notes?

    By default, the Opt-In Field will appear below the Order Notes. If you would like the Opt-In Field to appear above the Order Notes, please check this box.

  13. Tag Products Purchased

    If you enable this option, all customers added to ActiveCampaign via a purchase through Woocommerce will be tagged with the WooCommerce product id. WooCommerce ActiveCampaign contact tags and lists

  14. Enter a Purchased Product Tag Prefix

    If Tag Products Purchased is enabled, customers added to ActiveCampaign via a purchase through WooCommerce will be tagged with this prefix followed by the product id of the product purchased. If multiple products are purchased, you will see this text followed by the product id for each and every product purchased.

  15. Enter any Purchased Product Additional Tags

    If Tag Products Purchased is enabled, customers added to ActiveCampaign via WooCommerce can be tagged with additional information.
    For example:
    + To tag your customers with the product SKU of all the products they buy, just enter #SKU# in this field.
    + To tag customers with the product category, enter #CAT#.
    + To tag customers with both the product SKU and product category, enter “#SKU#, #CAT#“. Please note the comma between the two placeholders. This will generate two separate tags. If the comma is omitted, one tag will be applied with the SKU and category name in it. If this field is left blank, NO tag will be applied.

If you have any problems configuring the plugin, please feel free to submit a ticket with our helpdesk at https://www.equalserving.com/support.

Filed Under: ActiveCampaign, How To, Wordpress Plugin

Sales Cadence ActiveCampaign Automation

August 8, 2019 by Michele Leave a Comment

I have been using ActiveCampaign for a few years and I am pleased with the functionality and the appealing price point. Recently, I was asked if a sales cadence contact flow recommended on the HubSpot blog could be implemented in ActiveCampaign. I reviewed the flow of activities and I was convinced that this was certainly do-able. I’ll admit it, I do love a challenge and I set out to create a Sales Cadence ActiveCampaign Automation using the HubSpot article as my guide.

The ActiveCampaign automation that I came up with requires 10 tags. The whole goal of the automation is to have the contact respond to an email. Once they respond, the automation is ended and they are sent to a separate automation.

I created an email template for the automation. It includes one paragraph with links that allow the contact to, either stop the email sequence completely, or stop the email sequence, but move them to a Remind Me Later About Your Services automation. This latter automation will email contacts when there are special events coming up.

Part 1 – Start Sales Cadence Automation

sales cadence activecampaign automation - part 1

Tagging a contact with the tag Sales Cadence: Begin, will trigger the automation. The first 2 steps create a deal for the contact and an Email task in the deal. The automation waits for the email to be created and sent. A secondary automation is triggered when the Email task is complete that tags the contact with the tag Sales Cadence: Intro Email Sent. Once the contact is tagged with this tag, they proceed to the next step.

Part 2 – Prepared Emails in Sales Candence Automation

sales cadence automation - part 2

These steps are self explanatory. The contact waits two (2) days and at 10am the contact’s timezone, we send the second email and then two (2) days later the third email is sent out.

Part 3 – Warm Call

sales cadence - part 3

Here the contact waits two (2) more days before being sent one more short and sweet email. If still no reply from the contact, we schedule a call to take place two days later. Once the call is marked complete, the contact waits another two (2) day period before another prepared email is sent out from the automation.

activecampaign automation - sales cadence

According to Carlos A. Monteiro, the gentleman who authored this process, this is a good time to send a second very personal email with an article or photos or some other link that is appropriate to win over the sale. This personal email will target a need the contact may have discussed on their blog or in their social media feed that you discovered while following them over the course of this sales process.

After the Article/Link/Photo Email is sent, we schedule another call to be added to the deal to take place in two (2) days.

Part 4 – Last Chance For The Win

activecampaign email marketing automation

We wait two (2) more days and send the last pre-authored email from the automation. Here the contact will wait for an additional ten (10) days in our hopes they respond to any of the previous emails. If they don’t respond, they are tagged as lost, the deal is marked as lost and the deal is moved to the lost stage of the Sales Cadence pipeline.

Part 5 – Goal Achieved Sales Cadence Automation

sales cadence email marketing automation activecampaign - part 6

This very last part of the automation directs the actions taken on those contacts that achieve the goal we set – Contact Replied to Email.

If at any time during this automation the contact responds to an email, the contact has achieved the goal and is immediately moved to this section of the automation bypassing all other steps.

Here the contact is tagged with the tag Sales Cadence: Has Replied, the deal is moved to the To Contact stage in the pipeline and the deal status is marked as Won.

In our example, the contact is added to the next automation where we schedule an appointment to review their requirements. However, your process may add the contact to a nurture series or suspend all automations while you work through the order process. The next stage depends completely upon your sales processes and procedures.

I was pleased that I was able to meet the challenge and create the Hubspot recommended Sales Cadence using ActiveCampaign Automation. I was also happy that ActiveCampaign has the flexibility and functionality to meet the needs of a mixed channel sales process.

Filed Under: ActiveCampaign, How To Tagged With: automation

Footer

Stay Connected

Stay up to date with the latest news, product announcements, and more by signing up for our email newsletter. Don't forget to follow us on your favorite social sites as well.
  • Email
  • Google+
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Contact Us

EqualServing

46 Amethyst Rd
Palmyra, VA 22963

727-490-7443 https://www.equalserving.com/wp-content/uploads/2013/11/eslogo_300x60.png $$
Email :: Plugin Support
  • ActiveCampaign
  • How To
  • WooCommerce
  • WordPress Explained
  • Resources and Recommendations

Copyright © 2021 · Web Development :: EqualServing.com on Genesis Theme Framework
» You will find affiliate links on this site. When we find a company or individual that consistently delivers a high quality product or service, we will become an affiliate. «