इसे छोड़कर कंटेंट पर जाएं

ड्रॉपशिपिंग API

उन डेवलपर्स के लिए जो REST API, Posty5 SDK या n8n के साथ ऐसे स्टोर को स्वचालित करते हैं जिसके वे मालिक हैं या जिस पर वे काम करते हैं। खरीदार और आपूर्तिकर्ता कभी भी इन रूट को कॉल नहीं करते। यदि आप स्टोर मैन्युअल रूप से चलाते हैं, तो विक्रेता गाइड वह पेज है जिसकी आपको आवश्यकता है। विक्रेता गाइड खोलें


हर अनुरोध इस हेडर में आपकी API कुंजी ले जाता है —

Terminal window
X-API-Key: YOUR_API_KEY

Posty5 डैशबोर्ड में खाता सेटिंग्स के अंतर्गत API कुंजियों में एक कुंजी बनाएं। API कुंजियां डेवलपर खातों के लिए उपलब्ध हैं।

नीचे दिया गया प्रत्येक मार्ग एक स्टोर पर काम करता है और इसके बगल में दिखाए गए स्टोर की अनुमति की जाँच करता है। कुंजी के स्वामी को स्टोर का स्वामी होना चाहिए या उस अनुमति के साथ उसके स्टाफ में होना चाहिए।

जब स्टोर मालिक के प्लान में ड्रॉपशिपिंग (Pro या उससे ऊपर) शामिल नहीं होती, तो ये रूट अस्वीकार कर दिए जाते हैं — किसी आपूर्तिकर्ता को कनेक्ट करना (API कुंजी से या साइन इन करके), उसके क्रेडेंशियल बदलना, कनेक्शन चालू करना, उसका ऑटोमेशन बदलना, किसी आपूर्तिकर्ता के उत्पाद ब्राउज़ करना, आपूर्तिकर्ता का एक उत्पाद लाना, उत्पाद URL को रिज़ॉल्व करना, आयात का पूर्वावलोकन करना या उसे चलाना, उत्पाद लिंक बनाना, और आपूर्तिकर्ता ऑर्डर भेजना, उसे फिर से आज़माना या उसका भुगतान करना। फ़ैसला मालिक का प्लान करता है, कॉल करने वाले स्टाफ सदस्य का प्लान नहीं। बाकी सब कुछ किसी भी प्लान पर खुला रहता है, इसलिए Pro से नीचे आने वाला स्टोर अब भी अपना मौजूदा डेटा पढ़ सकता है, कनेक्शन बंद कर सकता है, उसकी सेटिंग्स बदल सकता है, उसका परीक्षण कर सकता है या उसे डिस्कनेक्ट कर सकता है, उत्पाद लिंक संपादित, सिंक या हटा सकता है, और आपूर्तिकर्ता ऑर्डर रद्द कर सकता है या उसे मैन्युअल रूप से पूरा कर सकता है।


  • dropshipping.developer.base.hostAt
  • dropshipping.developer.base.prefixIs
  • dropshipping.developer.base.docsAt

नीचे दिए गए पथ आपूर्तिकर्ता उपसर्ग के सापेक्ष हैं। पहला पैरामीटर हमेशा स्टोर आईडी होता है, और उसके बाद की आईडी आपूर्तिकर्ता कनेक्शन होती है।

विधिमार्गअनुमतियह क्या करता है
GET/:storeId/cataloguesuppliers.viewवे आपूर्तिकर्ता जिनसे यह स्टोर जुड़ सकता है, और प्रत्येक क्या कर सकता है।
GET/:storeIdsuppliers.viewस्टोर के आपूर्तिकर्ता कनेक्शन, स्वास्थ्य और स्वचालन के साथ। क्रेडेंशियल कभी वापस नहीं किए जाते।
POST/:storeIdsuppliers.manageकिसी आपूर्तिकर्ता को उसकी API कुंजी से कनेक्ट करें। सहेजने से पहले कुंजी की जाँच आपूर्तिकर्ता के पास की जाती है।
POST/:storeId/oauth/startsuppliers.manageसाइन-इन का उपयोग करने वाले किसी आपूर्तिकर्ता, जैसे AliExpress, को कनेक्ट करना शुरू करें। वह पता लौटाता है जहाँ विक्रेता को भेजना है।
PUT/:storeId/:idsuppliers.manageकनेक्शन के क्रेडेंशियल बदलें।
POST/:storeId/:id/testsuppliers.manageकनेक्शन की अभी जाँच करें और इसकी स्थिति रिकॉर्ड करें।
GET/:storeId/:id/balancesuppliers.viewआपूर्तिकर्ता के पास खाते का बैलेंस, यदि आपूर्तिकर्ता इसे बताता है।
GET/:storeId/:id/impactsuppliers.viewडिस्कनेक्ट करने से क्या प्रभावित होगा — लिंक किए गए उत्पाद और खुले आपूर्तिकर्ता ऑर्डर।
PUT/:storeId/:id/settingssuppliers.manageआपूर्तिकर्ता की अपनी सेटिंग बदलें।
PUT/:storeId/:id/automationsuppliers.manageऑर्डर भेजने का तरीका और सीमाएं बदलें।
PUT/:storeId/:id/enabledsuppliers.manageकनेक्शन चालू या बंद करें।
DELETE/:storeId/:idsuppliers.manageडिस्कनेक्ट करें। क्रेडेंशियल हटा दिए जाते हैं, और आयातित उत्पाद स्टोर के अपने बने रहते हैं।

आपूर्तिकर्ता उत्पाद, आयात और लिंक

Section titled “आपूर्तिकर्ता उत्पाद, आयात और लिंक”
विधिमार्गअनुमतियह क्या करता है
GET/:storeId/:id/productssuppliers.importआपूर्तिकर्ता के कैटलॉग को ब्राउज़ करें या खोजें।
POST/:storeId/:id/products/resolve-urlsuppliers.importपेस्ट किए गए उत्पाद लिंक को आपूर्तिकर्ता के उत्पाद आईडी में बदलें।
GET/:storeId/:id/products/:supplierProductIdsuppliers.importवेरिएंट, लागत और स्टॉक सहित एक आपूर्तिकर्ता उत्पाद।
POST/:storeId/:id/import/previewsuppliers.importचुने गए उत्पादों की कीमत मूल्य नियम से तय करें और डुप्लिकेट बताएँ। कोई शुल्क नहीं लिया जाता।
POST/:storeId/:id/importsuppliers.import50 उत्पादों तक आयात करें। एक बड़ा आयात पोल करने के लिए जॉब आईडी लौटाता है।
GET/:storeId/imports/:jobIdsuppliers.importबैकग्राउंड इम्पोर्ट की प्रगति।
GET/:storeId/linkssuppliers.viewस्टोर के उत्पाद लिंक।
POST/:storeId/linkssuppliers.importस्टोर में पहले से मौजूद उत्पाद को किसी आपूर्तिकर्ता उत्पाद से लिंक करें।
PUT/:storeId/links/:linkIdsuppliers.importकिसी लिंक के वेरिएंट, मूल्य नियम या सिंक स्विच बदलें।
DELETE/:storeId/links/:linkIdsuppliers.importअनलिंक करें। उत्पाद स्टोर का अपना ही रहता है।
POST/:storeId/links/:linkId/syncsuppliers.importअभी एक लिंक सिंक करें।

आपूर्तिकर्ता ऑर्डर

Section titled “आपूर्तिकर्ता ऑर्डर”
विधिमार्गअनुमतियह क्या करता है
GET/:storeId/orderssuppliers.viewआपूर्तिकर्ता ऑर्डर, नवीनतम पहले, कर्सर द्वारा फ़िल्टर और पेज किए गए। क्वेरी फ़ील्ड तालिका के नीचे सूचीबद्ध हैं।
GET/:storeId/orders/:supplierOrderIdsuppliers.viewअपने इतिहास के साथ एक आपूर्तिकर्ता ऑर्डर।
POST/:storeId/orders/:orderId/groups/:groupKey/submitsuppliers.orders.manageकिसी ऑर्डर का एक हिस्सा अभी उसके आपूर्तिकर्ता को भेजें।
POST/:storeId/orders/:supplierOrderId/retrysuppliers.orders.manageकतारबद्ध, रुके हुए या असफल आपूर्तिकर्ता ऑर्डर को दोबारा आज़माएं।
POST/:storeId/orders/:supplierOrderId/paysuppliers.orders.manageएक आपूर्तिकर्ता ऑर्डर का भुगतान करें जो बनाया गया था लेकिन भुगतान नहीं किया गया था।
POST/:storeId/orders/:supplierOrderId/cancelsuppliers.orders.manageआपूर्तिकर्ता के यहाँ ऑर्डर वापस लें, जहाँ आपूर्तिकर्ता अभी भी इसकी अनुमति देता है।
POST/:storeId/orders/:orderId/groups/:groupKey/fulfil-manuallysuppliers.orders.manageएक हिस्सा संभाल लें, ताकि स्टोर इसे खुद शिप कर सके।

सूची इन क्वेरी फ़ील्ड को स्वीकार करती है — status, needsReview, integrationId, orderId, contractModel, cursor, pageSize

यह सूची कर्सर द्वारा पृष्ठबद्ध होती है, स्टोर की अन्य सूचियों की तरह, और इसमें पृष्ठ संख्या नहीं ली जाती है। एक पृष्ठ में 25 पंक्तियाँ होती हैं जब तक कि आप किसी अन्य आकार का अनुरोध न करें, और कभी भी 100 से अधिक नहीं। प्रत्येक उत्तर एक पृष्ठ है, पंक्तियाँ, फिर अगले और पिछले कर्सर के साथ एक पेजिंग ब्लॉक, क्या अधिक पंक्तियाँ हैं, कुल संख्या और पृष्ठ का आकार —

{
"items": [{ "_id": "SUPPLIER_ORDER_ID", "status": "needsReview" }],
"pagination": {
"nextCursor": "NEXT_CURSOR",
"previousCursor": null,
"hasMore": true,
"totalCount": 42,
"pageSize": 25
}
}

अगला पृष्ठ पढ़ने के लिए, वही फ़िल्टर और पिछले पृष्ठ के अगले कर्सर को कर्सर के रूप में उपयोग करके कॉल दोहराएँ। जब आगे कोई पंक्ति न हो तो रुकें। पंक्तियों पर कार्रवाई करने से पहले हर पृष्ठ पढ़ें, पुनः प्रयास या भुगतान उस सूची को बदल देता है जिस पर कर्सर चलता है।

दो क्रियाओं में एक वैकल्पिक बॉडी होती है —

  • submit — { "payNow": true } — ऑर्डर बनते ही उसका भुगतान भी करना, जहाँ आपूर्तिकर्ता को बैलेंस से भुगतान किया जा सकता है। अभी भुगतान करना विक्रेता का अपना निर्णय है, इसलिए यह जाँच छोड़ दी जाती है कि खरीदार ने भुगतान किया है या नहीं — बिना भुगतान वाले या कैश ऑन डिलीवरी ऑर्डर का भी भुगतान किया जाता है, और यह विकल्प आपूर्तिकर्ता ऑर्डर के इतिहास में दर्ज किया जाता है। गंतव्य, स्टॉक, लागत-सीमा और बैलेंस की जाँच फिर भी लागू होती है।
  • retry — { "acceptCost": true } — मूल्य परिवर्तन के बाद आपूर्तिकर्ता की नई लागत स्वीकार करें। इसे कॉलर के निर्णय के रूप में दर्ज किया जाता है।

स्टोर ऑर्डर में जोड़

Section titled “स्टोर ऑर्डर में जोड़”
  • GET /api/store-orders/:storeId/:id — ऑर्डर विवरण में ऑर्डर के हिस्से और, ऐसे कॉलर के लिए जिसके पास आपूर्तिकर्ता देखने की अनुमति भी है, लागत सहित उसके आपूर्तिकर्ता ऑर्डर जोड़े जाते हैं।
  • GET /api/store-orders/:storeId?needsAttention=true — सूची में प्रत्येक ऑर्डर में उसके भागों का सारांश होता है, और सूची उन ऑर्डर के लिए फ़िल्टर स्वीकार करती है जिनमें ऐसा भाग हो जिस पर ध्यान देने की आवश्यकता हो।

एक आपूर्तिकर्ता कनेक्शन

Section titled “एक आपूर्तिकर्ता कनेक्शन”
  • supplierKey — कैटालॉग के अनुसार, कौन सा आपूर्तिकर्ता।
  • mode — टेस्ट या लाइव।
  • enabled — क्या कनेक्शन चालू है।
  • hasCredentials — क्या क्रेडेंशियल संग्रहीत हैं। क्रेडेंशियल स्वयं कभी वापस नहीं किए जाते।
  • automation — ऑर्डर कैसे भेजे जाते हैं और उन्हें रोकने वाली सीमाएं।
  • health — अंतिम जाँच का परिणाम।
  • isCircuitOpen, circuitOpenUntil — बार-बार त्रुटियों के बाद कनेक्शन उस समय तक रुका हुआ है।
  • lastWebhookAt — आपूर्तिकर्ता ने आखिरी बार सूचना कब भेजी थी।
  • webhookUrl — वह पता जिस पर आपूर्तिकर्ता अपनी सूचनाएँ भेजता है (कनेक्शन सूची में दिखाया जाता है)। जब कोई सार्वजनिक पता कॉन्फ़िगर नहीं होता, तो यह खाली रहता है।
  • productId, supplierProductId — स्टोर का उत्पाद और वह आपूर्तिकर्ता का उत्पाद जिससे यह जुड़ा हुआ है।
  • variants[] — प्रत्येक स्टोर वेरिएंट लागत और स्टॉक के साथ आपूर्तिकर्ता वेरिएंट से मैप किया गया है।
  • priceRule — लागत से स्टोर की कीमत की गणना कैसे की जाती है।
  • sync — प्रति घंटे का सिंक कौन-से फ़ील्ड बदल सकता है।
  • lastSyncAt, lastSyncError — पिछला सिंक और यदि यह विफल रहा, तो क्यों।

एक आपूर्तिकर्ता ऑर्डर

Section titled “एक आपूर्तिकर्ता ऑर्डर”
  • status — आपूर्तिकर्ता ऑर्डर किस चरण में है। नीचे दी गई तालिका प्रत्येक मान को सूचीबद्ध करती है।
  • reviewReason, reviewMessage — यह क्यों रुक गया, एक बंद सूची से एक कारण के रूप में, और किसी भी संवेदनशील जानकारी को हटाकर आपूर्तिकर्ता के शब्द।
  • retryable — क्या बिना कुछ बदले दोबारा प्रयास करना सफल हो सकता है।
  • supplierOrderNumber — हमारा नंबर, जिसे आपूर्तिकर्ता को उसके ऑर्डर नंबर के रूप में भेजा जाता है। एक ही प्रयास के पुनः प्रयासों के बीच यह कभी नहीं बदलता।
  • supplierOrderId, supplierStatus — आपूर्तिकर्ता की अपनी आईडी और स्थिति, जैसा कि आपूर्तिकर्ता द्वारा बताया गया है।
  • costs, payment — आपूर्तिकर्ता क्या शुल्क लेता है, और क्या स्टोर ने उसका भुगतान कर दिया है।
  • shipping — आपूर्तिकर्ता द्वारा शिप किए जाने के बाद कूरियर कंपनी और ट्रैकिंग नंबर।
  • attempt, events[] — यह कौन सा प्रयास है, और उसका इतिहास।
  • destination, destinationRedacted — डिलीवरी का पता, केवल उस कॉलर के लिए जिसे ग्राहक डेटा देखने की अनुमति है। अन्यथा इसे हटा दिया जाता है और फ़्लैग ऐसा कहता है।

dropshipping.developer.objects.paymentValuesList

एक स्टोर ऑर्डर पर

Section titled “एक स्टोर ऑर्डर पर”
  • fulfilmentGroups[] — ऑर्डर के हिस्से — एक स्टोर के अपने आइटम के लिए और एक प्रत्येक आपूर्तिकर्ता कनेक्शन के लिए — प्रत्येक अपनी स्थिति, आइटम और शिपमेंट के साथ।
  • fulfilmentSummary — कितने हिस्से हैं, और कितने भेजे या डिलीवर किए जा चुके हैं।
  • supplierOrders[] — हिस्सों के पीछे आपूर्तिकर्ता के ऑर्डर, उस कॉलर के लिए जिसे आपूर्तिकर्ता देखने की अनुमति है।

स्थितियाँ और कारण

Section titled “स्थितियाँ और कारण”

ऑर्डर भाग की स्थितियाँ

Section titled “ऑर्डर भाग की स्थितियाँ”

एक ऑर्डर अपने सबसे धीमे हिस्से के अनुसार आगे बढ़ता है। इसे केवल तभी भेजा हुआ माना जाता है जब हर हिस्सा भेज दिया गया हो, और डिलीवर तब माना जाता है जब हर हिस्सा डिलीवर हो जाए।

मानअर्थएक प्रोग्राम क्या कर सकता है
pendingअभी तक शुरू नहीं हुआ।कुछ नहीं — प्रतीक्षा करें।
processingस्टोर या आपूर्तिकर्ता द्वारा तैयार किया जा रहा है।कुछ नहीं — प्रतीक्षा करें।
shippedकूरियर कंपनी को सौंप दिया गया।पार्ट के शिपमेंट से ट्रैकिंग पढ़ें।
deliveredडिलीवर किया गया। अंतिम।कुछ नहीं — प्रतीक्षा करें।
cancelledरद्द कर दिया गया। अंतिम।कुछ नहीं — प्रतीक्षा करें।

आपूर्तिकर्ता ऑर्डर की स्थितियां

Section titled “आपूर्तिकर्ता ऑर्डर की स्थितियां”
मानअर्थएक प्रोग्राम क्या कर सकता है
queuedभेजे जाने की प्रतीक्षा है।कुछ नहीं — प्रतीक्षा करें।
needsReviewएक कारण के साथ रोका गया। किसी व्यक्ति या बदले गए इनपुट की आवश्यकता है।इसे किसी व्यक्ति को दिखाएं। कारण बदलने के बाद ही पुनः प्रयास करें।
submittedआपूर्तिकर्ता के पास बनाया गया, अभी तक स्वीकार और भुगतान नहीं किया गया है।भुगतान करें, यदि स्टोर मैन्युअल रूप से भुगतान करता है।
confirmedआपूर्तिकर्ता द्वारा स्वीकार किया गया और भुगतान किया गया।कुछ नहीं — प्रतीक्षा करें।
processingआपूर्तिकर्ता द्वारा तैयार किया जा रहा है।कुछ नहीं — प्रतीक्षा करें।
shippedआपूर्तिकर्ता द्वारा भेजा गया, ट्रैकिंग के साथ।कुछ नहीं — प्रतीक्षा करें।
deliveredडिलीवर किया गया। अंतिम।कुछ नहीं — प्रतीक्षा करें।
cancelledरद्द किया गया। अंतिम।कुछ नहीं — प्रतीक्षा करें।
failedएक अस्थायी त्रुटि, जैसे कि समय समाप्त होना। कार्य इसे अपने आप पुनः प्रयास करता है।यदि स्वचालित पुनः प्रयास बंद हो गए हैं, तो इसे एक बार पुनः प्रयास करें।

रुके हुए आपूर्तिकर्ता ऑर्डर में इनमें से ठीक एक कारण होता है। दूसरा कॉलम वह मान है जिसे API प्रत्येक के लिए सेट करता है।

मानretryableअर्थएक प्रोग्राम क्या कर सकता है
insufficientBalancefalseआपूर्तिकर्ता के पास स्टोर का बैलेंस ऑर्डर को कवर नहीं कर सकता है।किसी व्यक्ति को बताएं। बैलेंस टॉप अप होने के बाद पुनः प्रयास करें।
variantUnavailablefalseआपूर्तिकर्ता अब एक वेरिएंट उपलब्ध नहीं कराता है।मानवीय हस्तक्षेप के बिना कुछ नहीं।
destinationUnsupportedfalseआपूर्तिकर्ता वहां डिलीवरी नहीं करता है, या स्टोर ने इस देश को हटा दिया है।मानवीय हस्तक्षेप के बिना कुछ नहीं।
costAboveLimitfalseलागत स्टोर द्वारा निर्धारित सीमा से अधिक है।केवल किसी व्यक्ति के निर्णय पर पुनः प्रयास करें।
costChangedfalseआयात के बाद से आपूर्तिकर्ता की कीमत बदल गई है।नई लागत स्वीकार करते हुए, केवल किसी व्यक्ति के निर्णय पर पुनः प्रयास करें।
customerPaymentPendingfalseखरीदार ने ऑनलाइन भुगतान नहीं किया है।जब स्टोर तय करे तब इसे सबमिट करें।
customerPaymentNotSettledfalseभुगतान अधिकृत है लेकिन अभी सेटल नहीं हुआ है।भुगतान सेटल होने के बाद पुनः प्रयास करें।
connectionUnhealthytrueआपूर्तिकर्ता ने उत्तर नहीं दिया, या कनेक्शन रुका हुआ है।बाद में पुनः प्रयास करें।
supplierRefusedtrueआपूर्तिकर्ता ने ऑर्डर अस्वीकार कर दिया।संदेश पढ़ें। कारण ठीक होने के बाद पुनः प्रयास करें।
connectionMissingfalseकनेक्शन बंद है, हटा दिया गया है, या Posty5 द्वारा आपूर्तिकर्ता को अक्षम कर दिया गया है।कुछ नहीं। किसी व्यक्ति को हस्तक्षेप करना होगा।
supplierAlreadyShippedfalseआपूर्तिकर्ता द्वारा ऑर्डर शिप करने के बाद रद्दीकरण अनुरोध प्राप्त हुआ।कुछ नहीं — इसे रिटर्न के रूप में संभालें।
testModefalseसैंडबॉक्स वातावरण के बिना किसी आपूर्तिकर्ता के साथ एक परीक्षण कनेक्शन बनाया गया था। कोई ऑर्डर नहीं दिया गया था।कनेक्शन लाइव होने तक कुछ नहीं।
customerCaptureFailedfalseबेचने का वादा — आपूर्तिकर्ता को भुगतान कर दिया गया, खरीदार से शुल्क लेना विफल रहा।तुरंत किसी व्यक्ति को बताएं।

आपूर्तिकर्ता सूचना पता

Section titled “आपूर्तिकर्ता सूचना पता”
POST /api/store-suppliers/webhook/:supplierKey/:integrationId

सूचनाएं भेजने वाले आपूर्तिकर्ता ऑर्डर की स्थिति, ट्रैकिंग और स्टॉक की रिपोर्ट करने के लिए इस पते पर कॉल करते हैं।

Posty5 पते से कनेक्शन ढूंढता है और उस कनेक्शन के अपने क्रेडेंशियल के साथ संदेश की जाँच करता है। हर अस्वीकृति को समान 400 उत्तर मिलता है, और जब Posty5 निर्णय नहीं ले पाता है तो 503 मिलता है, जिससे आपूर्तिकर्ता फिर से भेजता है। एक सूचना केवल Posty5 को आपूर्तिकर्ता से ऑर्डर वापस पढ़ने के लिए प्रेरित करती है। यह अपने आप कभी भी पैसे, स्टॉक या स्थिति नहीं बदलती।


आइडमपोटेंसी और पुनः प्रयास

Section titled “आइडमपोटेंसी और पुनः प्रयास”

एक आपूर्तिकर्ता ऑर्डर को डुप्लिकेट से तीन तरीकों से सुरक्षित किया जाता है।

  • प्रत्येक ऑर्डर भाग के लिए एक जॉब, चाहे जो भी इसे ट्रिगर करे —
  • प्रत्येक प्रयास के लिए एक अद्वितीय कुंजी, जिसे उसके ऑर्डर नंबर के रूप में आपूर्तिकर्ता को भेजा जाता है। बनाने से पहले, Posty5 आपूर्तिकर्ता से पूछता है कि क्या वह नंबर पहले से मौजूद है, ताकि सफलता के बाद टाइम आउट होने वाले निर्माण को ढूंढा जा सके, दोहराया न जाए।
  • भुगतान करने से पहले, Posty5 आपूर्तिकर्ता की अपनी स्थिति पढ़ता है। वहाँ पहले से भुगतान किया गया ऑर्डर दर्ज किया जाता है, दोबारा भुगतान नहीं किया जाता।

आपके प्रोग्राम के लिए इसका क्या अर्थ है

Section titled “आपके प्रोग्राम के लिए इसका क्या अर्थ है”
  • सबमिट को दो बार कॉल करने पर एक आपूर्तिकर्ता ऑर्डर मिलता है।
  • dropshipping.developer.idem.rules.retryWhen
  • रुका हुआ ऑर्डर अपने आप ठीक नहीं होता। इसके लिए किसी व्यक्ति या बदले हुए इनपुट की आवश्यकता होती है।
  • ऑर्डर को ट्रैक करने के लिए, आपूर्तिकर्ता के ऑर्डर को दोबारा पढ़ें। लूप में सबमिट कॉल न करें।

ऑर्डर कब भेजे जाते हैं

Section titled “ऑर्डर कब भेजे जाते हैं”

स्वचालित स्तर के साथ, आपूर्तिकर्ता का हिस्सा एक बार भेजा जाता है, जब ऑर्डर कन्फर्म हो जाता है — किसी स्टाफ सदस्य द्वारा या ऑनलाइन भुगतान द्वारा।

आपूर्तिकर्ता को स्वचालित भुगतान के लिए ज़रूरी है कि खरीदार का भुगतान हो चुका हो, जिसकी पुष्टि भुगतान प्रदाता करे। बिना ऑनलाइन भुगतान वाला ऑर्डर तब तक प्रतीक्षा करता है जब तक कनेक्शन बिना भुगतान वाले ऑर्डर की अनुमति न दे।

“बेचने का वादा” के तहत, खरीदार का भुगतान अधिकृत होने के बाद भेजना शुरू होता है, और आपूर्तिकर्ता द्वारा स्वीकार किए जाने पर खरीदार से शुल्क लिया जाता है।


समीक्षा के लिए प्रतीक्षा कर रहे आपूर्तिकर्ता के ऑर्डर की सूची बनाएं —

Terminal window
curl "https://api.posty5.com/api/store-suppliers/STORE_ID/orders?needsReview=true" \
-H "X-API-Key: YOUR_API_KEY"

उत्तर आपूर्तिकर्ता ऑर्डर का एक पेज है। कम बैलेंस के कारण रुकी हुई पंक्ति ऐसी दिखती है —

{
"_id": "SUPPLIER_ORDER_ID",
"orderNumber": "1042",
"fulfilmentGroupKey": "GROUP_KEY",
"supplierKey": "cjdropshipping",
"attempt": 1,
"status": "needsReview",
"reviewReason": "insufficientBalance",
"reviewMessage": "Balance is insufficient",
"retryable": false,
"supplierOrderNumber": "SUPPLIER_ORDER_NUMBER",
"payment": { "status": "unpaid" }
}

TypeScript से वही कॉल —

const response = await fetch(
`https://api.posty5.com/api/store-suppliers/${storeId}/orders?needsReview=true`,
{ headers: { "X-API-Key": process.env.POSTY5_API_KEY! } },
);
const { result } = await response.json();
// result.items: the supplier orders on this page
// result.pagination.nextCursor: send it back as `cursor` while result.pagination.hasMore

और C# से —

using var http = new HttpClient { BaseAddress = new Uri("https://api.posty5.com") };
http.DefaultRequestHeaders.Add("X-API-Key", Environment.GetEnvironmentVariable("POSTY5_API_KEY"));
var json = await http.GetStringAsync($"/api/store-suppliers/{storeId}/orders?needsReview=true");
// { "result": { "items": [...], "pagination": { "nextCursor": "...", "hasMore": true, ... } } }
// Send pagination.nextCursor back as &cursor= while pagination.hasMore is true.

JavaScript और .NET स्टोर पैकेज में से प्रत्येक में उपर्युक्त प्रत्येक समूह को कवर करने वाला एक आपूर्तिकर्ता क्लाइंट है — कैटलॉग, कनेक्शन, आपूर्तिकर्ता उत्पाद, आयात, लिंक और आपूर्तिकर्ता ऑर्डर। जब समीक्षा के लिए कोई आपूर्तिकर्ता ऑर्डर रुक जाता है, तो सबमिट, रीट्राई और पे करने पर लौटने के बजाय त्रुटि उत्पन्न होती है, इसलिए कारण जानने के लिए आपूर्तिकर्ता ऑर्डर को दोबारा पढ़ें।

  • npm — @posty5/store 4.3.0 — store.suppliers
  • NuGet — Posty5.Store 3.2.0 — store.Suppliers

इनमें से कोई भी संस्करण अभी प्रकाशित नहीं हुआ है। जब तक वे प्रकाशित नहीं होते, तब तक उपरोक्त रूट को सीधे कॉल करें।

TypeScript से, आपूर्तिकर्ता का मूल्य बदलने के कारण रोके गए प्रत्येक आपूर्तिकर्ता ऑर्डर को दोबारा प्रयास करें, नई लागत को स्वीकार करते हुए —

import { HttpClient } from "@posty5/core";
import { IStoreSupplierOrder, StoreClient } from "@posty5/store";
const store = new StoreClient(new HttpClient({ apiKey: process.env.POSTY5_API_KEY }));
// Read every page first: a retry changes the list the cursor walks.
const paused: IStoreSupplierOrder[] = [];
let cursor: string | undefined;
do {
const page = await store.suppliers.listSupplierOrders(storeId, { needsReview: true, cursor, pageSize: 100 });
paused.push(...page.items);
cursor = page.pagination.hasMore ? page.pagination.nextCursor ?? undefined : undefined;
} while (cursor);
for (const supplierOrder of paused) {
if (supplierOrder.reviewReason === "costChanged") {
await store.suppliers.retry(storeId, supplierOrder._id, { acceptCost: true });
}
}

और C# से —

using Posty5.Core.Configuration;
using Posty5.Core.Http;
using Posty5.Core.Models;
using Posty5.Store;
using Posty5.Store.Models;
var http = new Posty5HttpClient(new Posty5Options { ApiKey = Environment.GetEnvironmentVariable("POSTY5_API_KEY") });
var store = new StoreClient(http);
// Read every page first: a retry changes the list the cursor walks.
var paused = new List<StoreSupplierOrder>();
string? cursor = null;
do
{
var page = await store.Suppliers.ListSupplierOrdersAsync(storeId,
new SupplierOrderSearchParams { NeedsReview = true },
new PaginationParams { Cursor = cursor, PageSize = 100 });
if (page == null) break;
paused.AddRange(page.Items);
cursor = page.Pagination.HasMore ? page.Pagination.NextCursor : null;
} while (cursor != null);
foreach (var supplierOrder in paused)
{
if (supplierOrder.ReviewReason == "costChanged")
await store.Suppliers.RetryAsync(storeId, supplierOrder.Id!, acceptCost: true);
}

n8n के लिए Posty5 स्टोर नोड (n8n पैकेज का संस्करण 4.4.0) में आपूर्तिकर्ता, आपूर्तिकर्ता उत्पाद, उत्पाद लिंक, आपूर्तिकर्ता ऑर्डर, ऑर्डर के हिस्से और ऑर्डर शामिल हैं। यह भी अभी प्रकाशित नहीं हुआ है।