price type डिफ़ॉल्ट price क्यों चुपचाप दिखाते हैं
समझें कि हर price type एक ही price क्यों दिखाता है और linked तथा custom price पंक्तियाँ कैसे व्यवहार करती हैं।
'all my price types show the same price' का अर्थ है कि कोई channel-specific price सेट नहीं है - सब कुछ डिफ़ॉल्ट पर fallback कर रहा है।
हर price पंक्ति में use_referred_price और referred_price_id होते हैं। जब तक use_referred_price true है, reads और quotations में उपयोग होने वाला effective price referral chain के END पर मौजूद price होता है; पंक्ति के अपने संग्रहीत आंकड़े effective price के लिए उपयोग नहीं होते। इससे दो आम भ्रम पैदा होते हैं। पहला, 'I changed the price and nothing happened': जिस पंक्ति को संपादित किया जा रहा है वह linked mode में है, इसलिए उसके आंकड़े व्यर्थ हैं - समाधान है price को custom mode में बदलना (use_referred_price=false के साथ update एक ही चरण में आंकड़े सहेजता है और link हटा देता है)। दूसरा, 'I typed a price and it vanished': जब कोई update request linked mode (use_referred_price=true) सक्षम करती है, तो backend flag सहेजता है और उसी request में भेजे गए किसी भी price/tax/margin को चुपचाप छोड़ देता है - यह डिज़ाइन के अनुसार है, क्योंकि linked price अपने reference से मान लेता है; यह उस पंक्ति पर किसी भी formula-based pricing को भी हटा देता है। इसका दूसरा पक्ष इच्छित power feature है: org/BU डिफ़ॉल्ट price को संपादित करने से हर उस sales-channel price में तुरंत अपडेट हो जाता है जो अभी भी उससे linked है। ध्यान दें कि हर sales-channel price custom mode में बनाया जाता है लेकिन डिफ़ॉल्ट price के लिए एक pointer रखता है, ताकि संबंध खोए बिना बाद में उसे फिर से link किया जा सके। निदान करें कि कौन-सी पंक्ति संपादित हुई और क्या वह linked या custom mode में है।
इनमें से किसी synthesized price को पहली बार संपादित करने पर वास्तव में एक नई channel price पंक्ति बनती है (custom mode में जन्मी, डिफ़ॉल्ट के लिए pointer बनाए रखती है ताकि बाद में link की जा सके)।
एक बार बन जाने के बाद, वह price type डिफ़ॉल्ट का अनुसरण करना बंद कर देता है, जब तक linked toggle सक्षम न हो।
किसी price type को फिर से डिफ़ॉल्ट का अनुसरण कराने के लिए, आंकड़े दोबारा टाइप करने के बजाय उसका linked/referred विकल्प सक्षम करें।
sequence 'default price updated, most price types moved but one did not' का अर्थ है कि किसी समय एक price type स्पष्ट रूप से सेट (या API से update) किया गया था।
सार्वजनिक /enterprise_api/price/update route enterprise callers के लिए use_referred_price को false पर hard-code करता है - यह flag API के माध्यम से नहीं भेजा जा सकता। परिणाम: जब पहली बार कोई ERP/integration किसी (SKU, sales channel, price type) के लिए sales-channel price अपडेट करता है, तो वह price custom mode में बदल जाता है और org/BU डिफ़ॉल्ट price से अलग हो जाता है। उसके बाद, डिफ़ॉल्ट price में किए गए संपादन उस channel price तक नहीं पहुँचते। यह इस रूप में सामने आता है: 'हमने master/default price अपडेट किया लेकिन हमारे dealer channel में अभी भी पुराना rate दिख रहा है' - सामान्य कारण है पहले हुआ कोई API sync जिसने channel price को छुआ और चुपचाप link तोड़ दिया। API से फिर से link करने का कोई तरीका नहीं है; client को catalog UI से उस price पर linked/referred toggle फिर से सक्षम करना होगा, या यह स्वीकार करना होगा कि उनके integration को हर channel price पर अपडेट स्पष्ट रूप से भेजने होंगे। ERP-sync client को onboard करते समय उन्हें पहले से चेतावनी दें: channel-level prices sync करने का अर्थ है उसके बाद सभी channel-level prices की ज़िम्मेदारी लेना, जबकि केवल डिफ़ॉल्ट prices sync करने से आंतरिक inheritance काम करती रहती है। यह भी ध्यान दें कि price अपडेट audit-logged (price_update) होते हैं, जिससे यह स्थापित करने में मदद मिलती है कि link कब टूटा।