تغيير قاعدة Magento وعملة العرض (وقم بتحديث الأسعار تلقائيًا في الواجهة الخلفية، EUR -> RON)

magento.stackexchange https://magento.stackexchange.com//questions/28841

سؤال

لدي موقع Magento قديم للتجارة الإلكترونية، به حوالي 400 منتج.في البداية، تم تصميمه ليكون باليورو، سواء في الواجهة الخلفية أو الواجهة الأمامية.أحتاج إلى ترحيلها بالكامل إلى العملة المحلية.إليك ما قمت به الآن:لقد قمت بتعيين العملة الأساسية على EUR (كما كانت)، وعملة العرض على RON (ليو روماني، بالعملة المحلية).وقمت بتعيين سعر صرف أساسي، ثم قمت بتعيينه للتحديث يوميًا من WebserviceX.هذا حل نصف مشكلتي.عندما يدخل المستخدم، يتم تقديم الموقع له بالعملة المحلية، مع خيار التبديل إلى اليورو في الشريط العلوي.لكن مشكلتي هي أنه عندما أقوم بإضافة منتجات جديدة، يطلب مني ذلك باليورو.أحتاج بطريقة ما إلى تعيين العملة الأساسية على أنها الرون المحلي.لكن إذا قمت بضبطه على RON، فلن يتم تحديث الأسعار!-- المنتج الذي تبلغ قيمته 500 يورو، عندما يتم ضبط القاعدة على اليورو وعرضه على رون، يتم عرضه على أنه 2300 رون، وهذا صحيح.عندما تكون كل من القاعدة وشاشة العرض في RON، يتم عرض منتج بقيمة 500EUR على أنه 500RON، ولا يعمل التحويل إذا قمت بتعيين RON كقاعدة.أحتاج إلى تحويل الأسعار في النهاية الخلفية تلقائيًا من EUR ->، حتى أتمكن من تعيين القاعدة إلى RON وإدخالها افتراضيًا في RON من الآن فصاعدًا.كيف أقوم بذلك؟لا يمكنني تحديث 400 منتج يدويًا.

هل كانت مفيدة؟

المحلول

هنا شيء يجب أن يحول الأسعار.
أعلم أنها ليست أفضل طريقة للقيام بذلك عن طريق لمس قاعدة البيانات مباشرة، ولكنها سريعة وتعمل.
يرجى عمل نسخة احتياطية من قاعدة البيانات الخاصة بك قبل تجربة أي من هذا.

لذلك يتم الاحتفاظ بجميع القيم المتعلقة بالأسعار في الجدول catalog_product_entity_decimal و catalog_product_entity_tier_price في حال كان لديك أسعار الطبقة.
لأسعار الطبقة بسيطة.
فقط قم بتحديث قيمة العمود value مع القيمة المحولة.
لذا فإن معدل التحويل اليوم لـ 1E هو 4.4193 رون.
قم بتشغيل هذا الاستعلام:

UPDATE `catalog_product_entity_tier_price` set `value ` = 4.4193 * `value`;

هذا يجب أن يحلها.
بالنسبة لبقية الأسعار ليست بهذه السهولة.
تحتاج أولاً إلى تحديد معرفات السمات الخاصة بـ price و special_price.
لذلك قم بتشغيل هذا الاستعلام.

SELECT 
    * 
FROM 
    `eav_attribute` e 
    LEFT JOIN `eav_entity_type` et ON `e`.`entity_type_id` = `et`.`entity_type_id`
WHERE 
    `e`.`attribute_code` IN ('price', 'special_price') AND
    `et`.`entity_type_code` = 'catalog_product'

يجب أن ينتج هذا صفين.خذ العمود attribute_id القيم واستخدامها في الاستعلام أدناه.بالنسبة لي كانت هذه القيم 75 و 76.
الآن قم بتشغيل هذا الاستعلام لتحديث الأسعار.

UPDATE 
    `catalog_product_entity_decimal` 
SET 
    `value` = 4.4193 * `value`
WHERE
    `attribute_id` IN (75, 76)

مرة أخرى 4.4193 هو سعر الصرف.

يمكنك الآن ضبط عملتك الأساسية على RON.امسح ذاكرة التخزين المؤقت وأعد فهرسة كل شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top