سؤال

أنا أبحث في الحد من العملاء لشراء 1 حزمة المنتج في وقت واحد.

هل هناك طريقة لتعيين" الكمية القصوى المسموح بها في عربة التسوق " لمنتج الحزمة.

أريد أن أفعل ذلك دون الحد من المنتجات الفردية ، بحيث يمكن للعملاء شراء أكبر عدد ممكن منهم بشكل منفصل.

أي أفكار إذا كان ذلك ممكنا, إذا كان الأمر كذلك كيف يمكنني تنفيذ هذا?

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

المحلول

ترتبط الميزة الأساسية "الكمية القصوى" ببنود المخزون ، لذا فهي لا تعمل مع الحزم (ليس لديهم مخزون خاص بهم).

لديك لتطويره بنفسك.

بالنسبة للمنتجات البسيطة ، يحدث الشيك في Mage_CatalogInventory_Model_Stock_Item::checkQuoteItemQty():

if ($this->getMaxSaleQty() && $qty > $this->getMaxSaleQty()) {
    $result->setHasError(true)
        ->setMessage(
            Mage::helper('cataloginventory')->__('The maximum quantity allowed for purchase is %s.', $this->getMaxSaleQty() * 1)
        )
        ->setErrorCode('qty_max')
        ->setQuoteMessage(Mage::helper('cataloginventory')->__('Some of the products cannot be ordered in requested quantity.'))
        ->setQuoteMessageIndex('qty');
    return $result;
}

انه دعا في Mage_CatalogInventory_Model_Observer::checkQuoteItemQty() وهذا هو المكان الذي أود أن أضيف القيود الإضافية الخاصة بي للحزم.إما مع إعادة كتابة أو مع مراقب إضافي لنفس الحدث (sales_quote_item_qty_set_after):

  • تحقق مما إذا كان العنصر عبارة عن حزمة
  • إذا كان الأمر كذلك ، فتحقق مما إذا كانت كمية الحزمة > 1 وفي هذه الحالة أضف خطأ للاقتباس تماما كما هو الحال في المراقب الأصلي.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top