Gold Bullion Live Pricing — a Shopify app by Qode Bites

Privacy Policy — Gold Bullion Live Pricing

Last updated:

Draft for legal review. This text has not yet been reviewed by a lawyer and may change before the app is published.

1. Who we are

Gold Bullion Live Pricing (“the app”) is a Shopify app published by Qode Bites (“we”, “us”). It reprices the variants of a jewellery store from gold rates supplied by Gold Bullion (goldbullioneg.com). This policy explains what the app stores about the Shopify stores that install it (“you”, the merchant). Contact: Qadi@qodebites.com. Postal address: [OWNER: publisher's legal name and postal address].

[OWNER: …] marks a point the owner must decide before publication.

2. What the app stores

  • Your store's identity: its myshopify.com domain, its currency and that currency's decimal places, the name of your Shopify plan, whether the app is installed, and the dates of install and uninstall.
  • Access to your store: the offline access token Shopify issues to the app (with its refresh token, expiry and granted scopes), used only by our server to call the Shopify Admin API. The app uses offline access only, so no staff member's name or e-mail address is stored.
  • Your settings: market (country), markup, making charge, rounding, change threshold, safety-rail limits, kill switch, default karat, and your collection-to-karat mappings (collection ID and title).
  • Catalogue data needed to price: product and variant IDs, the gold weight and karat the app read from your gbgold metafields, the last price the app wrote, the price last seen on Shopify, any price held back by a safety rail, a hash of the pricing inputs, and the status and reason of each variant.
  • Original prices: the price and compare-at price of each variant captured before the app's first write (the snapshot), so they can be shown in the before-and-after preview and restored.
  • Results of catalogue tasks you start: the before-and-after preview (including product titles and prices) and the shipping-weight import suggestions (product and variant titles, shipping weight). Only the newest three of each kind are kept.
  • Operating records: sync runs (trigger, counts, reasons, errors), daily usage counters (variants under management, writes, safety rails tripped, variants skipped), the daily usage charges for Pro overage (day, amount, Shopify usage-record ID), bulk-operation records, Shopify API rate-limit samples, and webhook receipts (webhook ID, topic, store domain).
  • Billing state: your subscription ID, plan, usage line-item ID, trial dates and when the subscription was last checked.

The app also reads and writes data inside your Shopify store: it reads your products, variants and collections and their gbgold.* metafields, and it writes variant prices, the gbgold.last_priced_at metafield, the gbgold metafield definitions themselves (created once when you install), the gbgold.gold_weight_g metafield when you confirm a weight import, and compare-at prices when you restore a snapshot. That data stays in your store and is governed by Shopify's terms.

3. What the app does not collect

  • No customer data: no customer names, e-mail addresses, phone numbers or addresses.
  • No orders and no payment data. The only access scope the app requests is write_products.
  • No tracking of your storefront visitors, no analytics, no advertising. These public pages set no cookies.
  • Some Shopify webhooks (for example app/uninstalled and shop/update) include your store's contact details. The app reads only what it needs from them (the store domain, currency and plan name) and does not store the rest.

Shopify's mandatory customers/data_request and customers/redact requests are answered and completed: the app holds no customer data to report or delete.

4. Why the app stores it

  • To compute your variant prices from the gold rate, your settings and your metafields, and to write them to your store.
  • To protect your prices: to apply the safety rails, show the before-and-after preview, list what needs your attention, and restore your original prices.
  • To show the health of the app in your admin (last sync, priced, skipped and held variants and why).
  • To bill your subscription through Shopify and count variants under management, the billing unit.
  • To process each Shopify webhook once, and to meet Shopify's privacy-compliance requirements.

5. Where it is stored

All of it is stored in a PostgreSQL database on a single server that we operate on Amazon Web Services (Amazon Lightsail) in the AWS eu-central-1 region (Frankfurt, Germany). The database accepts connections only from the server itself; the app is reached over HTTPS. If your store is outside the European Union, this means your store data is processed in Germany.

Gold rates are fetched by our server from Gold Bullion (goldbullioneg.com). Those requests carry no information about your store: merchants never call Gold Bullion, and Gold Bullion receives no merchant data from the app.

6. Sub-processors

Sub-processorWhat for
Amazon Web Services (Amazon Lightsail, eu-central-1, Frankfurt)Hosting of the app server and its database
ShopifyThe platform the app runs in: authentication, Admin API, webhooks and billing. Its CDN (cdn.shopify.com) also serves the fonts and Polaris assets used by the app’s admin pages
[OWNER: e-mail provider that hosts the support mailbox]Receiving and storing the support e-mail you send us

Gold Bullion (goldbullioneg.com) supplies the gold rates and receives no merchant data, so it is not a sub-processor of your data.

7. How long it is kept

DataKept until
Everything listed in section 2While the app is installed
Access tokens (sessions)Deleted as soon as Shopify tells the app it was uninstalled (app/uninstalled); deleted again at shop/redact
Store record, settings, mappings, price ledger, sync runs, usage counters, usage charges, bulk-operation records, task results, rate references, original-price snapshotKept after uninstall so that a reinstall within 48 hours can still restore prices; deleted when Shopify sends shop/redact, 48 hours after the uninstall (nothing is deleted if you reinstalled in the meantime)
Webhook receipts30 days, and at shop/redact for your store
Background-job records that contain your store domainDeleted automatically by the job queue: 7 days after the job finished, or after at most 14 days for a job that never ran (pg-boss defaults; the app sets no other retention)
Server logs (store domain, job outcomes)[OWNER: log retention period on the server]
Database backups[OWNER: whether backups are enabled and how long they are kept]
Gold ratesShared market data, contains no store data; kept

Restoring your original prices needs access to your store, so it must be done before you uninstall (Preview & approval → Restore original prices).

8. Your rights

You can see and change your settings and mappings in the app at any time. You can ask us for a copy of the data the app holds about your store, for a correction, or for its deletion before the automatic deletion described above, by writing to Qadi@qodebites.com from the store owner's e-mail address. We answer within [OWNER: response time, e.g. 30 days].

Depending on where you are, data-protection laws (for example the EU/UK GDPR, Egypt's Personal Data Protection Law No. 151 of 2020, or the personal data protection laws of Saudi Arabia and the United Arab Emirates) may give you further rights, including the right to complain to a supervisory authority. [OWNER: legal review of applicable laws and of the controller/processor roles.]

9. Security

  • Traffic to the app is encrypted with HTTPS.
  • Every webhook is verified with Shopify's HMAC signature before it is processed.
  • The database listens only on the server itself; its password and the app's secrets are kept in a configuration file readable only by the app's user.
  • Shopify access tokens expire and are refreshed; they are deleted on uninstall.

10. Changes and contact

We update this page when the app's data handling changes and change the date at the top. Questions or requests: Qadi@qodebites.com.

سياسة الخصوصية — Gold Bullion Live Pricing

آخر تحديث:

مسودة بانتظار المراجعة القانونية. لم يراجع محامٍ هذا النص بعد، وقد يتغير قبل نشر التطبيق.

في حال وجود اختلاف بين النصين العربي والإنجليزي يُعتمد النص الإنجليزي. [OWNER: تأكيد النص المعتمد]

1. من نحن

تطبيق Gold Bullion Live Pricing („التطبيق“) هو تطبيق Shopify تنشره شركة Qode Bites („نحن“). يعيد التطبيق تسعير متغيّرات منتجات متاجر المجوهرات اعتماداً على أسعار الذهب التي تزوّدها جولد بيليون (goldbullioneg.com). توضح هذه السياسة ما يخزّنه التطبيق عن متاجر Shopify التي تثبّته („أنت“، التاجر). للتواصل: Qadi@qodebites.com. العنوان البريدي: [OWNER: الاسم القانوني للناشر وعنوانه البريدي].

عبارة [OWNER: …] تشير إلى نقطة يجب أن يحسمها المالك قبل النشر.

2. ما الذي يخزّنه التطبيق

  • هوية متجرك: نطاق myshopify.com الخاص به، وعملته وعدد خاناتها العشرية، واسم خطة Shopify، وحالة التثبيت، وتاريخا التثبيت وإلغاء التثبيت.
  • صلاحية الوصول إلى متجرك: رمز الوصول دون اتصال (offline access token) الذي يصدره Shopify للتطبيق (مع رمز التحديث وتاريخ انتهائه والصلاحيات الممنوحة)، ويستخدمه خادمنا فقط لاستدعاء واجهة Shopify Admin API. يستخدم التطبيق الوصول دون اتصال فقط، لذا لا يُخزَّن اسم أي موظف أو بريده الإلكتروني.
  • إعداداتك: السوق (الدولة)، والهامش، والمصنعية، والتقريب، وحد التغيير، وحدود ضوابط الأمان، ومفتاح الإيقاف الطارئ، والعيار الافتراضي، وربط المجموعات بالعيارات (معرّف المجموعة واسمها).
  • بيانات الكتالوج اللازمة للتسعير: معرّفات المنتجات والمتغيّرات، ووزن الذهب والعيار اللذان قرأهما التطبيق من حقول gbgold الوصفية، وآخر سعر كتبه التطبيق، وآخر سعر شوهد على Shopify، وأي سعر أوقفته ضوابط الأمان، وبصمة (hash) لمدخلات التسعير، وحالة كل متغيّر وسببها.
  • الأسعار الأصلية: سعر كل متغيّر وسعر المقارنة له كما التُقطا قبل أول كتابة للتطبيق (اللقطة)، لعرضهما في المعاينة قبل/بعد ولاستعادتهما.
  • نتائج مهام الكتالوج التي تطلبها: المعاينة قبل/بعد (بما فيها أسماء المنتجات والأسعار) واقتراحات استيراد وزن الشحن (أسماء المنتجات والمتغيّرات ووزن الشحن). ولا يُحتفظ إلا بأحدث ثلاث نتائج من كل نوع.
  • سجلات التشغيل: عمليات المزامنة (المُحفّز والأعداد والأسباب والأخطاء)، وعدّادات الاستخدام اليومية (المتغيّرات تحت الإدارة، وعمليات الكتابة، وضوابط الأمان التي تفعّلت، والمتغيّرات المتخطّاة)، ورسوم الاستخدام اليومية لزيادة خطة Pro (اليوم، المبلغ، معرّف سجل الاستخدام في Shopify)، وسجلات العمليات المجمّعة، وعيّنات حدود معدّل الطلبات في Shopify، وإيصالات الـ webhooks (المعرّف والموضوع ونطاق المتجر).
  • حالة الفوترة: معرّف اشتراكك وخطتك ومعرّف بند الاستخدام وتواريخ الفترة التجريبية وآخر تحقق من الاشتراك.

كما يقرأ التطبيق بيانات داخل متجرك على Shopify ويكتب فيها: فهو يقرأ منتجاتك ومتغيّراتها ومجموعاتك وحقول gbgold.* الوصفية، ويكتب أسعار المتغيّرات، والحقل gbgold.last_priced_at، وتعريفات حقول gbgold الوصفية نفسها (تُنشأ مرة واحدة عند التثبيت)، والحقل gbgold.gold_weight_g عند تأكيدك استيراد الأوزان، وأسعار المقارنة عند استعادتك نسخة محفوظة. تبقى هذه البيانات في متجرك وتخضع لشروط Shopify.

3. ما الذي لا يجمعه التطبيق

  • لا بيانات عملاء: لا أسماء عملاء ولا عناوين بريد إلكتروني ولا أرقام هواتف ولا عناوين.
  • لا طلبات ولا بيانات دفع. الصلاحية الوحيدة التي يطلبها التطبيق هي write_products.
  • لا تتبّع لزوار متجرك، ولا تحليلات، ولا إعلانات. وهذه الصفحات العامة لا تضع أي ملفات تعريف ارتباط (cookies).
  • بعض إشعارات Shopify (مثل app/uninstalled وshop/update) تتضمن بيانات الاتصال الخاصة بمتجرك. يقرأ التطبيق منها ما يحتاجه فقط (نطاق المتجر والعملة واسم الخطة) ولا يخزّن الباقي.

يُجاب على طلبي Shopify الإلزاميين customers/data_request وcustomers/redact ويُستكملان: فالتطبيق لا يحتفظ بأي بيانات عملاء ليبلغ عنها أو يحذفها.

4. لماذا يخزّنها التطبيق

  • لحساب أسعار متغيّراتك من سعر الذهب وإعداداتك وحقولك الوصفية، ولكتابتها في متجرك.
  • لحماية أسعارك: لتطبيق ضوابط الأمان، وعرض المعاينة قبل/بعد، وإظهار ما يحتاج إلى انتباهك، واستعادة أسعارك الأصلية.
  • لعرض حالة التطبيق في لوحة التحكم (آخر مزامنة، والمتغيّرات المسعّرة والمتخطّاة والموقوفة وأسباب ذلك).
  • لفوترة اشتراكك عبر Shopify وعدّ المتغيّرات تحت الإدارة، وهي وحدة الفوترة.
  • لمعالجة كل إشعار webhook من Shopify مرة واحدة فقط، وللوفاء بمتطلبات Shopify الخاصة بالخصوصية.

5. أين تُخزَّن

تُخزَّن كلها في قاعدة بيانات PostgreSQL على خادم واحد نشغّله لدى Amazon Web Services (خدمة Amazon Lightsail) في منطقة AWS eu-central-1 (فرانكفورت، ألمانيا). لا تقبل قاعدة البيانات اتصالات إلا من الخادم نفسه، ويُوصَل إلى التطبيق عبر HTTPS. إذا كان متجرك خارج الاتحاد الأوروبي فهذا يعني أن بيانات متجرك تُعالَج في ألمانيا.

يجلب خادمنا أسعار الذهب من جولد بيليون (goldbullioneg.com)، ولا تحمل هذه الطلبات أي معلومات عن متجرك: فالتجار لا يتصلون بجولد بيليون مطلقاً، ولا تتلقى جولد بيليون أي بيانات عن التجار من التطبيق.

6. المعالجون الفرعيون

المعالج الفرعيالغرض
Amazon Web Services (Amazon Lightsail، eu-central-1، فرانكفورت)استضافة خادم التطبيق وقاعدة بياناته
Shopifyالمنصة التي يعمل عليها التطبيق: المصادقة وواجهة Admin API والإشعارات والفوترة. كما تقدّم شبكتها (cdn.shopify.com) الخطوط وملفات Polaris المستخدمة في صفحات التطبيق
[OWNER: مزوّد البريد الإلكتروني الذي يستضيف صندوق الدعم]استلام رسائل الدعم التي ترسلها وحفظها

تزوّد جولد بيليون (goldbullioneg.com) أسعار الذهب ولا تتلقى أي بيانات عن التجار، لذا فهي ليست معالجاً فرعياً لبياناتك.

7. مدة الاحتفاظ

البياناتمدة الاحتفاظ
كل ما ورد في البند 2طوال فترة تثبيت التطبيق
رموز الوصول (الجلسات)تُحذف فور إبلاغ Shopify للتطبيق بإلغاء تثبيته (app/uninstalled)، وتُحذف مرة أخرى عند shop/redact
سجل المتجر والإعدادات والربط وسجل الأسعار وعمليات المزامنة وعدّادات الاستخدام ورسوم الاستخدام وسجلات العمليات المجمّعة ونتائج المهام ومراجع الأسعار ولقطة الأسعار الأصليةيُحتفظ بها بعد إلغاء التثبيت لتمكين استعادة الأسعار إذا أُعيد التثبيت خلال 48 ساعة، وتُحذف عندما يرسل Shopify طلب shop/redact بعد 48 ساعة من إلغاء التثبيت (ولا يُحذف شيء إذا أعدت التثبيت خلال ذلك)
إيصالات الـ webhooks30 يوماً، وتُحذف أيضاً عند shop/redact لمتجرك
سجلات المهام الخلفية التي تتضمن نطاق متجركتُحذف تلقائياً من طابور المهام بعد 7 أيام من انتهاء المهمة، أو بعد 14 يوماً كحد أقصى لمهمة لم تُنفَّذ (الإعدادات الافتراضية لـ pg-boss، ولا يضبط التطبيق مدة أخرى)
سجلات الخادم (نطاق المتجر ونتائج المهام)[OWNER: مدة الاحتفاظ بسجلات الخادم]
النسخ الاحتياطية لقاعدة البيانات[OWNER: هل النسخ الاحتياطي مفعّل وما مدة الاحتفاظ بالنسخ]
أسعار الذهببيانات سوق مشتركة لا تتضمن بيانات أي متجر؛ يُحتفظ بها

استعادة أسعارك الأصلية تتطلب صلاحية الوصول إلى متجرك، لذا يجب أن تتم قبل إلغاء التثبيت (المعاينة والاعتماد ← استعادة الأسعار الأصلية).

8. حقوقك

يمكنك الاطلاع على إعداداتك وربط مجموعاتك وتعديلها داخل التطبيق في أي وقت. ويمكنك أن تطلب منا نسخة من البيانات التي يحتفظ بها التطبيق عن متجرك، أو تصحيحها، أو حذفها قبل الحذف التلقائي الموضح أعلاه، بمراسلة Qadi@qodebites.com من البريد الإلكتروني لمالك المتجر. نرد خلال [OWNER: مدة الرد، مثلاً 30 يوماً].

بحسب مكان وجودك، قد تمنحك قوانين حماية البيانات (مثل اللائحة العامة لحماية البيانات في الاتحاد الأوروبي والمملكة المتحدة، وقانون حماية البيانات الشخصية المصري رقم 151 لسنة 2020، وأنظمة حماية البيانات الشخصية في المملكة العربية السعودية والإمارات العربية المتحدة) حقوقاً إضافية، منها حق تقديم شكوى إلى جهة رقابية. [OWNER: مراجعة قانونية للقوانين المطبّقة ولدوري المتحكم والمعالج.]

9. الأمان

  • الاتصال بالتطبيق مشفّر عبر HTTPS.
  • يُتحقق من توقيع HMAC الخاص بـ Shopify لكل إشعار webhook قبل معالجته.
  • لا تستمع قاعدة البيانات إلا على الخادم نفسه، وتُحفظ كلمة مرورها وأسرار التطبيق في ملف إعدادات لا يقرؤه إلا مستخدم التطبيق.
  • رموز وصول Shopify تنتهي صلاحيتها وتُجدَّد، وتُحذف عند إلغاء التثبيت.

10. التعديلات والتواصل

نحدّث هذه الصفحة عندما تتغير طريقة تعامل التطبيق مع البيانات ونغيّر التاريخ في أعلاها. للأسئلة أو الطلبات: Qadi@qodebites.com.