गाइड · store:write · orders:write
Bloop स्टोर चलाएँ
अपने वेयरहाउस, ई-कॉमर्स या स्प्रेडशीट को Linework पर अपने Bloop स्टोर से जोड़ें: प्रोडक्ट्स, स्टॉक, ऑर्डर और शिपिंग।
Scopes: store:read, store:write, orders:read, orders:write।
Payments को Linework ऐप के अंदर ही हैंडल करता है। API कभी पैसे का लेन-देन नहीं करता: आप कैटलॉग और fulfilment मैनेज करते हैं, खरीदार हमेशा की तरह Linework में भुगतान करते हैं।
Endpoints#
| Endpoint | इस्तेमाल |
|---|---|
GET /store | आपका स्टोर। |
POST /store | अपना स्टोर बनाएँ, अगर अभी तक आपके पास नहीं है। |
PATCH /store | नाम, विवरण और स्टोर की अन्य जानकारी अपडेट करें। |
GET /store/products | अपने प्रोडक्ट्स की सूची (paginated)। |
POST /store/products | एक प्रोडक्ट बनाएँ। |
PATCH /store/products/{id} | एक प्रोडक्ट अपडेट करें। |
DELETE /store/products/{id} | एक प्रोडक्ट हटाएँ। |
PATCH /store/products/{id}/stock | उपलब्ध मात्रा सेट करें। |
GET /store/orders | मिले हुए ऑर्डर (paginated)। |
GET /store/orders/{id} | आइटम्स और शिपिंग पते के साथ एक ऑर्डर। |
POST /store/orders/{id}/ship | किसी ऑर्डर को tracking के साथ शिप्ड मार्क करें। |
1. अपना स्टोर जाँचें#
curl https://api.linework.app/open/v1/store \
-H "Authorization: Bearer $LINEWORK_API_KEY"
अगर अभी तक आपका स्टोर नहीं है, तो GET /store 404 NOT_FOUND लौटाता है: इसे POST /store से बनाएँ (फ़ील्ड्स API Reference में हैं)।
2. एक प्रोडक्ट बनाएँ#
पहले POST /media से फ़ोटो अपलोड करें (मीडिया के साथ पोस्ट देखें), फिर उनकी mediaId के साथ प्रोडक्ट बनाएँ।
curl https://api.linework.app/open/v1/store/products \
-H "Authorization: Bearer $LINEWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Linen shirt",
"description": "100% Italian linen, made in Biella.",
"price": 59.00,
"currency": "EUR",
"stock": 25,
"sku": "SHIRT-LIN-M",
"mediaIds": ["m_8f2c1a"]
}'
const res = await fetch("https://api.linework.app/open/v1/store/products", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LINEWORK_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Linen shirt",
description: "100% Italian linen, made in Biella.",
price: 59.0,
currency: "EUR",
stock: 25,
sku: "SHIRT-LIN-M",
mediaIds: [mediaId],
}),
});
const product = await res.json();
import os, requests
API = "https://api.linework.app/open/v1"
s = requests.Session()
s.headers["Authorization"] = f"Bearer {os.environ['LINEWORK_API_KEY']}"
product = s.post(API + "/store/products", json={
"title": "Linen shirt",
"description": "100% Italian linen, made in Biella.",
"price": 59.00,
"currency": "EUR",
"stock": 25,
"sku": "SHIRT-LIN-M",
"mediaIds": [media_id],
}, timeout=30).json()
3. स्टॉक सिंक रखें#
स्टॉक के लिए बने अलग endpoint का इस्तेमाल करें: यह हल्का है और प्रोडक्ट के बाकी हिस्से को नहीं छूता।
curl -X PATCH https://api.linework.app/open/v1/store/products/7781/stock \
-H "Authorization: Bearer $LINEWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "stock": 12 }'
एक आम sync job आपके सिस्टम से मात्राएँ पढ़ता है और सिर्फ़ उन्हीं प्रोडक्ट्स को अपडेट करता है जो बदले हैं:
const API = "https://api.linework.app/open/v1";
const headers = { Authorization: `Bearer ${process.env.LINEWORK_API_KEY}`, "Content-Type": "application/json" };
const warehouse = { "SHIRT-LIN-M": 12, "SHIRT-LIN-L": 0 }; // from your system
let cursor = null;
do {
const url = `${API}/store/products?limit=100${cursor ? `&cursor=${encodeURIComponent(cursor)}` : ""}`;
const page = await fetch(url, { headers }).then((r) => r.json());
for (const p of page.data) {
const qty = warehouse[p.sku];
if (qty !== undefined && qty !== p.stock) {
await fetch(`${API}/store/products/${p.id}/stock`, {
method: "PATCH", headers, body: JSON.stringify({ stock: qty }),
});
}
}
cursor = page.next_cursor;
} while (cursor);
warehouse = {"SHIRT-LIN-M": 12, "SHIRT-LIN-L": 0} # from your system
cursor = None
while True:
params = {"limit": 100, **({"cursor": cursor} if cursor else {})}
page = s.get(API + "/store/products", params=params, timeout=30).json()
for p in page["data"]:
qty = warehouse.get(p.get("sku"))
if qty is not None and qty != p["stock"]:
s.patch(f"{API}/store/products/{p['id']}/stock", json={"stock": qty}, timeout=30)
cursor = page.get("next_cursor")
if not cursor:
break
स्टॉक 0 होने पर प्रोडक्ट कैटलॉग में “sold out” के रूप में बना रहता है। उसे हटाने के लिए DELETE /store/products/{id} इस्तेमाल करें।
4. नए ऑर्डर पढ़ें#
curl "https://api.linework.app/open/v1/store/orders?limit=50" \
-H "Authorization: Bearer $LINEWORK_API_KEY"
ऑर्डर सबसे नए पहले के क्रम में लौटाए जाते हैं। हर ऑर्डर में एक id, एक status, उसके आइटम्स, कुल राशि और, GET /store/orders/{id} के लिए, शिपिंग पता होता है। हर कुछ मिनट में सूची लाएँ और उन ऑर्डर को प्रोसेस करें जिनका भुगतान हो चुका है और जो अभी शिप नहीं हुए हैं। ऑर्डर का पूरा schema और status वैल्यूज़ API Reference में हैं।
ऑर्डर में खरीदारों का व्यक्तिगत डेटा (नाम, पता) होता है। इसका इस्तेमाल सिर्फ़ ऑर्डर पूरा करने के लिए करें, इसे सुरक्षित रखें और शेयर न करें। API की शर्तें देखें।
5. शिप्ड मार्क करें#
curl https://api.linework.app/open/v1/store/orders/50213/ship \
-H "Authorization: Bearer $LINEWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "carrier": "BRT", "trackingNumber": "084512345678" }'
खरीदार को ऐप में tracking की जानकारी के साथ सूचना मिलती है। किसी ऑर्डर को दो बार शिप करना, या ऐसा ऑर्डर शिप करना जो शिप नहीं हो सकता (उदाहरण के लिए रद्द किया गया), 409 CONFLICT के साथ fail होता है।