API من خادم إلى خادم (server-to-server)
ابنِ تجربة تجارة مخصصة على برنتلت
اربط أي موقع أو تطبيق مخصص بخدمات واجهة برمجة التطبيقات (API) للكتالوج (catalog) والتصميم والمعاينة (preview) والتسعير والطلبات والتنفيذ (fulfillment) في برنتلت. تطبيقك بيملك تجربة العميل، وبرنتلت بتتولى الإنتاج.
مقدمة
إزاي تكامل API بيشتغل
تكامل API قناة تنفيذ من خادم إلى خادم للتجار اللي واجهة المتجر (storefront) أو التطبيق عندهم مبني مخصص. العميل عمره ما بيتصل بـ برنتلت مباشرة: الواجهة الخلفية (backend) بتاعتك بتكتشف الكتالوج، بتبعت التصميم واختيار المكان، بتنشئ الطلب، وبتستقبل أحداث دورة الحياة الموقَّعة (signed).
حدود التكامل
تطبيقك بيملك واجهة المتجر والدفع. برنتلت بتستقبل تعليمات جاهزة للإنتاج وبترجع تحديثات التنفيذ.
عميلك
تجربة مخصصة
بيصمّم منتج وبيشتري من شغلك.
نظامك
الواجهة الخلفية للتاجر
بيملك هوية العميل والتسعير والدفع والضرائب وتأكيد الدفع عند الاستلام.
منصة برنتلت
تكامل API v1
بتوفّر الكتالوج واستلام التصميم والمعاينات والعروض والطلبات والأحداث.
عمليات برنتلت
التنفيذ
بتطبع وبتغلّف وبتشحن وبتحدّث دورة حياة الطلب.
طلبات API من التاجر
خطاف الويب (Webhook) الموقَّع بيرجع الحالة والتحقق وتغييرات الكتالوج
استخدم نقطة النهاية (endpoint) للمعاينة عشان تقدّم أداة تخصيص (configurator) خفيفة من غير ما تضمّن محرر برنتلت الكامل. تطبيقك بيتحكم في الواجهة، وبرنتلت بتطبّق قواعد منطقة الطباعة والمنطقة الآمنة للمنتج.
من التصميم لملف الطباعة
المطوّر بيختار معرّفات (IDs) الكتالوج الثابتة والإعدادات الجاهزة؛ برنتلت بتتولى التحويل الآمن للطباعة.
- 01التصميم الأصليابعت ملف PNG أو JPEG أو WebP من غير تعديل، برفع آمن أو رابط HTTPS.
- 02إعداد الكتالوجاختار متغير المنتج (variant) ومنطقة طباعة وتقنية وإعداد مكان جاهز راجع من برنتلت.
- 03المعاينةبرنتلت بتطبّق نفس قواعد المكان في ستوديو التصميم وبتعمل معاينة للعميل.
- 04ملف الإنتاجالأصل بيفضل مربوط بالطلب عشان برنتلت تقدر تعدّل ملف الطباعة بأمان عند الحاجة.
التصميم بيملأ منطقة الطباعة المختارة. إعداد المكان بيحط المنطقة دي جوه المنطقة الآمنة؛ قواعد المنتج ممكن تضيف سلوك زي التمدد الرأسي لجراب الموبايل.
ابدأ من هنا
بداية سريعة
تكامل API متاح لكل التجار. أنشئ متجر تكامل API، أكّد إيميل الحساب، وطلّع مفتاح اختبار قبل ما تلمس التنفيذ الحقيقي.
- 1
أنشئ تثبيتاً. اختار تكامل API كنوع تكامل المتجر. المتجر بيستخدم نوع تكامل واحد بس.
- 2
طلّع بيانات اعتماد اختبار. بعد ما يتأكد إيميل حساب برنتلت، افتح صفحة بيانات الاعتماد (credentials) وانسخ مفتاح prnt_test_ اللي بيظهر مرة واحدة.
- 3
اكتشف الكتالوج. اطلب الدول الأول، بعدين المنتجات وتفاصيل المنتج. احفظ المعرّفات الراجعة كنصوص ثابتة من غير تعديل.
- 4
ارفع التصميم واعمل معاينة. ارفع ملف الطباعة الأصلي، اختار منطقة الطباعة وإعداد المكان، بعدين اطلب معاينة.
- 5
اعمل عرض وأنشئ الطلب. استخدم Idempotency-Key فريد لكل POST واحتفظ بمعرّفات برنتلت الراجعة.
- 6
تحقق من خطاف الويب. تحقق من كل توقيع على جسم الطلب (payload) الخام قبل ما تعالج أحداث دورة الحياة.
جرّب التسلسل كامل في Postman
استورد المجموعة المرتبة وبيئة التجهيز (staging)، حط بيانات اعتماد الاختبار، وبعدين نفّذ الطلبات من اكتشاف الكتالوج للتصميم والمعاينة والعروض والطلبات وتأكيد الدفع عند الاستلام وأحداث دورة الحياة.
مفاهيم أساسية
المصادقة (authentication)
ابعت مفتاح الـ API كرمز حامل (Bearer token) في كل طلب. المفاتيح بتظهر مرة واحدة، مربوطة بتثبيت وبيئة واحدة، وممكن تتجدّد أو تتلغى من لوحة برنتلت.
Authorization: Bearer prnt_test_...
Content-Type: application/json
Idempotency-Key: 7b407941-6df8-4f3f-bf22-7afeccf08683بيئات الاختبار والإنتاج
بيانات اعتماد الاختبار والإنتاج بتشتغل على بنية برنتلت المستضافة للإنتاج، بس معزولة بالمفتاح والبيانات والتأثيرات. مفتاح prnt_test_ مش بيبدأ تنفيذ حقيقي؛ مفتاح prnt_live_ يقدر.
| البيئة (environment) | بيانات الاعتماد | التنفيذ |
|---|---|---|
| اختبار | prnt_test_... | محاكاة فقط |
| إنتاج | prnt_live_... | طلبات إنتاج حقيقية |
ابنِ التكامل
اكتشاف الكتالوج
اكتشف الدول والمنتجات ومتغيرات المنتج ومناطق الطباعة والتقنيات وإعدادات المكان والأسعار وطرق الشحن من خلال الـ API. متكتبش معرّفات الكتالوج في الكود. دي معرّفات ثابتة مش قابلة للتعديل ولازم تتعامل معاها كنصوص غامضة.
GET /catalog/countries
GET /catalog/products?country_id={country_id}
GET /catalog/products/{product_id}?country_id={country_id}
GET /catalog/shipping-methods?country_id={country_id}اشترك في خطاف ويب تغييرات الكتالوج وزامن مع GET /catalog/changes. برنتلت كمان بتبعت إيميل للتجار قبل حذف كتالوج هيكسر التكامل.
التصميم والمكان
ارفع الملف الأصلي من غير تعديل عشان فريق إنتاج برنتلت يقدر يعدّل ملف الطباعة عند الحاجة. PNG و JPEG و WebP مقبولين لحد 25 MiB و 10,000 في 10,000 بكسل. المصادر البعيدة لازم تستخدم HTTPS وتفضل متاحة لحد ما الاستلام يخلص.
التصميم بيملأ منطقة الطباعة المختارة. إعداد مكان جاهز بيحط منطقة الطباعة جوه المنطقة الآمنة للمنتج. في v1 المطوّر مش بيبعت إحداثيات أو تكبير أو دوران أو طبقات من عنده. سلوك المنتج الخاص زي التمدد الرأسي لجراب الموبايل راجع من الكتالوج.
إنشاء المعاينة
أنشئ معاينة بتصميم مقبول ومتغير منتج ومنطقة طباعة وتقنية وإعداد مكان. برنتلت بتستخدم نفس قواعد المكان في ستوديو التصميم وبترجع المعاينة بشكل غير متزامن، وده بيخلّي التطبيقات المخصصة تبني أداة تخصيص خفيفة.
POST /previews
GET /previews/{preview_id}العروض والطلبات ودفع التاجر
التاجر بيملك علاقة العميل النهائي وسعر الدفع وتحصيل الضرائب وقواعد الشحن اللي العميل بيشوفها. برنتلت بتحسب على التاجر تكلفة المنتج والشحن المعروضة لعنوان التسليم المرسل.
التاجر يقدر يفعّل التنفيذ التلقائي من المحفظة بشكل منفصل للطلبات اللي العميل دفعها كارد أو دفع عند الاستلام. غير كده الطلب بيفضل معلّق لحد ما التاجر يموّل المحفظة أو يدفع يدوي بالكارد من لوحة برنتلت. الشحن المجزأ والتنفيذ الجزئي مش مدعومين في v1.
خطافات الويب وأمان الأحداث
برنتلت بتوقّع كل تسليم بتوقيع HMAC: بصمة تشفير من الوقت وجسم الطلب الخام باستخدام سر خطاف الويب. احسبها تاني على خادمك، قارن بوقت ثابت، ارفض أي وقت أقدم من خمس دقايق، وامنع التكرار بمعرّف الحدث.
التسليم بيحصل مرة واحدة على الأقل، فالمستقبل لازم يكون آمن للتكرار (idempotent). رجّع 2xx ناجح بعد ما تحفظ الحدث. استخدم GET /events عشان تزامن أي حاجة فاتتك.
خلّص أسرع
تسليم لوكيل البرمجة (coding agent)
الموجّه (prompt) ده فيه الوثائق وOpenAPI والمرجع وقاعدة الـ API وتسلسل نقاط النهاية وقواعد الأمان ومعايير القبول.
Implement a production-ready server-to-server integration with Printlet API Integration v1.
AUTHORITATIVE PRINTLET RESOURCES
- Integration guide: https://printleteg.com/developers/api-integration
- OpenAPI 3.1 contract: https://printleteg.com/api/developer-docs/api-integration/openapi
- Interactive API reference: https://printleteg.com/developers/api-integration/reference
- Credential management: https://printleteg.com/dashboard/settings/integrations/api
- API base URL: https://printleteg.com/api/integrations/v1
Before writing code, fetch and read the integration guide and OpenAPI contract. Treat the OpenAPI document as the source of truth for request and response fields. If either URL cannot be fetched, stop and report the exact URL and HTTP error instead of guessing the contract.
SETUP
1. Ask me to create a test installation and obtain a one-time test key from the credential-management URL.
2. Expect PRINTLET_API_KEY in the server-side environment. Never request that I paste the secret into chat and never expose it to a browser, mobile app, repository, logs, error reports, or generated code.
3. Use this server-side configuration:
PRINTLET_API_BASE_URL=https://printleteg.com/api/integrations/v1
PRINTLET_API_KEY=<read from server environment>
PRINTLET_WEBHOOK_SECRET=<read from server environment>
4. Send Authorization: Bearer $PRINTLET_API_KEY on every API request.
5. Start with prnt_test_ credentials. Do not use live credentials until all acceptance tests pass.
IMPLEMENTATION SEQUENCE
1. Build a typed API client from the OpenAPI contract with timeouts and redacted structured errors.
2. Discover countries, products, product details, variants, print areas, techniques, placement presets, prices, and shipping methods. Never hard-code or derive Printlet IDs; persist them as opaque strings.
3. Upload the untouched original artwork using a direct upload intent or remote HTTPS ingestion. Wait for asynchronous validation to complete.
4. Let the user select only catalog-provided placement presets. The artwork fills the chosen print area; do not submit arbitrary coordinates, layers, scaling, or rotation in v1.
5. Create and poll a preview before checkout so the customer can see Printlet's configurator-equivalent mockup.
6. Create a quote using the recipient address and selected items, then create the order from validated resources.
7. Send a new UUID Idempotency-Key on every POST. Persist the key with the local operation and reuse that same key when retrying the same operation after a timeout.
8. Persist Printlet resource IDs and statuses. Treat pending resources as asynchronous until a webhook or GET response reaches a terminal state.
9. Implement webhook receipt using the exact raw request bytes. Verify Printlet's HMAC signature in constant time, reject timestamps older than five minutes, deduplicate event IDs, persist before returning 2xx, and make processing idempotent.
10. Reconcile missed events through GET /events and process catalog-change events before relying on changed catalog entities.
BUSINESS RULES
- The merchant owns the end-customer relationship, charges any retail amount, and controls customer-facing tax and shipping rules.
- Do not collect Printlet's fulfillment payment during customer checkout. The merchant pays Printlet from wallet balance or manually by card in the Printlet dashboard.
- Card-paid and COD customer orders can have separate automatic-wallet-fulfillment settings. Do not commit an unverified COD order unless the merchant's configuration explicitly allows it.
- Test and live credentials and data are isolated. A test key must never create live fulfillment side effects.
DELIVERABLES AND ACCEPTANCE TESTS
- Typed Printlet client isolated behind a small service interface.
- Server-only environment validation with secret redaction.
- Catalog sync/discovery, artwork upload and validation, preview, quote, order creation, order-status reconciliation, and verified webhook handling.
- Integration tests for invalid and revoked authentication, pagination, catalog discovery, artwork rejection, async polling, preview completion, quoting, idempotent order retries, webhook signature validation, stale/replayed events, test/live isolation, rate limits, and documented error responses.
- A short README naming the Printlet documentation and OpenAPI URLs above, required environment variables, local test commands, and the exact steps to switch from test to live safely.
Do not invent missing fields or behavior. Cite the relevant OpenAPI operationId when explaining each implemented API call.بيانات الاعتماد السرية برّه الموجّه. وكيل البرمجة بيقرأها من بيئة الخادم بس. نص الموجّه نفسه فضل بالإنجليزي عشان أدوات الكود تقدر تتبعه.