Announcement

Collapse
No announcement yet.

See Abandoned Basket Email Addresses

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • alphabet
    replied
    I reread the thread and noticed that you are using product variant customfields. There are a few more steps but the concept is the same.

    This code would live in your Basket / TOE_Basket template. You will have to modify the code to use your customfield code and value.

    You'll also have to test the code because each store's variants can be built differently.

    Code:
    <mvt:foreach iterator="item" array="basket:groups">
    
    //
    
    <mvt:do name="l.return" file="g.Module_Library_DB" value="Runtime_Product_Load_Code( l.settings:item:code, l.settings:product )" />
    <mvt:do file="g.Module_Library_Utilities" name="g.has_variant_with_options" value="OrderItem_DetermineVariant_WithOptions(l.settings:item, l.settings:item:options, l.settings:item:option_count, l.settings:product, g.variant_id)" />
    <mvt:do file="g.Module_Library_DB" name="l.success" value="ProductList_Load_Variant(l.settings:product:id, g.variant_id, l.settings:productvariants)" />
    <mvt:foreach iterator="part" array="productvariants">
    <mvt:assign name="g.product_part_id" value="l.settings:part:id" />
    </mvt:foreach>
    <mvt:do name="l.return" file="g.Module_Library_DB" value="Product_Load_ID( g.product_part_id, l.settings:variant_product )" />
    <mvt:if expr="NOT ISNULL l.settings:variant_product:id">
    <mvt:do file="g.Module_Root $ '/modules/util/customfld.mvc'" name="g.has_variant_custom_field" value="ProductFieldValue_Load_CodeAndProduct( 'availability', l.settings:variant_product:id, l.field, l.settings:availability)" />
    <mvt:assign name="g.has_availabilty" value="l.settings:availability" />
    </mvt:if>
    
    <mvt:if expr="g.has_availabilty EQ 'In Stock'" />
    
    // Do In stock Stuff Here
    
    <mvt:else>
    
    // Do Out Of Stock Stuff Here
    
    </mvt:if>
    
    //
    
    </mvt:foreach>

    Leave a comment:


  • afiumano
    replied
    alphabet Where would you place that logic for the Abandon Basket email? We have had an order come through on an out of stock item and I am trying to nail down how.

    Leave a comment:


  • wsmith
    replied
    Originally posted by afiumano View Post
    We use a custom field to mark an item "Sold Out". So this disables the add to cart button so the item can't be purchased. I had placed a product out of stock the other morning and a customer still ordered the item after it was 'Sold Out'.
    In the past, I had realized customers could still use Wish Lists, but I had since corrected that problem. The only way that I can think of this still happening is if possibly an abandoned cart email got sent out and the customer was able to order that way? So to confirm my suspicions, I was hoping to see the actual email addresses that were sent the abandoned cart email in the log instead of just seeing that the scheduled task had ran.

    I want to try to keep this issue from happening again but need to nail down how it happened.

    I did use the "Review Baskets" tab to view the basket, but for some reason it is entirely blank?

    I thought maybe that is default functionality for a basket that becomes an order?
    Another option to consider is the inventory setting for At Checkout. If the basket is resumed with an an item that is out of stock, Miva Merchant will validate whether or not there is inventory during the checkout process and display an error message. You can read more about this setting via the links below.

    Inventory at checkout
    https://docs.miva.com/miva10/referen...ry-at-checkout
    https://docs.miva.com/how-to-guides/...ry-at-checkout

    Older video - https://docs.miva.com/videos/inventory-at-checkout

    Leave a comment:


  • Rick Wilson
    replied
    I'm suggesting something slightly easier (I think), created a place for them to set that themselves and have it feed that data in/out of Miva with the API. But again, just a suggestion since we know our out of stock code solves for race conditions/etc...

    Leave a comment:


  • afiumano
    replied
    Rick Wilson The customer just calls me and tells me to mark it out of stock for them and I login to admin and just place a '1' in the custom field for the respective product variant. It is pretty quick. Then I move the sold out product to the bottom of each category it appears. It usually takes me 5-10 minutes.

    Kent Multer The products are placed out of stock via a custom field (there are size variants and the stock IS variant specific). The Add to Cart buttons and Wish List edits are indeed just done with code on the page, testing for the custom field. I just double checked the "Order Again" link on the "Order Status" page and there is no code on this page so this page is a possible cause and will need to be fixed.

    The Abandoned Cart email includes a link to the Cart based on the session id:
    Code:
    &mvte:urls:BASK:auto_sep;Session_ID=&mvte:global:Basket:session_id;

    Leave a comment:


  • Kent Multer
    replied
    Originally posted by afiumano View Post
    We use a custom field to mark an item "Sold Out". So this disables the add to cart button so the item can't be purchased. I had placed a product out of stock the other morning and a customer still ordered the item after it was 'Sold Out'.
    In the past, I had realized customers could still use Wish Lists, but I had since corrected that problem. The only way that I can think of this still happening is if possibly an abandoned cart email got sent out and the customer was able to order that way? So to confirm my suspicions, I was hoping to see the actual email addresses that were sent the abandoned cart email in the log instead of just seeing that the scheduled task had ran.
    I don't know exactly how the Add To Cart buttons are disabled. But if it's disabled by code on the page, then it's still possible for a user to put something in the cart by clicking a link on some other page. You mentioned the Wish List; I imagine that a similar problem might occur if some clicks a Reorder link in their order history.

    I don't know what the abandoned-cart emails contain, but it's certainly possible that there are links in there that allow a customer to restore abandoned items to a new cart. It should be possible to determine that by a quick look at the template. So that might be another place where some protective code is needed.

    My Modulator utility can be used to intercept all add-to-cart actions with a single template. I think this module may already be running in the store you're asking about? Let me know if you want me to work on a solution for this.


    Leave a comment:


  • Rick Wilson
    replied
    Well how do you know when to mark something out of stock? You could push that data through the JSON API via a simple web app you create and you could turn things in and out of stock at will was my thinking.

    Leave a comment:


  • alphabet
    replied
    You could use some preprocessing logic to see if the basket has a sold out item. If it does not then send the email.

    Code:
    <mvt:foreach iterator="item" array="basket:groups">
        <mvt:item name="customfields" param="Read_Product_Code( l.settings:item:code, 'soldout', g.soldout )" />
    </mvt:foreach>
    
    <mvt:if expr="NOT g.soldout">
    
    // send email
    
    </mvt:if>

    Leave a comment:


  • afiumano
    replied
    What exactly does this mean: "using the inventory tracking as the tool and using the API to update those items from a data source on your end (just a thought)". You mean like using some sort of .csv or database tie-in?

    Leave a comment:


  • Rick Wilson
    replied
    Got it, that makes sense. It might be worth investigating using the inventory tracking as the tool and using the API to update those items from a data source on your end (just a thought). I'll pass this on to Dev support internally, but not sure if they'll have insights based on your current method.

    Leave a comment:


  • afiumano
    replied
    Because they grow trees and it isn't cut and dry - they have to place them out of stock for different reasons - weather too hot, too cold, etc, etc.

    Leave a comment:


  • Rick Wilson
    replied
    Why are you doing it this way vs using Inventory Tracking?

    Leave a comment:


  • afiumano
    replied
    We use a custom field to mark an item "Sold Out". So this disables the add to cart button so the item can't be purchased. I had placed a product out of stock the other morning and a customer still ordered the item after it was 'Sold Out'.
    In the past, I had realized customers could still use Wish Lists, but I had since corrected that problem. The only way that I can think of this still happening is if possibly an abandoned cart email got sent out and the customer was able to order that way? So to confirm my suspicions, I was hoping to see the actual email addresses that were sent the abandoned cart email in the log instead of just seeing that the scheduled task had ran.

    I want to try to keep this issue from happening again but need to nail down how it happened.

    I did use the "Review Baskets" tab to view the basket, but for some reason it is entirely blank?

    I thought maybe that is default functionality for a basket that becomes an order?

    Leave a comment:


  • alphabet
    replied
    First go to your UI Tab > Email and open the Abandon Cart configuration screen. It should display that the email is being sent to the Basket:bill_email address.

    Then go to your Settings > Utilities > Review Baskets tab, display the Billing Email field, select all and download as a csv.

    Leave a comment:


  • Bruce - PhosphorMedia
    replied
    no. but curious as to why?

    Leave a comment:

Working...
X