Fruga
डॉक्यूमेंटेशन

FrugalDomain इंटीग्रेशन डॉक्स

प्लेटफ़ॉर्म की तकनीकी गाइड: स्टोर कनेक्ट करना, मोबाइल ऐप इंटीग्रेट करना, अपने ऐप्लिकेशन प्रकाशित करना और REST API।

प्लेटफ़ॉर्म का परिचय

FrugalDomain एक प्लेटफ़ॉर्म है जो कैटलॉग, इन्वेंटरी, कंटेंट और ऑर्डर के काम को एक ही सिस्टम में जोड़ता है।

  • अपने स्टोर का डेटा एक ही कंट्रोल पैनल से संभालें।
  • एक ही कॉमर्स इंजन को अकेला भरोसेमंद स्रोत बनाए रखें।
  • वेब और Flutter मोबाइल ऐप के लिए साफ़-सुथरी API उपलब्ध कराएँ।

FrugalDomain क्यों ज़रूरी है

यह प्लेटफ़ॉर्म उन टीमों के लिए बना है जिन्हें एक ही एडमिन से रोज़मर्रा का काम तेज़ी से करना होता है।

  • रोज़ काम करने वाले स्टाफ़ के लिए प्रोडक्ट और इन्वेंटरी का तेज़ काम।
  • मॉनिटरिंग और रीट्राई सपोर्ट वाली व्यवस्थित सिंक पाइपलाइन।
  • फ़्रंटएंड, मोबाइल और इंटीग्रेशन के लिए दोबारा इस्तेमाल होने वाले API कॉन्ट्रैक्ट।
  • स्टोर-स्तर पर अलगाव, ताकि हर स्टोर सिर्फ़ अपना डेटा देखे।

मुख्य वर्कफ़्लो

कैटलॉग प्रबंधन

  • प्रोडक्ट, वेरिएंट, कलेक्शन, टैग, वेंडर और प्रोडक्ट टाइप।
  • चैनल बाँटने के लिए वेयरहाउस के अनुसार प्रोडक्ट की दृश्यता।

इन्वेंटरी और प्राइसिंग

  • वेरिएंट-स्तर पर स्टॉक और उपलब्धता का प्रबंधन।
  • सिंक डिस्पैच के साथ थोक और चुनिंदा कीमत अपडेट।

ऑर्डर और चेकआउट

  • बैकएंड से कार्ट का कुल जोड़ निकालें।
  • चेकआउट से पहले के चरण के रूप में ड्राफ़्ट ऑर्डर बनाएँ।
  • सक्षम होने पर कॉन्फ़िगर किए गए चेकआउट URL पर भेजकर भुगतान चरण पूरा करें।

स्टोर कैसे कनेक्ट करें

  1. 1. अपने सिस्टम में स्टोर रिकॉर्ड बनाएँ और उसे सक्रिय करें।
  2. 2. स्टोर डोमेन और एक्सेस टोकन सुरक्षित रूप से सहेजें।
  3. 3. प्रोडक्ट, वेरिएंट, कंटेंट और ग्राहकों के लिए पहली पूरी सिंक चलाएँ।
  4. 4. लगातार चलने वाले सिंक जॉब और webhook सब्सक्रिप्शन चालू करें।
  5. 5. स्टोर स्टाफ़ को एक्सेस देने से पहले डैशबोर्ड में सिंक की स्थिति जाँच लें।

हर दुकान के लिए एक अलग स्टोर पहचान इस्तेमाल करें। स्टोर के बीच टोकन कभी दोबारा इस्तेमाल न करें।

Flutter मोबाइल इंटीग्रेशन

मोबाइल ऐप के एंडपॉइंट /mobile के अंतर्गत हैं और उन्हें स्टोर संदर्भ चाहिए। हमेशा store_id भेजें, और चैनल-विशेष प्रोडक्ट फ़ीड के लिए वैकल्पिक रूप से warehouse_name भी भेजें।

  • warehouse_name फ़िल्टर में उसी वेयरहाउस के आइटम के साथ ग्लोबल आइटम (null/empty/all) भी शामिल होते हैं।
  • स्टोर ब्रांडिंग, चुनिंदा प्रोडक्ट और भुगतान तरीके पहले से लोड करने के लिए सबसे पहले bootstrap एंडपॉइंट इस्तेमाल करें।
  • सटीक कुल जोड़ दिखाने के लिए ड्राफ़्ट ऑर्डर बनाने से पहले quote एंडपॉइंट इस्तेमाल करें।
कोड
GET /mobile/bootstrap?store_id={uuid}&warehouse_name=BRAND VIP WEB
GET /mobile/products?store_id={uuid}&warehouse_name=BRAND VIP WEB&per_page=20
GET /mobile/collections?store_id={uuid}&warehouse_name=BRAND VIP WEB
GET /mobile/search?store_id={uuid}&warehouse_name=BRAND VIP WEB&q=lip
POST /mobile/checkout/quote
POST /mobile/checkout/place-draft-order

साइट पर मौजूद टूल

डैशबोर्ड के अलावा, साइट पर ब्राउज़र में चलने वाले कई टूल मिलते हैं। ये पूरी तरह विज़िटर के अपने डिवाइस पर चलते हैं और कुछ भी अपलोड नहीं होता, इसलिए पेज लोड होने के बाद ये ऑफ़लाइन भी काम करते हैं।

आइकन लाइब्रेरी

  • SVG और PNG में 324 आइकन, CDN से उपलब्ध।
  • क्लास नाम कॉपी करें, एक फ़ाइल डाउनलोड करें, या अपना कलेक्शन बनाएँ।
  • सिर्फ़ दो लाइनों में इस्तेमाल करें: स्टाइलशीट जोड़ें, फिर आइकन क्लास लगाएँ।

कन्वर्टर

  • आम रास्टर फ़ॉर्मेट के बीच इमेज कन्वर्ट करें।
  • ब्राउज़र में WebAssembly से चलने वाला ऑडियो और डॉक्यूमेंट कन्वर्ज़न।
  • फ़ाइलें कभी डिवाइस से बाहर नहीं जातीं, इसलिए बड़ी फ़ाइलों की सीमा सिर्फ़ उपलब्ध मेमोरी तय करती है।

ड्रॉइंग बोर्ड और सिम्युलेटर

  • लेयर, अनडू और रीडू वाला वेक्टर ड्रॉइंग बोर्ड।
  • टच सिम्युलेटर जो जेस्चर स्ट्रोक रिकॉर्ड करता है और अरबी अक्षर पहचानता है।

ऐप्लिकेशन प्रकाशित करना

ऐप्लिकेशन को साइट के साथ प्रकाशित किया जा सकता है। हर ऐप को गैलरी कार्ड, अपना डॉक्यूमेंटेशन पेज और एम्बेडेड लाइव प्रीव्यू मिलता है, और वह अपने फ़ोल्डर से चलता है, इसलिए उसकी अपनी रूटिंग और एसेट बनी रहती हैं।

  1. 1. डैशबोर्ड (Apps) से एंट्री जोड़ें और प्रकार व प्रीव्यू मोड चुनें।
  2. 2. ऐप के पेज पर दिखने वाले डॉक्यूमेंटेशन सेक्शन लिखें।
  3. 3. ऐप को उसके फ़ोल्डर से मेल खाते बेस पाथ के साथ बनाएँ, जैसे --base=/apps/my-app/
  4. 4. बिल्ड आउटपुट की सामग्री सर्वर पर apps/<slug>/ में अपलोड करें।
  5. 5. एंट्री को Published पर सेट करें, कैटलॉग सहेजें और फ़्रंटएंड दोबारा बनाएँ।

प्रीव्यू मोड

  • सबफ़ोल्डर: /apps/<slug> पर चलता है। सिर्फ़ अपलोड करना है, होस्टिंग कॉन्फ़िगरेशन की ज़रूरत नहीं।
  • सबडोमेन: सबडोमेन के डॉक्यूमेंट रूट को ऐप फ़ोल्डर पर सेट करें और बेस "/" के साथ बनाएँ।
  • बाहरी: ऐप कहीं और होस्ट है और गैलरी उसके लिंक पर ले जाती है।

रूटिंग

  • साइट का रीराइट नियम /apps/<slug>/... को छोड़ देता है, ताकि डीप लिंक ऐप के भीतर ही खुलें।
  • अपना क्लाइंट-साइड राउटर रखने वाले ऐप के फ़ोल्डर में एक .htaccess चाहिए जो उसी की index.html की ओर इशारा करे।

सबफ़ोल्डर से चलने वाला React या Vue बिल्ड मेल खाते बेस पाथ के साथ बनाना ज़रूरी है। डिफ़ॉल्ट बेस के साथ बनाने पर वह अपनी एसेट साइट के रूट से माँगता है, हर रिक्वेस्ट 404 लौटाती है, और प्रीव्यू खाली दिखता है।

REST API गाइड (मौजूदा सार्वजनिक इंटीग्रेशन सेट)

JSON रिक्वेस्ट और रिस्पॉन्स इस्तेमाल करें। जब रूट को सुरक्षित संदर्भ चाहिए तो Authorization टोकन भेजें। मोबाइल स्टोरफ़्रंट रूट में रिक्वेस्ट के साथ store_id ज़रूरी है।

  • GET/mobile/bootstrap

    स्टोर प्रोफ़ाइल, चुनिंदा कैटलॉग ब्लॉक और भुगतान तरीकों के संदर्भ लौटाता है।

  • GET/mobile/products

    पेज में बँटी प्रोडक्ट सूची, वैकल्पिक खोज और वेयरहाउस फ़िल्टर के साथ।

  • GET/mobile/products/{id}

    वेरिएंट, कलेक्शन और टैग के साथ प्रोडक्ट का विवरण।

  • GET/mobile/collections

    मौजूदा स्टोर संदर्भ के कलेक्शन की सूची देता है।

  • GET/mobile/collections/{id}

    कलेक्शन का विवरण, उसके प्रोडक्ट सहित।

  • GET/mobile/pages

    स्टोरफ़्रंट ऐप के लिए प्रकाशित स्टैटिक पेज।

  • GET/mobile/blogs

    प्रकाशित ब्लॉग।

  • GET/mobile/blogs/{blogId}/articles

    कंटेंट स्क्रीन के लिए ब्लॉग लेखों की सूची।

  • GET/mobile/payment-methods

    चालू स्थानीय भुगतान विकल्प और समर्थित तरीकों के संदर्भ लौटाता है।

  • POST/mobile/checkout/quote

    वेरिएंट लाइनों से कोटेशन का कुल जोड़ निकालता है।

  • POST/mobile/checkout/place-draft-order

    चेकआउट से पहले के चरण के रूप में स्थानीय ड्राफ़्ट ऑर्डर बनाता है।

सैंपल रिक्वेस्ट
{
  "store_id": "your-store-uuid",
  "warehouse_name": "BRAND VIP WEB",
  "lines": [
    { "variant_id": 1201, "quantity": 2 },
    { "variant_id": 1202, "quantity": 1 }
  ]
}
सैंपल रिस्पॉन्स
{
  "status": "success",
  "data": {
    "totals": {
      "subtotal": 45.0,
      "tax": 0,
      "shipping": 0,
      "discount": 0,
      "grand_total": 45.0
    }
  }
}

सुरक्षा और बेस्ट प्रैक्टिस

  • store_id की जाँच करें और क्लाइंट की ओर से आए टेनेंट स्कोप पर कभी भरोसा न करें।
  • प्रोडक्शन में सिर्फ़ HTTPS इस्तेमाल करें और क्रेडेंशियल समय-समय पर बदलते रहें।
  • एक्सेस टोकन सिर्फ़ सर्वर-साइड पर रखें।
  • ज़रूरी create/update ऑपरेशन में idempotency (दोहराव-सुरक्षा) अपनाएँ।
  • डायग्नोस्टिक्स के लिए सिंक विफलताओं को कोरिलेशन आइडेंटिफ़ायर के साथ लॉग करें।

ट्रबलशूटिंग

एक मोबाइल चैनल में प्रोडक्ट गायब हैं।

ऐप द्वारा भेजा गया warehouse_name जाँचें और products टेबल में warehouse_location के मान सत्यापित करें।

quote एंडपॉइंट खाली लाइनें लौटाता है।

सुनिश्चित करें कि वेरिएंट ID उसी स्टोर के हैं और चुने गए वेयरहाउस के दृश्यता नियमों से मेल खाते हैं।

सिंक काउंटर पुराने दिख रहे हैं।

पार्टनर डैशबोर्ड रीफ़्रेश करें और जाँचें कि बैकग्राउंड क्यू वर्कर चल रहे हैं।