سؤال

لدي متطلب حيث يلزم إنشاء طلب من طلب موجود، أي ميزة إعادة الطلب في الماجنتو ولكن برمجيًا.تقوم مهمة cron بإرسال حدث إعادة ترتيب بناءً على شروط معينة.يبحث الكود أدناه عن معرف الطلب وينشئ طلبًا جديدًا بنجاح.ومع ذلك، فإن الطلب الجديد يختار السعر المحدث للمنتج بينما أريد أن يكون هو نفس الطلب السابق.كيف يمكنني تعديله لتحديد الأسعار من الطلب الأخير؟

$order = Mage::getModel('sales/order')->loadByIncrementId($lastOrderId);
$order_model = Mage::getSingleton('adminhtml/sales_order_create');
try {
    $order->setReordered(true);
    $order->getPayment()->getMethodInstance()->getInfoInstance();

    $order_model->getSession()->setUseOldShippingMethod(true);            
    $reorder = $order_model->initFromOrder($order);
    $newOrder = $reorder->createOrder();
    $newOrderId = $newOrder->getIncrementId();
} catch (Exception $e) {
    Mage::log('Renewal for Profile #'.$profileId.': '.$e, null, 'prosub-debug.log');
    Mage::logException($e);
}   
هل كانت مفيدة؟

المحلول

أعتقد أنه يجب عليك تكرار جميع عناصر كلا الطلبين وضبط أسعار كل منهما.(ضع في الاعتبار إجمالي الصف والخصومات المطبقة على الطلب الأصلي)

إذا كنت تريد عرض الفرق يمكنك ترك price وتطبيق خصم، وإلا فما عليك سوى نسخ جميع الحقول المتعلقة بالسعر:

  • سعر
  • السعر الأساسي
  • السعر الأصلي
  • base_original_price

هذا ينبغي أن يكون كافيا.

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