सामग्री पर जाएँ
All articles
Setup

एंटरप्राइज़ ERP: SAP और NetSuite

Sellio को अपने SAP (OData) या NetSuite (REST) से द्विदिश रूप से जोड़ने की चरण-दर-चरण गाइड: खाते, ऑर्डर्स और invoices को ERP में भेजें और वापस events प्राप्त करें (invoice paid, order/customer updated)। BYO मॉडल: ERP और क्रेडेंशियल्स आपके हैं।

यह integration Sellio को आपके एंटरप्राइज़ ERP से जोड़ता है, चाहे वह SAP हो (OData के जरिए) या NetSuite हो (REST Record Service के जरिए), गहरे, द्विदिश sync के साथ। यह जेनेरिक "ERP / बिलिंग" कनेक्टर को पूरा करता है (जो केवल एक endpoint को सरल POST करता है): यहाँ हम सीधे हर प्लेटफ़ॉर्म के typed API से, उसकी वास्तविक ऑथेंटिकेशन के साथ बात करते हैं। BYO मॉडल: खाता और क्रेडेंशियल्स आपके हैं; हमारी तरफ से कोई लागत नहीं है। सब कुछ निष्क्रिय शुरू होता है: जब तक आप कॉन्फ़िगर और सक्रिय नहीं करते, कुछ भेजा या प्राप्त नहीं होता। सीक्रेट्स एन्क्रिप्टेड सहेजे जाते हैं और कभी वापस नहीं दिखाए जाते।

हर दिशा में क्या होता है: भेजने पर (Sellio → ERP), जब आप इसे ट्रिगर करते हैं (या कोई automation ट्रिगर करता है) CRM ERP की भाषा में रिकॉर्ड बनाता है (SAP में OData EntitySet; NetSuite में recordType) और ऑथेंटिकेटेड POST करता है। प्राप्त करने पर (ERP → Sellio), आपका ERP हर event पर Sellio webhook URL को कॉल करता है (invoice paid, order updated, customer updated); Sellio amount + currency से लंबित पेमेंट रिकॉन्साइल करता है (जब यह paid invoice/order हो) या संबंधित Contact पर एक activity लॉग करता है। दोहराए गए events external id से dedupe किए जाते हैं।

💡 अपने प्लेटफ़ॉर्म के अनुसार रास्ता चुनें। आप SAP, NetSuite, या दोनों कॉन्फ़िगर कर सकते हैं। हर एक का Settings → Integrations में अपना कार्ड और अपना webhook URL है।

1. पूर्वापेक्षाएँ

SAP (S/4HANA Cloud, SAP Gateway के जरिए S/4HANA on-premise, या SAP BTP): आपको उन entities के लिए प्रकाशित OData service चाहिए जिन्हें आप sync करेंगे (उदाहरण के लिए, खातों/संपर्कों के लिए standard service API_BUSINESS_PARTNER, orders के लिए API_SALES_ORDER_SRV, invoices के लिए API_BILLING_DOCUMENT_SRV) और उसे कॉल करने की क्रेडेंशियल। दो क्रेडेंशियल विकल्प: (a) Basic Auth वाला Communication User, या (b) SAP BTP पर OAuth 2.0 client (client credentials)। अनुमतियाँ: यूज़र/client को चुनी हुई OData entities पर create (POST) authorization चाहिए।

NetSuite (SuiteTalk REST): आपके खाते में "SuiteTalk (SOAP and REST Web Services)" और "Token-Based Authentication" फीचर्स सक्षम होने चाहिए, और एक ऐसा यूज़र चाहिए जिसकी Role में आप जिन objects को sync करेंगे (Customers, Sales Orders, Invoices) उनके लिए Lists/Records अनुमतियाँ और "REST Web Services" अनुमति (Setup के तहत) हो। आप एक Integration Record (Consumer Key/Secret) और एक Access Token (Token ID/Secret) बनाएँगे।

  • कनेक्टर सहेजने और सक्रिय करने के लिए आपको Sellio व्यवस्थापक (settings प्रबंधित करने की अनुमति) होना चाहिए।
  • URLs/IDs हाथ में रखें: SAP में, OData service base URL; NetSuite में, आपकी Account ID (जैसे, 1234567, या sandbox के लिए 1234567_SB1)।

2. प्रोवाइडर पर (SAP): OData को उजागर करें और क्रेडेंशियल बनाएँ

  1. वांछित entity की OData service को प्रकाशित/सक्रिय करें। S/4HANA on-premise में, service (जैसे, API_BUSINESS_PARTNER) जोड़ने और सक्रिय करने के लिए transaction /IWFND/MAINT_SERVICE का उपयोग करें; परिणामी base URL नोट करें (कुछ ऐसा https://yourhost:44300/sap/opu/odata/sap/API_BUSINESS_PARTNER जैसा)। S/4HANA Cloud में, service पहले से प्रकाशित है, इसलिए संबंधित Communication Arrangement से Service URL कॉपी करें।
  2. communication क्रेडेंशियल बनाएँ। Basic Auth के लिए: Communication Management → Maintain Communication Users में, username और password के साथ एक Communication User बनाएँ; फिर, Communication Arrangements में, उस यूज़र को उस Communication Scenario से जोड़ें जो OData service को उजागर करता है। OAuth 2.0 (BTP) के लिए: एक service instance बनाएँ और Client ID, Client Secret और Token URL (endpoint /oauth/token) नोट करें।
  3. सुनिश्चित करें कि यूज़र/client के पास entities पर POST (create) अनुमति है। एक्सेस पुष्टि करने के लिए ब्राउज़र/Postman में उसी क्रेडेंशियल से collection GET को जल्दी टेस्ट करें।

2. प्रोवाइडर पर, NetSuite (Integration Record + Access Token TBA)

  1. फीचर्स सक्षम करें: Setup → Company → Enable Features → SuiteCloud टैब → "SOAP Web Services" और/या "REST Web Services" और "Token-Based Authentication" चेक करें। सहेजें।
  2. Integration Record बनाएँ: Setup → Integration → Manage Integrations → New। इसे एक नाम दें (जैसे, "Sellio CRM"), "Token-Based Authentication" चेक किया हुआ छोड़ें, अगर आप केवल TBA उपयोग करेंगे तो "TBA: Authorization Flow" और "OAuth 2.0" अनचेक करें, और सहेजें। NetSuite Consumer Key और Consumer Secret को एक बार दिखाता है, इसलिए दोनों अभी कॉपी करें (ये फिर नहीं दिखाए जाते)।
  3. Access Token बनाएँ: Setup → Users/Roles → Access Tokens → New। Application Name (आपने जो Integration Record बनाया), User और Role चुनें (Records अनुमतियों + "REST Web Services" वाली Role)। सहेजें। NetSuite Token ID और Token Secret को एक बार दिखाता है, इसलिए दोनों अभी कॉपी करें।
  4. अपनी Account ID नोट करें: Setup → Company → Company Information ("खाता ID" फ़ील्ड), जैसे, 1234567 (production) या 1234567_SB1 (sandbox)।
💡 Consumer Key/Secret और Token ID/Secret को सुरक्षित रूप से स्टोर करें: NetSuite इन्हें दूसरी बार नहीं दिखाता। अगर आप इन्हें खो देते हैं, तो आपको इन्हें फिर से जनरेट करना होगा।

3. Sellio में: क्रेडेंशियल्स पेस्ट करें और सक्रिय करें

  1. Settings → Integrations खोलें और "SAP (एंटरप्राइज़ ERP)" या "NetSuite (एंटरप्राइज़ ERP)" कार्ड ढूँढें।
  2. SAP: "OData सेवा URL" में, service base URL पेस्ट करें (अंत में slash और EntitySet नाम के बिना, क्योंकि Sellio सही EntitySet जोड़ता है)। "प्रमाणीकरण प्रकार" में, Basic चुनें (और Username + Password पेस्ट करें) या OAuth 2.0 चुनें (और token URL + Client ID + Client Secret पेस्ट करें)।
  3. NetSuite: "खाता ID" में, अपनी ID पेस्ट करें (जैसे, 1234567 या 1234567_SB1)। "प्रमाणीकरण प्रकार" में, Token-Based Authentication (TBA) चुनें और Consumer Key, Consumer Secret, Token ID और Token Secret पेस्ट करें। (अगर आप OAuth 2.0 पसंद करते हैं, तो वह विकल्प चुनें और Access Token पेस्ट करें।)
  4. अगर आप ERP events को वापस Sellio में भेजेंगे तो "वेबहुक सीक्रेट" भरें। यह inbound के लिए आवश्यक है: सुरक्षा के लिए (events पेमेंट सेटल कर सकते हैं), Sellio केवल इस secret/signature वाले webhooks स्वीकार करता है। इसके बिना, inbound अस्वीकृत होता है (चरण 4 देखें)। एन्क्रिप्टेड सहेजा जाता है।
  5. "कनेक्टर सहेजें" पर क्लिक करें। क्रेडेंशियल्स एन्क्रिप्टेड सहेजी जाती हैं। फिर "Activate" पर क्लिक करें। भेजना और प्राप्त करना केवल कनेक्टर सक्रिय होने पर काम करते हैं।

ERP events प्राप्त करने के लिए: सहेजने के बाद, "वेबहुक URL जनरेट करें" का उपयोग करें और URL कॉपी करें (फ़ॉर्मैट https://app.../api/inbound/erp/YOUR_TOKEN)। उस URL को अपने ERP के webhook destination में पेस्ट करें: SAP में, किसी automation/middleware में (Event Mesh, SAP BTP, या POST करने वाली job); NetSuite में, User Event Script/RESTlet या event को POST करने वाले automation tool (SuiteFlow + script) में। प्रोवाइडर (SAP या NetSuite) टोकन से ही पहचाना जाता है, इसलिए URL में चुनने के लिए कुछ नहीं है।

4. टेस्ट कैसे करें

  1. कनेक्टर सक्रिय होने पर, कार्ड पर "टेस्ट रिकॉर्ड भेजें" पर क्लिक करें। Sellio एक काल्पनिक खाता बनाता है ("Sellio CRM" connection test) और उसे आपके ERP को भेजता है।
  2. ERP में जाँचें: SAP में, संबंधित entity में नया बना Business Partner ढूँढें; NetSuite में, Lists → Relationships → Customers के तहत नया Customer ढूँढें।
  3. अगर "Test record sent to ERP" दिखता है, तो ऑथेंटिकेशन और endpoint सही हैं। फिर, कोई वास्तविक रिकॉर्ड भेजने के लिए, CRM रिकॉर्ड (account, contact, order, opportunity या invoice) से भेजना ट्रिगर करें, और Sellio उसी रास्ते का उपयोग करता है।
  4. प्राप्त करने का टेस्ट करने के लिए: ERP में कोई event जनरेट करें (या सिमुलेट करें) (उदाहरण के लिए, किसी invoice को paid चिह्नित करें) और Sellio में जाँचें कि क्या समान amount का लंबित पेमेंट रिकॉन्साइल हुआ, या संबंधित Contact पर कोई activity दिखी।
💡 टेस्ट भेजना आपके CRM में कुछ नहीं लिखता। यह केवल connection को मान्य करने के लिए ERP को एक कॉल है। वास्तविक रिकॉर्ड्स भेजना id से रिकॉर्ड लाता है, आपकी अनुमतियों का सम्मान करते हुए।

5. समस्या निवारण

  • 401 (unauthorized): गलत या एक्सपायर्ड क्रेडेंशियल्स। SAP Basic → Communication User का username/password जाँचें; SAP OAuth → Client ID/Secret और token URL जाँचें; NetSuite TBA → Consumer Key/Secret और Token ID/Secret जाँचें (एक अतिरिक्त/छूटा हुआ character signature को अमान्य कर देता है)। सीक्रेट्स फिर से पेस्ट करें (सुरक्षा के लिए ये सर्वर से वापस नहीं आते)।
  • Invalid TBA signature (NetSuite): Token-Based Authentication HMAC-SHA256 के साथ OAuth 1.0a उपयोग करता है; signature method, सटीक URL (query parameters सहित) और Account ID (realm) पर निर्भर करती है। पुष्टि करें कि Account ID सही है (sandbox में _SB1 suffix के साथ) और चारों वैल्यू (Consumer Key/Secret, Token ID/Secret) बिना spaces के पेस्ट की गई थीं। अगर आपने NetSuite में token फिर से जनरेट किया, तो इसे Sellio में अपडेट करें।
  • 403 (forbidden): क्रेडेंशियल ऑथेंटिकेट होती है, लेकिन role/user के पास वह रिकॉर्ड बनाने की अनुमति नहीं है। NetSuite में, Role अनुमतियों की समीक्षा करें (Lists/Records + "REST Web Services"); SAP में, OData entity पर POST authorization / Communication Scenario की समीक्षा करें।
  • Entity/recordType नहीं मिला (404): SAP में, OData service URL गलत है या service सक्रिय नहीं है। base URL पुष्टि करें (EntitySet के बिना) और /IWFND/MAINT_SERVICE में service सक्रिय करें। NetSuite में, डिफ़ॉल्ट recordType आपके से मेल नहीं खा सकता, और कस्टम accounts/orders/invoices के लिए अलग recordType की जरूरत हो सकती है (mapping समायोजित करने के लिए सपोर्ट से संपर्क करें)।
  • अस्वीकृत फ़ील्ड्स: SAP और NetSuite property नामों को लेकर सख्त हैं। Sellio common फ़ील्ड्स का एक रूढ़िवादी सेट भेजता है (name, email, phone, company, amount, currency, reference)। अगर आपके ERP को अतिरिक्त अनिवार्य फ़ील्ड्स चाहिए (जैसे, SAP में BP Category, NetSuite में subsidiary), तो उन्हें mapped होना चाहिए, इसलिए कॉन्फ़िगरेशन में mapping समायोजित करें या सपोर्ट से संपर्क करें।
  • Webhook नहीं पहुँचता (प्राप्त करना): पुष्टि करें कि कनेक्टर सक्रिय है (disabled कनेक्टर का webhook 404 लौटाता है), कि ERP में पेस्ट किया गया URL पूरा है (token सहित) और, अगर आपने "वेबहुक सीक्रेट" सेट किया है, कि ERP secret को X-Sellio-Secret header में या body के HMAC-SHA256 को signature header में भेजता है। वरना रिस्पॉन्स 401 है।

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

मुफ़्त खाता बनाएँ
एंटरप्राइज़ ERP: SAP और NetSuite · Sellio