Minimal Tee$28
تطوير تطبيقات Shopify وإدراجها في متجر التطبيقات (الإمارات العربية المتحدة)
name = "[[APP_NAME]]" handle = "[[APP_HANDLE]]" client_id = "[[CLIENT_ID]]" application_url = "[[APP_URL]]" [auth] redirect_urls = [ "https://vistabylara.com/auth/callback", "https://vistabylara.com/api/auth" ] [access_scopes] scopes = "[[SCOPES]]" [app_proxy] url = "/" subpath = "/" prefix = "/" [[EMBEDDED_BLOCK]] [webhooks] api_version = "2025-01" [[GDPR_BLOCK]] [build] dev_store_url = "/" # Copy to .env and fill values you use SHOPIFY_APP_URL=[[APP_URL]] SHOPIFY_CLIENT_ID=[[CLIENT_ID]] SHOPIFY_SCOPES=[[SCOPES]] SHOPIFY_STORE_DOMAIN=/ COMPANY_NAME=[[COMPANY]] SUPPORT_EMAIL=[[SUPPORT_EMAIL]] PRIVACY_URL=[[PRIVACY_URL]] SUPPORT_URL=[[SUPPORT_URL]] # Optional DB DATABASE_URL=/ { "name": "vista-app", "private": true, "scripts": { "dev": "node server.js", "start": "NODE_ENV=production node server.js" }, "dependencies": { "koa": "^2.15.0", "koa-router": "^12.0.0", "isomorphic-fetch": "^3.0.0" } } const Koa=require("koa"); const Router=require("koa-router"); const app=new Koa(); const r=new Router(); /* CSP for embedded apps */ app.use(async function(ctx,next){ ctx.set("X-Content-Security-Policy","frame-ancestors https://admin.shopify.com https://*.myshopify.com;"); ctx.set("Content-Security-Policy","frame-ancestors https://admin.shopify.com https://*.myshopify.com;"); return next(); }); /* Health */ r.get("/health",function(ctx){ ctx.body={ ok:true, appUrl:"[[APP_URL]]" }; }); /* Example endpoint */ r.get("/api/products",function(ctx){ ctx.status=501; ctx.body={ ok:false, message:"Wire OAuth then call Admin API here." }; }); /* GDPR stubs (optional) */ [[GDPR_ROUTES]] /* Root */ r.get("/",function(ctx){ ctx.type="text/html; charset=utf-8"; ctx.body="Vista App
Welcome! Install this app on your store, then open the embedded admin page.
كيفية إنشاء تطبيق Shopify الخاص بك
اتبع كل خطوة. قابل للطي، نظيف، وسهل المراجعة.
0 of 19 steps read
1
المسار الذهبي - افتح الصفحة
افتح صفحة Shopify التي تحتوي على هذا القسم. تُظهر واجهة المُنشئ علامات تبويب على اليسار ومعاينة هاتف على اليمين.
المسار الذهبي - افتح الصفحة
افتح صفحة Shopify التي تحتوي على هذا القسم. تُظهر واجهة المُنشئ علامات تبويب على اليسار ومعاينة هاتف على اليمين.
افتح صفحة Shopify التي تحتوي على هذا القسم. تُظهر واجهة المُنشئ علامات تبويب على اليسار ومعاينة هاتف على اليمين.
2
علامة التبويب "التصميم" - الأساسيات
عنوان التطبيق ≤ 25 حرفًا (على سبيل المثال، Vista Commerce).
الغرض ≤ 2 سطر.
نص CTA (على سبيل المثال، Connect store).
العلامة التجارية سداسية الشكل: #0D384D؛ سداسية الشكل المميزة: تنسيق مكون من ست...
علامة التبويب "التصميم" - الأساسيات
عنوان التطبيق ≤ 25 حرفًا (على سبيل المثال، Vista Commerce). الغرض ≤ 2 سطر. نص CTA (على سبيل المثال، Connect store). العلامة التجارية سداسية الشكل: #0D384D؛ سداسية الشكل المميزة: تنسيق مكون من ست...
- عنوان التطبيق ≤ 25 حرفًا (على سبيل المثال، Vista Commerce).
- الغرض ≤ 2 سطر.
- نص CTA (على سبيل المثال، Connect store).
- العلامة التجارية سداسية الشكل: #0D384D؛ سداسية الشكل المميزة: تنسيق مكون من ستة أرقام.
- اختياري: إعداد مسبق للمخطط (التجارة / المحتوى / الولاء).
3
علامة التبويب IA — الهيكل
قم بتسمية علامات التبويب لتناسب منتجك (على سبيل المثال، الصفحة الرئيسية، الكتالوج/المكتبة، الجدول، الرؤى، الإعدادات).
قم بتمكين الكتل التي تخطط لشحنها في v1 (النصائح، وشبكة المنتج، والمجدول، وبلاط...
علامة التبويب IA — الهيكل
قم بتسمية علامات التبويب لتناسب منتجك (على سبيل المثال، الصفحة الرئيسية، الكتالوج/المكتبة، الجدول، الرؤى، الإعدادات). قم بتمكين الكتل التي تخطط لشحنها في v1 (النصائح، وشبكة المنتج، والمجدول، وبلاط...
- قم بتسمية علامات التبويب لتناسب منتجك (على سبيل المثال، الصفحة الرئيسية، الكتالوج/المكتبة، الجدول، الرؤى، الإعدادات).
- قم بتمكين الكتل التي تخطط لشحنها في v1 (النصائح، وشبكة المنتج، والمجدول، وبلاطات مؤشرات الأداء الرئيسية، والبطاقة الفارغة).
4
علامة تبويب Shopify — العناصر الأساسية
الصق معرف العميل من شركاء Shopify (مطلوب).
حدد نطاقًا واحدًا ≥ (الحد الأدنى: قراءة المنتجات؛ إضافة كتابة المنتجات إذا قمت بالتحور).
ملاحظة: يتم قفل عنوان URL للتطبيق وعمليات إعادة التوجيه على vis...
علامة تبويب Shopify — العناصر الأساسية
الصق معرف العميل من شركاء Shopify (مطلوب). حدد نطاقًا واحدًا ≥ (الحد الأدنى: قراءة المنتجات؛ إضافة كتابة المنتجات إذا قمت بالتحور). ملاحظة: يتم قفل عنوان URL للتطبيق وعمليات إعادة التوجيه على vis...
- الصق معرف العميل من شركاء Shopify (مطلوب).
- حدد نطاقًا واحدًا ≥ (الحد الأدنى: قراءة المنتجات؛ إضافة كتابة المنتجات إذا قمت بالتحور).
- ملاحظة: يتم قفل عنوان URL للتطبيق وعمليات إعادة التوجيه على vistabylara.com.
5
علامة التبويب "الإعدادات" - قائمة البيانات
الشركة: Vista by Lara.
البريد الإلكتروني للدعم: support@vistabylara.com.
رابط الخصوصية: https://vistabylara.com/privacy.
رابط الدعم: https://vistabylara.com/support.
قم بالتبديل بين Embedded وG...
علامة التبويب "الإعدادات" - قائمة البيانات
الشركة: Vista by Lara. البريد الإلكتروني للدعم: support@vistabylara.com. رابط الخصوصية: https://vistabylara.com/privacy. رابط الدعم: https://vistabylara.com/support. قم بالتبديل بين Embedded وG...
- الشركة: Vista by Lara.
- البريد الإلكتروني للدعم: support@vistabylara.com.
- رابط الخصوصية: https://vistabylara.com/privacy.
- رابط الدعم: https://vistabylara.com/support.
- قم بالتبديل بين Embedded وGDPR إذا لزم الأمر.
6
إنشاء علامة تبويب — إنشاء ملفات
افتح نافذة المعاينة وراجع كل ملف.
حدد إنشاء الملفات للتنزيل.
اختياري: إنشاء ZIP (خادم) لتلقي رابط ZIP.
إنشاء علامة تبويب — إنشاء ملفات
افتح نافذة المعاينة وراجع كل ملف. حدد إنشاء الملفات للتنزيل. اختياري: إنشاء ZIP (خادم) لتلقي رابط ZIP.
- افتح نافذة المعاينة وراجع كل ملف.
- حدد إنشاء الملفات للتنزيل.
- اختياري: إنشاء ZIP (خادم) لتلقي رابط ZIP.
7
ما يفعله كل علامة تبويب — التصميم
إعدادات مسبقة للمخططات التجارية/المحتوى/الولاء.
التحقق من الصحة: العنوان ≤ 25، الغرض القصير، الدعوة إلى اتخاذ إجراء مطلوبة، الألوان السداسية.
الملف الشخصي: المبتدئ (الحد الأدنى من Koa) أو الإنت...
ما يفعله كل علامة تبويب — التصميم
إعدادات مسبقة للمخططات التجارية/المحتوى/الولاء. التحقق من الصحة: العنوان ≤ 25، الغرض القصير، الدعوة إلى اتخاذ إجراء مطلوبة، الألوان السداسية. الملف الشخصي: المبتدئ (الحد الأدنى من Koa) أو الإنت...
- إعدادات مسبقة للمخططات التجارية/المحتوى/الولاء.
- التحقق من الصحة: العنوان ≤ 25، الغرض القصير، الدعوة إلى اتخاذ إجراء مطلوبة، الألوان السداسية.
- الملف الشخصي: المبتدئ (الحد الأدنى من Koa) أو الإنتاج (أجزاء جاهزة لـ OAuth).
- معاينة مباشرة لخريطة العنوان/الغرض/CTA/النقاط البارزة/اللوحة.
8
مخرجات الملفات والتعيين الدقيق
يقوم المنشئ بإنشاء ملفات من علامات <template> ويستبدل العناصر النائبة استنادًا إلى مدخلاتك.
[[APP_NAME]] → التصميم → عنوان التطبيق (على سبيل المثال، Vista Commerce)
[[APP_HANDLE]] → تلقائي...
مخرجات الملفات والتعيين الدقيق
يقوم المنشئ بإنشاء ملفات من علامات <template> ويستبدل العناصر النائبة استنادًا إلى مدخلاتك. [[APP_NAME]] → التصميم → عنوان التطبيق (على سبيل المثال، Vista Commerce) [[APP_HANDLE]] → تلقائي...
يقوم المنشئ بإنشاء ملفات من علامات <template> ويستبدل العناصر النائبة استنادًا إلى مدخلاتك.
- [[APP_NAME]] → التصميم → عنوان التطبيق (على سبيل المثال، Vista Commerce)
- [[APP_HANDLE]] → تلقائي من العنوان (كباب) (على سبيل المثال، vista-commerce)
- [[CLIENT_ID]] → Shopify → معرف العميل
- [[APP_URL]] → مقفل → https://vistabylara.com/
- [[النطاقات]] → Shopify → النطاقات (على سبيل المثال، read_products، write_products)
- [[الشركة]] → الإعدادات → الشركة (على سبيل المثال، Vista by Lara)
- [[SUPPORT_EMAIL]] → الإعدادات → بريد الدعم الإلكتروني (على سبيل المثال، support@vistabylara.com)
- [[PRIVACY_URL]] → الإعدادات → عنوان URL للخصوصية (https)
- [[SUPPORT_URL]] → الإعدادات → عنوان URL للدعم (https)
- [[الغرض]] → التصميم → الغرض
- [[أبرز النقاط]] → التصميم → أبرز النقاط
- [[EMBEDDED_BLOCK]] → الإعدادات → مضمن (على سبيل المثال، [embedded]\nenabled = true أو فارغ)
- [[GDPR_BLOCK]] → الإعدادات → GDPR (اشتراكات webhook أو فارغة)
- [[GDPR_ROUTES]] → الإعدادات → GDPR (يضيف مسارات Koa أو فارغًا)
9
الملفات المنتجة دائما
shopify.app.toml (مع [auth]، وعناوين إعادة التوجيه، ونطاقات الوصول، و[embedded] اختياري، وGDPR اختياري)
.env.مثال
package.json (بداية Koa)
server.js (خط الأساس Koa + CSP + /health + عينة /api/p...
الملفات المنتجة دائما
shopify.app.toml (مع [auth]، وعناوين إعادة التوجيه، ونطاقات الوصول، و[embedded] اختياري، وGDPR اختياري) .env.مثال package.json (بداية Koa) server.js (خط الأساس Koa + CSP + /health + عينة /api/p...
- shopify.app.toml (مع [auth]، وعناوين إعادة التوجيه، ونطاقات الوصول، و[embedded] اختياري، وGDPR اختياري)
- .env.مثال
- package.json (بداية Koa)
- server.js (خط الأساس Koa + CSP + /health + عينة /api/products + مسارات GDPR الاختيارية)
- ملف README-commands.txt (أوامر التطوير + مكان التسجيل في الشركاء)
- الخصوصية .md، الدعم.md ، القائمة.md
إضافي عندما يكون الملف الشخصي = الإنتاج : shopify.js (عناصر نائبة لواجهة برمجة التطبيقات)، وauth.js (عناصر نائبة لمسار OAuth)، وsession.js (عناصر نائبة لمخزن الجلسة).
10
قواعد التحقق (التوقفات الصارمة)
العنوان فارغ أو أطول من 25 حرفًا
معرف العميل فارغ
قائمة النطاقات فارغة
العلامة التجارية/اللهجة ليست مكونة من 6 أرقام سداسية (على سبيل المثال، #0D384D)
بريد الدعم موجود ولكن تنسيقه غير صالح
عنو...
قواعد التحقق (التوقفات الصارمة)
العنوان فارغ أو أطول من 25 حرفًا معرف العميل فارغ قائمة النطاقات فارغة العلامة التجارية/اللهجة ليست مكونة من 6 أرقام سداسية (على سبيل المثال، #0D384D) بريد الدعم موجود ولكن تنسيقه غير صالح عنو...
- العنوان فارغ أو أطول من 25 حرفًا
- معرف العميل فارغ
- قائمة النطاقات فارغة
- العلامة التجارية/اللهجة ليست مكونة من 6 أرقام سداسية (على سبيل المثال، #0D384D)
- بريد الدعم موجود ولكن تنسيقه غير صالح
- عنوان URL للخصوصية/الدعم موجود ولكنه غير متوفر عبر HTTPS
في حال فشل أي منها، سيتم رفضها من خلال المعاينة/الإنشاء/الضغط. أصلحها، ثم أعد المحاولة.
11
الحفظ التلقائي والاستعادة المحلية
كل تغيير في الإدخال يكتب JSON إلى localStorage تحت مفتاح لهذا القسم.
لإعادة ضبط المصنع، افتح وحدة التحكم وقم بتشغيل: localStorage.removeItem('vbl-app-builder-<YOUR_SECTION_ID>') الموقع.إعادة...
الحفظ التلقائي والاستعادة المحلية
كل تغيير في الإدخال يكتب JSON إلى localStorage تحت مفتاح لهذا القسم. لإعادة ضبط المصنع، افتح وحدة التحكم وقم بتشغيل: localStorage.removeItem('vbl-app-builder-<YOUR_SECTION_ID>') الموقع.إعادة...
كل تغيير في الإدخال يكتب JSON إلى localStorage تحت مفتاح لهذا القسم.
لإعادة ضبط المصنع، افتح وحدة التحكم وقم بتشغيل:
localStorage.removeItem('vbl-app-builder-<YOUR_SECTION_ID>')
الموقع.إعادة التحميل()
12
أوامر التطوير (Windows PowerShell)
من مجلد التطبيق الخاص بك npm i $env:SHOPIFY_FLAG_STORE="your-store.myshopify.com" npm تشغيل dev
ما يفعله هذا : تثبيت deps من package.json، وبدء server.js (Koa) على المنفذ 3000، والصحة في http://lo...
أوامر التطوير (Windows PowerShell)
من مجلد التطبيق الخاص بك npm i $env:SHOPIFY_FLAG_STORE="your-store.myshopify.com" npm تشغيل dev ما يفعله هذا : تثبيت deps من package.json، وبدء server.js (Koa) على المنفذ 3000، والصحة في http://lo...
من مجلد التطبيق الخاص بك
npm i
$env:SHOPIFY_FLAG_STORE="your-store.myshopify.com"
npm تشغيل dev
ما يفعله هذا : تثبيت deps من package.json، وبدء server.js (Koa) على المنفذ 3000، والصحة في http://localhost:3000/health
13
أوامر التطوير (macOS / Linux)
من مجلد التطبيق الخاص بك npm i تصدير SHOPIFY_FLAG_STORE="your-store.myshopify.com" npm تشغيل dev
وظيفة هذا : تثبيت التبعيات، وبدء تشغيل Koa (القيمة الافتراضية 3000). الحالة: http://localhost:3000/...
أوامر التطوير (macOS / Linux)
من مجلد التطبيق الخاص بك npm i تصدير SHOPIFY_FLAG_STORE="your-store.myshopify.com" npm تشغيل dev وظيفة هذا : تثبيت التبعيات، وبدء تشغيل Koa (القيمة الافتراضية 3000). الحالة: http://localhost:3000/...
من مجلد التطبيق الخاص بك
npm i
تصدير SHOPIFY_FLAG_STORE="your-store.myshopify.com"
npm تشغيل dev
وظيفة هذا : تثبيت التبعيات، وبدء تشغيل Koa (القيمة الافتراضية 3000). الحالة: http://localhost:3000/health
14
استخدام خادم ZIP (تدفق اختياري)
إنشاء → إنشاء ZIP (الخادم) يرسل POST ويعيد رابط zip في حالة النجاح.
تتضمن الحمولة : app_name، handle، client_id، app_url (https://vistabylara.com/)، عمليات إعادة التوجيه (https://vistabylara.com/a...
استخدام خادم ZIP (تدفق اختياري)
إنشاء → إنشاء ZIP (الخادم) يرسل POST ويعيد رابط zip في حالة النجاح. تتضمن الحمولة : app_name، handle، client_id، app_url (https://vistabylara.com/)، عمليات إعادة التوجيه (https://vistabylara.com/a...
إنشاء → إنشاء ZIP (الخادم) يرسل POST ويعيد رابط zip في حالة النجاح.
تتضمن الحمولة : app_name، handle، client_id، app_url (https://vistabylara.com/)، عمليات إعادة التوجيه (https://vistabylara.com/auth/callback و https://vistabylara.com/api/auth)، النطاقات (read_products، write_products)، القالب (koa-minimal | koa-prod)، المصدر (vbl-app-builder-pro-ultra).
في حالة عدم استخدام 200، يظهر خطأ واضح في المربع الأزرق؛ تحقق من سجلات الشبكة والخادم.
15
بوابة الجودة (قبل التوليد)
التصميم : العنوان ≤ 25، مجموعة CTA، الغرض ≤ 2 سطر، يسلط الضوء على 3-6 عناصر؛ الرمز السداسي صالح؛ معاينة التباين جيدة في الضوء/الظلام.
IA : علامات التبويب تطابق المنتج؛ يتم تمكين الكتل الضرورية فقط...
بوابة الجودة (قبل التوليد)
التصميم : العنوان ≤ 25، مجموعة CTA، الغرض ≤ 2 سطر، يسلط الضوء على 3-6 عناصر؛ الرمز السداسي صالح؛ معاينة التباين جيدة في الضوء/الظلام. IA : علامات التبويب تطابق المنتج؛ يتم تمكين الكتل الضرورية فقط...
- التصميم : العنوان ≤ 25، مجموعة CTA، الغرض ≤ 2 سطر، يسلط الضوء على 3-6 عناصر؛ الرمز السداسي صالح؛ معاينة التباين جيدة في الضوء/الظلام.
- IA : علامات التبويب تطابق المنتج؛ يتم تمكين الكتل الضرورية فقط.
- Shopify : معرف العميل موجود؛ النطاقات متعمدة (الحد الأدنى لقراءة المنتجات).
- الإعدادات : بريد إلكتروني للدعم يمكن الوصول إليه؛ عناوين URL للخصوصية/الدعم https؛ حدد Embedded + GDPR.
- إنشاء : تم فحص نموذج المعاينة، وخاصة shopify.app.toml وserver.js.
16
مصفوفة استكشاف الأخطاء وإصلاحها
"يجب أن يكون عنوان التطبيق ≤ 25 حرفًا." → اختصار.
"مطلوب معرف العميل." → لصق من الشركاء.
"حدد نطاقًا واحدًا على الأقل." → اختر read_products على الأقل.
"يجب أن يكون لون العلامة التجارية/اللون ال...
مصفوفة استكشاف الأخطاء وإصلاحها
"يجب أن يكون عنوان التطبيق ≤ 25 حرفًا." → اختصار. "مطلوب معرف العميل." → لصق من الشركاء. "حدد نطاقًا واحدًا على الأقل." → اختر read_products على الأقل. "يجب أن يكون لون العلامة التجارية/اللون ال...
- "يجب أن يكون عنوان التطبيق ≤ 25 حرفًا." → اختصار.
- "مطلوب معرف العميل." → لصق من الشركاء.
- "حدد نطاقًا واحدًا على الأقل." → اختر read_products على الأقل.
- "يجب أن يكون لون العلامة التجارية/اللون المميز عبارة عن رمز سداسي عشري مكون من 6 أرقام." → استخدم #RRGGBB.
- إنشاء ملف ZIP يظهر 4xx/5xx → فحص الشبكة؛ التحقق من سجلات الخادم.
- لا يتم التنزيل بعد إنشاء → استخدم التنزيل لكل ملف في نافذة المعاينة أو جرب متصفحًا آخر.
- معاينة الهاتف فارغة → تمكين النصائح أو شبكة المنتج في IA.
- مسارات GDPR مفقودة → قم بتبديل GDPR في الإعدادات.
17
التصلب الإنتاجي (الملف = الإنتاج)
احتفظ بـ shopify.js وauth.js وsession.js في المستودع.
قم بتوصيل OAuth في auth.js؛ قم بتخزين الجلسات في session.js. استبدل /api/products demo بواجهة برمجة التطبيقات الإدارية الحقيقية باستخدام shopi...
التصلب الإنتاجي (الملف = الإنتاج)
احتفظ بـ shopify.js وauth.js وsession.js في المستودع. قم بتوصيل OAuth في auth.js؛ قم بتخزين الجلسات في session.js. استبدل /api/products demo بواجهة برمجة التطبيقات الإدارية الحقيقية باستخدام shopi...
- احتفظ بـ shopify.js وauth.js وsession.js في المستودع.
- قم بتوصيل OAuth في auth.js؛ قم بتخزين الجلسات في session.js.
- استبدل /api/products demo بواجهة برمجة التطبيقات الإدارية الحقيقية باستخدام shopify.js.
- أضف حدًا للسرعة، وتطهير الإدخال؛ وقم بتشديد CSP إذا كنت ترغب في تضمين نصوص مخصصة.
نصائح للمستخدمين المحترفين : الإعدادات المسبقة أيديولوجية؛ مفاتيح الأسهم تتناوب بين علامات التبويب؛ مفاتيح تبديل السمة تعرض معاينة فاتح/داكن.
18
تطبيق Minimal First (لمراجعة Shopify)
النطاقات: قراءة المنتجات فقط (توسيع لاحقًا).
مُضمن: مُمكّن.
GDPR: تفعيل القوالب الجاهزة مبكرًا.
نسخة القائمة: عنوان يتراوح بين 45 و60 حرفًا؛ وصف قصير يتراوح بين 160 حرفًا.
تأكد من وجود صفحات ال...
تطبيق Minimal First (لمراجعة Shopify)
النطاقات: قراءة المنتجات فقط (توسيع لاحقًا). مُضمن: مُمكّن. GDPR: تفعيل القوالب الجاهزة مبكرًا. نسخة القائمة: عنوان يتراوح بين 45 و60 حرفًا؛ وصف قصير يتراوح بين 160 حرفًا. تأكد من وجود صفحات ال...
- النطاقات: قراءة المنتجات فقط (توسيع لاحقًا).
- مُضمن: مُمكّن.
- GDPR: تفعيل القوالب الجاهزة مبكرًا.
- نسخة القائمة: عنوان يتراوح بين 45 و60 حرفًا؛ وصف قصير يتراوح بين 160 حرفًا.
- تأكد من وجود صفحات الدعم والخصوصية المباشرة على vistabylara.com.
19
قائمة مراجعة دقيقة
العنوان ≤ 25؛ الغرض/الدعوة إلى اتخاذ إجراء/أبرز النقاط موجودة.
العلامة التجارية واللهجة صالحة؛ قابلة للقراءة في الضوء/الظلام.
تم مسح علامات تبويب IA؛ وتم تمكين الكتل الضرورية فقط.
تم تعيين معرف ...
قائمة مراجعة دقيقة
العنوان ≤ 25؛ الغرض/الدعوة إلى اتخاذ إجراء/أبرز النقاط موجودة. العلامة التجارية واللهجة صالحة؛ قابلة للقراءة في الضوء/الظلام. تم مسح علامات تبويب IA؛ وتم تمكين الكتل الضرورية فقط. تم تعيين معرف ...
- العنوان ≤ 25؛ الغرض/الدعوة إلى اتخاذ إجراء/أبرز النقاط موجودة.
- العلامة التجارية واللهجة صالحة؛ قابلة للقراءة في الضوء/الظلام.
- تم مسح علامات تبويب IA؛ وتم تمكين الكتل الضرورية فقط.
- تم تعيين معرف العميل؛ ≥ تم اختيار نطاق واحد.
- الشركة، بريد إلكتروني للدعم، عناوين URL للخصوصية/الدعم صالحة وhttps.
- تم التحقق من المعاينة؛ TOML & server.js صحيحان.
- يتم فك ضغط ZIP (العميل/الخادم) بشكل نظيف.
- npm i → npm run dev works; /health returns {ok: true}.
Process — How we ship
- Scope & UX — define value, data flows, and states.
- Build — Polaris screens, OAuth, billing, webhooks, logs.
- Hygiene — uninstall behavior, privacy/support, CSP.
- Review pack — permission rationale, reviewer notes.
- Submit & iterate — respond quickly to feedback.
Packages — Pricing
Starter
AED 9,500–18,000
- Polaris UI (core flows)
- OAuth and uninstall hygiene
- Privacy and support pages
- Review submission
Pro
AED 18,000–38,000
- All Starter plus billing
- Webhooks and logs
- Analytics events (GA4/GTM)
- Reviewer notes pack
Review-Rescue
Custom
- Permission trim and data map
- Uninstall and CSP fixes
- Resubmission support
- Response drafts
FAQs — App Store Listing
How long to get listed?
Typical first approval is 7 to 21 days if permissions, privacy, and uninstall or webhooks are correct.
Do you support embedded Polaris UI?
Yes. We follow Polaris spacing and typography and validate in the Admin iframe with correct CSP and allowed origins.
Can you handle OAuth, billing, and GDPR?
Yes. We wire OAuth, trial or billing flows, GDPR endpoints, and document uninstall hygiene for reviewers.
Next steps
E-commerce • AI • Content
AI Product Visuals & Virtual Models — UAE
Generate consistent, brand-safe photos and short videos from your SKUs. EN/AR overlays, model swaps, catalog-ready packs.
Deliverables
- 20–60 images (SKU packs, e-comm clean)
- 6–12 short videos/reels (9:16/1:1)
- Virtual model swaps (S/M/L skin-tones)
- Arabic/English text lockups
- Usage license for ads & marketplace
Quality & safety
- Brand guardrails (colors, fonts, poses)
- No uncanny faces; manual pass on finals
- Skin-tone diversity, modesty options
- Background library (retail, studio, GCC)
- File spec: WebP/JPG + ProRes/MP4
Fast
Workflow
- Day 0: 5 sample images from 1 SKU
- Day 1–2: Look approval + batch gen
- Day 3–4: Video cuts & exports
- From AED 1,900 • credits or per-SKU