Live Pricing Fallback

Fallback options for product's without a price from live pricing

Séamus Diamond avatar
Written by Séamus Diamond
Updated over a week ago

Fallback Types

By default, EvolutionX falls back to EvoX pricing whenever your Live pricing lookup fails to return a price for a given product. This means the price shown is based on the values and rules stored in your EvoX store.

You can choose what your live pricing fallback is at a store level.

  • Evolution Pricing

  • Quote Me

  • Call for Price

There are two types of Fallback:

  • Missing Item Fallback Option — If the ERP live pricing endpoint returns a valid response but an item is not found, this option will control the pricing behavior for any item not found in the ERP. The product supplier setting will determine if a response with a zero priced product is treated as a missing item, read more here. Example settings:

    • Evolution Pricing — this option is used if you are intentionally listing and pricing items in EvolutionX that are not in the ERP

    • Call for Price or Quote Me — Either of these options are recommended if you expect that all items on the website can be priced by the ERP. This ensures that if a product is not correctly configured it will not be priced incorrectly.

  • Failed Live Price Request Fallback — If the ERP live pricing endpoint is down or otherwise cannot return a valid response then all items requested are priced using the behavior set in this option.

    • Call for Price or Quote Me — Either of these options are recommended so that when the ERP live pricing endpoint is down or otherwise returning invalid responses we will prevent all items from being priced rather than showing incorrect pricing. This will also return to normal as soon as the live price endpoint begins working again.

    • Evolution Pricing — This option is not recommended unless all products are priced in EvolutionX.

Failed Live Price Requests

EvolutionX evaluates the response from the ERP to determine if it is reliable for pricing products. The following are examples that would be treated as failed requests to the ERP:

  • no response — could be caused by incorrect settings or DNS issues

  • error response — could be caused by an ERP endpoint issue or malformed request

  • malformed response — could be caused by an ERP endpoint issue or incorrect settings

  • slow or timeout response — could be caused by an under-resourced ERP server or other performance issue

Error Handling for Add To Cart

If a page loads with pricing and then the "add to cart" button is clicked but the live pricing endpoint is no longer working, we will return an error to the page and not add the item to the cart. This prevents adding items to the cart with an invalid price.

Live Pricing Store Setup

Store Settings >> General >> Store preferences

Scroll to the Live Pricing section, and select a "Fallback Option".

"Evolution Pricing" is the default behavior.

The "Call for Price" and "Quote Me" options should omit any price and present the selected choice (see below).

Supplier Zero Priced Product Setting

Each product supplier can be set to allow zero priced items.

If the product supplier is set as Buy 0 Priced Items as off (false) then the product returned in the ERP live price response with a zero price is treated as a missing item and uses the fallback rules. If this toggle is set as on (true) then it's allowed as a zero priced item from the ERP.

Live price lookup logic

Each time we go to display a live price, the system runs through the following logic.

Make a live price request to the ERP

  • Products set in an Evolution X pricing rule as "Call for Price" or "Quote Me" will display "Call for Price" or "Quote Me" to the customer and will not be sent to the ERP for the live pricing request.

Evaluate the ERP Live Pricing Response

  • ERP returns a price for the product

    • If the product is zero priced (example 0.00) then the supplier toggle is evaluated and the product is returned as missing or free.

    • Products returned display the live price from the ERP

  • ERP returns a valid response but a product is missing

    • If Missing Item Fallback is Evolution X pricing

      • Look for a price on Evolution X

        • If we have a price, display the price

        • If there is no price in Evolution X, display the list price

    • If Missing Item Fallback is Call for price, display call for price to the user.

    • If Missing Item Fallback is Quote me, display the quote me button to the user.

  • Failure (no response, error response, malformed response, slow or timeout response)

    • Look at what is set in the Live Pricing Fallback option.

      • If Fallback is Evolution X pricing

        • Look for a price on Evolution X

          • If we have a price, display the price

          • If there is no price in Evolution X, display the list price

      • If Fallback is Call for price, display call for price to the user.

      • If Fallback is Quote me, display the quote me button to the user.

FAQ

How can I see and troubleshoot live price issues?

Read our article on live price logging in the Admin. You can report and view all live price requests.

Is it possible to determine with CSS when live pricing fails?

Yes, when a live pricing request fails (due to a Failed Live Price Request), css class ex-livepricing-failed will be added to the body element so a css rule body.ex-livepricing-failed can be created to make, for example, a widget visible in the layout (hidden by default, visible under this body class).

It can also be used to modify only the elements that failed to return a price, here is an example to modify the text for the Call for price fallback with CSS only:

/* HIDE THE DEFAULT CALL FOR PRICE FALLBACK MESSAGE */
body.ex-livepricing-failed .price-call.live-pricing-fallback-option-callforprice i,
body.ex-livepricing-failed .price-call.live-pricing-fallback-option-callforprice span {
display: none;
}

/* DISPLAY A DIFFERENT MESSAGE ON THE CALL FOR PRICE FALLBACK ELEMENT */
body.ex-livepricing-failed .price-call.live-pricing-fallback-option-callforprice::before {
content: "Price not found";
}

Please remember: This css class, once added, will remain in the body element until the page is refreshed.

Did this answer your question?