fix: Item Price and Add to Cart not showing on Website (#21903)

* fix: Item Price and Add to Cart not showing on Website

* fix: Use None as default argument
This commit is contained in:
Marica 2020-05-25 18:26:01 +05:30 committed by GitHub
parent 07f305a1d6
commit 1392489b60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 10 deletions

View File

@ -319,7 +319,7 @@ def apply_cart_settings(party=None, quotation=None):
def set_price_list_and_rate(quotation, cart_settings):
"""set price list based on billing territory"""
_set_price_list(quotation, cart_settings)
_set_price_list(cart_settings, quotation)
# reset values
quotation.price_list_currency = quotation.currency = \
@ -334,23 +334,28 @@ def set_price_list_and_rate(quotation, cart_settings):
# set it in cookies for using in product page
frappe.local.cookie_manager.set_cookie("selling_price_list", quotation.selling_price_list)
def _set_price_list(quotation, cart_settings):
def _set_price_list(cart_settings, quotation=None):
"""Set price list based on customer or shopping cart default"""
from erpnext.accounts.party import get_default_price_list
# check if customer price list exists
selling_price_list = None
if quotation.party_name:
selling_price_list = frappe.db.get_value('Customer', quotation.party_name, 'default_price_list')
if quotation and quotation.get("party_name"):
selling_price_list = frappe.db.get_value('Customer', quotation.get("party_name"), 'default_price_list')
# else check for territory based price list
if not selling_price_list:
selling_price_list = cart_settings.price_list
if not selling_price_list and quotation.party_name:
selling_price_list = get_default_price_list(frappe.get_doc("Customer", quotation.party_name))
party_name = quotation.get("party_name") if quotation else get_party().get("name")
quotation.selling_price_list = selling_price_list
if not selling_price_list and party_name:
selling_price_list = get_default_price_list(frappe.get_doc("Customer", party_name))
if quotation:
quotation.selling_price_list = selling_price_list
return selling_price_list
def set_taxes(quotation, cart_settings):
"""set taxes based on billing territory"""

View File

@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe
from erpnext.shopping_cart.cart import _get_cart_quotation
from erpnext.shopping_cart.cart import _get_cart_quotation, _set_price_list
from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings \
import get_shopping_cart_settings, show_quantity_in_website
from erpnext.utilities.product import get_price, get_qty_in_stock, get_non_stock_item_status
@ -21,9 +21,11 @@ def get_product_info_for_website(item_code, skip_quotation_creation=False):
if not skip_quotation_creation:
cart_quotation = _get_cart_quotation()
selling_price_list = cart_quotation.get("selling_price_list") if cart_quotation else _set_price_list(cart_settings, None)
price = get_price(
item_code,
cart_quotation.selling_price_list,
selling_price_list,
cart_settings.default_customer_group,
cart_settings.company
)
@ -42,7 +44,7 @@ def get_product_info_for_website(item_code, skip_quotation_creation=False):
if product_info["price"]:
if frappe.session.user != "Guest":
item = cart_quotation.get({"item_code": item_code})
item = cart_quotation.get({"item_code": item_code}) if cart_quotation else None
if item:
product_info["qty"] = item[0].qty