الفرق بين عرض أسعار المبيعات وعنوان عرض أسعار المبيعات
-
12-12-2019 - |
سؤال
أنا أبحث عن مراقب 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);
}
قائمة "هواة الجمع" المحتملين ستكون:
يمكنك إدخال مُجمع الإجماليات الخاص بك عبر تكوين الوحدة النمطية على هذا النحو، ويجب أن يكون لديك ملف 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:يتم تشغيله داخل كائن (كائنات) عنوان الاقتباس، قبل أن يقوم كل كائن عنوان بتشغيل قائمة كائنات المجمع المحتملة.
نظرًا لعدم معرفتي بالنهاية النهائية للعبتك، لن أتمكن من تحديد ما هو المناسب لك، ومع ذلك، أود أن أقترح أيضًا التفكير في ما إذا لم يكن أي منهما صحيحًا، وأنك ستكون الأنسب لإضافة جامع جديد للعبة نظام جامع الإجماليات
آمل أن تساعدك هذه المعلومات في تحديد الطريقة الصحيحة لتوسيع الوظائف وتقديم حل مستقر.