├── 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 |
48 | - Quotation ID: {{ doc.name }}
49 | - Requested by: {{ doc.customer_name }}
50 |
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 |
47 | - Quotation ID: {{ doc.name }}
48 | - Updated by: {{ doc.customer_name }}
49 | - Status: {{ doc.workflow_state }}
50 |
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 - Quotation ID: {{ doc.name }}
\n - Requested by: {{ doc.customer_name }}
\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 - Quotation ID: {{ doc.name }}
\n - Updated by: {{ doc.customer }}
\n - Status: {{ doc.workflow_state }}
\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 | }
--------------------------------------------------------------------------------