├── medusa_integration ├── config │ └── __init__.py ├── public │ ├── .gitkeep │ └── js │ │ ├── website_item.js │ │ └── customer.js ├── www │ └── __init__.py ├── templates │ ├── __init__.py │ └── pages │ │ └── __init__.py ├── modules.txt ├── medusa_integration │ ├── __init__.py │ ├── doctype │ │ ├── __init__.py │ │ ├── best_deals │ │ │ ├── __init__.py │ │ │ ├── best_deals.py │ │ │ └── best_deals.json │ │ ├── email_otp │ │ │ ├── __init__.py │ │ │ ├── email_otp.js │ │ │ ├── email_otp.py │ │ │ ├── test_email_otp.py │ │ │ └── email_otp.json │ │ ├── expiring_items │ │ │ ├── __init__.py │ │ │ ├── expiring_items.js │ │ │ ├── test_expiring_items.py │ │ │ ├── expiring_items.py │ │ │ └── expiring_items.json │ │ ├── homepage_banner │ │ │ ├── __init__.py │ │ │ ├── homepage_banner.py │ │ │ └── homepage_banner.json │ │ ├── homepage_item │ │ │ ├── __init__.py │ │ │ ├── homepage_item.py │ │ │ └── homepage_item.json │ │ ├── homepage_order │ │ │ ├── __init__.py │ │ │ ├── homepage_order.py │ │ │ └── homepage_order.json │ │ ├── increased_items │ │ │ ├── __init__.py │ │ │ ├── increased_items.py │ │ │ └── increased_items.json │ │ ├── medusa_wishlist │ │ │ ├── __init__.py │ │ │ ├── medusa_wishlist.py │ │ │ └── medusa_wishlist.json │ │ ├── testimonial │ │ │ ├── __init__.py │ │ │ ├── testimonial.py │ │ │ └── testimonial.json │ │ ├── youtube_videos │ │ │ ├── __init__.py │ │ │ ├── youtube_videos.py │ │ │ └── youtube_videos.json │ │ ├── expiring_items_table │ │ │ ├── __init__.py │ │ │ ├── expiring_items_table.py │ │ │ └── expiring_items_table.json │ │ ├── homepage_landing │ │ │ ├── __init__.py │ │ │ ├── homepage_landing.js │ │ │ ├── homepage_landing.py │ │ │ ├── test_homepage_landing.py │ │ │ └── homepage_landing.json │ │ ├── item_and_brand_entry │ │ │ ├── __init__.py │ │ │ ├── item_and_brand_entry.py │ │ │ └── item_and_brand_entry.json │ │ ├── medusa_configuration │ │ │ ├── __init__.py │ │ │ ├── medusa_configuration.js │ │ │ ├── test_medusa_configuration.py │ │ │ ├── medusa_configuration.py │ │ │ └── medusa_configuration.json │ │ ├── medusa_request_log │ │ │ ├── __init__.py │ │ │ ├── medusa_request_log.js │ │ │ ├── test_medusa_request_log.py │ │ │ ├── medusa_request_log.py │ │ │ └── medusa_request_log.json │ │ ├── opportunity_contact │ │ │ ├── __init__.py │ │ │ ├── opportunity_contact.js │ │ │ ├── test_opportunity_contact.py │ │ │ ├── opportunity_contact.py │ │ │ └── opportunity_contact.json │ │ ├── product_collection │ │ │ ├── __init__.py │ │ │ ├── product_collection.js │ │ │ ├── product_collection.py │ │ │ ├── test_product_collection.py │ │ │ └── product_collection.json │ │ ├── product_suggestions │ │ │ ├── __init__.py │ │ │ ├── product_suggestions.js │ │ │ ├── product_suggestions.py │ │ │ ├── test_product_suggestions.py │ │ │ └── product_suggestions.json │ │ ├── website_coupon_code │ │ │ ├── __init__.py │ │ │ ├── website_coupon_code.js │ │ │ ├── test_website_coupon_code.py │ │ │ ├── website_coupon_code.py │ │ │ └── website_coupon_code.json │ │ ├── website_item_review │ │ │ ├── __init__.py │ │ │ ├── website_item_review.py │ │ │ └── website_item_review.json │ │ ├── product_collection_item │ │ │ ├── __init__.py │ │ │ ├── product_collection_item.py │ │ │ └── product_collection_item.json │ │ ├── product_details_banner │ │ │ ├── __init__.py │ │ │ ├── product_details_banner.py │ │ │ └── product_details_banner.json │ │ └── returned_sales_order_item │ │ │ ├── __init__.py │ │ │ ├── returned_sales_order_item.py │ │ │ └── returned_sales_order_item.json │ ├── notification │ │ ├── __init__.py │ │ ├── quotation_updated │ │ │ ├── __init__.py │ │ │ ├── quotation_updated.py │ │ │ ├── quotation_updated.html │ │ │ └── quotation_updated.json │ │ └── new_quotation_received │ │ │ ├── __init__.py │ │ │ ├── new_quotation_received.py │ │ │ ├── new_quotation_received.html │ │ │ └── new_quotation_received.json │ └── custom │ │ ├── item_barcode.json │ │ ├── packed_item.json │ │ ├── item_tax.json │ │ ├── sales_team.json │ │ ├── brand.json │ │ ├── unapproved_quotation_item.json │ │ ├── sales_taxes_and_charges.json │ │ ├── item_price.json │ │ ├── item_group.json │ │ ├── file.json │ │ ├── lead.json │ │ ├── item.json │ │ ├── website_item.json │ │ └── sales_order_item.json ├── __init__.py ├── patches.txt ├── constants.py ├── utils.py ├── custom_sales_order.py ├── custom_delivery_note.py ├── custom_sales_invoice.py └── hooks.py ├── .gitignore ├── README.md ├── pyproject.toml └── license.txt /medusa_integration/config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/public/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/www/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/templates/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/modules.txt: -------------------------------------------------------------------------------- 1 | Medusa Integration -------------------------------------------------------------------------------- /medusa_integration/templates/pages/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "0.0.1" 2 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/best_deals/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/email_otp/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_banner/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_item/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_order/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/increased_items/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_wishlist/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/testimonial/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/youtube_videos/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items_table/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_landing/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/item_and_brand_entry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_configuration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_request_log/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/opportunity_contact/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_suggestions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_coupon_code/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_item_review/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection_item/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_details_banner/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/returned_sales_order_item/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/quotation_updated/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/new_quotation_received/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | *.egg-info 4 | *.swp 5 | tags 6 | node_modules 7 | __pycache__ -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/quotation_updated/quotation_updated.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def get_context(context): 4 | # do your magic here 5 | pass 6 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/new_quotation_received/new_quotation_received.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def get_context(context): 4 | # do your magic here 5 | pass 6 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/email_otp/email_otp.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Email OTP', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /medusa_integration/public/js/website_item.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Website Item', { 2 | refresh: function (frm) { 3 | frm.set_query("custom_parent_website_item", function () { 4 | return { 5 | filters: { 6 | has_variants: 1 7 | } 8 | }; 9 | }); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/email_otp/email_otp.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class EmailOTP(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/email_otp/test_email_otp.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestEmailOTP(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items/expiring_items.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Expiring Items', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/best_deals/best_deals.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class BestDeals(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_landing/homepage_landing.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Homepage Landing', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_request_log/medusa_request_log.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Medusa Request Log", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/opportunity_contact/opportunity_contact.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Opportunity Contact", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection/product_collection.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Product Collection', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/testimonial/testimonial.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class Testimonial(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items/test_expiring_items.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestExpiringItems(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_item/homepage_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class HomepageItem(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_order/homepage_order.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class HomepageOrder(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_configuration/medusa_configuration.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | // frappe.ui.form.on("Medusa Configuration", { 5 | // refresh(frm) { 6 | 7 | // }, 8 | // }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_suggestions/product_suggestions.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Product Suggestions', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_coupon_code/website_coupon_code.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2025, Aerele Technologies and contributors 2 | // For license information, please see license.txt 3 | 4 | frappe.ui.form.on('Website Coupon Code', { 5 | // refresh: function(frm) { 6 | 7 | // } 8 | }); 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/youtube_videos/youtube_videos.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class YoutubeVideos(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_banner/homepage_banner.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class HomepageBanner(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_landing/homepage_landing.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class HomepageLanding(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/increased_items/increased_items.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class IncreasedItems(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_wishlist/medusa_wishlist.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class MedusaWishlist(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_landing/test_homepage_landing.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestHomepageLanding(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/item_and_brand_entry/item_and_brand_entry.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class ItemandBrandEntry(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_request_log/test_medusa_request_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestMedusaRequestLog(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/opportunity_contact/test_opportunity_contact.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestOpportunityContact(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection/product_collection.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class ProductCollection(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection/test_product_collection.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestProductCollection(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_suggestions/product_suggestions.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class ProductSuggestions(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_suggestions/test_product_suggestions.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestProductSuggestions(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_coupon_code/test_website_coupon_code.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestWebsiteCouponCode(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_coupon_code/website_coupon_code.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class WebsiteCouponCode(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_item_review/website_item_review.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class WebsiteItemReview(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items_table/expiring_items_table.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class ExpiringItemsTable(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_configuration/test_medusa_configuration.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, Aerele Technologies and Contributors 2 | # See license.txt 3 | 4 | # import frappe 5 | from frappe.tests.utils import FrappeTestCase 6 | 7 | 8 | class TestMedusaConfiguration(FrappeTestCase): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_request_log/medusa_request_log.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class MedusaRequestLog(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection_item/product_collection_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class ProductCollectionItem(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_details_banner/product_details_banner.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class Productdetailsbanner(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /medusa_integration/patches.txt: -------------------------------------------------------------------------------- 1 | [pre_model_sync] 2 | # Patches added in this section will be executed before doctypes are migrated 3 | # Read docs to understand patches: https://frappeframework.com/docs/v14/user/en/database-migrations 4 | 5 | [post_model_sync] 6 | # Patches added in this section will be executed after doctypes are migrated -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/opportunity_contact/opportunity_contact.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | 8 | class OpportunityContact(Document): 9 | pass 10 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/returned_sales_order_item/returned_sales_order_item.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | # import frappe 5 | from frappe.model.document import Document 6 | 7 | class ReturnedSalesOrderItem(Document): 8 | pass 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ERPNext Medusa Integration 2 | 3 | ## Introduction 4 | 5 | The **ERPNext Medusa Integration** app connects ERPNext with **Medusa**, a headless eCommerce platform. This integration helps sync products, orders, and inventory between ERPNext and Medusa, making it easier to manage your eCommerce operations seamlessly. 6 | 7 | ## Key Features 8 | 9 | - Sync products between ERPNext and Medusa 10 | - Sync orders from Medusa to ERPNext for processing 11 | - Sync inventory updates between platforms 12 | - Sync customer details between platforms -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "medusa_integration" 3 | authors = [ 4 | { name = "Aerele Technologies", email = "hello@aerele.in"} 5 | ] 6 | description = "Medusa Integration with ERP" 7 | requires-python = ">=3.10" 8 | readme = "README.md" 9 | dynamic = ["version"] 10 | dependencies = [ 11 | # "frappe~=15.0.0" # Installed and managed by bench. 12 | ] 13 | 14 | [build-system] 15 | requires = ["flit_core >=3.4,<4"] 16 | build-backend = "flit_core.buildapi" 17 | 18 | # These dependencies are only installed when developer mode is enabled 19 | [tool.bench.dev-dependencies] 20 | # package_name = "~=1.1.0" 21 | -------------------------------------------------------------------------------- /medusa_integration/constants.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | 3 | def get_url(): 4 | doc = frappe.get_doc("Medusa Configuration", "Medusa Configuration") 5 | return doc.url, doc.enable, doc.frontend_url 6 | 7 | def get_headers(with_token=False, expired=False): 8 | doc = frappe.get_doc("Medusa Configuration", "Medusa Configuration") 9 | if expired: 10 | doc.get_access_token() 11 | if with_token and doc.access_token: 12 | return { 13 | 'Authorization': 'Bearer '+ doc.access_token, 14 | 'Content-Type': 'application/json', 15 | } 16 | 17 | else: 18 | return { 19 | 'Content-Type': 'application/json', 20 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_order/homepage_order.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-20 15:47:26.267176", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "label" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "label", 14 | "fieldtype": "Link", 15 | "in_list_view": 1, 16 | "label": "Label", 17 | "options": "Item Group" 18 | } 19 | ], 20 | "index_web_pages_for_search": 1, 21 | "istable": 1, 22 | "links": [], 23 | "modified": "2025-01-20 15:49:39.465113", 24 | "modified_by": "Administrator", 25 | "module": "Medusa Integration", 26 | "name": "Homepage Order", 27 | "owner": "Administrator", 28 | "permissions": [], 29 | "sort_field": "modified", 30 | "sort_order": "DESC", 31 | "states": [] 32 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_wishlist/medusa_wishlist.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-21 16:23:15.128320", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "medusa_customer_id" 10 | ], 11 | "fields": [ 12 | { 13 | "fieldname": "medusa_customer_id", 14 | "fieldtype": "Data", 15 | "in_list_view": 1, 16 | "label": "Medusa Customer ID" 17 | } 18 | ], 19 | "index_web_pages_for_search": 1, 20 | "istable": 1, 21 | "links": [], 22 | "modified": "2025-01-21 16:23:22.927427", 23 | "modified_by": "Administrator", 24 | "module": "Medusa Integration", 25 | "name": "Medusa Wishlist", 26 | "owner": "Administrator", 27 | "permissions": [], 28 | "sort_field": "modified", 29 | "sort_order": "DESC", 30 | "states": [] 31 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/item_barcode.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [], 3 | "custom_perms": [], 4 | "doctype": "Item Barcode", 5 | "links": [], 6 | "property_setters": [ 7 | { 8 | "_assign": null, 9 | "_comments": null, 10 | "_liked_by": null, 11 | "_user_tags": null, 12 | "creation": "2024-01-11 11:42:09.097136", 13 | "default_value": null, 14 | "doc_type": "Item Barcode", 15 | "docstatus": 0, 16 | "doctype_or_field": "DocField", 17 | "field_name": "barcode", 18 | "idx": 0, 19 | "is_system_generated": 1, 20 | "modified": "2024-01-11 11:42:09.097136", 21 | "modified_by": "Administrator", 22 | "module": null, 23 | "name": "Item Barcode-barcode-hidden", 24 | "owner": "Administrator", 25 | "parent": null, 26 | "parentfield": null, 27 | "parenttype": null, 28 | "property": "hidden", 29 | "property_type": "Check", 30 | "row_name": null, 31 | "value": "0" 32 | } 33 | ], 34 | "sync_on_migrate": 1 35 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/packed_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [], 3 | "custom_perms": [], 4 | "doctype": "Packed Item", 5 | "links": [], 6 | "property_setters": [ 7 | { 8 | "_assign": null, 9 | "_comments": null, 10 | "_liked_by": null, 11 | "_user_tags": null, 12 | "creation": "2023-08-27 14:16:08.305149", 13 | "default_value": null, 14 | "doc_type": "Packed Item", 15 | "docstatus": 0, 16 | "doctype_or_field": "DocField", 17 | "field_name": "rate", 18 | "idx": 0, 19 | "is_system_generated": 0, 20 | "modified": "2024-12-30 10:01:37.950771", 21 | "modified_by": "Administrator", 22 | "module": null, 23 | "name": "Packed Item-rate-read_only", 24 | "owner": "Administrator", 25 | "parent": null, 26 | "parentfield": null, 27 | "parenttype": null, 28 | "property": "read_only", 29 | "property_type": "Check", 30 | "row_name": null, 31 | "value": "1" 32 | } 33 | ], 34 | "sync_on_migrate": 1 35 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/item_tax.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [], 3 | "custom_perms": [], 4 | "doctype": "Item Tax", 5 | "links": [], 6 | "property_setters": [ 7 | { 8 | "_assign": null, 9 | "_comments": null, 10 | "_liked_by": null, 11 | "_user_tags": null, 12 | "creation": "2021-10-26 11:16:41.138940", 13 | "default_value": null, 14 | "doc_type": "Item Tax", 15 | "docstatus": 0, 16 | "doctype_or_field": "DocField", 17 | "field_name": "item_tax_template", 18 | "idx": 0, 19 | "is_system_generated": 1, 20 | "modified": "2025-05-07 16:32:52.016302", 21 | "modified_by": "Administrator", 22 | "module": null, 23 | "name": "Item Tax-item_tax_template-label", 24 | "owner": "Administrator", 25 | "parent": null, 26 | "parentfield": null, 27 | "parenttype": null, 28 | "property": "label", 29 | "property_type": "Data", 30 | "row_name": null, 31 | "value": "Tax" 32 | } 33 | ], 34 | "sync_on_migrate": 1 35 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/youtube_videos/youtube_videos.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-20 16:14:34.691255", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "url", 10 | "website_item" 11 | ], 12 | "fields": [ 13 | { 14 | "fieldname": "url", 15 | "fieldtype": "Text", 16 | "in_list_view": 1, 17 | "label": "URL" 18 | }, 19 | { 20 | "fieldname": "website_item", 21 | "fieldtype": "Link", 22 | "in_list_view": 1, 23 | "label": "Website Item", 24 | "options": "Website Item" 25 | } 26 | ], 27 | "index_web_pages_for_search": 1, 28 | "istable": 1, 29 | "links": [], 30 | "modified": "2025-01-21 15:07:01.156736", 31 | "modified_by": "Administrator", 32 | "module": "Medusa Integration", 33 | "name": "Youtube Videos", 34 | "owner": "Administrator", 35 | "permissions": [], 36 | "sort_field": "modified", 37 | "sort_order": "DESC", 38 | "states": [] 39 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/sales_team.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [], 3 | "custom_perms": [], 4 | "doctype": "Sales Team", 5 | "links": [], 6 | "property_setters": [ 7 | { 8 | "_assign": null, 9 | "_comments": null, 10 | "_liked_by": null, 11 | "_user_tags": null, 12 | "creation": "2022-09-29 14:36:13.006386", 13 | "default_value": null, 14 | "doc_type": "Sales Team", 15 | "docstatus": 0, 16 | "doctype_or_field": "DocField", 17 | "field_name": "sales_person", 18 | "idx": 0, 19 | "is_system_generated": 1, 20 | "modified": "2025-02-10 13:35:32.461526", 21 | "modified_by": "Administrator", 22 | "module": null, 23 | "name": "Sales Team-sales_person-allow_on_submit", 24 | "owner": "Administrator", 25 | "parent": null, 26 | "parentfield": null, 27 | "parenttype": null, 28 | "property": "allow_on_submit", 29 | "property_type": "Check", 30 | "row_name": null, 31 | "value": "0" 32 | } 33 | ], 34 | "sync_on_migrate": 1 35 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/best_deals/best_deals.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-04-09 10:22:49.260757", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "url", 11 | "website_item" 12 | ], 13 | "fields": [ 14 | { 15 | "fieldname": "url", 16 | "fieldtype": "Text", 17 | "in_list_view": 1, 18 | "label": "URL" 19 | }, 20 | { 21 | "fieldname": "website_item", 22 | "fieldtype": "Link", 23 | "in_list_view": 1, 24 | "label": "Website Item", 25 | "options": "Website Item" 26 | } 27 | ], 28 | "index_web_pages_for_search": 1, 29 | "istable": 1, 30 | "links": [], 31 | "modified": "2025-04-09 10:22:49.260757", 32 | "modified_by": "Administrator", 33 | "module": "Medusa Integration", 34 | "name": "Best Deals", 35 | "owner": "Administrator", 36 | "permissions": [], 37 | "sort_field": "modified", 38 | "sort_order": "DESC", 39 | "states": [] 40 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items/expiring_items.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2025, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | from frappe.model.document import Document 6 | 7 | class ExpiringItems(Document): 8 | def validate(self): 9 | homepage_doc = frappe.get_doc("Homepage Landing", "Active Homepage Landing") 10 | 11 | selected_items = {row.website_item for row in self.expiring_items if row.show} 12 | 13 | existing_clearance_items = {row.website_item: row for row in homepage_doc.clearance_items} 14 | 15 | homepage_doc.clearance_items = [ 16 | row for row in homepage_doc.clearance_items if row.website_item in selected_items 17 | ] 18 | 19 | homepage_existing_items_set = {row.website_item for row in homepage_doc.clearance_items} 20 | 21 | for item in selected_items: 22 | if item not in homepage_existing_items_set: 23 | homepage_doc.append("clearance_items", {"website_item": item}) 24 | 25 | homepage_doc.save() 26 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items/expiring_items.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-04-27 17:09:08.978145", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "expiring_items" 11 | ], 12 | "fields": [ 13 | { 14 | "fieldname": "expiring_items", 15 | "fieldtype": "Table", 16 | "label": "Expiring Items", 17 | "options": "Expiring Items Table" 18 | } 19 | ], 20 | "index_web_pages_for_search": 1, 21 | "issingle": 1, 22 | "links": [], 23 | "modified": "2025-04-27 17:11:38.375747", 24 | "modified_by": "Administrator", 25 | "module": "Medusa Integration", 26 | "name": "Expiring Items", 27 | "owner": "Administrator", 28 | "permissions": [ 29 | { 30 | "create": 1, 31 | "delete": 1, 32 | "email": 1, 33 | "print": 1, 34 | "read": 1, 35 | "role": "System Manager", 36 | "share": 1, 37 | "write": 1 38 | } 39 | ], 40 | "sort_field": "modified", 41 | "sort_order": "DESC", 42 | "states": [] 43 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/item_and_brand_entry/item_and_brand_entry.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-20 11:21:04.644508", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "link_doctype", 11 | "name1" 12 | ], 13 | "fields": [ 14 | { 15 | "fieldname": "link_doctype", 16 | "fieldtype": "Select", 17 | "in_list_view": 1, 18 | "label": "Link Doctype", 19 | "options": "Item Group\nBrand" 20 | }, 21 | { 22 | "fieldname": "name1", 23 | "fieldtype": "Dynamic Link", 24 | "in_list_view": 1, 25 | "label": "Name", 26 | "options": "link_doctype" 27 | } 28 | ], 29 | "index_web_pages_for_search": 1, 30 | "istable": 1, 31 | "links": [], 32 | "modified": "2025-01-20 14:08:19.969106", 33 | "modified_by": "Administrator", 34 | "module": "Medusa Integration", 35 | "name": "Item and Brand Entry", 36 | "owner": "Administrator", 37 | "permissions": [], 38 | "sort_field": "modified", 39 | "sort_order": "DESC", 40 | "states": [] 41 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_item/homepage_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-02-04 16:02:06.954078", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "website_item", 11 | "website_item_name" 12 | ], 13 | "fields": [ 14 | { 15 | "fieldname": "website_item", 16 | "fieldtype": "Link", 17 | "in_list_view": 1, 18 | "label": "Website Item", 19 | "options": "Website Item" 20 | }, 21 | { 22 | "fetch_from": "website_item.web_item_name", 23 | "fieldname": "website_item_name", 24 | "fieldtype": "Data", 25 | "in_list_view": 1, 26 | "label": "Website Item Name" 27 | } 28 | ], 29 | "index_web_pages_for_search": 1, 30 | "istable": 1, 31 | "links": [], 32 | "modified": "2025-02-04 16:02:06.954078", 33 | "modified_by": "Administrator", 34 | "module": "Medusa Integration", 35 | "name": "Homepage Item", 36 | "owner": "Administrator", 37 | "permissions": [], 38 | "sort_field": "modified", 39 | "sort_order": "DESC", 40 | "states": [] 41 | } -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [year] [fullname] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_banner/homepage_banner.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-22 17:01:22.554381", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "url", 11 | "link_doctype", 12 | "name1" 13 | ], 14 | "fields": [ 15 | { 16 | "fieldname": "url", 17 | "fieldtype": "Data", 18 | "in_list_view": 1, 19 | "label": "URL" 20 | }, 21 | { 22 | "fieldname": "link_doctype", 23 | "fieldtype": "Select", 24 | "in_list_view": 1, 25 | "label": "Link Doctype", 26 | "options": "Item Group\nBrand" 27 | }, 28 | { 29 | "fieldname": "name1", 30 | "fieldtype": "Dynamic Link", 31 | "in_list_view": 1, 32 | "label": "Name", 33 | "options": "link_doctype" 34 | } 35 | ], 36 | "index_web_pages_for_search": 1, 37 | "istable": 1, 38 | "links": [], 39 | "modified": "2025-01-22 17:04:12.704717", 40 | "modified_by": "Administrator", 41 | "module": "Medusa Integration", 42 | "name": "Homepage Banner", 43 | "owner": "Administrator", 44 | "permissions": [], 45 | "sort_field": "modified", 46 | "sort_order": "DESC", 47 | "states": [] 48 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection_item/product_collection_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-04-28 14:07:07.086192", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "item_code", 10 | "item_name", 11 | "sales_count" 12 | ], 13 | "fields": [ 14 | { 15 | "fieldname": "item_code", 16 | "fieldtype": "Link", 17 | "in_list_view": 1, 18 | "label": "Item Code", 19 | "options": "Item" 20 | }, 21 | { 22 | "fetch_from": "item_code.item_name", 23 | "fieldname": "item_name", 24 | "fieldtype": "Data", 25 | "in_list_view": 1, 26 | "label": "Item Name" 27 | }, 28 | { 29 | "fieldname": "sales_count", 30 | "fieldtype": "Float", 31 | "in_list_view": 1, 32 | "label": "Sales Count" 33 | } 34 | ], 35 | "index_web_pages_for_search": 1, 36 | "istable": 1, 37 | "links": [], 38 | "modified": "2025-04-28 14:24:58.094695", 39 | "modified_by": "Administrator", 40 | "module": "Medusa Integration", 41 | "name": "Product Collection Item", 42 | "owner": "Administrator", 43 | "permissions": [], 44 | "sort_field": "modified", 45 | "sort_order": "DESC", 46 | "states": [] 47 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/testimonial/testimonial.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-22 17:18:14.000564", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "image_url", 10 | "review", 11 | "review_by", 12 | "designation" 13 | ], 14 | "fields": [ 15 | { 16 | "fieldname": "image_url", 17 | "fieldtype": "Data", 18 | "in_list_view": 1, 19 | "label": "Image URL" 20 | }, 21 | { 22 | "fieldname": "review", 23 | "fieldtype": "Data", 24 | "in_list_view": 1, 25 | "label": "Review" 26 | }, 27 | { 28 | "fieldname": "review_by", 29 | "fieldtype": "Data", 30 | "in_list_view": 1, 31 | "label": "Review by" 32 | }, 33 | { 34 | "fieldname": "designation", 35 | "fieldtype": "Data", 36 | "in_list_view": 1, 37 | "label": "Designation" 38 | } 39 | ], 40 | "index_web_pages_for_search": 1, 41 | "istable": 1, 42 | "links": [], 43 | "modified": "2025-01-22 17:18:14.000564", 44 | "modified_by": "Administrator", 45 | "module": "Medusa Integration", 46 | "name": "Testimonial", 47 | "owner": "Administrator", 48 | "permissions": [], 49 | "sort_field": "modified", 50 | "sort_order": "DESC", 51 | "states": [] 52 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_configuration/medusa_configuration.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024, Aerele Technologies and contributors 2 | # For license information, please see license.txt 3 | 4 | import frappe 5 | import json 6 | from frappe.model.document import Document # type: ignore 7 | from medusa_integration.constants import get_headers 8 | from medusa_integration.utils import send_request 9 | 10 | 11 | class MedusaConfiguration(Document): 12 | def validate(self): 13 | if self.enable: 14 | self.get_access_token() 15 | else: 16 | self.access_token = "" 17 | 18 | 19 | 20 | def get_access_token(self): 21 | try: 22 | args = frappe._dict({ 23 | "method" : "POST", 24 | "url" : f"{self.url}/admin/auth/token", 25 | "headers": get_headers(), 26 | "payload": json.dumps({ 27 | "email": self.admin_email, 28 | "password": self.get_password("admin_password") 29 | }), 30 | "voucher_type": self.doctype, 31 | "voucher_name": self.name, 32 | "throw_message": "We are unable to fetch access token please check your admin credentials" 33 | }) 34 | 35 | access_token = send_request(args).get("access_token") 36 | self.db_set("access_token", access_token) 37 | 38 | except Exception as e: 39 | frappe.log_error("Access Token", frappe.get_traceback()) 40 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_details_banner/product_details_banner.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-27 12:14:51.819409", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "item_group", 10 | "url", 11 | "link_doctype", 12 | "name1" 13 | ], 14 | "fields": [ 15 | { 16 | "fieldname": "url", 17 | "fieldtype": "Data", 18 | "in_list_view": 1, 19 | "label": "URL" 20 | }, 21 | { 22 | "fieldname": "item_group", 23 | "fieldtype": "Link", 24 | "in_list_view": 1, 25 | "label": "Main Item Group", 26 | "options": "Item Group" 27 | }, 28 | { 29 | "fieldname": "name1", 30 | "fieldtype": "Dynamic Link", 31 | "in_list_view": 1, 32 | "label": "Name", 33 | "options": "link_doctype" 34 | }, 35 | { 36 | "fieldname": "link_doctype", 37 | "fieldtype": "Select", 38 | "in_list_view": 1, 39 | "label": "Linked to", 40 | "options": "Item Group\nBrand\nWebsite Item" 41 | } 42 | ], 43 | "index_web_pages_for_search": 1, 44 | "istable": 1, 45 | "links": [], 46 | "modified": "2025-05-05 12:12:18.571187", 47 | "modified_by": "Administrator", 48 | "module": "Medusa Integration", 49 | "name": "Product details banner", 50 | "owner": "Administrator", 51 | "permissions": [], 52 | "sort_field": "modified", 53 | "sort_order": "DESC", 54 | "states": [] 55 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/expiring_items_table/expiring_items_table.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-04-27 17:11:26.715455", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "website_item", 11 | "website_item_name", 12 | "expiry_date", 13 | "show" 14 | ], 15 | "fields": [ 16 | { 17 | "fieldname": "website_item", 18 | "fieldtype": "Link", 19 | "in_list_view": 1, 20 | "label": "Website Item", 21 | "options": "Website Item" 22 | }, 23 | { 24 | "fetch_from": "website_item.web_item_name", 25 | "fieldname": "website_item_name", 26 | "fieldtype": "Data", 27 | "in_list_view": 1, 28 | "label": "Website Item Name" 29 | }, 30 | { 31 | "default": "0", 32 | "fieldname": "show", 33 | "fieldtype": "Check", 34 | "in_list_view": 1, 35 | "label": "Show in Website" 36 | }, 37 | { 38 | "fieldname": "expiry_date", 39 | "fieldtype": "Date", 40 | "in_list_view": 1, 41 | "label": "Expiry Date" 42 | } 43 | ], 44 | "index_web_pages_for_search": 1, 45 | "istable": 1, 46 | "links": [], 47 | "modified": "2025-04-28 09:14:00.897432", 48 | "modified_by": "Administrator", 49 | "module": "Medusa Integration", 50 | "name": "Expiring Items Table", 51 | "owner": "Administrator", 52 | "permissions": [], 53 | "sort_field": "modified", 54 | "sort_order": "DESC", 55 | "states": [] 56 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/new_quotation_received/new_quotation_received.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 32 | 33 | 34 |

New Quotation Request

35 | 36 |

Hello,

37 | 38 |

A new quotation request has been received from the e-commerce site. Click the link below to view it:

39 | 40 |

View Quotation

41 | 42 |

Thanks,

43 |

Your Team

44 | 45 |
46 |

Quotation Details

47 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/quotation_updated/quotation_updated.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 32 | 33 | 34 |

Quotation status update

35 | 36 |

Hello,

37 | 38 |

The quotation status has been updated by the customer from the e-commerce site. Click the link below to view it:

39 | 40 |

View Quotation

41 | 42 |

Thanks

43 | 44 |
45 |

Quotation Details

46 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /medusa_integration/public/js/customer.js: -------------------------------------------------------------------------------- 1 | frappe.ui.form.on('Customer', { 2 | refresh(frm) { 3 | frm.set_query("customer_primary_contact", () => { 4 | return { filters: { first_name: ["!=", ""] } }; 5 | }); 6 | 7 | if (!frm.is_new() && !frm.doc.medusa_id) { 8 | frm.add_custom_button(__("Link Medusa Lead"), () => { 9 | open_link_medusa_lead_dialog(frm); 10 | }); 11 | } 12 | } 13 | }) 14 | 15 | function open_link_medusa_lead_dialog(frm) { 16 | let d = new frappe.ui.Dialog({ 17 | title: __("Link Medusa Lead"), 18 | fields: [ 19 | { 20 | label: __("Lead"), 21 | fieldname: "lead", 22 | fieldtype: "Link", 23 | options: "Lead", 24 | reqd: 1, 25 | get_query() { 26 | return { 27 | filters: [["medusa_id", "!=", ""]] 28 | }; 29 | } 30 | } 31 | ], 32 | primary_action_label: __("Link"), 33 | primary_action(data) { 34 | if (!data.lead) { 35 | frappe.msgprint("Please select a lead"); 36 | return; 37 | } 38 | 39 | frappe.confirm( 40 | __("Once linked, this Lead cannot be unlinked. Do you want to proceed?"), 41 | () => { 42 | frappe.call({ 43 | method: "medusa_integration.utils.link_medusa_lead", 44 | args: { 45 | customer: frm.doc.name, 46 | lead: data.lead 47 | }, 48 | freeze: true, 49 | callback(r) { 50 | if (!r.exc) { 51 | frappe.msgprint("Medusa Lead linked successfully"); 52 | frm.reload_doc(); 53 | d.hide(); 54 | } 55 | } 56 | }); 57 | } 58 | ); 59 | } 60 | }); 61 | 62 | d.show(); 63 | } 64 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/increased_items/increased_items.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "creation": "2025-01-10 12:44:22.040802", 4 | "default_view": "List", 5 | "doctype": "DocType", 6 | "document_type": "Document", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "item_code", 11 | "old_quantity", 12 | "new_quantity" 13 | ], 14 | "fields": [ 15 | { 16 | "bold": 1, 17 | "columns": 4, 18 | "fieldname": "item_code", 19 | "fieldtype": "Link", 20 | "in_global_search": 1, 21 | "in_list_view": 1, 22 | "label": "Item Code", 23 | "oldfieldname": "item_code", 24 | "oldfieldtype": "Link", 25 | "options": "Item", 26 | "print_width": "150px", 27 | "reqd": 1, 28 | "search_index": 1, 29 | "width": "150px" 30 | }, 31 | { 32 | "bold": 1, 33 | "columns": 2, 34 | "fieldname": "old_quantity", 35 | "fieldtype": "Float", 36 | "in_list_view": 1, 37 | "label": "Old Quantity", 38 | "oldfieldname": "qty", 39 | "oldfieldtype": "Currency", 40 | "print_width": "100px", 41 | "reqd": 1, 42 | "width": "100px" 43 | }, 44 | { 45 | "fieldname": "new_quantity", 46 | "fieldtype": "Float", 47 | "label": "New Quantity", 48 | "reqd": 1 49 | } 50 | ], 51 | "istable": 1, 52 | "links": [], 53 | "modified": "2025-01-20 14:08:27.121129", 54 | "modified_by": "Administrator", 55 | "module": "Medusa Integration", 56 | "name": "Increased Items", 57 | "owner": "Administrator", 58 | "permissions": [], 59 | "sort_field": "modified", 60 | "sort_order": "DESC", 61 | "states": [], 62 | "track_changes": 1 63 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_collection/product_collection.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-04-28 14:10:37.885659", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "dental_items", 11 | "medical_items", 12 | "infection_control_items", 13 | "medical_laboratory_ivd_items" 14 | ], 15 | "fields": [ 16 | { 17 | "fieldname": "dental_items", 18 | "fieldtype": "Table", 19 | "label": "Dental Items", 20 | "options": "Product Collection Item" 21 | }, 22 | { 23 | "fieldname": "medical_items", 24 | "fieldtype": "Table", 25 | "label": "Medical Items", 26 | "options": "Product Collection Item" 27 | }, 28 | { 29 | "fieldname": "infection_control_items", 30 | "fieldtype": "Table", 31 | "label": "Infection Control Items", 32 | "options": "Product Collection Item" 33 | }, 34 | { 35 | "fieldname": "medical_laboratory_ivd_items", 36 | "fieldtype": "Table", 37 | "label": "Medical Laboratory IVD Items", 38 | "options": "Product Collection Item" 39 | } 40 | ], 41 | "index_web_pages_for_search": 1, 42 | "issingle": 1, 43 | "links": [], 44 | "modified": "2025-04-28 14:10:37.885659", 45 | "modified_by": "Administrator", 46 | "module": "Medusa Integration", 47 | "name": "Product Collection", 48 | "owner": "Administrator", 49 | "permissions": [ 50 | { 51 | "create": 1, 52 | "delete": 1, 53 | "email": 1, 54 | "print": 1, 55 | "read": 1, 56 | "role": "System Manager", 57 | "share": 1, 58 | "write": 1 59 | } 60 | ], 61 | "sort_field": "modified", 62 | "sort_order": "DESC", 63 | "states": [] 64 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_coupon_code/website_coupon_code.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "autoname": "field:code", 4 | "creation": "2025-11-27 12:01:52.377338", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "code", 11 | "claimed", 12 | "expired", 13 | "claimed_by", 14 | "claimed_order" 15 | ], 16 | "fields": [ 17 | { 18 | "fieldname": "code", 19 | "fieldtype": "Data", 20 | "label": "Code", 21 | "unique": 1 22 | }, 23 | { 24 | "default": "0", 25 | "fieldname": "claimed", 26 | "fieldtype": "Check", 27 | "label": "Claimed" 28 | }, 29 | { 30 | "default": "0", 31 | "fieldname": "expired", 32 | "fieldtype": "Check", 33 | "label": "Expired" 34 | }, 35 | { 36 | "fieldname": "claimed_by", 37 | "fieldtype": "Link", 38 | "label": "Claimed By", 39 | "options": "Customer" 40 | }, 41 | { 42 | "fieldname": "claimed_order", 43 | "fieldtype": "Link", 44 | "label": "Claimed Order", 45 | "options": "Sales Order" 46 | } 47 | ], 48 | "index_web_pages_for_search": 1, 49 | "links": [], 50 | "modified": "2025-11-29 14:39:51.018790", 51 | "modified_by": "Administrator", 52 | "module": "Medusa Integration", 53 | "name": "Website Coupon Code", 54 | "naming_rule": "By fieldname", 55 | "owner": "Administrator", 56 | "permissions": [ 57 | { 58 | "create": 1, 59 | "delete": 1, 60 | "email": 1, 61 | "export": 1, 62 | "print": 1, 63 | "read": 1, 64 | "report": 1, 65 | "role": "System Manager", 66 | "share": 1, 67 | "write": 1 68 | } 69 | ], 70 | "sort_field": "modified", 71 | "sort_order": "DESC", 72 | "states": [] 73 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_request_log/medusa_request_log.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-05-22 19:11:08.429621", 5 | "doctype": "DocType", 6 | "engine": "InnoDB", 7 | "field_order": [ 8 | "status", 9 | "payload", 10 | "voucher_type", 11 | "voucher_name", 12 | "response" 13 | ], 14 | "fields": [ 15 | { 16 | "fieldname": "status", 17 | "fieldtype": "Select", 18 | "in_list_view": 1, 19 | "label": "Status", 20 | "options": "\nSuccess\nFailure", 21 | "read_only": 1 22 | }, 23 | { 24 | "depends_on": "eval:doc.status == \"Failure\"", 25 | "fieldname": "payload", 26 | "fieldtype": "Code", 27 | "label": "Payload", 28 | "read_only": 1 29 | }, 30 | { 31 | "fieldname": "voucher_type", 32 | "fieldtype": "Link", 33 | "label": "Voucher Type", 34 | "options": "DocType", 35 | "read_only": 1 36 | }, 37 | { 38 | "fieldname": "voucher_name", 39 | "fieldtype": "Dynamic Link", 40 | "label": "Voucher Name", 41 | "options": "voucher_type", 42 | "read_only": 1 43 | }, 44 | { 45 | "fieldname": "response", 46 | "fieldtype": "Code", 47 | "label": "Response", 48 | "read_only": 1 49 | } 50 | ], 51 | "in_create": 1, 52 | "index_web_pages_for_search": 1, 53 | "links": [], 54 | "modified": "2024-05-23 11:02:51.984816", 55 | "modified_by": "Administrator", 56 | "module": "Medusa Integration", 57 | "name": "Medusa Request Log", 58 | "owner": "Administrator", 59 | "permissions": [ 60 | { 61 | "create": 1, 62 | "delete": 1, 63 | "email": 1, 64 | "export": 1, 65 | "print": 1, 66 | "read": 1, 67 | "report": 1, 68 | "role": "System Manager", 69 | "share": 1, 70 | "write": 1 71 | } 72 | ], 73 | "sort_field": "modified", 74 | "sort_order": "DESC", 75 | "states": [] 76 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/website_item_review/website_item_review.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-12-27 09:28:34.003063", 5 | "doctype": "DocType", 6 | "editable_grid": 1, 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "medusa_id", 10 | "name1", 11 | "rating", 12 | "review", 13 | "date", 14 | "likes", 15 | "dislikes", 16 | "review_id" 17 | ], 18 | "fields": [ 19 | { 20 | "fieldname": "medusa_id", 21 | "fieldtype": "Data", 22 | "in_list_view": 1, 23 | "label": "Medusa ID" 24 | }, 25 | { 26 | "fieldname": "name1", 27 | "fieldtype": "Data", 28 | "in_list_view": 1, 29 | "label": "Name" 30 | }, 31 | { 32 | "fieldname": "review", 33 | "fieldtype": "Text", 34 | "in_list_view": 1, 35 | "label": "Review" 36 | }, 37 | { 38 | "fieldname": "date", 39 | "fieldtype": "Date", 40 | "in_list_view": 1, 41 | "label": "Date" 42 | }, 43 | { 44 | "fieldname": "rating", 45 | "fieldtype": "Rating", 46 | "in_list_view": 1, 47 | "label": "Rating" 48 | }, 49 | { 50 | "fieldname": "likes", 51 | "fieldtype": "Int", 52 | "in_list_view": 1, 53 | "label": "Likes" 54 | }, 55 | { 56 | "fieldname": "dislikes", 57 | "fieldtype": "Int", 58 | "in_list_view": 1, 59 | "label": "Dislikes" 60 | }, 61 | { 62 | "fieldname": "review_id", 63 | "fieldtype": "Data", 64 | "in_list_view": 1, 65 | "label": "Review ID" 66 | } 67 | ], 68 | "index_web_pages_for_search": 1, 69 | "istable": 1, 70 | "links": [], 71 | "modified": "2025-01-20 14:08:35.415304", 72 | "modified_by": "Administrator", 73 | "module": "Medusa Integration", 74 | "name": "Website Item Review", 75 | "owner": "Administrator", 76 | "permissions": [], 77 | "sort_field": "modified", 78 | "sort_order": "DESC", 79 | "states": [] 80 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/email_otp/email_otp.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-02-07 14:42:49.977203", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "email", 11 | "otp", 12 | "expiration_time", 13 | "status", 14 | "password", 15 | "logged_in" 16 | ], 17 | "fields": [ 18 | { 19 | "fieldname": "email", 20 | "fieldtype": "Data", 21 | "label": "Email", 22 | "options": "Email", 23 | "unique": 1 24 | }, 25 | { 26 | "fieldname": "otp", 27 | "fieldtype": "Int", 28 | "label": "OTP" 29 | }, 30 | { 31 | "fieldname": "expiration_time", 32 | "fieldtype": "Datetime", 33 | "label": "Expiration Time" 34 | }, 35 | { 36 | "fieldname": "status", 37 | "fieldtype": "Select", 38 | "label": "Status", 39 | "options": "Pending\nVerified\nExpired" 40 | }, 41 | { 42 | "fieldname": "password", 43 | "fieldtype": "Password", 44 | "label": "Password" 45 | }, 46 | { 47 | "default": "0", 48 | "fieldname": "logged_in", 49 | "fieldtype": "Check", 50 | "label": "Logged in" 51 | } 52 | ], 53 | "index_web_pages_for_search": 1, 54 | "links": [], 55 | "modified": "2025-02-28 14:11:30.474696", 56 | "modified_by": "Administrator", 57 | "module": "Medusa Integration", 58 | "name": "Email OTP", 59 | "owner": "Administrator", 60 | "permissions": [ 61 | { 62 | "create": 1, 63 | "delete": 1, 64 | "email": 1, 65 | "export": 1, 66 | "print": 1, 67 | "read": 1, 68 | "report": 1, 69 | "role": "System Manager", 70 | "share": 1, 71 | "write": 1 72 | }, 73 | { 74 | "email": 1, 75 | "export": 1, 76 | "print": 1, 77 | "read": 1, 78 | "report": 1, 79 | "role": "Guest", 80 | "share": 1 81 | } 82 | ], 83 | "sort_field": "modified", 84 | "sort_order": "DESC", 85 | "states": [] 86 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/opportunity_contact/opportunity_contact.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-04-26 10:44:17.074659", 5 | "doctype": "DocType", 6 | "engine": "InnoDB", 7 | "field_order": [ 8 | "type", 9 | "first_name", 10 | "email", 11 | "mobile_no", 12 | "city", 13 | "country" 14 | ], 15 | "fields": [ 16 | { 17 | "fieldname": "type", 18 | "fieldtype": "Select", 19 | "label": "Type", 20 | "options": "Setting Up\nInspection\nService and Spares" 21 | }, 22 | { 23 | "fieldname": "first_name", 24 | "fieldtype": "Data", 25 | "in_list_view": 1, 26 | "label": "First Name", 27 | "reqd": 1 28 | }, 29 | { 30 | "fieldname": "email", 31 | "fieldtype": "Data", 32 | "in_list_view": 1, 33 | "label": "Email", 34 | "options": "Email", 35 | "reqd": 1 36 | }, 37 | { 38 | "fieldname": "mobile_no", 39 | "fieldtype": "Data", 40 | "in_list_view": 1, 41 | "label": "Mobile No", 42 | "options": "Phone", 43 | "reqd": 1 44 | }, 45 | { 46 | "fieldname": "city", 47 | "fieldtype": "Data", 48 | "label": "City" 49 | }, 50 | { 51 | "fieldname": "country", 52 | "fieldtype": "Link", 53 | "label": "Country", 54 | "options": "Country" 55 | } 56 | ], 57 | "grid_page_length": 50, 58 | "index_web_pages_for_search": 1, 59 | "links": [], 60 | "modified": "2025-04-26 10:53:57.311063", 61 | "modified_by": "Administrator", 62 | "module": "Medusa Integration", 63 | "name": "Opportunity Contact", 64 | "owner": "Administrator", 65 | "permissions": [ 66 | { 67 | "create": 1, 68 | "delete": 1, 69 | "email": 1, 70 | "export": 1, 71 | "print": 1, 72 | "read": 1, 73 | "report": 1, 74 | "role": "System Manager", 75 | "share": 1, 76 | "write": 1 77 | }, 78 | { 79 | "create": 1, 80 | "role": "Guest", 81 | "select": 1, 82 | "write": 1 83 | } 84 | ], 85 | "sort_field": "modified", 86 | "sort_order": "DESC", 87 | "states": [] 88 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/product_suggestions/product_suggestions.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-02-01 09:40:22.067602", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "product_name", 11 | "product_short_description", 12 | "product_link", 13 | "suggested_by", 14 | "contact_number", 15 | "product_supplier", 16 | "supplier_details" 17 | ], 18 | "fields": [ 19 | { 20 | "fieldname": "product_name", 21 | "fieldtype": "Data", 22 | "in_list_view": 1, 23 | "label": "Product Name", 24 | "reqd": 1 25 | }, 26 | { 27 | "fieldname": "product_short_description", 28 | "fieldtype": "Data", 29 | "label": "Product Short Description" 30 | }, 31 | { 32 | "fieldname": "product_link", 33 | "fieldtype": "Data", 34 | "label": "Product Link" 35 | }, 36 | { 37 | "fieldname": "suggested_by", 38 | "fieldtype": "Data", 39 | "in_list_view": 1, 40 | "label": "Suggested by", 41 | "reqd": 1 42 | }, 43 | { 44 | "fieldname": "contact_number", 45 | "fieldtype": "Data", 46 | "in_list_view": 1, 47 | "label": "Contact Number", 48 | "reqd": 1 49 | }, 50 | { 51 | "fieldname": "product_supplier", 52 | "fieldtype": "Data", 53 | "label": "Product Supplier" 54 | }, 55 | { 56 | "fieldname": "supplier_details", 57 | "fieldtype": "Data", 58 | "label": "Supplier Details" 59 | } 60 | ], 61 | "index_web_pages_for_search": 1, 62 | "links": [], 63 | "modified": "2025-02-01 09:40:22.067602", 64 | "modified_by": "Administrator", 65 | "module": "Medusa Integration", 66 | "name": "Product Suggestions", 67 | "owner": "Administrator", 68 | "permissions": [ 69 | { 70 | "create": 1, 71 | "delete": 1, 72 | "email": 1, 73 | "export": 1, 74 | "print": 1, 75 | "read": 1, 76 | "report": 1, 77 | "role": "System Manager", 78 | "share": 1, 79 | "write": 1 80 | } 81 | ], 82 | "sort_field": "modified", 83 | "sort_order": "DESC", 84 | "states": [] 85 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/new_quotation_received/new_quotation_received.json: -------------------------------------------------------------------------------- 1 | { 2 | "attach_print": 0, 3 | "channel": "Email", 4 | "condition": "doc.from_ecommerce == 1", 5 | "creation": "2024-12-20 10:46:54.199854", 6 | "days_in_advance": 0, 7 | "docstatus": 0, 8 | "doctype": "Notification", 9 | "document_type": "Quotation", 10 | "enabled": 1, 11 | "event": "New", 12 | "idx": 0, 13 | "is_standard": 1, 14 | "message": "\n\n\n \n\n\n

New Quotation Request

\n\n

Hello,

\n\n

A new quotation request has been received from the e-commerce site. Click the link below to view it:

\n\n

View Quotation

\n\n

Thanks,

\n

Your Team

\n\n
\n

Quotation Details

\n \n\n\n", 15 | "message_type": "HTML", 16 | "modified": "2024-12-20 15:13:17.120058", 17 | "modified_by": "Administrator", 18 | "module": "Medusa Integration", 19 | "name": "New Quotation Received", 20 | "owner": "Administrator", 21 | "recipients": [ 22 | { 23 | "receiver_by_document_field": "", 24 | "receiver_by_role": "Chethan" 25 | } 26 | ], 27 | "send_system_notification": 1, 28 | "send_to_all_assignees": 0, 29 | "sender": "Quotation", 30 | "sender_email": "bhavan@aerele.in", 31 | "subject": "New quotation received " 32 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/notification/quotation_updated/quotation_updated.json: -------------------------------------------------------------------------------- 1 | { 2 | "attach_print": 0, 3 | "channel": "Email", 4 | "condition": "doc.from_ecommerce == 1", 5 | "creation": "2024-12-20 12:07:17.489503", 6 | "days_in_advance": 0, 7 | "docstatus": 0, 8 | "doctype": "Notification", 9 | "document_type": "Quotation", 10 | "enabled": 1, 11 | "event": "Submit", 12 | "idx": 0, 13 | "is_standard": 1, 14 | "message": "\n\n\n \n\n\n

Quotation status update

\n\n

Hello,

\n\n

The quotation status has been updated by the customer from the e-commerce site. Click the link below to view it:

\n\n

View Quotation

\n\n

Thanks

\n\n
\n

Quotation Details

\n \n\n\n", 15 | "message_type": "HTML", 16 | "modified": "2024-12-20 14:48:52.616153", 17 | "modified_by": "Administrator", 18 | "module": "Medusa Integration", 19 | "name": "Quotation updated", 20 | "owner": "Administrator", 21 | "recipients": [ 22 | { 23 | "receiver_by_document_field": "", 24 | "receiver_by_role": "Chethan" 25 | } 26 | ], 27 | "send_system_notification": 1, 28 | "send_to_all_assignees": 0, 29 | "sender": "Quotation", 30 | "sender_email": "bhavan@aerele.in", 31 | "subject": "Quotation status update" 32 | } -------------------------------------------------------------------------------- /medusa_integration/utils.py: -------------------------------------------------------------------------------- 1 | import frappe,json,requests,random,string 2 | from frappe import _ 3 | from medusa_integration.constants import get_headers 4 | 5 | 6 | def generate_random_string(length=26): 7 | characters = string.ascii_uppercase + string.digits 8 | random_string = ''.join(random.choice(characters) for _ in range(length)) 9 | return random_string 10 | 11 | 12 | def create_response_log(log_details): 13 | log = frappe.get_doc({ 14 | "doctype": "Medusa Request Log", 15 | "status": log_details.status, 16 | "payload": json.dumps(log_details.get("payload"), indent=4) or "", 17 | "voucher_type": log_details.get("voucher_type"), 18 | "voucher_name": log_details.get("voucher_name"), 19 | "response": json.dumps(log_details.get("response"), indent=4) if isinstance(log_details.get("response"), dict) else json.dumps({"response":log_details.get("response")}), 20 | }).insert(ignore_permissions=True) 21 | frappe.db.commit() 22 | return log.name 23 | 24 | def send_request(args): 25 | response = requests.request(args.method, args.url, headers=args.headers, data=args.payload) 26 | if response.ok: 27 | data = frappe._dict(json.loads(response.text)) 28 | if response.text == "Unauthorized": 29 | response = requests.request(args.method, args.url, headers=get_headers(with_token=True,expired=True), data=args.payload) 30 | if response.ok: 31 | data = frappe._dict(json.loads(response.text)) 32 | create_response_log(frappe._dict({ 33 | "status": "Success" if response.ok else "Failure", 34 | "payload": args.payload, 35 | "voucher_type": args.get("voucher_type") or "", 36 | "voucher_name": args.get("voucher_name") or "", 37 | "response": json.loads(response.text) if response.ok else response.text, 38 | })) 39 | 40 | if response.ok: 41 | return data 42 | 43 | else: 44 | frappe.throw(args.get("throw_message") or response.text) 45 | 46 | @frappe.whitelist() 47 | def link_medusa_lead(customer, lead): 48 | customer_doc = frappe.get_doc("Customer", customer) 49 | 50 | original_name = customer_doc.customer_name 51 | 52 | lead_doc = frappe.get_doc("Lead", lead) 53 | if not lead_doc: 54 | frappe.throw(_("Lead does not exist")) 55 | 56 | if not lead_doc.medusa_id: 57 | frappe.throw(_("Selected Lead does not have a Medusa ID")) 58 | 59 | medusa_id = lead_doc.medusa_id 60 | 61 | exists = frappe.db.exists( 62 | "Customer", 63 | {"medusa_id": medusa_id, "name": ("!=", customer)} 64 | ) 65 | 66 | if exists: 67 | frappe.throw( 68 | _("This Medusa Lead is already linked to another Customer: {0}") 69 | .format(exists) 70 | ) 71 | 72 | customer_doc.medusa_id = medusa_id 73 | customer_doc.lead_name = lead 74 | 75 | customer_doc.customer_name = original_name 76 | 77 | customer_doc.save(ignore_permissions=True) 78 | 79 | return {"status": "success"} 80 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/returned_sales_order_item/returned_sales_order_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "autoname": "hash", 4 | "creation": "2025-07-14 06:14:37.015435", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "document_type": "Document", 8 | "editable_grid": 1, 9 | "engine": "InnoDB", 10 | "field_order": [ 11 | "item_code", 12 | "item_name", 13 | "qty", 14 | "uom", 15 | "rate", 16 | "amount" 17 | ], 18 | "fields": [ 19 | { 20 | "bold": 1, 21 | "columns": 3, 22 | "fieldname": "item_code", 23 | "fieldtype": "Link", 24 | "in_global_search": 1, 25 | "in_list_view": 1, 26 | "label": "Item Code", 27 | "oldfieldname": "item_code", 28 | "oldfieldtype": "Link", 29 | "options": "Item", 30 | "print_width": "150px", 31 | "reqd": 1, 32 | "width": "150px" 33 | }, 34 | { 35 | "fetch_from": "item_code.item_name", 36 | "fieldname": "item_name", 37 | "fieldtype": "Data", 38 | "in_global_search": 1, 39 | "in_list_view": 1, 40 | "label": "Item Name", 41 | "oldfieldname": "item_name", 42 | "oldfieldtype": "Data", 43 | "print_hide": 1, 44 | "print_width": "150", 45 | "reqd": 1, 46 | "width": "150" 47 | }, 48 | { 49 | "columns": 1, 50 | "fieldname": "qty", 51 | "fieldtype": "Float", 52 | "in_list_view": 1, 53 | "label": "Quantity", 54 | "non_negative": 1, 55 | "oldfieldname": "qty", 56 | "oldfieldtype": "Currency", 57 | "print_width": "100px", 58 | "reqd": 1, 59 | "width": "100px" 60 | }, 61 | { 62 | "fieldname": "uom", 63 | "fieldtype": "Link", 64 | "label": "UOM", 65 | "options": "UOM", 66 | "reqd": 1 67 | }, 68 | { 69 | "columns": 2, 70 | "depends_on": "eval: doc.type != \"\"", 71 | "fieldname": "rate", 72 | "fieldtype": "Currency", 73 | "in_list_view": 1, 74 | "label": "Rate", 75 | "oldfieldname": "export_rate", 76 | "oldfieldtype": "Currency", 77 | "options": "currency", 78 | "print_width": "100px", 79 | "width": "100px" 80 | }, 81 | { 82 | "columns": 2, 83 | "fieldname": "amount", 84 | "fieldtype": "Currency", 85 | "in_list_view": 1, 86 | "label": "Amount", 87 | "oldfieldname": "export_amount", 88 | "oldfieldtype": "Currency", 89 | "options": "currency", 90 | "print_width": "100px", 91 | "read_only": 1, 92 | "width": "100px" 93 | } 94 | ], 95 | "istable": 1, 96 | "links": [], 97 | "modified": "2025-08-23 16:39:59.583683", 98 | "modified_by": "Administrator", 99 | "module": "Medusa Integration", 100 | "name": "Returned Sales Order Item", 101 | "naming_rule": "Random", 102 | "owner": "Administrator", 103 | "permissions": [], 104 | "sort_field": "modified", 105 | "sort_order": "DESC", 106 | "states": [], 107 | "track_changes": 1 108 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/brand.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2024-10-14 14:50:46.956072", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Brand", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "medusa_id", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 1, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "brand", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Medusa ID", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2024-10-14 14:51:17.504468", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Brand-custom_medusa_id", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 1, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 0, 64 | "unique": 0, 65 | "width": null 66 | } 67 | ], 68 | "custom_perms": [], 69 | "doctype": "Brand", 70 | "links": [], 71 | "property_setters": [ 72 | { 73 | "_assign": null, 74 | "_comments": null, 75 | "_liked_by": null, 76 | "_user_tags": null, 77 | "creation": "2024-10-14 14:50:46.323115", 78 | "default_value": null, 79 | "doc_type": "Brand", 80 | "docstatus": 0, 81 | "doctype_or_field": "DocType", 82 | "field_name": null, 83 | "idx": 0, 84 | "is_system_generated": 0, 85 | "modified": "2024-10-14 14:50:46.323115", 86 | "modified_by": "Administrator", 87 | "module": null, 88 | "name": "Brand-main-field_order", 89 | "owner": "Administrator", 90 | "parent": null, 91 | "parentfield": null, 92 | "parenttype": null, 93 | "property": "field_order", 94 | "property_type": "Data", 95 | "row_name": null, 96 | "value": "[\"brand\", null, \"image\", \"description\", \"defaults\", \"brand_defaults\"]" 97 | } 98 | ], 99 | "sync_on_migrate": 1 100 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/medusa_configuration/medusa_configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2024-05-22 16:08:43.155182", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "engine": "InnoDB", 8 | "field_order": [ 9 | "enable", 10 | "url", 11 | "frontend_url", 12 | "admin_email", 13 | "admin_password", 14 | "access_token", 15 | "section_break_vuwpv", 16 | "allow_coupon_discounts", 17 | "cart_value", 18 | "discount_amount", 19 | "coupon_expiry_date" 20 | ], 21 | "fields": [ 22 | { 23 | "default": "0", 24 | "fieldname": "enable", 25 | "fieldtype": "Check", 26 | "label": "Enable" 27 | }, 28 | { 29 | "depends_on": "eval:doc.enable", 30 | "fieldname": "url", 31 | "fieldtype": "Data", 32 | "label": "Backend URL" 33 | }, 34 | { 35 | "depends_on": "eval:doc.enable", 36 | "fieldname": "admin_email", 37 | "fieldtype": "Data", 38 | "label": "Admin Email" 39 | }, 40 | { 41 | "depends_on": "eval:doc.enable", 42 | "fieldname": "admin_password", 43 | "fieldtype": "Password", 44 | "label": "Admin Password" 45 | }, 46 | { 47 | "fieldname": "access_token", 48 | "fieldtype": "Data", 49 | "hidden": 1, 50 | "label": "Access Token" 51 | }, 52 | { 53 | "fieldname": "frontend_url", 54 | "fieldtype": "Data", 55 | "label": "Frontend URL" 56 | }, 57 | { 58 | "fieldname": "section_break_vuwpv", 59 | "fieldtype": "Section Break", 60 | "label": "Coupon Discount Details" 61 | }, 62 | { 63 | "description": "The minimum order amount to enable coupon", 64 | "fieldname": "cart_value", 65 | "fieldtype": "Currency", 66 | "in_list_view": 1, 67 | "label": "Cart Value", 68 | "precision": "3" 69 | }, 70 | { 71 | "fieldname": "discount_amount", 72 | "fieldtype": "Currency", 73 | "in_list_view": 1, 74 | "label": "Discount Amount" 75 | }, 76 | { 77 | "fieldname": "coupon_expiry_date", 78 | "fieldtype": "Date", 79 | "in_list_view": 1, 80 | "label": "Coupon Expiry Date" 81 | }, 82 | { 83 | "default": "0", 84 | "fieldname": "allow_coupon_discounts", 85 | "fieldtype": "Check", 86 | "label": "Allow Coupon Discounts?" 87 | } 88 | ], 89 | "index_web_pages_for_search": 1, 90 | "issingle": 1, 91 | "links": [], 92 | "modified": "2025-11-29 11:29:36.961028", 93 | "modified_by": "Administrator", 94 | "module": "Medusa Integration", 95 | "name": "Medusa Configuration", 96 | "owner": "Administrator", 97 | "permissions": [ 98 | { 99 | "create": 1, 100 | "delete": 1, 101 | "email": 1, 102 | "print": 1, 103 | "read": 1, 104 | "role": "System Manager", 105 | "share": 1, 106 | "write": 1 107 | } 108 | ], 109 | "sort_field": "modified", 110 | "sort_order": "DESC", 111 | "states": [] 112 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/unapproved_quotation_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2023-12-20 11:36:37.825239", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Unapproved Quotation Item", 20 | "fetch_from": "item_code.item_name", 21 | "fetch_if_empty": 0, 22 | "fieldname": "custom_item_name", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 2, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 1, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "item_code", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Item Name", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2023-12-20 11:36:37.825239", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Unapproved Quotation Item-custom_item_name", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 0, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 0, 64 | "unique": 0, 65 | "width": null 66 | } 67 | ], 68 | "custom_perms": [], 69 | "doctype": "Unapproved Quotation Item", 70 | "links": [], 71 | "property_setters": [ 72 | { 73 | "_assign": null, 74 | "_comments": null, 75 | "_liked_by": null, 76 | "_user_tags": null, 77 | "creation": "2023-12-20 11:36:58.122568", 78 | "default_value": null, 79 | "doc_type": "Unapproved Quotation Item", 80 | "docstatus": 0, 81 | "doctype_or_field": "DocType", 82 | "field_name": null, 83 | "idx": 0, 84 | "is_system_generated": 0, 85 | "modified": "2024-12-30 10:01:41.919086", 86 | "modified_by": "Administrator", 87 | "module": null, 88 | "name": "Unapproved Quotation Item-main-field_order", 89 | "owner": "Administrator", 90 | "parent": null, 91 | "parentfield": null, 92 | "parenttype": null, 93 | "property": "field_order", 94 | "property_type": "Data", 95 | "row_name": null, 96 | "value": "[\"item_code\", \"custom_item_name\", \"qty\", \"uom\", \"rate\"]" 97 | } 98 | ], 99 | "sync_on_migrate": 1 100 | } -------------------------------------------------------------------------------- /medusa_integration/custom_sales_order.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe import _, bold, throw 3 | from frappe.utils import flt, get_link_to_form 4 | 5 | from erpnext.selling.doctype.sales_order.sales_order import SalesOrder 6 | 7 | class CustomSalesOrder(SalesOrder): 8 | def validate_selling_price(self): 9 | if self.from_ecommerce: 10 | return 11 | 12 | def throw_message(idx, item_name, rate, ref_rate_field): 13 | throw( 14 | _( 15 | """Row #{0}: Selling rate for item {1} is lower than its {2}. 16 | Selling {3} should be atleast {4}.

Alternatively, 17 | you can disable selling price validation in {5} to bypass 18 | this validation.""" 19 | ).format( 20 | idx, 21 | bold(item_name), 22 | bold(ref_rate_field), 23 | bold("net rate"), 24 | bold(rate), 25 | get_link_to_form("Selling Settings", "Selling Settings"), 26 | ), 27 | title=_("Invalid Selling Price"), 28 | ) 29 | 30 | if self.get("is_return") or not frappe.db.get_single_value( 31 | "Selling Settings", "validate_selling_price" 32 | ): 33 | return 34 | 35 | is_internal_customer = self.get("is_internal_customer") 36 | valuation_rate_map = {} 37 | 38 | for item in self.items: 39 | if not item.item_code or item.is_free_item: 40 | continue 41 | 42 | last_purchase_rate, is_stock_item = frappe.get_cached_value( 43 | "Item", item.item_code, ("last_purchase_rate", "is_stock_item") 44 | ) 45 | 46 | last_purchase_rate_in_sales_uom = last_purchase_rate * (item.conversion_factor or 1) 47 | 48 | if flt(item.base_net_rate) < flt(last_purchase_rate_in_sales_uom): 49 | throw_message(item.idx, item.item_name, last_purchase_rate_in_sales_uom, "last purchase rate") 50 | 51 | if is_internal_customer or not is_stock_item: 52 | continue 53 | 54 | valuation_rate_map[(item.item_code, item.warehouse)] = None 55 | 56 | if not valuation_rate_map: 57 | return 58 | 59 | or_conditions = ( 60 | f"""(item_code = {frappe.db.escape(valuation_rate[0])} 61 | and warehouse = {frappe.db.escape(valuation_rate[1])})""" 62 | for valuation_rate in valuation_rate_map 63 | ) 64 | 65 | valuation_rates = frappe.db.sql( 66 | f""" 67 | select 68 | item_code, warehouse, valuation_rate 69 | from 70 | `tabBin` 71 | where 72 | ({" or ".join(or_conditions)}) 73 | and valuation_rate > 0 74 | """, 75 | as_dict=True, 76 | ) 77 | 78 | for rate in valuation_rates: 79 | valuation_rate_map[(rate.item_code, rate.warehouse)] = rate.valuation_rate 80 | 81 | for item in self.items: 82 | if not item.item_code or item.is_free_item: 83 | continue 84 | 85 | last_valuation_rate = valuation_rate_map.get((item.item_code, item.warehouse)) 86 | 87 | if not last_valuation_rate: 88 | continue 89 | 90 | last_valuation_rate_in_sales_uom = last_valuation_rate * (item.conversion_factor or 1) 91 | 92 | if flt(item.base_net_rate) < flt(last_valuation_rate_in_sales_uom): 93 | throw_message( 94 | item.idx, 95 | item.item_name, 96 | last_valuation_rate_in_sales_uom, 97 | "valuation rate (Moving Average)", 98 | ) 99 | -------------------------------------------------------------------------------- /medusa_integration/custom_delivery_note.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe import _, bold, throw 3 | from frappe.utils import flt, get_link_to_form 4 | 5 | from erpnext.stock.doctype.delivery_note.delivery_note import DeliveryNote 6 | 7 | class CustomDeliveryNote(DeliveryNote): 8 | def validate_selling_price(self): 9 | if self.from_ecommerce: 10 | return 11 | 12 | def throw_message(idx, item_name, rate, ref_rate_field): 13 | throw( 14 | _( 15 | """Row #{0}: Selling rate for item {1} is lower than its {2}. 16 | Selling {3} should be atleast {4}.

Alternatively, 17 | you can disable selling price validation in {5} to bypass 18 | this validation.""" 19 | ).format( 20 | idx, 21 | bold(item_name), 22 | bold(ref_rate_field), 23 | bold("net rate"), 24 | bold(rate), 25 | get_link_to_form("Selling Settings", "Selling Settings"), 26 | ), 27 | title=_("Invalid Selling Price"), 28 | ) 29 | 30 | if self.get("is_return") or not frappe.db.get_single_value( 31 | "Selling Settings", "validate_selling_price" 32 | ): 33 | return 34 | 35 | is_internal_customer = self.get("is_internal_customer") 36 | valuation_rate_map = {} 37 | 38 | for item in self.items: 39 | if not item.item_code or item.is_free_item: 40 | continue 41 | 42 | last_purchase_rate, is_stock_item = frappe.get_cached_value( 43 | "Item", item.item_code, ("last_purchase_rate", "is_stock_item") 44 | ) 45 | 46 | last_purchase_rate_in_sales_uom = last_purchase_rate * (item.conversion_factor or 1) 47 | 48 | if flt(item.base_net_rate) < flt(last_purchase_rate_in_sales_uom): 49 | throw_message(item.idx, item.item_name, last_purchase_rate_in_sales_uom, "last purchase rate") 50 | 51 | if is_internal_customer or not is_stock_item: 52 | continue 53 | 54 | valuation_rate_map[(item.item_code, item.warehouse)] = None 55 | 56 | if not valuation_rate_map: 57 | return 58 | 59 | or_conditions = ( 60 | f"""(item_code = {frappe.db.escape(valuation_rate[0])} 61 | and warehouse = {frappe.db.escape(valuation_rate[1])})""" 62 | for valuation_rate in valuation_rate_map 63 | ) 64 | 65 | valuation_rates = frappe.db.sql( 66 | f""" 67 | select 68 | item_code, warehouse, valuation_rate 69 | from 70 | `tabBin` 71 | where 72 | ({" or ".join(or_conditions)}) 73 | and valuation_rate > 0 74 | """, 75 | as_dict=True, 76 | ) 77 | 78 | for rate in valuation_rates: 79 | valuation_rate_map[(rate.item_code, rate.warehouse)] = rate.valuation_rate 80 | 81 | for item in self.items: 82 | if not item.item_code or item.is_free_item: 83 | continue 84 | 85 | last_valuation_rate = valuation_rate_map.get((item.item_code, item.warehouse)) 86 | 87 | if not last_valuation_rate: 88 | continue 89 | 90 | last_valuation_rate_in_sales_uom = last_valuation_rate * (item.conversion_factor or 1) 91 | 92 | if flt(item.base_net_rate) < flt(last_valuation_rate_in_sales_uom): 93 | throw_message( 94 | item.idx, 95 | item.item_name, 96 | last_valuation_rate_in_sales_uom, 97 | "valuation rate (Moving Average)", 98 | ) 99 | -------------------------------------------------------------------------------- /medusa_integration/custom_sales_invoice.py: -------------------------------------------------------------------------------- 1 | import frappe 2 | from frappe import _, bold, throw 3 | from frappe.utils import flt, get_link_to_form 4 | 5 | from erpnext.accounts.doctype.sales_invoice.sales_invoice import SalesInvoice 6 | 7 | class CustomSalesInvoice(SalesInvoice): 8 | def validate_selling_price(self): 9 | if self.from_ecommerce: 10 | return 11 | 12 | def throw_message(idx, item_name, rate, ref_rate_field): 13 | throw( 14 | _( 15 | """Row #{0}: Selling rate for item {1} is lower than its {2}. 16 | Selling {3} should be atleast {4}.

Alternatively, 17 | you can disable selling price validation in {5} to bypass 18 | this validation.""" 19 | ).format( 20 | idx, 21 | bold(item_name), 22 | bold(ref_rate_field), 23 | bold("net rate"), 24 | bold(rate), 25 | get_link_to_form("Selling Settings", "Selling Settings"), 26 | ), 27 | title=_("Invalid Selling Price"), 28 | ) 29 | 30 | if self.get("is_return") or not frappe.db.get_single_value( 31 | "Selling Settings", "validate_selling_price" 32 | ): 33 | return 34 | 35 | is_internal_customer = self.get("is_internal_customer") 36 | valuation_rate_map = {} 37 | 38 | for item in self.items: 39 | if not item.item_code or item.is_free_item: 40 | continue 41 | 42 | last_purchase_rate, is_stock_item = frappe.get_cached_value( 43 | "Item", item.item_code, ("last_purchase_rate", "is_stock_item") 44 | ) 45 | 46 | last_purchase_rate_in_sales_uom = last_purchase_rate * (item.conversion_factor or 1) 47 | 48 | if flt(item.base_net_rate) < flt(last_purchase_rate_in_sales_uom): 49 | throw_message(item.idx, item.item_name, last_purchase_rate_in_sales_uom, "last purchase rate") 50 | 51 | if is_internal_customer or not is_stock_item: 52 | continue 53 | 54 | valuation_rate_map[(item.item_code, item.warehouse)] = None 55 | 56 | if not valuation_rate_map: 57 | return 58 | 59 | or_conditions = ( 60 | f"""(item_code = {frappe.db.escape(valuation_rate[0])} 61 | and warehouse = {frappe.db.escape(valuation_rate[1])})""" 62 | for valuation_rate in valuation_rate_map 63 | ) 64 | 65 | valuation_rates = frappe.db.sql( 66 | f""" 67 | select 68 | item_code, warehouse, valuation_rate 69 | from 70 | `tabBin` 71 | where 72 | ({" or ".join(or_conditions)}) 73 | and valuation_rate > 0 74 | """, 75 | as_dict=True, 76 | ) 77 | 78 | for rate in valuation_rates: 79 | valuation_rate_map[(rate.item_code, rate.warehouse)] = rate.valuation_rate 80 | 81 | for item in self.items: 82 | if not item.item_code or item.is_free_item: 83 | continue 84 | 85 | last_valuation_rate = valuation_rate_map.get((item.item_code, item.warehouse)) 86 | 87 | if not last_valuation_rate: 88 | continue 89 | 90 | last_valuation_rate_in_sales_uom = last_valuation_rate * (item.conversion_factor or 1) 91 | 92 | if flt(item.base_net_rate) < flt(last_valuation_rate_in_sales_uom): 93 | throw_message( 94 | item.idx, 95 | item.item_name, 96 | last_valuation_rate_in_sales_uom, 97 | "valuation rate (Moving Average)", 98 | ) 99 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/doctype/homepage_landing/homepage_landing.json: -------------------------------------------------------------------------------- 1 | { 2 | "actions": [], 3 | "allow_rename": 1, 4 | "creation": "2025-01-21 13:54:39.772894", 5 | "default_view": "List", 6 | "doctype": "DocType", 7 | "editable_grid": 1, 8 | "engine": "InnoDB", 9 | "field_order": [ 10 | "menu_section", 11 | "top_section", 12 | "top_sellers", 13 | "recommended_items", 14 | "trending_items", 15 | "new_arrivals", 16 | "dental_items", 17 | "medical_items", 18 | "medical_laboratory_items", 19 | "infection_control_items", 20 | "order", 21 | "banners", 22 | "testimonials", 23 | "urls", 24 | "product_details_banner", 25 | "clearance_items", 26 | "best_deals" 27 | ], 28 | "fields": [ 29 | { 30 | "fieldname": "recommended_items", 31 | "fieldtype": "Table", 32 | "label": " Recommended Items", 33 | "options": "Recommended Items" 34 | }, 35 | { 36 | "fieldname": "order", 37 | "fieldtype": "Table", 38 | "label": "Order", 39 | "options": "Homepage Order" 40 | }, 41 | { 42 | "fieldname": "urls", 43 | "fieldtype": "Table", 44 | "label": "Youtube URLs", 45 | "options": "Youtube Videos" 46 | }, 47 | { 48 | "fieldname": "top_section", 49 | "fieldtype": "Table", 50 | "label": "Top section", 51 | "options": "Item and Brand Entry" 52 | }, 53 | { 54 | "fieldname": "dental_items", 55 | "fieldtype": "Table", 56 | "label": "Dental Items", 57 | "options": "Homepage Item" 58 | }, 59 | { 60 | "fieldname": "medical_items", 61 | "fieldtype": "Table", 62 | "label": "Medical Items", 63 | "options": "Homepage Item" 64 | }, 65 | { 66 | "fieldname": "medical_laboratory_items", 67 | "fieldtype": "Table", 68 | "label": "Medical Laboratory Items", 69 | "options": "Homepage Item" 70 | }, 71 | { 72 | "fieldname": "infection_control_items", 73 | "fieldtype": "Table", 74 | "label": "Infection Control Items", 75 | "options": "Homepage Item" 76 | }, 77 | { 78 | "fieldname": "trending_items", 79 | "fieldtype": "Table", 80 | "label": "Trending Items", 81 | "options": "Homepage Item" 82 | }, 83 | { 84 | "fieldname": "new_arrivals", 85 | "fieldtype": "Table", 86 | "label": "New Arrivals", 87 | "options": "Homepage Item" 88 | }, 89 | { 90 | "fieldname": "banners", 91 | "fieldtype": "Table", 92 | "label": "Homepage Banners", 93 | "options": "Homepage Banner" 94 | }, 95 | { 96 | "fieldname": "testimonials", 97 | "fieldtype": "Table", 98 | "label": "Testimonials", 99 | "options": "Testimonial" 100 | }, 101 | { 102 | "fieldname": "product_details_banner", 103 | "fieldtype": "Table", 104 | "label": "Product Listing Banners", 105 | "options": "Product details banner" 106 | }, 107 | { 108 | "fieldname": "menu_section", 109 | "fieldtype": "Table", 110 | "label": "Menu section (Do not add brands here)", 111 | "options": "Item and Brand Entry" 112 | }, 113 | { 114 | "fieldname": "top_sellers", 115 | "fieldtype": "Table", 116 | "label": "Top Sellers", 117 | "options": "Homepage Item" 118 | }, 119 | { 120 | "fieldname": "clearance_items", 121 | "fieldtype": "Table", 122 | "label": "Clearance Items", 123 | "options": "Homepage Item" 124 | }, 125 | { 126 | "fieldname": "best_deals", 127 | "fieldtype": "Table", 128 | "label": "Best Deals", 129 | "options": "Best Deals" 130 | } 131 | ], 132 | "index_web_pages_for_search": 1, 133 | "links": [], 134 | "modified": "2025-04-09 10:36:53.219215", 135 | "modified_by": "Administrator", 136 | "module": "Medusa Integration", 137 | "name": "Homepage Landing", 138 | "owner": "Administrator", 139 | "permissions": [ 140 | { 141 | "create": 1, 142 | "delete": 1, 143 | "email": 1, 144 | "export": 1, 145 | "print": 1, 146 | "read": 1, 147 | "report": 1, 148 | "role": "System Manager", 149 | "share": 1, 150 | "write": 1 151 | } 152 | ], 153 | "sort_field": "modified", 154 | "sort_order": "DESC", 155 | "states": [] 156 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/sales_taxes_and_charges.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2022-03-30 13:36:50.676464", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Sales Taxes and Charges", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "department", 23 | "fieldtype": "Link", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 9, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "accounting_dimensions_section", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Department", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2022-03-30 13:36:50.676464", 42 | "modified_by": "dharmesh@erpnext.com", 43 | "module": null, 44 | "name": "Sales Taxes and Charges-department", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": "Department", 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 0, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 0, 64 | "unique": 0, 65 | "width": null 66 | }, 67 | { 68 | "_assign": null, 69 | "_comments": null, 70 | "_liked_by": null, 71 | "_user_tags": null, 72 | "allow_in_quick_entry": 0, 73 | "allow_on_submit": 0, 74 | "bold": 0, 75 | "collapsible": 0, 76 | "collapsible_depends_on": null, 77 | "columns": 0, 78 | "creation": "2022-01-21 15:57:26.932789", 79 | "default": null, 80 | "depends_on": null, 81 | "description": null, 82 | "docstatus": 0, 83 | "dt": "Sales Taxes and Charges", 84 | "fetch_from": null, 85 | "fetch_if_empty": 0, 86 | "fieldname": "foc_tax", 87 | "fieldtype": "Check", 88 | "hidden": 0, 89 | "hide_border": 0, 90 | "hide_days": 0, 91 | "hide_seconds": 0, 92 | "idx": 3, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_preview": 0, 98 | "in_standard_filter": 0, 99 | "insert_after": "account_head", 100 | "is_system_generated": 0, 101 | "is_virtual": 0, 102 | "label": "FOC Tax", 103 | "length": 0, 104 | "mandatory_depends_on": null, 105 | "modified": "2022-01-21 15:57:26.932789", 106 | "modified_by": "Administrator", 107 | "module": null, 108 | "name": "Sales Taxes and Charges-foc_tax", 109 | "no_copy": 0, 110 | "non_negative": 0, 111 | "options": null, 112 | "owner": "Administrator", 113 | "parent": null, 114 | "parentfield": null, 115 | "parenttype": null, 116 | "permlevel": 0, 117 | "precision": "", 118 | "print_hide": 0, 119 | "print_hide_if_no_value": 0, 120 | "print_width": null, 121 | "read_only": 1, 122 | "read_only_depends_on": null, 123 | "report_hide": 0, 124 | "reqd": 0, 125 | "search_index": 0, 126 | "sort_options": 0, 127 | "translatable": 0, 128 | "unique": 0, 129 | "width": null 130 | }, 131 | { 132 | "_assign": null, 133 | "_comments": null, 134 | "_liked_by": null, 135 | "_user_tags": null, 136 | "allow_in_quick_entry": 0, 137 | "allow_on_submit": 0, 138 | "bold": 0, 139 | "collapsible": 0, 140 | "collapsible_depends_on": null, 141 | "columns": 0, 142 | "creation": "2021-11-10 18:55:04.765077", 143 | "default": null, 144 | "depends_on": null, 145 | "description": null, 146 | "docstatus": 0, 147 | "dt": "Sales Taxes and Charges", 148 | "fetch_from": null, 149 | "fetch_if_empty": 0, 150 | "fieldname": "item_group", 151 | "fieldtype": "Link", 152 | "hidden": 0, 153 | "hide_border": 0, 154 | "hide_days": 0, 155 | "hide_seconds": 0, 156 | "idx": 8, 157 | "ignore_user_permissions": 0, 158 | "ignore_xss_filter": 0, 159 | "in_global_search": 0, 160 | "in_list_view": 0, 161 | "in_preview": 0, 162 | "in_standard_filter": 0, 163 | "insert_after": "accounting_dimensions_section", 164 | "is_system_generated": 1, 165 | "is_virtual": 0, 166 | "label": "Item Group", 167 | "length": 0, 168 | "mandatory_depends_on": null, 169 | "modified": "2021-11-10 18:55:04.765077", 170 | "modified_by": "accounts@alfarsi.me", 171 | "module": null, 172 | "name": "Sales Taxes and Charges-item_group", 173 | "no_copy": 0, 174 | "non_negative": 0, 175 | "options": "Item Group", 176 | "owner": "Administrator", 177 | "parent": null, 178 | "parentfield": null, 179 | "parenttype": null, 180 | "permlevel": 0, 181 | "precision": "", 182 | "print_hide": 0, 183 | "print_hide_if_no_value": 0, 184 | "print_width": null, 185 | "read_only": 0, 186 | "read_only_depends_on": null, 187 | "report_hide": 0, 188 | "reqd": 0, 189 | "search_index": 0, 190 | "sort_options": 0, 191 | "translatable": 0, 192 | "unique": 0, 193 | "width": null 194 | } 195 | ], 196 | "custom_perms": [], 197 | "doctype": "Sales Taxes and Charges", 198 | "links": [], 199 | "property_setters": [], 200 | "sync_on_migrate": 1 201 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/item_price.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2024-05-27 13:14:41.025871", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Item Price", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "medusa_price_id", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 5, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "medusa_id", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Medusa Price ID", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2024-05-27 13:15:08.264119", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Item Price-custom_medusa_price_id", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 1, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "show_dashboard": 0, 63 | "sort_options": 0, 64 | "translatable": 0, 65 | "unique": 0, 66 | "width": null 67 | }, 68 | { 69 | "_assign": null, 70 | "_comments": null, 71 | "_liked_by": null, 72 | "_user_tags": null, 73 | "allow_in_quick_entry": 0, 74 | "allow_on_submit": 0, 75 | "bold": 0, 76 | "collapsible": 0, 77 | "collapsible_depends_on": null, 78 | "columns": 0, 79 | "creation": "2024-05-23 16:51:35.685264", 80 | "default": null, 81 | "depends_on": null, 82 | "description": null, 83 | "docstatus": 0, 84 | "dt": "Item Price", 85 | "fetch_from": null, 86 | "fetch_if_empty": 0, 87 | "fieldname": "medusa_id", 88 | "fieldtype": "Data", 89 | "hidden": 0, 90 | "hide_border": 0, 91 | "hide_days": 0, 92 | "hide_seconds": 0, 93 | "idx": 4, 94 | "ignore_user_permissions": 0, 95 | "ignore_xss_filter": 0, 96 | "in_global_search": 0, 97 | "in_list_view": 0, 98 | "in_preview": 0, 99 | "in_standard_filter": 0, 100 | "insert_after": "packing_unit", 101 | "is_system_generated": 0, 102 | "is_virtual": 0, 103 | "label": "Medusa ID", 104 | "length": 0, 105 | "mandatory_depends_on": null, 106 | "modified": "2024-05-23 18:21:30.068589", 107 | "modified_by": "Administrator", 108 | "module": null, 109 | "name": "Item Price-custom_medusa_pricelist_id", 110 | "no_copy": 0, 111 | "non_negative": 0, 112 | "options": null, 113 | "owner": "Administrator", 114 | "parent": null, 115 | "parentfield": null, 116 | "parenttype": null, 117 | "permlevel": 0, 118 | "precision": "", 119 | "print_hide": 0, 120 | "print_hide_if_no_value": 0, 121 | "print_width": null, 122 | "read_only": 1, 123 | "read_only_depends_on": null, 124 | "report_hide": 0, 125 | "reqd": 0, 126 | "search_index": 0, 127 | "show_dashboard": 0, 128 | "sort_options": 0, 129 | "translatable": 0, 130 | "unique": 0, 131 | "width": null 132 | } 133 | ], 134 | "custom_perms": [], 135 | "doctype": "Item Price", 136 | "links": [], 137 | "property_setters": [ 138 | { 139 | "_assign": null, 140 | "_comments": null, 141 | "_liked_by": null, 142 | "_user_tags": null, 143 | "creation": "2024-05-27 13:14:40.756994", 144 | "default_value": null, 145 | "doc_type": "Item Price", 146 | "docstatus": 0, 147 | "doctype_or_field": "DocType", 148 | "field_name": null, 149 | "idx": 0, 150 | "is_system_generated": 0, 151 | "modified": "2024-05-27 13:14:40.756994", 152 | "modified_by": "Administrator", 153 | "module": null, 154 | "name": "Item Price-main-field_order", 155 | "owner": "Administrator", 156 | "parent": null, 157 | "parentfield": null, 158 | "parenttype": null, 159 | "property": "field_order", 160 | "property_type": "Data", 161 | "row_name": null, 162 | "value": "[\"item_code\", \"uom\", \"packing_unit\", \"medusa_id\", \"medusa_price_id\", \"column_break_17\", \"item_name\", \"brand\", \"item_description\", \"price_list_details\", \"price_list\", \"customer\", \"supplier\", \"batch_no\", \"column_break_3\", \"buying\", \"selling\", \"item_details\", \"currency\", \"col_br_1\", \"price_list_rate\", \"section_break_15\", \"valid_from\", \"lead_time_days\", \"column_break_18\", \"valid_upto\", \"section_break_24\", \"note\", \"reference\"]" 163 | }, 164 | { 165 | "_assign": null, 166 | "_comments": null, 167 | "_liked_by": null, 168 | "_user_tags": null, 169 | "creation": "2019-12-14 12:15:15.206188", 170 | "default_value": null, 171 | "doc_type": "Item Price", 172 | "docstatus": 0, 173 | "doctype_or_field": "DocField", 174 | "field_name": "price_list_rate", 175 | "idx": 0, 176 | "is_system_generated": 1, 177 | "modified": "2019-12-14 12:15:15.206188", 178 | "modified_by": "Administrator", 179 | "module": null, 180 | "name": "Item Price-price_list_rate-precision", 181 | "owner": "Administrator", 182 | "parent": null, 183 | "parentfield": null, 184 | "parenttype": null, 185 | "property": "precision", 186 | "property_type": "Select", 187 | "row_name": null, 188 | "value": "5" 189 | } 190 | ], 191 | "sync_on_migrate": 1 192 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/item_group.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2025-05-11 14:34:32.162799", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Item Group", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "custom_cost_percentage", 23 | "fieldtype": "Percent", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 12, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "taxes", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Cost Percentage", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2025-05-11 14:34:32.162799", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Item Group-custom_cost_percentage", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 0, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 0, 64 | "unique": 0, 65 | "width": null 66 | }, 67 | { 68 | "_assign": null, 69 | "_comments": null, 70 | "_liked_by": null, 71 | "_user_tags": null, 72 | "allow_in_quick_entry": 0, 73 | "allow_on_submit": 0, 74 | "bold": 0, 75 | "collapsible": 0, 76 | "collapsible_depends_on": null, 77 | "columns": 0, 78 | "creation": "2024-05-23 17:09:21.213411", 79 | "default": null, 80 | "depends_on": null, 81 | "description": null, 82 | "docstatus": 0, 83 | "dt": "Item Group", 84 | "fetch_from": null, 85 | "fetch_if_empty": 0, 86 | "fieldname": "medusa_id", 87 | "fieldtype": "Data", 88 | "hidden": 0, 89 | "hide_border": 0, 90 | "hide_days": 0, 91 | "hide_seconds": 0, 92 | "idx": 6, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_preview": 0, 98 | "in_standard_filter": 0, 99 | "insert_after": "custom_medusa_route", 100 | "is_system_generated": 0, 101 | "is_virtual": 0, 102 | "label": "Medusa ID", 103 | "length": 0, 104 | "mandatory_depends_on": null, 105 | "modified": "2024-05-23 17:09:59.642213", 106 | "modified_by": "logesh@aerele.in", 107 | "module": null, 108 | "name": "Item Group-custom_medusa_id", 109 | "no_copy": 0, 110 | "non_negative": 0, 111 | "options": null, 112 | "owner": "logesh@aerele.in", 113 | "parent": null, 114 | "parentfield": null, 115 | "parenttype": null, 116 | "permlevel": 0, 117 | "precision": "", 118 | "print_hide": 0, 119 | "print_hide_if_no_value": 0, 120 | "print_width": null, 121 | "read_only": 1, 122 | "read_only_depends_on": null, 123 | "report_hide": 0, 124 | "reqd": 0, 125 | "search_index": 0, 126 | "sort_options": 0, 127 | "translatable": 0, 128 | "unique": 0, 129 | "width": null 130 | }, 131 | { 132 | "_assign": null, 133 | "_comments": null, 134 | "_liked_by": null, 135 | "_user_tags": null, 136 | "allow_in_quick_entry": 0, 137 | "allow_on_submit": 0, 138 | "bold": 0, 139 | "collapsible": 0, 140 | "collapsible_depends_on": null, 141 | "columns": 0, 142 | "creation": "2025-01-27 09:25:42.560311", 143 | "default": null, 144 | "depends_on": null, 145 | "description": null, 146 | "docstatus": 0, 147 | "dt": "Item Group", 148 | "fetch_from": null, 149 | "fetch_if_empty": 0, 150 | "fieldname": "custom_medusa_route", 151 | "fieldtype": "Data", 152 | "hidden": 1, 153 | "hide_border": 0, 154 | "hide_days": 0, 155 | "hide_seconds": 0, 156 | "idx": 5, 157 | "ignore_user_permissions": 0, 158 | "ignore_xss_filter": 0, 159 | "in_global_search": 0, 160 | "in_list_view": 0, 161 | "in_preview": 0, 162 | "in_standard_filter": 0, 163 | "insert_after": "is_group", 164 | "is_system_generated": 0, 165 | "is_virtual": 0, 166 | "label": "Medusa Route", 167 | "length": 0, 168 | "mandatory_depends_on": null, 169 | "modified": "2025-01-27 09:25:42.560311", 170 | "modified_by": "Administrator", 171 | "module": null, 172 | "name": "Item Group-custom_medusa_route", 173 | "no_copy": 0, 174 | "non_negative": 0, 175 | "options": null, 176 | "owner": "Administrator", 177 | "parent": null, 178 | "parentfield": null, 179 | "parenttype": null, 180 | "permlevel": 0, 181 | "precision": "", 182 | "print_hide": 0, 183 | "print_hide_if_no_value": 0, 184 | "print_width": null, 185 | "read_only": 1, 186 | "read_only_depends_on": null, 187 | "report_hide": 0, 188 | "reqd": 0, 189 | "search_index": 0, 190 | "sort_options": 0, 191 | "translatable": 0, 192 | "unique": 0, 193 | "width": null 194 | } 195 | ], 196 | "custom_perms": [], 197 | "doctype": "Item Group", 198 | "links": [], 199 | "property_setters": [ 200 | { 201 | "_assign": null, 202 | "_comments": null, 203 | "_liked_by": null, 204 | "_user_tags": null, 205 | "creation": "2025-05-11 14:34:31.801030", 206 | "default_value": null, 207 | "doc_type": "Item Group", 208 | "docstatus": 0, 209 | "doctype_or_field": "DocType", 210 | "field_name": null, 211 | "idx": 0, 212 | "is_system_generated": 0, 213 | "modified": "2025-05-11 14:34:31.801030", 214 | "modified_by": "Administrator", 215 | "module": null, 216 | "name": "Item Group-main-field_order", 217 | "owner": "Administrator", 218 | "parent": null, 219 | "parentfield": null, 220 | "parenttype": null, 221 | "property": "field_order", 222 | "property_type": "Data", 223 | "row_name": null, 224 | "value": "[\"gs\", \"item_group_name\", \"parent_item_group\", \"is_group\", \"custom_medusa_route\", \"medusa_id\", \"image\", \"column_break_5\", \"defaults\", \"item_group_defaults\", \"sec_break_taxes\", \"taxes\", null, \"sb9\", \"route\", \"website_title\", \"description\", \"show_in_website\", \"include_descendants\", \"column_break_16\", \"weightage\", \"slideshow\", \"website_specifications\", \"website_filters_section\", \"filter_fields\", \"filter_attributes\", \"lft\", \"old_parent\", \"rgt\"]" 225 | } 226 | ], 227 | "sync_on_migrate": 1 228 | } -------------------------------------------------------------------------------- /medusa_integration/hooks.py: -------------------------------------------------------------------------------- 1 | app_name = "medusa_integration" 2 | app_title = "Medusa Integration" 3 | app_publisher = "Aerele Technologies" 4 | app_description = "Medusa Integration with ERP" 5 | app_email = "hello@aerele.in" 6 | app_license = "mit" 7 | # required_apps = [] 8 | 9 | # Includes in 10 | # ------------------ 11 | 12 | # include js, css files in header of desk.html 13 | # app_include_css = "/assets/medusa_integration/css/medusa_integration.css" 14 | # app_include_js = "/assets/medusa_integration/js/medusa_integration.js" 15 | 16 | # include js, css files in header of web template 17 | # web_include_css = "/assets/medusa_integration/css/medusa_integration.css" 18 | # web_include_js = "/assets/medusa_integration/js/medusa_integration.js" 19 | 20 | # include custom scss in every website theme (without file extension ".scss") 21 | # website_theme_scss = "medusa_integration/public/scss/website" 22 | 23 | # include js, css files in header of web form 24 | # webform_include_js = {"doctype": "public/js/doctype.js"} 25 | # webform_include_css = {"doctype": "public/css/doctype.css"} 26 | 27 | # include js in page 28 | # page_js = {"page" : "public/js/file.js"} 29 | 30 | # include js in doctype views 31 | doctype_js = { 32 | "Customer" : "public/js/customer.js", 33 | "Website Item" : "public/js/website_item.js" 34 | } 35 | 36 | # doctype_js = {"doctype" : "public/js/doctype.js"} 37 | # doctype_list_js = {"doctype" : "public/js/doctype_list.js"} 38 | # doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} 39 | # doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"} 40 | 41 | # Svg Icons 42 | # ------------------ 43 | # include app icons in desk 44 | # app_include_icons = "medusa_integration/public/icons.svg" 45 | 46 | # Home Pages 47 | # ---------- 48 | 49 | # application home page (will override Website Settings) 50 | # home_page = "login" 51 | 52 | # website user home page (by Role) 53 | # role_home_page = { 54 | # "Role": "home_page" 55 | # } 56 | 57 | # Generators 58 | # ---------- 59 | 60 | # automatically create page for each record of this doctype 61 | # website_generators = ["Web Page"] 62 | 63 | # Jinja 64 | # ---------- 65 | 66 | # add methods and filters to jinja environment 67 | # jinja = { 68 | # "methods": "medusa_integration.utils.jinja_methods", 69 | # "filters": "medusa_integration.utils.jinja_filters" 70 | # } 71 | 72 | # Installation 73 | # ------------ 74 | 75 | # before_install = "medusa_integration.install.before_install" 76 | # after_install = "medusa_integration.install.after_install" 77 | 78 | # Uninstallation 79 | # ------------ 80 | 81 | # before_uninstall = "medusa_integration.uninstall.before_uninstall" 82 | # after_uninstall = "medusa_integration.uninstall.after_uninstall" 83 | 84 | # Integration Setup 85 | # ------------------ 86 | # To set up dependencies/integrations with other apps 87 | # Name of the app being installed is passed as an argument 88 | 89 | # before_app_install = "medusa_integration.utils.before_app_install" 90 | # after_app_install = "medusa_integration.utils.after_app_install" 91 | 92 | # Integration Cleanup 93 | # ------------------- 94 | # To clean up dependencies/integrations with other apps 95 | # Name of the app being uninstalled is passed as an argument 96 | 97 | # before_app_uninstall = "medusa_integration.utils.before_app_uninstall" 98 | # after_app_uninstall = "medusa_integration.utils.after_app_uninstall" 99 | 100 | # Desk Notifications 101 | # ------------------ 102 | # See frappe.core.notifications.get_notification_config 103 | 104 | # notification_config = "medusa_integration.notifications.get_notification_config" 105 | 106 | # Permissions 107 | # ----------- 108 | # Permissions evaluated in scripted ways 109 | 110 | # permission_query_conditions = { 111 | # "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions", 112 | # } 113 | # 114 | # has_permission = { 115 | # "Event": "frappe.desk.doctype.event.event.has_permission", 116 | # } 117 | 118 | # DocType Class 119 | # --------------- 120 | # Override standard doctype classes 121 | 122 | override_doctype_class = { 123 | "Sales Order": "medusa_integration.custom_sales_order.CustomSalesOrder", 124 | "Sales Invoice": "medusa_integration.custom_sales_invoice.CustomSalesInvoice", 125 | "Delivery Note": "medusa_integration.custom_delivery_note.CustomDeliveryNote" 126 | } 127 | 128 | # Document Events 129 | # --------------- 130 | # Hook on document methods and events 131 | 132 | doc_events = { 133 | "Item Price": { 134 | "validate": "medusa_integration.api.create_medusa_price_list" 135 | }, 136 | "Website Item": { 137 | "validate": "medusa_integration.api.website_item_validate", 138 | "on_trash": "medusa_integration.api.delete_medusa_item", 139 | }, 140 | "Quotation": { 141 | "on_update": "medusa_integration.api.export_quotation_on_update" 142 | }, 143 | "Sales Order": { 144 | "on_submit": "medusa_integration.api.export_sales_order_on_update", 145 | "on_update": "medusa_integration.api.export_sales_order_on_update", 146 | "on_update_after_submit": "medusa_integration.api.export_sales_order_on_update", 147 | "before_insert": "medusa_integration.api.validate_medusa_order_id", 148 | }, 149 | "Sales Invoice": { 150 | "on_submit": "medusa_integration.api.export_sales_invoice_on_update", 151 | "before_insert": "medusa_integration.api.set_ecommerce_details_from_sales_order" 152 | }, 153 | "Delivery Note": { 154 | "on_submit": "medusa_integration.api.export_delivery_note_on_update", 155 | "before_insert": "medusa_integration.api.set_ecommerce_details_from_sales_order" 156 | }, 157 | "Payment Entry": { 158 | "after_insert": "medusa_integration.api.handle_payment_entry", 159 | "on_update": "medusa_integration.api.handle_payment_entry", 160 | "on_submit": "medusa_integration.api.handle_payment_entry" 161 | # }, 162 | # "File": { 163 | # "after_insert": "medusa_integration.api.upload_image_to_medusa" 164 | } 165 | } 166 | 167 | # Scheduled Tasks 168 | # --------------- 169 | 170 | # scheduler_events = { 171 | # "all": [ 172 | # "medusa_integration.tasks.all" 173 | # ], 174 | # "daily": [ 175 | # "medusa_integration.tasks.daily" 176 | # ], 177 | # "hourly": [ 178 | # "medusa_integration.tasks.hourly" 179 | # ], 180 | # "weekly": [ 181 | # "medusa_integration.tasks.weekly" 182 | # ], 183 | # "monthly": [ 184 | # "medusa_integration.tasks.monthly" 185 | # ], 186 | # } 187 | 188 | scheduler_events = { 189 | "cron": { 190 | "* * * * *": [ 191 | "medusa_integration.api.send_quotation_emails", 192 | "medusa_integration.api.expire_otps", 193 | ], 194 | "0 1 * * *": [ 195 | "medusa_integration.api.fetch_clearance_items", 196 | "medusa_integration.api.add_top_selling_items_to_collection", 197 | "medusa_integration.api.export_items_and_images_custom", 198 | "medusa_integration.api.sync_missing_prices_to_medusa" 199 | ] 200 | }, 201 | "daily_long": [ 202 | "medusa_integration.api.update_webitem_stock" 203 | ] 204 | } 205 | 206 | # Testing 207 | # ------- 208 | 209 | # before_tests = "medusa_integration.install.before_tests" 210 | 211 | # Overriding Methods 212 | # ------------------------------ 213 | # 214 | # override_whitelisted_methods = { 215 | # "frappe.desk.doctype.event.event.get_events": "medusa_integration.event.get_events" 216 | # } 217 | # 218 | # each overriding function accepts a `data` argument; 219 | # generated from the base implementation of the doctype dashboard, 220 | # along with any modifications made in other Frappe apps 221 | # override_doctype_dashboards = { 222 | # "Task": "medusa_integration.task.get_dashboard_data" 223 | # } 224 | 225 | # exempt linked doctypes from being automatically cancelled 226 | # 227 | # auto_cancel_exempted_doctypes = ["Auto Repeat"] 228 | 229 | # Ignore links to specified DocTypes when deleting documents 230 | # ----------------------------------------------------------- 231 | 232 | # ignore_links_on_delete = ["Communication", "ToDo"] 233 | 234 | # Request Events 235 | # ---------------- 236 | # before_request = ["medusa_integration.utils.before_request"] 237 | # after_request = ["medusa_integration.utils.after_request"] 238 | 239 | # Job Events 240 | # ---------- 241 | # before_job = ["medusa_integration.utils.before_job"] 242 | # after_job = ["medusa_integration.utils.after_job"] 243 | 244 | # User Data Protection 245 | # -------------------- 246 | 247 | # user_data_fields = [ 248 | # { 249 | # "doctype": "{doctype_1}", 250 | # "filter_by": "{filter_by}", 251 | # "redact_fields": ["{field_1}", "{field_2}"], 252 | # "partial": 1, 253 | # }, 254 | # { 255 | # "doctype": "{doctype_2}", 256 | # "filter_by": "{filter_by}", 257 | # "partial": 1, 258 | # }, 259 | # { 260 | # "doctype": "{doctype_3}", 261 | # "strict": False, 262 | # }, 263 | # { 264 | # "doctype": "{doctype_4}" 265 | # } 266 | # ] 267 | 268 | # Authentication and authorization 269 | # -------------------------------- 270 | 271 | # auth_hooks = [ 272 | # "medusa_integration.auth.validate" 273 | # ] 274 | 275 | # Automatically update python controller files with type annotations for this app. 276 | # export_python_type_annotations = True 277 | 278 | # default_log_clearing_doctypes = { 279 | # "Logging DocType Name": 30 # days to retain logs 280 | # } 281 | 282 | -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/file.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2024-09-04 09:56:58.815731", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "File", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "medusa_id", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 20, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "attached_to_field", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Medusa ID", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2024-09-04 09:57:51.076896", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "File-custom_medusa_id", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 1, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 1, 64 | "unique": 0, 65 | "width": null 66 | } 67 | ], 68 | "custom_perms": [], 69 | "doctype": "File", 70 | "links": [], 71 | "property_setters": [ 72 | { 73 | "_assign": null, 74 | "_comments": null, 75 | "_liked_by": null, 76 | "_user_tags": null, 77 | "creation": "2024-09-04 09:57:11.736832", 78 | "default_value": null, 79 | "doc_type": "File", 80 | "docstatus": 0, 81 | "doctype_or_field": "DocType", 82 | "field_name": null, 83 | "idx": 0, 84 | "is_system_generated": 0, 85 | "modified": "2024-09-04 09:57:11.736832", 86 | "modified_by": "Administrator", 87 | "module": null, 88 | "name": "File-main-field_order", 89 | "owner": "Administrator", 90 | "parent": null, 91 | "parentfield": null, 92 | "parenttype": null, 93 | "property": "field_order", 94 | "property_type": "Data", 95 | "row_name": null, 96 | "value": "[\"file_name\", \"is_private\", \"column_break_7jmm\", \"file_type\", \"preview\", \"preview_html\", \"section_break_5\", \"is_home_folder\", \"is_attachments_folder\", \"file_size\", \"column_break_5\", \"file_url\", \"thumbnail_url\", \"folder\", \"is_folder\", \"section_break_8\", \"attached_to_doctype\", \"column_break_10\", \"attached_to_name\", \"attached_to_field\", \"custom_medusa_id\", \"old_parent\", \"content_hash\", \"uploaded_to_dropbox\", \"uploaded_to_google_drive\"]" 97 | }, 98 | { 99 | "_assign": null, 100 | "_comments": null, 101 | "_liked_by": null, 102 | "_user_tags": null, 103 | "creation": "2021-11-07 10:16:23.605001", 104 | "default_value": null, 105 | "doc_type": "File", 106 | "docstatus": 0, 107 | "doctype_or_field": "DocField", 108 | "field_name": "file_name", 109 | "idx": 0, 110 | "is_system_generated": 0, 111 | "modified": "2024-09-03 17:47:19.500013", 112 | "modified_by": "Administrator", 113 | "module": null, 114 | "name": "File-file_name-in_list_view", 115 | "owner": "ceo@alfarsi.me", 116 | "parent": null, 117 | "parentfield": null, 118 | "parenttype": null, 119 | "property": "in_list_view", 120 | "property_type": "Check", 121 | "row_name": null, 122 | "value": "1" 123 | }, 124 | { 125 | "_assign": null, 126 | "_comments": null, 127 | "_liked_by": null, 128 | "_user_tags": null, 129 | "creation": "2021-11-07 10:15:29.989377", 130 | "default_value": null, 131 | "doc_type": "File", 132 | "docstatus": 0, 133 | "doctype_or_field": "DocField", 134 | "field_name": "attached_to_name", 135 | "idx": 0, 136 | "is_system_generated": 0, 137 | "modified": "2024-09-03 17:47:19.457972", 138 | "modified_by": "Administrator", 139 | "module": null, 140 | "name": "File-attached_to_name-in_list_view", 141 | "owner": "ceo@alfarsi.me", 142 | "parent": null, 143 | "parentfield": null, 144 | "parenttype": null, 145 | "property": "in_list_view", 146 | "property_type": "Check", 147 | "row_name": null, 148 | "value": "0" 149 | }, 150 | { 151 | "_assign": null, 152 | "_comments": null, 153 | "_liked_by": null, 154 | "_user_tags": null, 155 | "creation": "2024-09-03 17:38:27.754952", 156 | "default_value": null, 157 | "doc_type": "File", 158 | "docstatus": 0, 159 | "doctype_or_field": "DocField", 160 | "field_name": "file_url", 161 | "idx": 0, 162 | "is_system_generated": 1, 163 | "modified": "2024-09-03 17:47:19.414463", 164 | "modified_by": "Administrator", 165 | "module": null, 166 | "name": "File-file_url-in_list_view", 167 | "owner": "Administrator", 168 | "parent": null, 169 | "parentfield": null, 170 | "parenttype": null, 171 | "property": "in_list_view", 172 | "property_type": "Check", 173 | "row_name": null, 174 | "value": "0" 175 | }, 176 | { 177 | "_assign": null, 178 | "_comments": null, 179 | "_liked_by": null, 180 | "_user_tags": null, 181 | "creation": "2024-09-03 16:36:49.403822", 182 | "default_value": null, 183 | "doc_type": "File", 184 | "docstatus": 0, 185 | "doctype_or_field": "DocField", 186 | "field_name": "file_type", 187 | "idx": 0, 188 | "is_system_generated": 1, 189 | "modified": "2024-09-03 17:47:19.368606", 190 | "modified_by": "Administrator", 191 | "module": null, 192 | "name": "File-file_type-in_list_view", 193 | "owner": "Administrator", 194 | "parent": null, 195 | "parentfield": null, 196 | "parenttype": null, 197 | "property": "in_list_view", 198 | "property_type": "Check", 199 | "row_name": null, 200 | "value": "0" 201 | }, 202 | { 203 | "_assign": null, 204 | "_comments": null, 205 | "_liked_by": null, 206 | "_user_tags": null, 207 | "creation": "2021-11-07 10:16:23.632617", 208 | "default_value": null, 209 | "doc_type": "File", 210 | "docstatus": 0, 211 | "doctype_or_field": "DocField", 212 | "field_name": "file_size", 213 | "idx": 0, 214 | "is_system_generated": 0, 215 | "modified": "2024-09-03 17:47:19.306403", 216 | "modified_by": "Administrator", 217 | "module": null, 218 | "name": "File-file_size-in_list_view", 219 | "owner": "ceo@alfarsi.me", 220 | "parent": null, 221 | "parentfield": null, 222 | "parenttype": null, 223 | "property": "in_list_view", 224 | "property_type": "Check", 225 | "row_name": null, 226 | "value": "0" 227 | }, 228 | { 229 | "_assign": null, 230 | "_comments": null, 231 | "_liked_by": null, 232 | "_user_tags": null, 233 | "creation": "2024-09-03 16:59:25.498070", 234 | "default_value": null, 235 | "doc_type": "File", 236 | "docstatus": 0, 237 | "doctype_or_field": "DocField", 238 | "field_name": "uploaded_to_dropbox", 239 | "idx": 0, 240 | "is_system_generated": 1, 241 | "modified": "2024-09-03 17:00:43.706743", 242 | "modified_by": "Administrator", 243 | "module": null, 244 | "name": "File-uploaded_to_dropbox-in_list_view", 245 | "owner": "Administrator", 246 | "parent": null, 247 | "parentfield": null, 248 | "parenttype": null, 249 | "property": "in_list_view", 250 | "property_type": "Check", 251 | "row_name": null, 252 | "value": "0" 253 | }, 254 | { 255 | "_assign": null, 256 | "_comments": null, 257 | "_liked_by": null, 258 | "_user_tags": null, 259 | "creation": "2021-11-07 10:15:29.817130", 260 | "default_value": null, 261 | "doc_type": "File", 262 | "docstatus": 0, 263 | "doctype_or_field": "DocField", 264 | "field_name": "attached_to_doctype", 265 | "idx": 0, 266 | "is_system_generated": 0, 267 | "modified": "2024-09-03 17:00:43.624339", 268 | "modified_by": "Administrator", 269 | "module": null, 270 | "name": "File-attached_to_doctype-in_list_view", 271 | "owner": "ceo@alfarsi.me", 272 | "parent": null, 273 | "parentfield": null, 274 | "parenttype": null, 275 | "property": "in_list_view", 276 | "property_type": "Check", 277 | "row_name": null, 278 | "value": "0" 279 | }, 280 | { 281 | "_assign": null, 282 | "_comments": null, 283 | "_liked_by": null, 284 | "_user_tags": null, 285 | "creation": "2024-09-03 16:36:49.435164", 286 | "default_value": null, 287 | "doc_type": "File", 288 | "docstatus": 0, 289 | "doctype_or_field": "DocField", 290 | "field_name": "is_private", 291 | "idx": 0, 292 | "is_system_generated": 1, 293 | "modified": "2024-09-03 16:37:44.950171", 294 | "modified_by": "Administrator", 295 | "module": null, 296 | "name": "File-is_private-in_list_view", 297 | "owner": "Administrator", 298 | "parent": null, 299 | "parentfield": null, 300 | "parenttype": null, 301 | "property": "in_list_view", 302 | "property_type": "Check", 303 | "row_name": null, 304 | "value": "1" 305 | } 306 | ], 307 | "sync_on_migrate": 1 308 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/lead.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2023-10-30 00:35:37.771772", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Lead", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "custom_address_line1", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 22, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "website", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Address Line1", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2023-10-30 00:35:37.771772", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Lead-custom_address_line1", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 0, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 1, 64 | "unique": 0, 65 | "width": null 66 | }, 67 | { 68 | "_assign": null, 69 | "_comments": null, 70 | "_liked_by": null, 71 | "_user_tags": null, 72 | "allow_in_quick_entry": 0, 73 | "allow_on_submit": 0, 74 | "bold": 0, 75 | "collapsible": 0, 76 | "collapsible_depends_on": null, 77 | "columns": 0, 78 | "creation": "2023-10-30 00:35:38.052770", 79 | "default": null, 80 | "depends_on": null, 81 | "description": null, 82 | "docstatus": 0, 83 | "dt": "Lead", 84 | "fetch_from": null, 85 | "fetch_if_empty": 0, 86 | "fieldname": "custom_address_line2", 87 | "fieldtype": "Data", 88 | "hidden": 0, 89 | "hide_border": 0, 90 | "hide_days": 0, 91 | "hide_seconds": 0, 92 | "idx": 23, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_preview": 0, 98 | "in_standard_filter": 0, 99 | "insert_after": "custom_address_line1", 100 | "is_system_generated": 0, 101 | "is_virtual": 0, 102 | "label": "Address Line2", 103 | "length": 0, 104 | "mandatory_depends_on": null, 105 | "modified": "2023-10-30 00:35:38.052770", 106 | "modified_by": "Administrator", 107 | "module": null, 108 | "name": "Lead-custom_address_line2", 109 | "no_copy": 0, 110 | "non_negative": 0, 111 | "options": null, 112 | "owner": "Administrator", 113 | "parent": null, 114 | "parentfield": null, 115 | "parenttype": null, 116 | "permlevel": 0, 117 | "precision": "", 118 | "print_hide": 0, 119 | "print_hide_if_no_value": 0, 120 | "print_width": null, 121 | "read_only": 0, 122 | "read_only_depends_on": null, 123 | "report_hide": 0, 124 | "reqd": 1, 125 | "search_index": 0, 126 | "sort_options": 0, 127 | "translatable": 1, 128 | "unique": 0, 129 | "width": null 130 | }, 131 | { 132 | "_assign": null, 133 | "_comments": null, 134 | "_liked_by": null, 135 | "_user_tags": null, 136 | "allow_in_quick_entry": 0, 137 | "allow_on_submit": 0, 138 | "bold": 0, 139 | "collapsible": 0, 140 | "collapsible_depends_on": null, 141 | "columns": 0, 142 | "creation": "2024-10-30 15:23:18.105610", 143 | "default": null, 144 | "depends_on": null, 145 | "description": null, 146 | "docstatus": 0, 147 | "dt": "Lead", 148 | "fetch_from": null, 149 | "fetch_if_empty": 0, 150 | "fieldname": "medusa_id", 151 | "fieldtype": "Data", 152 | "hidden": 0, 153 | "hide_border": 0, 154 | "hide_days": 0, 155 | "hide_seconds": 0, 156 | "idx": 6, 157 | "ignore_user_permissions": 0, 158 | "ignore_xss_filter": 0, 159 | "in_global_search": 0, 160 | "in_list_view": 0, 161 | "in_preview": 0, 162 | "in_standard_filter": 0, 163 | "insert_after": "last_name", 164 | "is_system_generated": 0, 165 | "is_virtual": 0, 166 | "label": "Medusa ID", 167 | "length": 0, 168 | "mandatory_depends_on": null, 169 | "modified": "2024-10-30 15:24:47.782636", 170 | "modified_by": "Administrator", 171 | "module": null, 172 | "name": "Lead-custom_medusa_id", 173 | "no_copy": 0, 174 | "non_negative": 0, 175 | "options": null, 176 | "owner": "Administrator", 177 | "parent": null, 178 | "parentfield": null, 179 | "parenttype": null, 180 | "permlevel": 0, 181 | "precision": "", 182 | "print_hide": 0, 183 | "print_hide_if_no_value": 0, 184 | "print_width": null, 185 | "read_only": 1, 186 | "read_only_depends_on": null, 187 | "report_hide": 0, 188 | "reqd": 0, 189 | "search_index": 0, 190 | "sort_options": 0, 191 | "translatable": 0, 192 | "unique": 0, 193 | "width": null 194 | }, 195 | { 196 | "_assign": null, 197 | "_comments": null, 198 | "_liked_by": null, 199 | "_user_tags": null, 200 | "allow_in_quick_entry": 0, 201 | "allow_on_submit": 0, 202 | "bold": 0, 203 | "collapsible": 0, 204 | "collapsible_depends_on": null, 205 | "columns": 0, 206 | "creation": "2023-10-30 00:35:38.308109", 207 | "default": null, 208 | "depends_on": null, 209 | "description": null, 210 | "docstatus": 0, 211 | "dt": "Lead", 212 | "fetch_from": null, 213 | "fetch_if_empty": 0, 214 | "fieldname": "custom_pincode", 215 | "fieldtype": "Data", 216 | "hidden": 0, 217 | "hide_border": 0, 218 | "hide_days": 0, 219 | "hide_seconds": 0, 220 | "idx": 24, 221 | "ignore_user_permissions": 0, 222 | "ignore_xss_filter": 0, 223 | "in_global_search": 0, 224 | "in_list_view": 0, 225 | "in_preview": 0, 226 | "in_standard_filter": 0, 227 | "insert_after": "custom_address_line2", 228 | "is_system_generated": 0, 229 | "is_virtual": 0, 230 | "label": "Pincode", 231 | "length": 0, 232 | "mandatory_depends_on": null, 233 | "modified": "2023-10-30 00:35:38.308109", 234 | "modified_by": "Administrator", 235 | "module": null, 236 | "name": "Lead-custom_pincode", 237 | "no_copy": 0, 238 | "non_negative": 0, 239 | "options": null, 240 | "owner": "Administrator", 241 | "parent": null, 242 | "parentfield": null, 243 | "parenttype": null, 244 | "permlevel": 0, 245 | "precision": "", 246 | "print_hide": 0, 247 | "print_hide_if_no_value": 0, 248 | "print_width": null, 249 | "read_only": 0, 250 | "read_only_depends_on": null, 251 | "report_hide": 0, 252 | "reqd": 0, 253 | "search_index": 0, 254 | "sort_options": 0, 255 | "translatable": 1, 256 | "unique": 0, 257 | "width": null 258 | }, 259 | { 260 | "_assign": null, 261 | "_comments": null, 262 | "_liked_by": null, 263 | "_user_tags": null, 264 | "allow_in_quick_entry": 0, 265 | "allow_on_submit": 0, 266 | "bold": 0, 267 | "collapsible": 0, 268 | "collapsible_depends_on": null, 269 | "columns": 0, 270 | "creation": "2024-10-30 15:23:19.564650", 271 | "default": null, 272 | "depends_on": null, 273 | "description": null, 274 | "docstatus": 0, 275 | "dt": "Lead", 276 | "fetch_from": null, 277 | "fetch_if_empty": 0, 278 | "fieldname": "t_c_acceptance", 279 | "fieldtype": "Check", 280 | "hidden": 0, 281 | "hide_border": 0, 282 | "hide_days": 0, 283 | "hide_seconds": 0, 284 | "idx": 6, 285 | "ignore_user_permissions": 0, 286 | "ignore_xss_filter": 0, 287 | "in_global_search": 0, 288 | "in_list_view": 0, 289 | "in_preview": 0, 290 | "in_standard_filter": 0, 291 | "insert_after": "medusa_id", 292 | "is_system_generated": 0, 293 | "is_virtual": 0, 294 | "label": "T&C Acceptance", 295 | "length": 0, 296 | "mandatory_depends_on": null, 297 | "modified": "2024-10-30 15:24:22.901167", 298 | "modified_by": "Administrator", 299 | "module": null, 300 | "name": "Lead-custom_tc_acceptance", 301 | "no_copy": 0, 302 | "non_negative": 0, 303 | "options": null, 304 | "owner": "Administrator", 305 | "parent": null, 306 | "parentfield": null, 307 | "parenttype": null, 308 | "permlevel": 0, 309 | "precision": "", 310 | "print_hide": 0, 311 | "print_hide_if_no_value": 0, 312 | "print_width": null, 313 | "read_only": 1, 314 | "read_only_depends_on": null, 315 | "report_hide": 0, 316 | "reqd": 0, 317 | "search_index": 0, 318 | "sort_options": 0, 319 | "translatable": 0, 320 | "unique": 0, 321 | "width": null 322 | }, 323 | { 324 | "_assign": null, 325 | "_comments": null, 326 | "_liked_by": null, 327 | "_user_tags": null, 328 | "allow_in_quick_entry": 0, 329 | "allow_on_submit": 0, 330 | "bold": 0, 331 | "collapsible": 0, 332 | "collapsible_depends_on": null, 333 | "columns": 0, 334 | "creation": "2023-10-30 00:35:38.603789", 335 | "default": null, 336 | "depends_on": null, 337 | "description": null, 338 | "docstatus": 0, 339 | "dt": "Lead", 340 | "fetch_from": null, 341 | "fetch_if_empty": 0, 342 | "fieldname": "custom_website_comments", 343 | "fieldtype": "Small Text", 344 | "hidden": 0, 345 | "hide_border": 0, 346 | "hide_days": 0, 347 | "hide_seconds": 0, 348 | "idx": 74, 349 | "ignore_user_permissions": 0, 350 | "ignore_xss_filter": 0, 351 | "in_global_search": 0, 352 | "in_list_view": 0, 353 | "in_preview": 0, 354 | "in_standard_filter": 0, 355 | "insert_after": "dashboard_tab", 356 | "is_system_generated": 0, 357 | "is_virtual": 0, 358 | "label": "Website Comments", 359 | "length": 0, 360 | "mandatory_depends_on": null, 361 | "modified": "2023-10-30 00:35:38.603789", 362 | "modified_by": "Administrator", 363 | "module": null, 364 | "name": "Lead-custom_website_comments", 365 | "no_copy": 0, 366 | "non_negative": 0, 367 | "options": null, 368 | "owner": "Administrator", 369 | "parent": null, 370 | "parentfield": null, 371 | "parenttype": null, 372 | "permlevel": 0, 373 | "precision": "", 374 | "print_hide": 0, 375 | "print_hide_if_no_value": 0, 376 | "print_width": null, 377 | "read_only": 0, 378 | "read_only_depends_on": null, 379 | "report_hide": 0, 380 | "reqd": 0, 381 | "search_index": 0, 382 | "sort_options": 0, 383 | "translatable": 1, 384 | "unique": 0, 385 | "width": null 386 | }, 387 | { 388 | "_assign": null, 389 | "_comments": null, 390 | "_liked_by": null, 391 | "_user_tags": null, 392 | "allow_in_quick_entry": 0, 393 | "allow_on_submit": 0, 394 | "bold": 0, 395 | "collapsible": 0, 396 | "collapsible_depends_on": null, 397 | "columns": 0, 398 | "creation": "2022-05-11 08:09:32.560202", 399 | "default": "1", 400 | "depends_on": null, 401 | "description": null, 402 | "docstatus": 0, 403 | "dt": "Lead", 404 | "fetch_from": null, 405 | "fetch_if_empty": 0, 406 | "fieldname": "make_user", 407 | "fieldtype": "Check", 408 | "hidden": 0, 409 | "hide_border": 0, 410 | "hide_days": 0, 411 | "hide_seconds": 0, 412 | "idx": 56, 413 | "ignore_user_permissions": 0, 414 | "ignore_xss_filter": 0, 415 | "in_global_search": 0, 416 | "in_list_view": 0, 417 | "in_preview": 0, 418 | "in_standard_filter": 0, 419 | "insert_after": "campaign_name", 420 | "is_system_generated": 0, 421 | "is_virtual": 0, 422 | "label": "Make User", 423 | "length": 0, 424 | "mandatory_depends_on": null, 425 | "modified": "2022-05-11 08:09:32.560202", 426 | "modified_by": "vignesh@aerele.com", 427 | "module": null, 428 | "name": "Lead-make_user", 429 | "no_copy": 0, 430 | "non_negative": 0, 431 | "options": null, 432 | "owner": "vignesh@aerele.com", 433 | "parent": null, 434 | "parentfield": null, 435 | "parenttype": null, 436 | "permlevel": 0, 437 | "precision": "", 438 | "print_hide": 0, 439 | "print_hide_if_no_value": 0, 440 | "print_width": null, 441 | "read_only": 0, 442 | "read_only_depends_on": null, 443 | "report_hide": 0, 444 | "reqd": 0, 445 | "search_index": 0, 446 | "sort_options": 0, 447 | "translatable": 0, 448 | "unique": 0, 449 | "width": null 450 | } 451 | ], 452 | "custom_perms": [], 453 | "doctype": "Lead", 454 | "links": [], 455 | "property_setters": [ 456 | { 457 | "_assign": null, 458 | "_comments": null, 459 | "_liked_by": null, 460 | "_user_tags": null, 461 | "creation": "2025-02-12 14:36:18.078386", 462 | "default_value": null, 463 | "doc_type": "Lead", 464 | "docstatus": 0, 465 | "doctype_or_field": "DocType", 466 | "field_name": null, 467 | "idx": 0, 468 | "is_system_generated": 0, 469 | "modified": "2025-02-12 14:36:18.078386", 470 | "modified_by": "Administrator", 471 | "module": null, 472 | "name": "Lead-main-field_order", 473 | "owner": "Administrator", 474 | "parent": null, 475 | "parentfield": null, 476 | "parenttype": null, 477 | "property": "field_order", 478 | "property_type": "Data", 479 | "row_name": null, 480 | "value": "[\"naming_series\", \"salutation\", \"first_name\", \"middle_name\", \"last_name\", \"medusa_id\", \"t_c_acceptance\", \"column_break_1\", \"lead_name\", \"job_title\", \"gender\", \"source\", \"col_break123\", \"lead_owner\", \"status\", \"customer\", \"type\", \"request_type\", \"contact_info_tab\", \"email_id\", \"website\", \"custom_address_line1\", \"custom_address_line2\", \"custom_pincode\", \"column_break_20\", \"mobile_no\", \"whatsapp_no\", \"column_break_16\", \"phone\", \"phone_ext\", \"organization_section\", \"company_name\", \"no_of_employees\", \"column_break_28\", \"annual_revenue\", \"industry\", \"market_segment\", \"column_break_31\", \"territory\", \"fax\", \"address_section\", \"address_html\", \"column_break_38\", \"city\", \"state\", \"country\", \"column_break2\", \"contact_html\", \"qualification_tab\", \"qualification_status\", \"column_break_64\", \"qualified_by\", \"qualified_on\", \"other_info_tab\", \"campaign_name\", \"make_user\", \"company\", \"column_break_22\", \"language\", \"image\", \"title\", \"column_break_50\", \"disabled\", \"unsubscribed\", \"blog_subscriber\", \"activities_tab\", \"open_activities_html\", \"all_activities_section\", \"all_activities_html\", \"notes_tab\", \"notes_html\", \"notes\", \"dashboard_tab\", \"custom_website_comments\"]" 481 | }, 482 | { 483 | "_assign": null, 484 | "_comments": null, 485 | "_liked_by": null, 486 | "_user_tags": null, 487 | "creation": "2024-05-25 11:42:29.129481", 488 | "default_value": null, 489 | "doc_type": "Lead", 490 | "docstatus": 0, 491 | "doctype_or_field": "DocField", 492 | "field_name": "mobile_no", 493 | "idx": 0, 494 | "is_system_generated": 0, 495 | "modified": "2025-02-10 13:35:28.200197", 496 | "modified_by": "Administrator", 497 | "module": null, 498 | "name": "Lead-mobile_no-reqd", 499 | "owner": "anto@alfarsi.me", 500 | "parent": null, 501 | "parentfield": null, 502 | "parenttype": null, 503 | "property": "reqd", 504 | "property_type": "Check", 505 | "row_name": null, 506 | "value": "1" 507 | }, 508 | { 509 | "_assign": null, 510 | "_comments": null, 511 | "_liked_by": null, 512 | "_user_tags": null, 513 | "creation": "2021-05-06 13:59:31.501605", 514 | "default_value": null, 515 | "doc_type": "Lead", 516 | "docstatus": 0, 517 | "doctype_or_field": "DocField", 518 | "field_name": "naming_series", 519 | "idx": 0, 520 | "is_system_generated": 0, 521 | "modified": "2025-02-10 13:35:28.217086", 522 | "modified_by": "Administrator", 523 | "module": null, 524 | "name": "Lead-naming_series-options", 525 | "owner": "Administrator", 526 | "parent": null, 527 | "parentfield": null, 528 | "parenttype": null, 529 | "property": "options", 530 | "property_type": "Text", 531 | "row_name": null, 532 | "value": "CRM-LEAD-.YYYY.-" 533 | }, 534 | { 535 | "_assign": null, 536 | "_comments": null, 537 | "_liked_by": null, 538 | "_user_tags": null, 539 | "creation": "2024-05-25 11:42:29.195449", 540 | "default_value": null, 541 | "doc_type": "Lead", 542 | "docstatus": 0, 543 | "doctype_or_field": "DocField", 544 | "field_name": "phone", 545 | "idx": 0, 546 | "is_system_generated": 0, 547 | "modified": "2025-02-10 13:35:28.234185", 548 | "modified_by": "Administrator", 549 | "module": null, 550 | "name": "Lead-phone-reqd", 551 | "owner": "anto@alfarsi.me", 552 | "parent": null, 553 | "parentfield": null, 554 | "parenttype": null, 555 | "property": "reqd", 556 | "property_type": "Check", 557 | "row_name": null, 558 | "value": "1" 559 | } 560 | ], 561 | "sync_on_migrate": 1 562 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/item.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2024-05-23 18:30:50.450627", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Item", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "medusa_variant_id", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 11, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "medusa_id", 36 | "is_system_generated": 0, 37 | "is_virtual": 0, 38 | "label": "Medusa Variant ID", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2024-05-23 18:51:34.902741", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Item-custom_meduda_variant_id", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 1, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "show_dashboard": 0, 63 | "sort_options": 0, 64 | "translatable": 0, 65 | "unique": 0, 66 | "width": null 67 | }, 68 | { 69 | "_assign": null, 70 | "_comments": null, 71 | "_liked_by": null, 72 | "_user_tags": null, 73 | "allow_in_quick_entry": 0, 74 | "allow_on_submit": 0, 75 | "bold": 0, 76 | "collapsible": 0, 77 | "collapsible_depends_on": null, 78 | "columns": 0, 79 | "creation": "2024-05-23 10:53:18.543175", 80 | "default": null, 81 | "depends_on": null, 82 | "description": null, 83 | "docstatus": 0, 84 | "dt": "Item", 85 | "fetch_from": null, 86 | "fetch_if_empty": 0, 87 | "fieldname": "medusa_id", 88 | "fieldtype": "Data", 89 | "hidden": 0, 90 | "hide_border": 0, 91 | "hide_days": 0, 92 | "hide_seconds": 0, 93 | "idx": 11, 94 | "ignore_user_permissions": 0, 95 | "ignore_xss_filter": 0, 96 | "in_global_search": 0, 97 | "in_list_view": 0, 98 | "in_preview": 0, 99 | "in_standard_filter": 0, 100 | "insert_after": "stock_uom", 101 | "is_system_generated": 0, 102 | "is_virtual": 0, 103 | "label": "Medusa ID", 104 | "length": 0, 105 | "mandatory_depends_on": null, 106 | "modified": "2024-05-23 10:54:20.809963", 107 | "modified_by": "logesh@aerele.in", 108 | "module": null, 109 | "name": "Item-custom_medusa_id", 110 | "no_copy": 0, 111 | "non_negative": 0, 112 | "options": null, 113 | "owner": "logesh@aerele.in", 114 | "parent": null, 115 | "parentfield": null, 116 | "parenttype": null, 117 | "permlevel": 0, 118 | "precision": "", 119 | "print_hide": 0, 120 | "print_hide_if_no_value": 0, 121 | "print_width": null, 122 | "read_only": 1, 123 | "read_only_depends_on": null, 124 | "report_hide": 0, 125 | "reqd": 0, 126 | "search_index": 0, 127 | "show_dashboard": 0, 128 | "sort_options": 0, 129 | "translatable": 0, 130 | "unique": 0, 131 | "width": null 132 | }, 133 | { 134 | "_assign": null, 135 | "_comments": null, 136 | "_liked_by": null, 137 | "_user_tags": null, 138 | "allow_in_quick_entry": 0, 139 | "allow_on_submit": 0, 140 | "bold": 0, 141 | "collapsible": 0, 142 | "collapsible_depends_on": null, 143 | "columns": 0, 144 | "creation": "2024-03-29 19:30:58.001076", 145 | "default": null, 146 | "depends_on": null, 147 | "description": null, 148 | "docstatus": 0, 149 | "dt": "Item", 150 | "fetch_from": null, 151 | "fetch_if_empty": 0, 152 | "fieldname": "is_ineligible_for_itc", 153 | "fieldtype": "Check", 154 | "hidden": 0, 155 | "hide_border": 0, 156 | "hide_days": 0, 157 | "hide_seconds": 0, 158 | "idx": 0, 159 | "ignore_user_permissions": 0, 160 | "ignore_xss_filter": 0, 161 | "in_global_search": 0, 162 | "in_list_view": 0, 163 | "in_preview": 0, 164 | "in_standard_filter": 0, 165 | "insert_after": "item_tax_section_break", 166 | "is_system_generated": 1, 167 | "is_virtual": 0, 168 | "label": "Is Ineligible for Input Tax Credit", 169 | "length": 0, 170 | "mandatory_depends_on": null, 171 | "modified": "2024-03-29 19:30:58.001076", 172 | "modified_by": "Administrator", 173 | "module": null, 174 | "name": "Item-is_ineligible_for_itc", 175 | "no_copy": 0, 176 | "non_negative": 0, 177 | "options": null, 178 | "owner": "Administrator", 179 | "parent": null, 180 | "parentfield": null, 181 | "parenttype": null, 182 | "permlevel": 0, 183 | "precision": "", 184 | "print_hide": 0, 185 | "print_hide_if_no_value": 0, 186 | "print_width": null, 187 | "read_only": 0, 188 | "read_only_depends_on": null, 189 | "report_hide": 0, 190 | "reqd": 0, 191 | "search_index": 0, 192 | "show_dashboard": 0, 193 | "sort_options": 0, 194 | "translatable": 0, 195 | "unique": 0, 196 | "width": null 197 | }, 198 | { 199 | "_assign": null, 200 | "_comments": null, 201 | "_liked_by": null, 202 | "_user_tags": null, 203 | "allow_in_quick_entry": 0, 204 | "allow_on_submit": 0, 205 | "bold": 0, 206 | "collapsible": 0, 207 | "collapsible_depends_on": null, 208 | "columns": 0, 209 | "creation": "2019-09-09 00:24:27.962155", 210 | "default": null, 211 | "depends_on": null, 212 | "description": null, 213 | "docstatus": 0, 214 | "dt": "Item", 215 | "fetch_from": null, 216 | "fetch_if_empty": 0, 217 | "fieldname": "is_non_gst", 218 | "fieldtype": "Check", 219 | "hidden": 0, 220 | "hide_border": 0, 221 | "hide_days": 0, 222 | "hide_seconds": 0, 223 | "idx": 9, 224 | "ignore_user_permissions": 0, 225 | "ignore_xss_filter": 0, 226 | "in_global_search": 0, 227 | "in_list_view": 0, 228 | "in_preview": 0, 229 | "in_standard_filter": 0, 230 | "insert_after": "is_nil_exempt", 231 | "is_system_generated": 1, 232 | "is_virtual": 0, 233 | "label": "Is Non GST ", 234 | "length": 0, 235 | "mandatory_depends_on": null, 236 | "modified": "2021-05-05 10:58:30.256407", 237 | "modified_by": "Administrator", 238 | "module": null, 239 | "name": "Item-is_non_gst", 240 | "no_copy": 0, 241 | "non_negative": 0, 242 | "options": null, 243 | "owner": "Administrator", 244 | "parent": null, 245 | "parentfield": null, 246 | "parenttype": null, 247 | "permlevel": 0, 248 | "precision": "", 249 | "print_hide": 0, 250 | "print_hide_if_no_value": 0, 251 | "print_width": null, 252 | "read_only": 0, 253 | "read_only_depends_on": null, 254 | "report_hide": 0, 255 | "reqd": 0, 256 | "search_index": 0, 257 | "show_dashboard": 0, 258 | "sort_options": 0, 259 | "translatable": 0, 260 | "unique": 0, 261 | "width": null 262 | }, 263 | { 264 | "_assign": null, 265 | "_comments": null, 266 | "_liked_by": null, 267 | "_user_tags": null, 268 | "allow_in_quick_entry": 0, 269 | "allow_on_submit": 0, 270 | "bold": 0, 271 | "collapsible": 0, 272 | "collapsible_depends_on": null, 273 | "columns": 0, 274 | "creation": "2019-09-09 00:24:26.953144", 275 | "default": null, 276 | "depends_on": null, 277 | "description": null, 278 | "docstatus": 0, 279 | "dt": "Item", 280 | "fetch_from": null, 281 | "fetch_if_empty": 0, 282 | "fieldname": "is_nil_exempt", 283 | "fieldtype": "Check", 284 | "hidden": 0, 285 | "hide_border": 0, 286 | "hide_days": 0, 287 | "hide_seconds": 0, 288 | "idx": 8, 289 | "ignore_user_permissions": 0, 290 | "ignore_xss_filter": 0, 291 | "in_global_search": 0, 292 | "in_list_view": 0, 293 | "in_preview": 0, 294 | "in_standard_filter": 0, 295 | "insert_after": "gst_hsn_code", 296 | "is_system_generated": 1, 297 | "is_virtual": 0, 298 | "label": "Is Nil Rated or Exempted", 299 | "length": 0, 300 | "mandatory_depends_on": null, 301 | "modified": "2021-05-05 10:58:30.027047", 302 | "modified_by": "Administrator", 303 | "module": null, 304 | "name": "Item-is_nil_exempt", 305 | "no_copy": 0, 306 | "non_negative": 0, 307 | "options": null, 308 | "owner": "Administrator", 309 | "parent": null, 310 | "parentfield": null, 311 | "parenttype": null, 312 | "permlevel": 0, 313 | "precision": "", 314 | "print_hide": 0, 315 | "print_hide_if_no_value": 0, 316 | "print_width": null, 317 | "read_only": 0, 318 | "read_only_depends_on": null, 319 | "report_hide": 0, 320 | "reqd": 0, 321 | "search_index": 0, 322 | "show_dashboard": 0, 323 | "sort_options": 0, 324 | "translatable": 0, 325 | "unique": 0, 326 | "width": null 327 | }, 328 | { 329 | "_assign": null, 330 | "_comments": null, 331 | "_liked_by": null, 332 | "_user_tags": null, 333 | "allow_in_quick_entry": 0, 334 | "allow_on_submit": 0, 335 | "bold": 0, 336 | "collapsible": 0, 337 | "collapsible_depends_on": null, 338 | "columns": 0, 339 | "creation": "2020-09-28 16:04:04.404395", 340 | "default": null, 341 | "depends_on": null, 342 | "description": null, 343 | "docstatus": 0, 344 | "dt": "Item", 345 | "fetch_from": null, 346 | "fetch_if_empty": 0, 347 | "fieldname": "nx_bom_qty", 348 | "fieldtype": "Float", 349 | "hidden": 0, 350 | "hide_border": 0, 351 | "hide_days": 0, 352 | "hide_seconds": 0, 353 | "idx": 130, 354 | "ignore_user_permissions": 0, 355 | "ignore_xss_filter": 0, 356 | "in_global_search": 0, 357 | "in_list_view": 0, 358 | "in_preview": 0, 359 | "in_standard_filter": 0, 360 | "insert_after": "synced_with_hub", 361 | "is_system_generated": 1, 362 | "is_virtual": 0, 363 | "label": "Nx BOM Qty", 364 | "length": 0, 365 | "mandatory_depends_on": null, 366 | "modified": "2020-09-28 16:04:04.404395", 367 | "modified_by": "Administrator", 368 | "module": null, 369 | "name": "Item-nx_bom_qty", 370 | "no_copy": 0, 371 | "non_negative": 0, 372 | "options": null, 373 | "owner": "Administrator", 374 | "parent": null, 375 | "parentfield": null, 376 | "parenttype": null, 377 | "permlevel": 0, 378 | "precision": "", 379 | "print_hide": 0, 380 | "print_hide_if_no_value": 0, 381 | "print_width": null, 382 | "read_only": 0, 383 | "read_only_depends_on": null, 384 | "report_hide": 0, 385 | "reqd": 0, 386 | "search_index": 0, 387 | "show_dashboard": 0, 388 | "sort_options": 0, 389 | "translatable": 0, 390 | "unique": 0, 391 | "width": null 392 | }, 393 | { 394 | "_assign": null, 395 | "_comments": null, 396 | "_liked_by": null, 397 | "_user_tags": null, 398 | "allow_in_quick_entry": 0, 399 | "allow_on_submit": 0, 400 | "bold": 0, 401 | "collapsible": 0, 402 | "collapsible_depends_on": null, 403 | "columns": 0, 404 | "creation": "2019-05-23 13:55:29.486324", 405 | "default": null, 406 | "depends_on": null, 407 | "description": null, 408 | "docstatus": 0, 409 | "dt": "Item", 410 | "fetch_from": null, 411 | "fetch_if_empty": 0, 412 | "fieldname": "hub_sync_id", 413 | "fieldtype": "Data", 414 | "hidden": 1, 415 | "hide_border": 0, 416 | "hide_days": 0, 417 | "hide_seconds": 0, 418 | "idx": 1, 419 | "ignore_user_permissions": 0, 420 | "ignore_xss_filter": 0, 421 | "in_global_search": 0, 422 | "in_list_view": 0, 423 | "in_preview": 0, 424 | "in_standard_filter": 0, 425 | "insert_after": null, 426 | "is_system_generated": 1, 427 | "is_virtual": 0, 428 | "label": "Hub Sync ID", 429 | "length": 0, 430 | "mandatory_depends_on": null, 431 | "modified": "2019-05-23 13:55:29.486324", 432 | "modified_by": "Administrator", 433 | "module": null, 434 | "name": "Item-hub_sync_id", 435 | "no_copy": 1, 436 | "non_negative": 0, 437 | "options": null, 438 | "owner": "Administrator", 439 | "parent": null, 440 | "parentfield": null, 441 | "parenttype": null, 442 | "permlevel": 0, 443 | "precision": null, 444 | "print_hide": 0, 445 | "print_hide_if_no_value": 0, 446 | "print_width": null, 447 | "read_only": 1, 448 | "read_only_depends_on": null, 449 | "report_hide": 0, 450 | "reqd": 0, 451 | "search_index": 0, 452 | "show_dashboard": 0, 453 | "sort_options": 0, 454 | "translatable": 0, 455 | "unique": 1, 456 | "width": null 457 | } 458 | ], 459 | "custom_perms": [], 460 | "doctype": "Item", 461 | "links": [], 462 | "property_setters": [ 463 | { 464 | "_assign": null, 465 | "_comments": null, 466 | "_liked_by": null, 467 | "_user_tags": null, 468 | "creation": "2024-05-23 18:30:50.300625", 469 | "default_value": null, 470 | "doc_type": "Item", 471 | "docstatus": 0, 472 | "doctype_or_field": "DocType", 473 | "field_name": null, 474 | "idx": 0, 475 | "is_system_generated": 0, 476 | "modified": "2024-05-23 18:30:50.300625", 477 | "modified_by": "Administrator", 478 | "module": null, 479 | "name": "Item-main-field_order", 480 | "owner": "Administrator", 481 | "parent": null, 482 | "parentfield": null, 483 | "parenttype": null, 484 | "property": "field_order", 485 | "property_type": "Data", 486 | "row_name": null, 487 | "value": "[\"hub_sync_id\", \"details\", \"naming_series\", \"item_code\", \"item_name\", \"item_group\", \"gst_hsn_code\", \"is_nil_exempt\", \"is_non_gst\", \"stock_uom\", \"medusa_id\", \"meduda_variant_id\", \"column_break0\", \"disabled\", \"allow_alternative_item\", \"is_stock_item\", \"has_variants\", \"opening_stock\", \"valuation_rate\", \"standard_rate\", \"is_fixed_asset\", \"auto_create_assets\", \"is_grouped_asset\", \"asset_category\", \"asset_naming_series\", \"over_delivery_receipt_allowance\", \"over_billing_allowance\", \"image\", \"section_break_11\", \"description\", \"brand\", \"dashboard_tab\", \"inventory_section\", \"inventory_settings_section\", \"shelf_life_in_days\", \"end_of_life\", \"default_material_request_type\", \"valuation_method\", \"column_break1\", \"warranty_period\", \"weight_per_unit\", \"weight_uom\", \"allow_negative_stock\", \"sb_barcodes\", \"barcodes\", \"reorder_section\", \"reorder_levels\", \"unit_of_measure_conversion\", \"uoms\", \"serial_nos_and_batches\", \"has_batch_no\", \"create_new_batch\", \"batch_number_series\", \"has_expiry_date\", \"retain_sample\", \"sample_quantity\", \"column_break_37\", \"has_serial_no\", \"serial_no_series\", \"variants_section\", \"variant_of\", \"variant_based_on\", \"attributes\", \"accounting\", \"deferred_accounting_section\", \"enable_deferred_expense\", \"no_of_months_exp\", \"column_break_9s9o\", \"enable_deferred_revenue\", \"no_of_months\", \"section_break_avcp\", \"item_defaults\", \"purchasing_tab\", \"purchase_uom\", \"min_order_qty\", \"safety_stock\", \"is_purchase_item\", \"purchase_details_cb\", \"lead_time_days\", \"last_purchase_rate\", \"is_customer_provided_item\", \"customer\", \"supplier_details\", \"delivered_by_supplier\", \"column_break2\", \"supplier_items\", \"foreign_trade_details\", \"country_of_origin\", \"column_break_59\", \"customs_tariff_number\", \"sales_details\", \"sales_uom\", \"grant_commission\", \"is_sales_item\", \"column_break3\", \"max_discount\", \"customer_details\", \"customer_items\", \"item_tax_section_break\", \"is_ineligible_for_itc\", \"taxes\", \"quality_tab\", \"inspection_required_before_purchase\", \"quality_inspection_template\", \"inspection_required_before_delivery\", \"manufacturing\", \"include_item_in_manufacturing\", \"is_sub_contracted_item\", \"default_bom\", \"column_break_74\", \"customer_code\", \"default_item_manufacturer\", \"default_manufacturer_part_no\", \"total_projected_qty\", \"nx_bom_qty\"]" 488 | }, 489 | { 490 | "_assign": null, 491 | "_comments": null, 492 | "_liked_by": null, 493 | "_user_tags": null, 494 | "creation": "2024-01-11 11:42:09.121691", 495 | "default_value": null, 496 | "doc_type": "Item", 497 | "docstatus": 0, 498 | "doctype_or_field": "DocField", 499 | "field_name": "barcodes", 500 | "idx": 0, 501 | "is_system_generated": 1, 502 | "modified": "2024-01-11 11:42:09.121691", 503 | "modified_by": "Administrator", 504 | "module": null, 505 | "name": "Item-barcodes-hidden", 506 | "owner": "Administrator", 507 | "parent": null, 508 | "parentfield": null, 509 | "parenttype": null, 510 | "property": "hidden", 511 | "property_type": "Check", 512 | "row_name": null, 513 | "value": "0" 514 | }, 515 | { 516 | "_assign": null, 517 | "_comments": null, 518 | "_liked_by": null, 519 | "_user_tags": null, 520 | "creation": "2024-01-11 11:42:09.012096", 521 | "default_value": null, 522 | "doc_type": "Item", 523 | "docstatus": 0, 524 | "doctype_or_field": "DocField", 525 | "field_name": "item_code", 526 | "idx": 0, 527 | "is_system_generated": 0, 528 | "modified": "2024-01-11 11:42:09.012096", 529 | "modified_by": "Administrator", 530 | "module": null, 531 | "name": "Item-item_code-reqd", 532 | "owner": "Administrator", 533 | "parent": null, 534 | "parentfield": null, 535 | "parenttype": null, 536 | "property": "reqd", 537 | "property_type": "Check", 538 | "row_name": null, 539 | "value": "1" 540 | }, 541 | { 542 | "_assign": null, 543 | "_comments": null, 544 | "_liked_by": null, 545 | "_user_tags": null, 546 | "creation": "2024-01-11 11:42:09.003248", 547 | "default_value": null, 548 | "doc_type": "Item", 549 | "docstatus": 0, 550 | "doctype_or_field": "DocField", 551 | "field_name": "item_code", 552 | "idx": 0, 553 | "is_system_generated": 0, 554 | "modified": "2024-01-11 11:42:09.003248", 555 | "modified_by": "Administrator", 556 | "module": null, 557 | "name": "Item-item_code-hidden", 558 | "owner": "Administrator", 559 | "parent": null, 560 | "parentfield": null, 561 | "parenttype": null, 562 | "property": "hidden", 563 | "property_type": "Check", 564 | "row_name": null, 565 | "value": "0" 566 | }, 567 | { 568 | "_assign": null, 569 | "_comments": null, 570 | "_liked_by": null, 571 | "_user_tags": null, 572 | "creation": "2024-01-11 11:42:08.992742", 573 | "default_value": null, 574 | "doc_type": "Item", 575 | "docstatus": 0, 576 | "doctype_or_field": "DocField", 577 | "field_name": "naming_series", 578 | "idx": 0, 579 | "is_system_generated": 0, 580 | "modified": "2024-01-11 11:42:08.992742", 581 | "modified_by": "Administrator", 582 | "module": null, 583 | "name": "Item-naming_series-hidden", 584 | "owner": "Administrator", 585 | "parent": null, 586 | "parentfield": null, 587 | "parenttype": null, 588 | "property": "hidden", 589 | "property_type": "Check", 590 | "row_name": null, 591 | "value": "1" 592 | }, 593 | { 594 | "_assign": null, 595 | "_comments": null, 596 | "_liked_by": null, 597 | "_user_tags": null, 598 | "creation": "2024-01-11 11:42:08.776784", 599 | "default_value": null, 600 | "doc_type": "Item", 601 | "docstatus": 0, 602 | "doctype_or_field": "DocField", 603 | "field_name": "naming_series", 604 | "idx": 0, 605 | "is_system_generated": 0, 606 | "modified": "2024-01-11 11:42:08.776784", 607 | "modified_by": "Administrator", 608 | "module": null, 609 | "name": "Item-naming_series-reqd", 610 | "owner": "Administrator", 611 | "parent": null, 612 | "parentfield": null, 613 | "parenttype": null, 614 | "property": "reqd", 615 | "property_type": "Check", 616 | "row_name": null, 617 | "value": "0" 618 | } 619 | ], 620 | "sync_on_migrate": 1 621 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/website_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2022-09-22 17:41:13.207818", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Website Item", 20 | "fetch_from": null, 21 | "fetch_if_empty": 0, 22 | "fieldname": "competitor_tags", 23 | "fieldtype": "Data", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 40, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "set_meta_tags", 36 | "is_system_generated": 1, 37 | "is_virtual": 0, 38 | "label": "Competitor Tags", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2022-09-22 17:41:13.207818", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Website Item-competitor_tags", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 0, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 0, 64 | "unique": 0, 65 | "width": null 66 | }, 67 | { 68 | "_assign": null, 69 | "_comments": null, 70 | "_liked_by": null, 71 | "_user_tags": null, 72 | "allow_in_quick_entry": 0, 73 | "allow_on_submit": 0, 74 | "bold": 0, 75 | "collapsible": 0, 76 | "collapsible_depends_on": null, 77 | "columns": 0, 78 | "creation": "2023-12-13 09:08:27.598820", 79 | "default": null, 80 | "depends_on": null, 81 | "description": null, 82 | "docstatus": 0, 83 | "dt": "Website Item", 84 | "fetch_from": null, 85 | "fetch_if_empty": 0, 86 | "fieldname": "custom_in_stock", 87 | "fieldtype": "Check", 88 | "hidden": 0, 89 | "hide_border": 0, 90 | "hide_days": 0, 91 | "hide_seconds": 0, 92 | "idx": 27, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_preview": 0, 98 | "in_standard_filter": 0, 99 | "insert_after": "custom_threshold_qty", 100 | "is_system_generated": 0, 101 | "is_virtual": 0, 102 | "label": "In Stock", 103 | "length": 0, 104 | "mandatory_depends_on": null, 105 | "modified": "2023-12-13 09:08:27.598820", 106 | "modified_by": "Administrator", 107 | "module": null, 108 | "name": "Website Item-custom_in_stock", 109 | "no_copy": 0, 110 | "non_negative": 0, 111 | "options": null, 112 | "owner": "Administrator", 113 | "parent": null, 114 | "parentfield": null, 115 | "parenttype": null, 116 | "permlevel": 0, 117 | "precision": "", 118 | "print_hide": 0, 119 | "print_hide_if_no_value": 0, 120 | "print_width": null, 121 | "read_only": 0, 122 | "read_only_depends_on": null, 123 | "report_hide": 0, 124 | "reqd": 0, 125 | "search_index": 0, 126 | "sort_options": 0, 127 | "translatable": 0, 128 | "unique": 0, 129 | "width": null 130 | }, 131 | { 132 | "_assign": null, 133 | "_comments": null, 134 | "_liked_by": null, 135 | "_user_tags": null, 136 | "allow_in_quick_entry": 0, 137 | "allow_on_submit": 0, 138 | "bold": 0, 139 | "collapsible": 0, 140 | "collapsible_depends_on": null, 141 | "columns": 0, 142 | "creation": "2024-06-07 16:17:42.930387", 143 | "default": null, 144 | "depends_on": null, 145 | "description": null, 146 | "docstatus": 0, 147 | "dt": "Website Item", 148 | "fetch_from": null, 149 | "fetch_if_empty": 0, 150 | "fieldname": "medusa_id", 151 | "fieldtype": "Data", 152 | "hidden": 0, 153 | "hide_border": 0, 154 | "hide_days": 0, 155 | "hide_seconds": 0, 156 | "idx": 7, 157 | "ignore_user_permissions": 0, 158 | "ignore_xss_filter": 0, 159 | "in_global_search": 0, 160 | "in_list_view": 0, 161 | "in_preview": 0, 162 | "in_standard_filter": 0, 163 | "insert_after": "published", 164 | "is_system_generated": 0, 165 | "is_virtual": 0, 166 | "label": "Medusa ID", 167 | "length": 0, 168 | "mandatory_depends_on": null, 169 | "modified": "2024-06-07 16:18:22.531325", 170 | "modified_by": "Administrator", 171 | "module": null, 172 | "name": "Website Item-custom_medusa_id", 173 | "no_copy": 0, 174 | "non_negative": 0, 175 | "options": null, 176 | "owner": "Administrator", 177 | "parent": null, 178 | "parentfield": null, 179 | "parenttype": null, 180 | "permlevel": 0, 181 | "precision": "", 182 | "print_hide": 0, 183 | "print_hide_if_no_value": 0, 184 | "print_width": null, 185 | "read_only": 1, 186 | "read_only_depends_on": null, 187 | "report_hide": 0, 188 | "reqd": 0, 189 | "search_index": 0, 190 | "sort_options": 0, 191 | "translatable": 0, 192 | "unique": 0, 193 | "width": null 194 | }, 195 | { 196 | "_assign": null, 197 | "_comments": null, 198 | "_liked_by": null, 199 | "_user_tags": null, 200 | "allow_in_quick_entry": 0, 201 | "allow_on_submit": 0, 202 | "bold": 0, 203 | "collapsible": 0, 204 | "collapsible_depends_on": null, 205 | "columns": 0, 206 | "creation": "2024-06-07 16:17:43.119231", 207 | "default": null, 208 | "depends_on": null, 209 | "description": null, 210 | "docstatus": 0, 211 | "dt": "Website Item", 212 | "fetch_from": null, 213 | "fetch_if_empty": 0, 214 | "fieldname": "medusa_variant_id", 215 | "fieldtype": "Data", 216 | "hidden": 0, 217 | "hide_border": 0, 218 | "hide_days": 0, 219 | "hide_seconds": 0, 220 | "idx": 8, 221 | "ignore_user_permissions": 0, 222 | "ignore_xss_filter": 0, 223 | "in_global_search": 0, 224 | "in_list_view": 0, 225 | "in_preview": 0, 226 | "in_standard_filter": 0, 227 | "insert_after": "medusa_id", 228 | "is_system_generated": 0, 229 | "is_virtual": 0, 230 | "label": "Medusa Variant ID", 231 | "length": 0, 232 | "mandatory_depends_on": null, 233 | "modified": "2024-06-07 16:18:41.169421", 234 | "modified_by": "Administrator", 235 | "module": null, 236 | "name": "Website Item-custom_medusa_variant_id", 237 | "no_copy": 0, 238 | "non_negative": 0, 239 | "options": null, 240 | "owner": "Administrator", 241 | "parent": null, 242 | "parentfield": null, 243 | "parenttype": null, 244 | "permlevel": 0, 245 | "precision": "", 246 | "print_hide": 0, 247 | "print_hide_if_no_value": 0, 248 | "print_width": null, 249 | "read_only": 1, 250 | "read_only_depends_on": null, 251 | "report_hide": 0, 252 | "reqd": 0, 253 | "search_index": 0, 254 | "sort_options": 0, 255 | "translatable": 0, 256 | "unique": 0, 257 | "width": null 258 | }, 259 | { 260 | "_assign": null, 261 | "_comments": null, 262 | "_liked_by": null, 263 | "_user_tags": null, 264 | "allow_in_quick_entry": 0, 265 | "allow_on_submit": 0, 266 | "bold": 0, 267 | "collapsible": 0, 268 | "collapsible_depends_on": null, 269 | "columns": 0, 270 | "creation": "2025-01-21 16:25:02.848802", 271 | "default": null, 272 | "depends_on": null, 273 | "description": null, 274 | "docstatus": 0, 275 | "dt": "Website Item", 276 | "fetch_from": null, 277 | "fetch_if_empty": 0, 278 | "fieldname": "custom_medusa_wishlist", 279 | "fieldtype": "Table", 280 | "hidden": 1, 281 | "hide_border": 0, 282 | "hide_days": 0, 283 | "hide_seconds": 0, 284 | "idx": 40, 285 | "ignore_user_permissions": 0, 286 | "ignore_xss_filter": 0, 287 | "in_global_search": 0, 288 | "in_list_view": 0, 289 | "in_preview": 0, 290 | "in_standard_filter": 0, 291 | "insert_after": "custom_skip_update_hook", 292 | "is_system_generated": 0, 293 | "is_virtual": 0, 294 | "label": "Medusa Wishlist", 295 | "length": 0, 296 | "mandatory_depends_on": null, 297 | "modified": "2025-01-21 16:25:02.848802", 298 | "modified_by": "Administrator", 299 | "module": null, 300 | "name": "Website Item-custom_medusa_wishlist", 301 | "no_copy": 0, 302 | "non_negative": 0, 303 | "options": "Medusa Wishlist", 304 | "owner": "Administrator", 305 | "parent": null, 306 | "parentfield": null, 307 | "parenttype": null, 308 | "permlevel": 0, 309 | "precision": "", 310 | "print_hide": 0, 311 | "print_hide_if_no_value": 0, 312 | "print_width": null, 313 | "read_only": 0, 314 | "read_only_depends_on": null, 315 | "report_hide": 0, 316 | "reqd": 0, 317 | "search_index": 0, 318 | "sort_options": 0, 319 | "translatable": 0, 320 | "unique": 0, 321 | "width": null 322 | }, 323 | { 324 | "_assign": null, 325 | "_comments": null, 326 | "_liked_by": null, 327 | "_user_tags": null, 328 | "allow_in_quick_entry": 0, 329 | "allow_on_submit": 0, 330 | "bold": 0, 331 | "collapsible": 0, 332 | "collapsible_depends_on": null, 333 | "columns": 0, 334 | "creation": "2024-12-27 11:13:31.149087", 335 | "default": null, 336 | "depends_on": null, 337 | "description": null, 338 | "docstatus": 0, 339 | "dt": "Website Item", 340 | "fetch_from": null, 341 | "fetch_if_empty": 0, 342 | "fieldname": "custom_overall_rating", 343 | "fieldtype": "Float", 344 | "hidden": 0, 345 | "hide_border": 0, 346 | "hide_days": 0, 347 | "hide_seconds": 0, 348 | "idx": 37, 349 | "ignore_user_permissions": 0, 350 | "ignore_xss_filter": 0, 351 | "in_global_search": 0, 352 | "in_list_view": 1, 353 | "in_preview": 0, 354 | "in_standard_filter": 0, 355 | "insert_after": "display_additional_information_section", 356 | "is_system_generated": 0, 357 | "is_virtual": 0, 358 | "label": "Overall Rating (From e-commerce site)", 359 | "length": 0, 360 | "mandatory_depends_on": null, 361 | "modified": "2024-12-27 11:13:31.149087", 362 | "modified_by": "Administrator", 363 | "module": null, 364 | "name": "Website Item-custom_overall_rating", 365 | "no_copy": 0, 366 | "non_negative": 0, 367 | "options": null, 368 | "owner": "Administrator", 369 | "parent": null, 370 | "parentfield": null, 371 | "parenttype": null, 372 | "permlevel": 0, 373 | "precision": "", 374 | "print_hide": 0, 375 | "print_hide_if_no_value": 0, 376 | "print_width": null, 377 | "read_only": 1, 378 | "read_only_depends_on": null, 379 | "report_hide": 0, 380 | "reqd": 0, 381 | "search_index": 0, 382 | "sort_options": 0, 383 | "translatable": 0, 384 | "unique": 0, 385 | "width": null 386 | }, 387 | { 388 | "_assign": null, 389 | "_comments": null, 390 | "_liked_by": null, 391 | "_user_tags": null, 392 | "allow_in_quick_entry": 0, 393 | "allow_on_submit": 0, 394 | "bold": 0, 395 | "collapsible": 0, 396 | "collapsible_depends_on": null, 397 | "columns": 0, 398 | "creation": "2025-04-23 14:41:33.392334", 399 | "default": null, 400 | "depends_on": "eval:doc.has_variants != 1", 401 | "description": null, 402 | "docstatus": 0, 403 | "dt": "Website Item", 404 | "fetch_from": null, 405 | "fetch_if_empty": 0, 406 | "fieldname": "custom_parent_website_item", 407 | "fieldtype": "Link", 408 | "hidden": 0, 409 | "hide_border": 0, 410 | "hide_days": 0, 411 | "hide_seconds": 0, 412 | "idx": 17, 413 | "ignore_user_permissions": 0, 414 | "ignore_xss_filter": 0, 415 | "in_global_search": 0, 416 | "in_list_view": 0, 417 | "in_preview": 0, 418 | "in_standard_filter": 0, 419 | "insert_after": "brand", 420 | "is_system_generated": 0, 421 | "is_virtual": 0, 422 | "label": "Parent Website Item", 423 | "length": 0, 424 | "mandatory_depends_on": null, 425 | "modified": "2025-04-23 14:41:33.392334", 426 | "modified_by": "Administrator", 427 | "module": null, 428 | "name": "Website Item-custom_parent_website_item", 429 | "no_copy": 0, 430 | "non_negative": 0, 431 | "options": "Website Item", 432 | "owner": "Administrator", 433 | "parent": null, 434 | "parentfield": null, 435 | "parenttype": null, 436 | "permlevel": 0, 437 | "precision": "", 438 | "print_hide": 0, 439 | "print_hide_if_no_value": 0, 440 | "print_width": null, 441 | "read_only": 0, 442 | "read_only_depends_on": null, 443 | "report_hide": 0, 444 | "reqd": 0, 445 | "search_index": 0, 446 | "sort_options": 0, 447 | "translatable": 0, 448 | "unique": 0, 449 | "width": null 450 | }, 451 | { 452 | "_assign": null, 453 | "_comments": null, 454 | "_liked_by": null, 455 | "_user_tags": null, 456 | "allow_in_quick_entry": 0, 457 | "allow_on_submit": 0, 458 | "bold": 0, 459 | "collapsible": 0, 460 | "collapsible_depends_on": null, 461 | "columns": 0, 462 | "creation": "2024-12-27 09:33:39.252707", 463 | "default": null, 464 | "depends_on": null, 465 | "description": null, 466 | "docstatus": 0, 467 | "dt": "Website Item", 468 | "fetch_from": null, 469 | "fetch_if_empty": 0, 470 | "fieldname": "custom_review", 471 | "fieldtype": "Table", 472 | "hidden": 1, 473 | "hide_border": 0, 474 | "hide_days": 0, 475 | "hide_seconds": 0, 476 | "idx": 38, 477 | "ignore_user_permissions": 0, 478 | "ignore_xss_filter": 0, 479 | "in_global_search": 0, 480 | "in_list_view": 0, 481 | "in_preview": 0, 482 | "in_standard_filter": 0, 483 | "insert_after": "custom_overall_rating", 484 | "is_system_generated": 0, 485 | "is_virtual": 0, 486 | "label": "Review", 487 | "length": 0, 488 | "mandatory_depends_on": null, 489 | "modified": "2024-12-27 09:33:39.252707", 490 | "modified_by": "Administrator", 491 | "module": null, 492 | "name": "Website Item-custom_review", 493 | "no_copy": 0, 494 | "non_negative": 0, 495 | "options": "Website Item Review", 496 | "owner": "Administrator", 497 | "parent": null, 498 | "parentfield": null, 499 | "parenttype": null, 500 | "permlevel": 0, 501 | "precision": "", 502 | "print_hide": 0, 503 | "print_hide_if_no_value": 0, 504 | "print_width": null, 505 | "read_only": 1, 506 | "read_only_depends_on": null, 507 | "report_hide": 0, 508 | "reqd": 0, 509 | "search_index": 0, 510 | "sort_options": 0, 511 | "translatable": 0, 512 | "unique": 0, 513 | "width": "100" 514 | }, 515 | { 516 | "_assign": null, 517 | "_comments": null, 518 | "_liked_by": null, 519 | "_user_tags": null, 520 | "allow_in_quick_entry": 0, 521 | "allow_on_submit": 0, 522 | "bold": 0, 523 | "collapsible": 0, 524 | "collapsible_depends_on": null, 525 | "columns": 0, 526 | "creation": "2025-01-03 14:00:22.648766", 527 | "default": "0", 528 | "depends_on": null, 529 | "description": null, 530 | "docstatus": 0, 531 | "dt": "Website Item", 532 | "fetch_from": null, 533 | "fetch_if_empty": 0, 534 | "fieldname": "custom_skip_update_hook", 535 | "fieldtype": "Check", 536 | "hidden": 1, 537 | "hide_border": 0, 538 | "hide_days": 0, 539 | "hide_seconds": 0, 540 | "idx": 39, 541 | "ignore_user_permissions": 0, 542 | "ignore_xss_filter": 0, 543 | "in_global_search": 0, 544 | "in_list_view": 0, 545 | "in_preview": 0, 546 | "in_standard_filter": 0, 547 | "insert_after": "custom_review", 548 | "is_system_generated": 0, 549 | "is_virtual": 0, 550 | "label": "Skip update hook", 551 | "length": 0, 552 | "mandatory_depends_on": null, 553 | "modified": "2025-01-03 14:00:22.648766", 554 | "modified_by": "Administrator", 555 | "module": null, 556 | "name": "Website Item-custom_skip_update_hook", 557 | "no_copy": 0, 558 | "non_negative": 0, 559 | "options": null, 560 | "owner": "Administrator", 561 | "parent": null, 562 | "parentfield": null, 563 | "parenttype": null, 564 | "permlevel": 0, 565 | "precision": "", 566 | "print_hide": 0, 567 | "print_hide_if_no_value": 0, 568 | "print_width": null, 569 | "read_only": 0, 570 | "read_only_depends_on": null, 571 | "report_hide": 0, 572 | "reqd": 0, 573 | "search_index": 0, 574 | "sort_options": 0, 575 | "translatable": 0, 576 | "unique": 0, 577 | "width": null 578 | }, 579 | { 580 | "_assign": null, 581 | "_comments": null, 582 | "_liked_by": null, 583 | "_user_tags": null, 584 | "allow_in_quick_entry": 0, 585 | "allow_on_submit": 0, 586 | "bold": 0, 587 | "collapsible": 0, 588 | "collapsible_depends_on": null, 589 | "columns": 0, 590 | "creation": "2023-12-13 09:06:54.156851", 591 | "default": "1", 592 | "depends_on": null, 593 | "description": "If the stock availability is above this threshold qty (stock UoM), then it will be considered \"Available\" in the website.", 594 | "docstatus": 0, 595 | "dt": "Website Item", 596 | "fetch_from": null, 597 | "fetch_if_empty": 0, 598 | "fieldname": "custom_threshold_qty", 599 | "fieldtype": "Int", 600 | "hidden": 0, 601 | "hide_border": 0, 602 | "hide_days": 0, 603 | "hide_seconds": 0, 604 | "idx": 26, 605 | "ignore_user_permissions": 0, 606 | "ignore_xss_filter": 0, 607 | "in_global_search": 0, 608 | "in_list_view": 0, 609 | "in_preview": 0, 610 | "in_standard_filter": 0, 611 | "insert_after": "website_warehouse", 612 | "is_system_generated": 0, 613 | "is_virtual": 0, 614 | "label": "Threshold Qty", 615 | "length": 0, 616 | "mandatory_depends_on": null, 617 | "modified": "2023-12-13 09:06:54.156851", 618 | "modified_by": "Administrator", 619 | "module": null, 620 | "name": "Website Item-custom_threshold_qty", 621 | "no_copy": 0, 622 | "non_negative": 0, 623 | "options": null, 624 | "owner": "Administrator", 625 | "parent": null, 626 | "parentfield": null, 627 | "parenttype": null, 628 | "permlevel": 0, 629 | "precision": "", 630 | "print_hide": 0, 631 | "print_hide_if_no_value": 0, 632 | "print_width": null, 633 | "read_only": 0, 634 | "read_only_depends_on": null, 635 | "report_hide": 0, 636 | "reqd": 0, 637 | "search_index": 0, 638 | "sort_options": 0, 639 | "translatable": 0, 640 | "unique": 0, 641 | "width": null 642 | } 643 | ], 644 | "custom_perms": [], 645 | "doctype": "Website Item", 646 | "links": [], 647 | "property_setters": [ 648 | { 649 | "_assign": null, 650 | "_comments": null, 651 | "_liked_by": null, 652 | "_user_tags": null, 653 | "creation": "2025-04-23 14:41:42.191450", 654 | "default_value": null, 655 | "doc_type": "Website Item", 656 | "docstatus": 0, 657 | "doctype_or_field": "DocType", 658 | "field_name": null, 659 | "idx": 0, 660 | "is_system_generated": 0, 661 | "modified": "2025-04-23 14:41:42.191450", 662 | "modified_by": "Administrator", 663 | "module": null, 664 | "name": "Website Item-main-field_order", 665 | "owner": "Administrator", 666 | "parent": null, 667 | "parentfield": null, 668 | "parenttype": null, 669 | "property": "field_order", 670 | "property_type": "Data", 671 | "row_name": null, 672 | "value": "[\"naming_series\", \"web_item_name\", \"route\", \"has_variants\", \"variant_of\", \"published\", \"medusa_id\", \"medusa_variant_id\", \"column_break_3\", \"item_code\", \"item_name\", \"item_group\", \"stock_uom\", \"column_break_11\", \"description\", \"brand\", \"custom_parent_website_item\", \"display_section\", \"website_image\", \"website_image_alt\", \"column_break_13\", \"slideshow\", \"thumbnail\", \"stock_information_section\", \"website_warehouse\", \"custom_threshold_qty\", \"custom_in_stock\", \"column_break_24\", \"on_backorder\", \"section_break_17\", \"short_description\", \"web_long_description\", \"column_break_27\", \"website_specifications\", \"copy_from_item_group\", \"display_additional_information_section\", \"custom_overall_rating\", \"custom_review\", \"custom_skip_update_hook\", \"custom_medusa_wishlist\", \"show_tabbed_section\", \"tabs\", \"recommended_items_section\", \"recommended_items\", \"offers_section\", \"offers\", \"section_break_6\", \"ranking\", \"set_meta_tags\", \"competitor_tags\", \"column_break_22\", \"website_item_groups\", \"advanced_display_section\", \"website_content\"]" 673 | }, 674 | { 675 | "_assign": null, 676 | "_comments": null, 677 | "_liked_by": null, 678 | "_user_tags": null, 679 | "creation": "2021-12-08 13:52:27.281051", 680 | "default_value": null, 681 | "doc_type": "Website Item", 682 | "docstatus": 0, 683 | "doctype_or_field": "DocField", 684 | "field_name": "naming_series", 685 | "idx": 0, 686 | "is_system_generated": 1, 687 | "modified": "2025-03-10 11:52:00.599915", 688 | "modified_by": "Administrator", 689 | "module": null, 690 | "name": "Website Item-naming_series-default", 691 | "owner": "Administrator", 692 | "parent": null, 693 | "parentfield": null, 694 | "parenttype": null, 695 | "property": "default", 696 | "property_type": "Text", 697 | "row_name": null, 698 | "value": "WEB-ITM-.####" 699 | }, 700 | { 701 | "_assign": null, 702 | "_comments": null, 703 | "_liked_by": null, 704 | "_user_tags": null, 705 | "creation": "2021-12-08 13:52:27.254202", 706 | "default_value": null, 707 | "doc_type": "Website Item", 708 | "docstatus": 0, 709 | "doctype_or_field": "DocField", 710 | "field_name": "naming_series", 711 | "idx": 0, 712 | "is_system_generated": 1, 713 | "modified": "2025-03-10 11:52:00.616603", 714 | "modified_by": "Administrator", 715 | "module": null, 716 | "name": "Website Item-naming_series-options", 717 | "owner": "Administrator", 718 | "parent": null, 719 | "parentfield": null, 720 | "parenttype": null, 721 | "property": "options", 722 | "property_type": "Text", 723 | "row_name": null, 724 | "value": "WEB-ITM-.####" 725 | } 726 | ], 727 | "sync_on_migrate": 1 728 | } -------------------------------------------------------------------------------- /medusa_integration/medusa_integration/custom/sales_order_item.json: -------------------------------------------------------------------------------- 1 | { 2 | "custom_fields": [ 3 | { 4 | "_assign": null, 5 | "_comments": null, 6 | "_liked_by": null, 7 | "_user_tags": null, 8 | "allow_in_quick_entry": 0, 9 | "allow_on_submit": 0, 10 | "bold": 0, 11 | "collapsible": 0, 12 | "collapsible_depends_on": null, 13 | "columns": 0, 14 | "creation": "2023-03-22 18:56:07.282640", 15 | "default": null, 16 | "depends_on": null, 17 | "description": null, 18 | "docstatus": 0, 19 | "dt": "Sales Order Item", 20 | "fetch_from": "item_code.allow_alternative_item", 21 | "fetch_if_empty": 0, 22 | "fieldname": "allow_alternative_item", 23 | "fieldtype": "Check", 24 | "hidden": 0, 25 | "hide_border": 0, 26 | "hide_days": 0, 27 | "hide_seconds": 0, 28 | "idx": 3, 29 | "ignore_user_permissions": 0, 30 | "ignore_xss_filter": 0, 31 | "in_global_search": 0, 32 | "in_list_view": 0, 33 | "in_preview": 0, 34 | "in_standard_filter": 0, 35 | "insert_after": "sr_no", 36 | "is_system_generated": 1, 37 | "is_virtual": 0, 38 | "label": "Allow Alternative Item", 39 | "length": 0, 40 | "mandatory_depends_on": null, 41 | "modified": "2023-03-22 18:56:07.282640", 42 | "modified_by": "Administrator", 43 | "module": null, 44 | "name": "Sales Order Item-allow_alternative_item", 45 | "no_copy": 0, 46 | "non_negative": 0, 47 | "options": null, 48 | "owner": "Administrator", 49 | "parent": null, 50 | "parentfield": null, 51 | "parenttype": null, 52 | "permlevel": 0, 53 | "precision": "", 54 | "print_hide": 0, 55 | "print_hide_if_no_value": 0, 56 | "print_width": null, 57 | "read_only": 0, 58 | "read_only_depends_on": null, 59 | "report_hide": 0, 60 | "reqd": 0, 61 | "search_index": 0, 62 | "sort_options": 0, 63 | "translatable": 0, 64 | "unique": 0, 65 | "width": null 66 | }, 67 | { 68 | "_assign": null, 69 | "_comments": null, 70 | "_liked_by": null, 71 | "_user_tags": null, 72 | "allow_in_quick_entry": 0, 73 | "allow_on_submit": 0, 74 | "bold": 0, 75 | "collapsible": 0, 76 | "collapsible_depends_on": null, 77 | "columns": 0, 78 | "creation": "2024-08-21 09:11:00.994904", 79 | "default": null, 80 | "depends_on": null, 81 | "description": null, 82 | "docstatus": 0, 83 | "dt": "Sales Order Item", 84 | "fetch_from": "item_code.custom_generic_name", 85 | "fetch_if_empty": 0, 86 | "fieldname": "custom_generic_name", 87 | "fieldtype": "Data", 88 | "hidden": 0, 89 | "hide_border": 0, 90 | "hide_days": 0, 91 | "hide_seconds": 0, 92 | "idx": 103, 93 | "ignore_user_permissions": 0, 94 | "ignore_xss_filter": 0, 95 | "in_global_search": 0, 96 | "in_list_view": 0, 97 | "in_preview": 0, 98 | "in_standard_filter": 0, 99 | "insert_after": "purchase_order_item", 100 | "is_system_generated": 0, 101 | "is_virtual": 0, 102 | "label": "Generic Name", 103 | "length": 0, 104 | "mandatory_depends_on": null, 105 | "modified": "2024-08-21 09:11:00.994904", 106 | "modified_by": "anto@alfarsi.me", 107 | "module": null, 108 | "name": "Sales Order Item-custom_generic_name", 109 | "no_copy": 0, 110 | "non_negative": 0, 111 | "options": null, 112 | "owner": "anto@alfarsi.me", 113 | "parent": null, 114 | "parentfield": null, 115 | "parenttype": null, 116 | "permlevel": 0, 117 | "precision": "", 118 | "print_hide": 0, 119 | "print_hide_if_no_value": 0, 120 | "print_width": null, 121 | "read_only": 0, 122 | "read_only_depends_on": null, 123 | "report_hide": 0, 124 | "reqd": 0, 125 | "search_index": 0, 126 | "sort_options": 0, 127 | "translatable": 1, 128 | "unique": 0, 129 | "width": null 130 | }, 131 | { 132 | "_assign": null, 133 | "_comments": null, 134 | "_liked_by": null, 135 | "_user_tags": null, 136 | "allow_in_quick_entry": 0, 137 | "allow_on_submit": 0, 138 | "bold": 0, 139 | "collapsible": 0, 140 | "collapsible_depends_on": null, 141 | "columns": 0, 142 | "creation": "2023-03-22 18:45:01.958039", 143 | "default": null, 144 | "depends_on": "is_free_item", 145 | "description": null, 146 | "docstatus": 0, 147 | "dt": "Sales Order Item", 148 | "fetch_from": null, 149 | "fetch_if_empty": 0, 150 | "fieldname": "foc_amount", 151 | "fieldtype": "Currency", 152 | "hidden": 0, 153 | "hide_border": 0, 154 | "hide_days": 0, 155 | "hide_seconds": 0, 156 | "idx": 49, 157 | "ignore_user_permissions": 0, 158 | "ignore_xss_filter": 0, 159 | "in_global_search": 0, 160 | "in_list_view": 0, 161 | "in_preview": 0, 162 | "in_standard_filter": 0, 163 | "insert_after": "net_amount", 164 | "is_system_generated": 1, 165 | "is_virtual": 0, 166 | "label": "FOC Amount", 167 | "length": 0, 168 | "mandatory_depends_on": null, 169 | "modified": "2023-03-22 18:45:01.958039", 170 | "modified_by": "Administrator", 171 | "module": null, 172 | "name": "Sales Order Item-foc_amount", 173 | "no_copy": 0, 174 | "non_negative": 0, 175 | "options": null, 176 | "owner": "Administrator", 177 | "parent": null, 178 | "parentfield": null, 179 | "parenttype": null, 180 | "permlevel": 0, 181 | "precision": "", 182 | "print_hide": 0, 183 | "print_hide_if_no_value": 0, 184 | "print_width": null, 185 | "read_only": 0, 186 | "read_only_depends_on": null, 187 | "report_hide": 0, 188 | "reqd": 0, 189 | "search_index": 0, 190 | "sort_options": 0, 191 | "translatable": 0, 192 | "unique": 0, 193 | "width": null 194 | }, 195 | { 196 | "_assign": null, 197 | "_comments": null, 198 | "_liked_by": null, 199 | "_user_tags": null, 200 | "allow_in_quick_entry": 0, 201 | "allow_on_submit": 0, 202 | "bold": 0, 203 | "collapsible": 0, 204 | "collapsible_depends_on": null, 205 | "columns": 0, 206 | "creation": "2021-11-01 16:27:33.382655", 207 | "default": null, 208 | "depends_on": "eval:doc.rate=='0'", 209 | "description": null, 210 | "docstatus": 0, 211 | "dt": "Sales Order Item", 212 | "fetch_from": null, 213 | "fetch_if_empty": 0, 214 | "fieldname": "foc_rate", 215 | "fieldtype": "Currency", 216 | "hidden": 0, 217 | "hide_border": 0, 218 | "hide_days": 0, 219 | "hide_seconds": 0, 220 | "idx": 36, 221 | "ignore_user_permissions": 0, 222 | "ignore_xss_filter": 0, 223 | "in_global_search": 0, 224 | "in_list_view": 1, 225 | "in_preview": 0, 226 | "in_standard_filter": 0, 227 | "insert_after": "rate", 228 | "is_system_generated": 1, 229 | "is_virtual": 0, 230 | "label": "FOC Amount", 231 | "length": 0, 232 | "mandatory_depends_on": "eval:doc.rate=='0'", 233 | "modified": "2021-11-01 16:27:33.382655", 234 | "modified_by": "Administrator", 235 | "module": null, 236 | "name": "Sales Order Item-foc_rate", 237 | "no_copy": 0, 238 | "non_negative": 0, 239 | "options": null, 240 | "owner": "Administrator", 241 | "parent": null, 242 | "parentfield": null, 243 | "parenttype": null, 244 | "permlevel": 0, 245 | "precision": "3", 246 | "print_hide": 0, 247 | "print_hide_if_no_value": 0, 248 | "print_width": "1", 249 | "read_only": 0, 250 | "read_only_depends_on": "", 251 | "report_hide": 0, 252 | "reqd": 0, 253 | "search_index": 0, 254 | "sort_options": 0, 255 | "translatable": 0, 256 | "unique": 0, 257 | "width": null 258 | }, 259 | { 260 | "_assign": null, 261 | "_comments": null, 262 | "_liked_by": null, 263 | "_user_tags": null, 264 | "allow_in_quick_entry": 0, 265 | "allow_on_submit": 0, 266 | "bold": 0, 267 | "collapsible": 0, 268 | "collapsible_depends_on": null, 269 | "columns": 0, 270 | "creation": "2023-10-21 07:23:49.328982", 271 | "default": null, 272 | "depends_on": null, 273 | "description": null, 274 | "docstatus": 0, 275 | "dt": "Sales Order Item", 276 | "fetch_from": null, 277 | "fetch_if_empty": 0, 278 | "fieldname": "item_group", 279 | "fieldtype": "Link", 280 | "hidden": 0, 281 | "hide_border": 0, 282 | "hide_days": 0, 283 | "hide_seconds": 0, 284 | "idx": 0, 285 | "ignore_user_permissions": 0, 286 | "ignore_xss_filter": 0, 287 | "in_global_search": 0, 288 | "in_list_view": 0, 289 | "in_preview": 0, 290 | "in_standard_filter": 0, 291 | "insert_after": "accounting_dimensions_section", 292 | "is_system_generated": 1, 293 | "is_virtual": 0, 294 | "label": "Item Group", 295 | "length": 0, 296 | "mandatory_depends_on": null, 297 | "modified": "2023-10-21 07:23:49.328982", 298 | "modified_by": "Administrator", 299 | "module": null, 300 | "name": "Sales Order Item-item_group", 301 | "no_copy": 0, 302 | "non_negative": 0, 303 | "options": "Item Group", 304 | "owner": "Administrator", 305 | "parent": null, 306 | "parentfield": null, 307 | "parenttype": null, 308 | "permlevel": 0, 309 | "precision": "", 310 | "print_hide": 0, 311 | "print_hide_if_no_value": 0, 312 | "print_width": null, 313 | "read_only": 0, 314 | "read_only_depends_on": null, 315 | "report_hide": 0, 316 | "reqd": 0, 317 | "search_index": 0, 318 | "sort_options": 0, 319 | "translatable": 1, 320 | "unique": 0, 321 | "width": null 322 | }, 323 | { 324 | "_assign": null, 325 | "_comments": null, 326 | "_liked_by": null, 327 | "_user_tags": null, 328 | "allow_in_quick_entry": 0, 329 | "allow_on_submit": 0, 330 | "bold": 0, 331 | "collapsible": 0, 332 | "collapsible_depends_on": null, 333 | "columns": 0, 334 | "creation": "2021-11-02 11:02:30.348210", 335 | "default": null, 336 | "depends_on": null, 337 | "description": null, 338 | "docstatus": 0, 339 | "dt": "Sales Order Item", 340 | "fetch_from": null, 341 | "fetch_if_empty": 0, 342 | "fieldname": "sr_no", 343 | "fieldtype": "Float", 344 | "hidden": 0, 345 | "hide_border": 0, 346 | "hide_days": 0, 347 | "hide_seconds": 0, 348 | "idx": 2, 349 | "ignore_user_permissions": 0, 350 | "ignore_xss_filter": 0, 351 | "in_global_search": 0, 352 | "in_list_view": 1, 353 | "in_preview": 0, 354 | "in_standard_filter": 0, 355 | "insert_after": "item_code", 356 | "is_system_generated": 1, 357 | "is_virtual": 0, 358 | "label": "Cust. Sr No", 359 | "length": 0, 360 | "mandatory_depends_on": null, 361 | "modified": "2021-11-02 11:02:30.348210", 362 | "modified_by": "Administrator", 363 | "module": null, 364 | "name": "Sales Order Item-sr_no", 365 | "no_copy": 0, 366 | "non_negative": 0, 367 | "options": null, 368 | "owner": "Administrator", 369 | "parent": null, 370 | "parentfield": null, 371 | "parenttype": null, 372 | "permlevel": 0, 373 | "precision": "", 374 | "print_hide": 0, 375 | "print_hide_if_no_value": 0, 376 | "print_width": null, 377 | "read_only": 0, 378 | "read_only_depends_on": null, 379 | "report_hide": 0, 380 | "reqd": 0, 381 | "search_index": 0, 382 | "sort_options": 0, 383 | "translatable": 0, 384 | "unique": 0, 385 | "width": null 386 | }, 387 | { 388 | "_assign": null, 389 | "_comments": null, 390 | "_liked_by": null, 391 | "_user_tags": null, 392 | "allow_in_quick_entry": 0, 393 | "allow_on_submit": 0, 394 | "bold": 0, 395 | "collapsible": 0, 396 | "collapsible_depends_on": null, 397 | "columns": 0, 398 | "creation": "2024-06-20 19:49:24.041256", 399 | "default": null, 400 | "depends_on": null, 401 | "description": null, 402 | "docstatus": 0, 403 | "dt": "Sales Order Item", 404 | "fetch_from": null, 405 | "fetch_if_empty": 0, 406 | "fieldname": "tax_amount", 407 | "fieldtype": "Currency", 408 | "hidden": 1, 409 | "hide_border": 0, 410 | "hide_days": 0, 411 | "hide_seconds": 0, 412 | "idx": 0, 413 | "ignore_user_permissions": 0, 414 | "ignore_xss_filter": 0, 415 | "in_global_search": 0, 416 | "in_list_view": 0, 417 | "in_preview": 0, 418 | "in_standard_filter": 0, 419 | "insert_after": "tax_rate", 420 | "is_system_generated": 1, 421 | "is_virtual": 0, 422 | "label": "Tax Amount", 423 | "length": 0, 424 | "mandatory_depends_on": null, 425 | "modified": "2024-06-20 19:49:24.041256", 426 | "modified_by": "Administrator", 427 | "module": null, 428 | "name": "Sales Order Item-tax_amount", 429 | "no_copy": 0, 430 | "non_negative": 0, 431 | "options": "currency", 432 | "owner": "Administrator", 433 | "parent": null, 434 | "parentfield": null, 435 | "parenttype": null, 436 | "permlevel": 0, 437 | "precision": "", 438 | "print_hide": 1, 439 | "print_hide_if_no_value": 0, 440 | "print_width": null, 441 | "read_only": 1, 442 | "read_only_depends_on": null, 443 | "report_hide": 0, 444 | "reqd": 0, 445 | "search_index": 0, 446 | "sort_options": 0, 447 | "translatable": 0, 448 | "unique": 0, 449 | "width": null 450 | }, 451 | { 452 | "_assign": null, 453 | "_comments": null, 454 | "_liked_by": null, 455 | "_user_tags": null, 456 | "allow_in_quick_entry": 0, 457 | "allow_on_submit": 1, 458 | "bold": 0, 459 | "collapsible": 0, 460 | "collapsible_depends_on": null, 461 | "columns": 0, 462 | "creation": "2024-06-20 19:49:24.031195", 463 | "default": null, 464 | "depends_on": null, 465 | "description": null, 466 | "docstatus": 0, 467 | "dt": "Sales Order Item", 468 | "fetch_from": "item_code.tax_code", 469 | "fetch_if_empty": 0, 470 | "fieldname": "tax_code", 471 | "fieldtype": "Read Only", 472 | "hidden": 0, 473 | "hide_border": 0, 474 | "hide_days": 0, 475 | "hide_seconds": 0, 476 | "idx": 0, 477 | "ignore_user_permissions": 0, 478 | "ignore_xss_filter": 0, 479 | "in_global_search": 0, 480 | "in_list_view": 0, 481 | "in_preview": 0, 482 | "in_standard_filter": 0, 483 | "insert_after": "description", 484 | "is_system_generated": 1, 485 | "is_virtual": 0, 486 | "label": "Tax Code", 487 | "length": 0, 488 | "mandatory_depends_on": null, 489 | "modified": "2024-06-20 19:49:24.031195", 490 | "modified_by": "Administrator", 491 | "module": null, 492 | "name": "Sales Order Item-tax_code", 493 | "no_copy": 0, 494 | "non_negative": 0, 495 | "options": null, 496 | "owner": "Administrator", 497 | "parent": null, 498 | "parentfield": null, 499 | "parenttype": null, 500 | "permlevel": 0, 501 | "precision": "", 502 | "print_hide": 1, 503 | "print_hide_if_no_value": 0, 504 | "print_width": null, 505 | "read_only": 0, 506 | "read_only_depends_on": null, 507 | "report_hide": 0, 508 | "reqd": 0, 509 | "search_index": 0, 510 | "sort_options": 0, 511 | "translatable": 0, 512 | "unique": 0, 513 | "width": null 514 | }, 515 | { 516 | "_assign": null, 517 | "_comments": null, 518 | "_liked_by": null, 519 | "_user_tags": null, 520 | "allow_in_quick_entry": 0, 521 | "allow_on_submit": 0, 522 | "bold": 0, 523 | "collapsible": 0, 524 | "collapsible_depends_on": null, 525 | "columns": 0, 526 | "creation": "2024-06-20 19:49:24.036503", 527 | "default": null, 528 | "depends_on": null, 529 | "description": null, 530 | "docstatus": 0, 531 | "dt": "Sales Order Item", 532 | "fetch_from": null, 533 | "fetch_if_empty": 0, 534 | "fieldname": "tax_rate", 535 | "fieldtype": "Float", 536 | "hidden": 1, 537 | "hide_border": 0, 538 | "hide_days": 0, 539 | "hide_seconds": 0, 540 | "idx": 0, 541 | "ignore_user_permissions": 0, 542 | "ignore_xss_filter": 0, 543 | "in_global_search": 0, 544 | "in_list_view": 0, 545 | "in_preview": 0, 546 | "in_standard_filter": 0, 547 | "insert_after": "tax_code", 548 | "is_system_generated": 1, 549 | "is_virtual": 0, 550 | "label": "Tax Rate", 551 | "length": 0, 552 | "mandatory_depends_on": null, 553 | "modified": "2024-06-20 19:49:24.036503", 554 | "modified_by": "Administrator", 555 | "module": null, 556 | "name": "Sales Order Item-tax_rate", 557 | "no_copy": 0, 558 | "non_negative": 0, 559 | "options": null, 560 | "owner": "Administrator", 561 | "parent": null, 562 | "parentfield": null, 563 | "parenttype": null, 564 | "permlevel": 0, 565 | "precision": "", 566 | "print_hide": 1, 567 | "print_hide_if_no_value": 0, 568 | "print_width": null, 569 | "read_only": 1, 570 | "read_only_depends_on": null, 571 | "report_hide": 0, 572 | "reqd": 0, 573 | "search_index": 0, 574 | "sort_options": 0, 575 | "translatable": 0, 576 | "unique": 0, 577 | "width": null 578 | }, 579 | { 580 | "_assign": null, 581 | "_comments": null, 582 | "_liked_by": null, 583 | "_user_tags": null, 584 | "allow_in_quick_entry": 0, 585 | "allow_on_submit": 0, 586 | "bold": 0, 587 | "collapsible": 0, 588 | "collapsible_depends_on": null, 589 | "columns": 0, 590 | "creation": "2024-06-20 19:49:24.046354", 591 | "default": null, 592 | "depends_on": null, 593 | "description": null, 594 | "docstatus": 0, 595 | "dt": "Sales Order Item", 596 | "fetch_from": null, 597 | "fetch_if_empty": 0, 598 | "fieldname": "total_amount", 599 | "fieldtype": "Currency", 600 | "hidden": 1, 601 | "hide_border": 0, 602 | "hide_days": 0, 603 | "hide_seconds": 0, 604 | "idx": 0, 605 | "ignore_user_permissions": 0, 606 | "ignore_xss_filter": 0, 607 | "in_global_search": 0, 608 | "in_list_view": 0, 609 | "in_preview": 0, 610 | "in_standard_filter": 0, 611 | "insert_after": "tax_amount", 612 | "is_system_generated": 1, 613 | "is_virtual": 0, 614 | "label": "Total Amount", 615 | "length": 0, 616 | "mandatory_depends_on": null, 617 | "modified": "2024-06-20 19:49:24.046354", 618 | "modified_by": "Administrator", 619 | "module": null, 620 | "name": "Sales Order Item-total_amount", 621 | "no_copy": 0, 622 | "non_negative": 0, 623 | "options": "currency", 624 | "owner": "Administrator", 625 | "parent": null, 626 | "parentfield": null, 627 | "parenttype": null, 628 | "permlevel": 0, 629 | "precision": "", 630 | "print_hide": 1, 631 | "print_hide_if_no_value": 0, 632 | "print_width": null, 633 | "read_only": 1, 634 | "read_only_depends_on": null, 635 | "report_hide": 0, 636 | "reqd": 0, 637 | "search_index": 0, 638 | "sort_options": 0, 639 | "translatable": 0, 640 | "unique": 0, 641 | "width": null 642 | } 643 | ], 644 | "custom_perms": [], 645 | "doctype": "Sales Order Item", 646 | "links": [], 647 | "property_setters": [ 648 | { 649 | "_assign": null, 650 | "_comments": null, 651 | "_liked_by": null, 652 | "_user_tags": null, 653 | "creation": "2021-10-31 11:19:10.341636", 654 | "default_value": null, 655 | "doc_type": "Sales Order Item", 656 | "docstatus": 0, 657 | "doctype_or_field": "DocField", 658 | "field_name": "actual_qty", 659 | "idx": 0, 660 | "is_system_generated": 1, 661 | "modified": "2021-10-31 11:19:10.341636", 662 | "modified_by": "Administrator", 663 | "module": null, 664 | "name": "Sales Order Item-actual_qty-columns", 665 | "owner": "Administrator", 666 | "parent": null, 667 | "parentfield": null, 668 | "parenttype": null, 669 | "property": "columns", 670 | "property_type": "Int", 671 | "row_name": null, 672 | "value": "2" 673 | }, 674 | { 675 | "_assign": null, 676 | "_comments": null, 677 | "_liked_by": null, 678 | "_user_tags": null, 679 | "creation": "2021-10-31 11:16:51.559640", 680 | "default_value": null, 681 | "doc_type": "Sales Order Item", 682 | "docstatus": 0, 683 | "doctype_or_field": "DocField", 684 | "field_name": "actual_qty", 685 | "idx": 0, 686 | "is_system_generated": 1, 687 | "modified": "2021-10-31 11:16:51.559640", 688 | "modified_by": "Administrator", 689 | "module": null, 690 | "name": "Sales Order Item-actual_qty-in_list_view", 691 | "owner": "Administrator", 692 | "parent": null, 693 | "parentfield": null, 694 | "parenttype": null, 695 | "property": "in_list_view", 696 | "property_type": "Check", 697 | "row_name": null, 698 | "value": "1" 699 | }, 700 | { 701 | "_assign": null, 702 | "_comments": null, 703 | "_liked_by": null, 704 | "_user_tags": null, 705 | "creation": "2021-10-26 20:03:17.165986", 706 | "default_value": null, 707 | "doc_type": "Sales Order Item", 708 | "docstatus": 0, 709 | "doctype_or_field": "DocField", 710 | "field_name": "amount", 711 | "idx": 0, 712 | "is_system_generated": 1, 713 | "modified": "2021-10-26 20:03:17.165986", 714 | "modified_by": "Administrator", 715 | "module": null, 716 | "name": "Sales Order Item-amount-in_list_view", 717 | "owner": "Administrator", 718 | "parent": null, 719 | "parentfield": null, 720 | "parenttype": null, 721 | "property": "in_list_view", 722 | "property_type": "Check", 723 | "row_name": null, 724 | "value": "0" 725 | }, 726 | { 727 | "_assign": null, 728 | "_comments": null, 729 | "_liked_by": null, 730 | "_user_tags": null, 731 | "creation": "2021-10-26 20:03:17.068571", 732 | "default_value": null, 733 | "doc_type": "Sales Order Item", 734 | "docstatus": 0, 735 | "doctype_or_field": "DocField", 736 | "field_name": "delivery_date", 737 | "idx": 0, 738 | "is_system_generated": 1, 739 | "modified": "2021-10-26 20:03:17.068571", 740 | "modified_by": "Administrator", 741 | "module": null, 742 | "name": "Sales Order Item-delivery_date-in_list_view", 743 | "owner": "Administrator", 744 | "parent": null, 745 | "parentfield": null, 746 | "parenttype": null, 747 | "property": "in_list_view", 748 | "property_type": "Check", 749 | "row_name": null, 750 | "value": "0" 751 | }, 752 | { 753 | "_assign": null, 754 | "_comments": null, 755 | "_liked_by": null, 756 | "_user_tags": null, 757 | "creation": "2021-11-06 11:50:40.440386", 758 | "default_value": null, 759 | "doc_type": "Sales Order Item", 760 | "docstatus": 0, 761 | "doctype_or_field": "DocField", 762 | "field_name": "gross_profit", 763 | "idx": 0, 764 | "is_system_generated": 1, 765 | "modified": "2021-11-06 11:50:40.440386", 766 | "modified_by": "Administrator", 767 | "module": null, 768 | "name": "Sales Order Item-gross_profit-hidden", 769 | "owner": "Administrator", 770 | "parent": null, 771 | "parentfield": null, 772 | "parenttype": null, 773 | "property": "hidden", 774 | "property_type": "Check", 775 | "row_name": null, 776 | "value": "1" 777 | }, 778 | { 779 | "_assign": null, 780 | "_comments": null, 781 | "_liked_by": null, 782 | "_user_tags": null, 783 | "creation": "2023-04-15 11:15:25.994876", 784 | "default_value": null, 785 | "doc_type": "Sales Order Item", 786 | "docstatus": 0, 787 | "doctype_or_field": "DocField", 788 | "field_name": "gross_profit", 789 | "idx": 0, 790 | "is_system_generated": 0, 791 | "modified": "2023-04-15 11:15:25.994876", 792 | "modified_by": "Administrator", 793 | "module": null, 794 | "name": "Sales Order Item-gross_profit-permlevel", 795 | "owner": "Administrator", 796 | "parent": null, 797 | "parentfield": null, 798 | "parenttype": null, 799 | "property": "permlevel", 800 | "property_type": "Int", 801 | "row_name": null, 802 | "value": "2" 803 | }, 804 | { 805 | "_assign": null, 806 | "_comments": null, 807 | "_liked_by": null, 808 | "_user_tags": null, 809 | "creation": "2023-08-09 13:20:26.066070", 810 | "default_value": null, 811 | "doc_type": "Sales Order Item", 812 | "docstatus": 0, 813 | "doctype_or_field": "DocField", 814 | "field_name": "is_free_item", 815 | "idx": 0, 816 | "is_system_generated": 0, 817 | "modified": "2023-08-09 13:20:26.066070", 818 | "modified_by": "Administrator", 819 | "module": null, 820 | "name": "Sales Order Item-is_free_item-label", 821 | "owner": "Administrator", 822 | "parent": null, 823 | "parentfield": null, 824 | "parenttype": null, 825 | "property": "label", 826 | "property_type": "Data", 827 | "row_name": null, 828 | "value": "Is Discounted Item" 829 | }, 830 | { 831 | "_assign": null, 832 | "_comments": null, 833 | "_liked_by": null, 834 | "_user_tags": null, 835 | "creation": "2023-03-22 19:08:27.725331", 836 | "default_value": null, 837 | "doc_type": "Sales Order Item", 838 | "docstatus": 0, 839 | "doctype_or_field": "DocField", 840 | "field_name": "is_free_item", 841 | "idx": 0, 842 | "is_system_generated": 1, 843 | "modified": "2023-03-22 19:08:27.725331", 844 | "modified_by": "Administrator", 845 | "module": null, 846 | "name": "Sales Order Item-is_free_item-read_only", 847 | "owner": "Administrator", 848 | "parent": null, 849 | "parentfield": null, 850 | "parenttype": null, 851 | "property": "read_only", 852 | "property_type": "Check", 853 | "row_name": null, 854 | "value": "0" 855 | }, 856 | { 857 | "_assign": null, 858 | "_comments": null, 859 | "_liked_by": null, 860 | "_user_tags": null, 861 | "creation": "2024-08-26 16:57:41.283225", 862 | "default_value": null, 863 | "doc_type": "Sales Order Item", 864 | "docstatus": 0, 865 | "doctype_or_field": "DocType", 866 | "field_name": null, 867 | "idx": 0, 868 | "is_system_generated": 0, 869 | "modified": "2024-08-26 16:57:41.283225", 870 | "modified_by": "anto@alfarsi.me", 871 | "module": null, 872 | "name": "Sales Order Item-main-field_order", 873 | "owner": "anto@alfarsi.me", 874 | "parent": null, 875 | "parentfield": null, 876 | "parenttype": null, 877 | "property": "field_order", 878 | "property_type": "Data", 879 | "row_name": null, 880 | "value": "[\"item_code\", \"sr_no\", \"allow_alternative_item\", \"customer_item_code\", \"ensure_delivery_based_on_produced_serial_no\", \"col_break1\", \"delivery_date\", \"item_name\", \"section_break_5\", \"description\", \"tax_code\", \"tax_rate\", \"tax_amount\", \"total_amount\", \"item_group\", \"brand\", \"image_section\", \"image\", \"image_view\", \"quantity_and_rate\", \"qty\", \"stock_uom\", \"col_break2\", \"uom\", \"conversion_factor\", \"stock_qty\", \"section_break_16\", \"price_list_rate\", \"base_price_list_rate\", \"discount_and_margin\", \"margin_type\", \"margin_rate_or_amount\", \"rate_with_margin\", \"column_break_19\", \"discount_percentage\", \"discount_amount\", \"base_rate_with_margin\", \"section_break_simple1\", \"rate\", \"foc_rate\", \"amount\", \"item_tax_template\", \"col_break3\", \"base_rate\", \"base_amount\", \"pricing_rules\", \"stock_uom_rate\", \"is_free_item\", \"grant_commission\", \"section_break_24\", \"net_rate\", \"net_amount\", \"foc_amount\", \"column_break_27\", \"base_net_rate\", \"base_net_amount\", \"billed_amt\", \"valuation_rate\", \"gross_profit\", \"drop_ship_section\", \"delivered_by_supplier\", \"supplier\", \"item_weight_details\", \"weight_per_unit\", \"total_weight\", \"column_break_21\", \"weight_uom\", \"warehouse_and_reference\", \"warehouse\", \"target_warehouse\", \"prevdoc_docname\", \"quotation_item\", \"col_break4\", \"against_blanket_order\", \"blanket_order\", \"blanket_order_rate\", \"manufacturing_section_section\", \"bom_no\", \"planning_section\", \"projected_qty\", \"actual_qty\", \"ordered_qty\", \"planned_qty\", \"production_plan_qty\", \"column_break_69\", \"work_order_qty\", \"delivered_qty\", \"produced_qty\", \"returned_qty\", \"picked_qty\", \"shopping_cart_section\", \"additional_notes\", \"section_break_63\", \"page_break\", \"item_tax_rate\", \"transaction_date\", \"inter_transfer_reference_section\", \"material_request\", \"purchase_order\", \"column_break_89\", \"material_request_item\", \"purchase_order_item\", \"custom_generic_name\"]" 881 | }, 882 | { 883 | "_assign": null, 884 | "_comments": null, 885 | "_liked_by": null, 886 | "_user_tags": null, 887 | "creation": "2021-11-07 10:36:25.794162", 888 | "default_value": null, 889 | "doc_type": "Sales Order Item", 890 | "docstatus": 0, 891 | "doctype_or_field": "DocField", 892 | "field_name": "valuation_rate", 893 | "idx": 0, 894 | "is_system_generated": 1, 895 | "modified": "2021-11-07 10:36:25.794162", 896 | "modified_by": "Administrator", 897 | "module": null, 898 | "name": "Sales Order Item-valuation_rate-bold", 899 | "owner": "Administrator", 900 | "parent": null, 901 | "parentfield": null, 902 | "parenttype": null, 903 | "property": "bold", 904 | "property_type": "Check", 905 | "row_name": null, 906 | "value": "1" 907 | }, 908 | { 909 | "_assign": null, 910 | "_comments": null, 911 | "_liked_by": null, 912 | "_user_tags": null, 913 | "creation": "2021-11-07 10:36:25.619981", 914 | "default_value": null, 915 | "doc_type": "Sales Order Item", 916 | "docstatus": 0, 917 | "doctype_or_field": "DocField", 918 | "field_name": "valuation_rate", 919 | "idx": 0, 920 | "is_system_generated": 1, 921 | "modified": "2021-11-07 10:36:25.619981", 922 | "modified_by": "Administrator", 923 | "module": null, 924 | "name": "Sales Order Item-valuation_rate-permlevel", 925 | "owner": "Administrator", 926 | "parent": null, 927 | "parentfield": null, 928 | "parenttype": null, 929 | "property": "permlevel", 930 | "property_type": "Int", 931 | "row_name": null, 932 | "value": "1" 933 | }, 934 | { 935 | "_assign": null, 936 | "_comments": null, 937 | "_liked_by": null, 938 | "_user_tags": null, 939 | "creation": "2021-11-07 10:36:25.957576", 940 | "default_value": null, 941 | "doc_type": "Sales Order Item", 942 | "docstatus": 0, 943 | "doctype_or_field": "DocField", 944 | "field_name": "valuation_rate", 945 | "idx": 0, 946 | "is_system_generated": 1, 947 | "modified": "2021-11-07 10:36:25.957576", 948 | "modified_by": "Administrator", 949 | "module": null, 950 | "name": "Sales Order Item-valuation_rate-precision", 951 | "owner": "Administrator", 952 | "parent": null, 953 | "parentfield": null, 954 | "parenttype": null, 955 | "property": "precision", 956 | "property_type": "Select", 957 | "row_name": null, 958 | "value": "3" 959 | }, 960 | { 961 | "_assign": null, 962 | "_comments": null, 963 | "_liked_by": null, 964 | "_user_tags": null, 965 | "creation": "2021-10-26 20:04:29.755614", 966 | "default_value": null, 967 | "doc_type": "Sales Order Item", 968 | "docstatus": 0, 969 | "doctype_or_field": "DocField", 970 | "field_name": "warehouse", 971 | "idx": 0, 972 | "is_system_generated": 1, 973 | "modified": "2021-10-26 20:04:29.755614", 974 | "modified_by": "Administrator", 975 | "module": null, 976 | "name": "Sales Order Item-warehouse-in_list_view", 977 | "owner": "Administrator", 978 | "parent": null, 979 | "parentfield": null, 980 | "parenttype": null, 981 | "property": "in_list_view", 982 | "property_type": "Check", 983 | "row_name": null, 984 | "value": "0" 985 | } 986 | ], 987 | "sync_on_migrate": 1 988 | } --------------------------------------------------------------------------------