• 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 Themes
  • Support
    • Contact Support
You are here: Home / Archives for WooCommerce

Using WooCommerce

WooCommerce is the most popular eCommerce Wordpress plugin. We use it on our own site and have implemented it in many of our projects. Here are a few articles and how-tos that might make implementing your site easier.

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

Import Products Hosted on 1ShoppingCart Into WooCommerce WordPress

July 27, 2017 by Michele Leave a Comment

Many people use the popular 1ShoppingCart eCommerce and marketing software to sell digital products and/or physical products but adding those products into your WordPress website can be very tedious and error-prone.

Great News! You can now easily import your *simple* products hosted on 1ShoppingCart into WordPress. This method is free and does not require a developer.

A new built-in CSV importer was included in WooCommerce as of version 3.1.0 that was released on 2017-06-28. This is terrific news because you no longer need to purchase and install a premium Importer plugin to display your *simple* products in your WordPress site.

If your products are complex, with many product options, this method will NOT work for you because the built-in importer does not allow you to import all the product options that you are able to configure using 1ShoppingCart.com.

The WooCommerce’s built-in importer can be used to create all your products. Then you can use the importer again, at a later date, to update your products to reflect price and/or description changes. BUT, in order to update your products in WooCommerce, you need a way to uniquely identify the product. You can do this with a unique product name or SKU.

10 Steps to copy your 1ShoppingCart catalog to WooCommerce

Follow these simple steps to export your products from 1ShoppingCart, prepare the exported file for WooCommerce import and then import the file into WooCommerce.

  1. Install and configure WooCommerce.
    If you need help installing and configuring WooCommerce on your WordPress site, you can follow the instructions published by WooCommerce at https://docs.woocommerce.com/document/installing-uninstalling-woocommerce/.
  2. Export your products from 1ShoppingCart.
    1. 1ShoppingCart product export menu item Navigate to the Products menu item, select Import/Export and then select Export Products.
    2. 1ShoppingCart product export details Select Product Details from the dropdown list box and click/tap the Export button. An export file will be created and downloaded to your computer in CSV format.
  3. Prepare your CSV file to import into WooCommerce.
    The export created by 1ShoppingCart.com is not completely ready for import into WooCommerce. A few columns need to be added to the original CSV to ensure its easy import into WooCommerce. I used Google Sheets to manipulate the file. The formulas you find below are Google Sheets formulas but will also work with Excel. CAUTION: WooCommerce requires a UTF-8 formatted file. Excel for Mac will not produce a valid UTF-8 file and your import will fail. Please use Google Sheets instead.

    Your export from 1ShoppingCart.com contains 34 columns. You will be adding 5 more columns to the file.

    Download sample CSV file with added columns here

    1. 1ShoppingCart find merchant idImages: Take a look at your export. Notice that the 26th column contains the name of the product image but not the full path to the image file. You will need the full image path to import the file correctly into WooCommerce. The full path of the image includes your 1ShoppingCart.com Merchant Id. If you do not know your 1ShoppingCart.com Merchant Id, the image to the left shows you where to find it in your Admin panel.
       
      Add a new column and label it Images. Insert this formula to the newly created column. The formula will preface the filename found in column Z with the “https://www.mcssl.com/content/” + your Merchant Id + “/”. Which will produce https://www.mcssl.com/content/000000000/my_image_file.jpg.

      =if(Z2="","","https://www.mcssl.com/content/MerchantID/"&amp;Z2)

      Please be sure to replace the text MerchantID with your own Merchant ID. For example, if your Merchant ID is 789665, you would enter the formula as –

      =if(Z2="","","https://www.mcssl.com/content/789665/"&amp;Z2)

      Copy the formula down the column for each product row in the spreadsheet.

    2. Button Text: Add a new column and label it Button Text. You will fill this column with the words or phrase that you want to see on your WooCommerce buttons. This can be “Add to Cart,” “Buy Now,” etc.
       
      Copy the formula down the column for each product row in the spreadsheet.
    3. Type: Add a new column and label it Type. You will enter the word “external” into this column for each of the products that you are importing. Because you will be selling your products via 1ShoppingCart, you will need to let WooCommerce know that WooCommerce is only listing and describing the product, and the item will be sold elsewhere. Marking the product external ensures that the customer is taken to 1ShoppingCart.com to complete the transaction.
       
      Copy the formula down the column for each product you want to import.
    4. Published: The next column to add is Published. In the 25th column, you will see a field called Active. The column has the values TRUE/FALSE to denote that the product is an active product or not. WooCommerce does not have an Active field but it does have a Published field. The Published field requires a 1 to Publish or a 0 for Draft. Therefore, this next formula will convert the TRUE or FALSE in column 25 to a 1 or 0. Enter the following formula –
      =if(Y2,1,0)

      Copy the formula down the column for each product row in the spreadsheet.

    5. Categories: If you look at the 27th column of your spreadsheet, you will see the field called “path.” This field contains the product category(ies). If the product falls into multiple categories, you will see that the data in this column appears in this format – [Grocery,Beverage]. Notice that the multiple categories are surrounded by square brackets ( [ ] ). If you were to import this column as is into WooCommerce, it would create category names with those square brackets in them. The formula in this new column will remove those square brackets if they are present in the data. Enter the following formula in the new column.
      =if(AA2="","",SUBSTITUTE(SUBSTITUTE(AA2,"[",""),"]",""))

      Copy the formula down the column for each product row in the spreadsheet.

  4. Download the Google Sheets file to your device as a CSV file.
    This is important. You must download the Google Sheets file in CSV format.
  5. Open WooCommerce in WordPress
    1. Navigate to Products | All Products in your WordPress Admin panel.
    2. woocommerce import from csvIf there are no products in WooCommerce, you will see two buttons at the bottom of the page. Click/Tap on the “Import products from a CSV file” button.
    3. woocommerce addnew import buttonsIf you already have a product in WooCommerce, look at the top of the page and click/tap the “Import” button.
  6. Select the file to import into WooCommerce
    woocommerce choose csv
  7. Map CSV fields to products
    Here you will map the fields in your 1ShoppingCart.com export to WooCommerce fields. I have listed the column mapping below but if you would like to see the page as rendered in WooCommerce, click/tap here.

    1ShoppingCart FieldsWooCommerce Fields
    idimport as meta
    skuSKU
    productName
    priceRegular price
    shippingDo not import
    weightWeight (lbs)
    product lengthLength (in)
    product widthWidth (in)
    product heightHeight (in)
    current inventoryStock
    recurring cycleDo not import
    recurring start durationDo not import
    recurring priceDo not import
    destination urlDo not import
    thank you urlDo not import
    clear cart urlDo not import
    autorespondersDo not import
    shipping calculationDo not import
    state taxDo not import
    country taxDo not import
    short descriptionShort description
    long descriptionDescription
    sale priceSale price
    on saleDo not import
    activeDo not import
    imageDo not import
    pathDo not import
    price typeDo not import
    amount labelDo not import
    default priceDo not import
    minimum amountDo not import
    maximum amountDo not import
    eu vatDo not import
    add to cart urlExternal URL
    ImagesImages
    Button TextButton text
    TypeType
    PublishedPublished
    CategoriesCategories
  8. Click/Tap the “Run the importer” button
  9. View results
    woocommerce import successIf the importer finds problems with the file, you will see a link on the results page to the log file that will detail the issues with the file. Correct those errors and re-import the file.
  10. Review your products for completeness

Filed Under: 1shoppingcart.com, eCommerce, WooCommerce

Abandoned Cart Reminder With WooCommerce and ActiveCampaign

March 3, 2017 by Michele Leave a Comment

In this article I will discuss how you can create an Abandoned Cart Reminder process for your WordPress site using WooCommerce and ActiveCampaign to boost sales and encourage customer engagement.

Amazon uses this process all the time. Perhaps you have received one of those Amazon reminder emails saying you’ve added items to your cart and here’s the link to complete your purchase. They look something like this –

Customer Name,
Thank you for visiting Amazon.com. You recently added items to your Shopping Cart. If you haven’t already purchased or removed them, simply visit your Shopping Cart to complete your order.

What you need to create an Abandoned Cart Reminder process with WooCommerce

1. First and foremost, this process requires ActiveCampaign. If you are not using ActiveCampaign, you can click on this link to learn more about this email marketing and automation tool.

2. This process requires that the ActiveCampaign site tracking script be running on your website. The easiest way to add the tracking script to your website is to download and install the ActiveCampaign WordPress plugin from the WordPress repository.

Explanation of the Abandoned Cart Reminder Process

The process steps

The steps of an Abandoned Cart Reminder process are simple and straight forward:

1. Send an email to contacts with link to site, product or shop.
This step is important. When the ActiveCampaign WordPress plugin is installed and activated on your site, you can track a contact’s travels around your site. When you send an email to a contact that contains a link to your site, that link is coded with the contact’s information so that the contact’s activity on your site can be properly tracked. All your contact’s page visits are then recorded in ActiveCampaign. Please note: Activity can only be tracked of known contacts.
2. Contact adds a product to the shopping cart and visits the WooCommerce Cart page (/cart/); contact tagged with [cart created].
The tracking script detects that the contact has visited /cart/ which will trigger an automation that tags the contact with the tag [cart created].
3a. Contact proceeds to the checkout page (/checkout/order-received/*) and completes the product purchase; remove [cart created] tag.
If the contact makes a purchase, we can remove the [cart created] tag. Since the contact made a purchase, we don’t want to send them a reminder to check their cart.
3b. Contact leaves site – abandons the product in the cart.
The contact gets distracted and leaves your site without making a purchase, the contact remains tagged with [cart created].
4. Wait specified amount of time; if contact still has tag [cart created], send the email reminder.
Setting the wait time interval is up to you. The time period can be as short as an hour or as long as 24 hours. It is entirely up to you. Once the time has elapsed, the automation will send a reminder email to the contact.

The ActiveCampaign Automations

Using ActiveCampaign, the process requires two automations. Each automation begins when a contact visits a page on your site.

The first automation, Part 1, is needed to identify the contacts that add a product to their shopping cart. Any contact that adds a product to their shopping cart and visits [YourWebsite]/cart/ gets tagged with [cart created].

The second automation, Part 2, removes the tag [cart created] if a purchase is made when the contact visits [YourWebsite]/checkout/order-received/*. Notice the asterisk in the URL. This is important. When a purchase is made in WooCommerce the contact or customer is redirected to a page with an address like [YourWebsite]/checkout/order-received/[Order Number]/?key=wc_order_9999aa99a9999. For our purposes, we don’t need to know what comes after/order-received/. So, we use a wildcard (*) to accept anything.

What the Abandoned Cart Reminder Process Looks Like

The first diagram on the left below illustrates the process flow, including the campaign that triggers the initial email addressed to your contact, the interactions your contact has with your website and the logic of the two necessary automations. It may seem complicated but once you understand the steps it is quite simple. Click on the image to see the full size image.

The second and third diagrams are screenshots of the ActiveCampaign automations. These will serve as guides for you while creating your automation within your account.

ActiveCampaign Abandoned Cart Reminder Process Flow
ActiveCampaign Abandoned Cart Reminder Process Flow
abandoned cart reminder automation part 1
ActiveCampaign – Abandoned Cart Reminder Automation Part 1
abandoned cart reminder automation part 2
ActiveCampaign – Abandoned Cart Reminder Automation Part 2

Let’s Create the Abandoned Cart Reminder Process

Step 1: Open ActiveCampaign and create a new Automation.
Step 2: Select Start From Scratch automation and name it Part 1 – Abandoned Cart Reminder.
Step 3: Add New Start of Web Page is Visited
Abandoned Cart Reminder - Add New Start of Web Page is Visited - WooCommerce Cart
In the Action Options section, enter the website domain and the path to your WooCommerce cart usually /cart/.
Check the Segment the contacts entering this automation. Select Not currently in automation and select this automation that you are working on Part 1 – Abandoned Cart Reminder. Use the screenshot as a guide.
Step 4: Add a Tag
Abandoned Cart Reminder - ActiveCampaign add a tag
Click the plus sign to add a new action. Click on Contacts in the left column and then click on Add tag. On the next popup, Enter a tag to add, enter [cart created] without the brackets. Use the screenshot as a guide.
Step 5: Wait a Period of Time
 
Click the plus sign to add a new action. Select Conditions and Workflow from the left column and choose Wait. Select For a specified period of time and then enter the time period you want to wait. Tip: While testing, you might want to use just a few minutes (10 or 15 minutes).
Step 6: Send email
Abandoned Cart Reminder - ActiveCampaign Add Action Email
Click the plus sign to add a new action. Select Sending Options from the left column and choose Send email. If you already have the email created, select it from the list. Otherwise, you may see a popup that states –
Send email
You don’t have any emails to send. You can create an email to get started.

Click on the “create an email” to create the email that you would like to send to your returning customer. Use the screenshot as a guide.
Step 7: End this automation
 
Click the plus sign to add a new action. Select Conditions and Workflow from the left column and choose End this automation.
Step 8: Create a new Automation.
Step 9: Select Start From Scratch automation and name it Part 2 – Abandoned Cart Reminder.
Step 10: Add New Start of Web Page is Visited
Abandoned Cart Reminder - Add New Start of Web Page is Visited - WooCommerce Checkout
In the Action Options section, enter the website domain and the path to your WooCommerce cart usually “/checkout/order-received/*” Please ensure that you enter the asterisk in the URL as shown here.
Use the screenshot as a guide.
Step 11: Remove a Tag
Abandoned Cart Reminder - Remove tag cart created
Click the plus sign to add a new action. Click on Contacts in the left column and then click on Remove tag. On the next popup, Enter a tag to remove, enter [cart created] without the brackets. Use the screenshot as a guide.
Step 12: End other automation
 
Click the plus sign to add a new action. Select Conditions and Workflow from the left column and choose End other automation and select “Part 1 – Abandoned Cart Reminder” to remove the contact from Part 1. This step is necessary since the contact made a purchase there is no need to keep them queued in the automation to send the reminder email. Tip: While testing, you might want to use just a few minutes (10 or 15 minutes).
Step 13: End this automation
 
Click the plus sign to add a new action. Select Conditions and Workflow from the left column and choose End this automation.
Step 14: Create an eMail Campaign With A Link to Your Shop
 
Create an email campaign that includes a link to your new product or service or just a link to your site.

I hope this article helped explain how you can add an Abandoned Cart Reminder to your business process using ActiveCampaign and WooCommerce.

Filed Under: ActiveCampaign, How To, WooCommerce

WooCommerce – State Drop Down White Font on White Background

February 19, 2013 by Michele

I spent way too much time this morning trying to figure out which piece of CSS was causing the moused-over element in the Country and State drop downs on my checkout page to disappear. By default, the font color for the moused-over elements is white (#ffffff). When rendered on a white background, the moused-over (or highlighted) element disappears.

WooCommerce uses the Chosen jQuery plugin for both of these drop downs. I am also using the Genesis framework and found to correct the problem I had to add the following to my theme’s style sheet.

#content ul.chzn-results li.highlighted {
    color: #E8192E;
}

I hope this helps someone else in the future.

Filed Under: WooCommerce, Wordpress

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://equalserving.s3.amazonaws.com/wp-content/uploads/2013/11/11150419/eslogo_300x60.png $$
Email :: Plugin Support
  • ActiveCampaign
  • How To
  • WooCommerce
  • WordPress Explained
  • Resources and Recommendations

Copyright © 2022 · 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. «