الفرق بين عرض أسعار المبيعات وعنوان عرض أسعار المبيعات

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

سؤال

أنا أبحث عن مراقب Collect_totals الذي يمكنني استخدامه.هناك اثنان من المراقبينsales_quote_collect_totals_before و sales_quote_address_collect_totals_before.

يمكن العثور عليها في /app/code/core/Mage/Sales/Model/Quote.php و /app/code/core/Mage/Sales/Model/Quote/Address.php.

أتساءل ما هو الفرق بين الملفين حيث أن كلا الملفين لهما وظائف التجميع الإجمالي؟

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

المحلول

/app/code/core/Mage/Sales/Model/Quote.php

هي فئة الاقتباس لكائن الاقتباس

/app/code/core/Mage/Sales/Model/Quote/Address.php

هي فئة عنوان الاقتباس لأي كائنات عنوان الاقتباس

عادةً ما يحتوي كائن الاقتباس على كائنين عنوان، ولكن يمكن أن يحتوي على المزيد في حالة وجود عناوين تسليم متعددة.

فيما يتعلق بطريقة (طرق) "جمع الإجماليات":دعونا أولاً نفهم كل طريقة والغرض منها:

الطريقة في Mage_Sales_Model_Quote, ، هي نقطة الدخول الأولية لل Totals Collector النظام الفرعي، ويبدأ عن طريق حفظ سلة التسوق،

(يسمح لك هذا بإدخال أساليب الفصل في حسابات سلة التسوق، للتأثير على نتائج إجماليات سلة التسوق - مثال:حسابات خصومات سلة التسوق)

تدفق التعليمات البرمجية على النحو التالي:

Mage_Checkout_Model_Cart::save()

Mage_Sales_Model_Quote::collectTotals() <--- نقطة دخول النظام الفرعي للمجمع

Mage_Sales_Model_Quote_Address::collectTotals() <-- يتم استدعاء كل عنوان مرتبط بكائن الاقتباس، من خلال حلقة في كائن إجماليات جمع الاقتباس.

الآن، في طريقة تجميع إجماليات العنوان، يتم تنفيذ حلقة، باستخدام جميع "المجمعات" التي يحددها النظام، واستدعاء كل فئة/طريقة، وبالتالي السماح بتعديل إجماليات الطلب عن طريق حسابات إضافية (تذكر أن جميع الإجماليات معلقة من العنوان الكائن (الكائنات)، وليس كائن الاقتباس الفعلي، مما يسمح لـ Magento بإجراء الدفع إلى عناوين متعددة)

foreach ($this->getTotalCollector()->getCollectors() as $model) {
            $model->collect($this);
} 

قائمة "هواة الجمع" المحتملين ستكون:

enter image description here

يمكنك إدخال مُجمع الإجماليات الخاص بك عبر تكوين الوحدة النمطية على هذا النحو، ويجب أن يكون لديك ملف collect الطريقة كنقطة دخول

<sales>
   <quote>
      <totals>
         <giftpromo>
           <class>giftpromo/promo_gift</class>
           <after>discount</after>
           <before>tax,grand_total</before>
           <sort_order>12410</sort_order>
         </giftpromo>
      </totals>
    </quote>
</sales>

الآن، بالنظر إلى كل تلك المعلومات، والأحداث التي اندلعت:

sales_quote_collect_totals_before:يتم إطلاقه قبل تحميل أي كائن عنوان، ويتم تنفيذ أداة تجميع الإجماليات

sales_quote_address_collect_totals_before:يتم تشغيله داخل كائن (كائنات) عنوان الاقتباس، قبل أن يقوم كل كائن عنوان بتشغيل قائمة كائنات المجمع المحتملة.

نظرًا لعدم معرفتي بالنهاية النهائية للعبتك، لن أتمكن من تحديد ما هو المناسب لك، ومع ذلك، أود أن أقترح أيضًا التفكير في ما إذا لم يكن أي منهما صحيحًا، وأنك ستكون الأنسب لإضافة جامع جديد للعبة نظام جامع الإجماليات

آمل أن تساعدك هذه المعلومات في تحديد الطريقة الصحيحة لتوسيع الوظائف وتقديم حل مستقر.

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