অর্ডার আইডি, অর্ডার ইনক্রিমেন্ট আইডি নিয়ে বিভ্রান্তি এবং আমি 20001201 হিসাবে অর্ডার আইডি পাচ্ছি না


28

অর্ডার আইডি এবং অর্ডার ইনক্রিমেন্ট আইডি নিয়ে আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি , তাহলে কেউ এই দুটির মধ্যে পার্থক্য বুঝতে আমাকে সহায়তা করতে পারে?

আমার বিক্রয়_অর্ডার_প্লেস_পর পর্যবেক্ষক রয়েছে যেখানে আমি কাস্টম টেবিলে বিক্রয় বিশদ সংরক্ষণ করি।

কিন্তু সঙ্গে

$orderId = $observer->getEvent()->getOrder()->getId();

আমি 20001201-এর মতো 112 বা 113 বা 110 ইত্যাদির মতো স্বাভাবিক আইডির মতো অর্ডার আইডিগুলি পাই

তাহলে আসল অর্ডার আইডি, 20001201 বা 112 কোনটি?

আমাকে এই অর্ডার আইডির উপর ভিত্তি করে অর্ডার ডেটা আরও প্রক্রিয়া করা দরকার, আমি 112, 113 ইত্যাদি ব্যবহার করি এবং এটি কাজ করে, তবে আমার এটি পরিষ্কার করা দরকার need

উত্তর:


23

পার্থক্য হল:

  • অর্ডার_আইডি হ'ল অভ্যন্তরীণ ম্যাজেন্টো অর্ডার আইডি
  • অর্ডার ইনক্রিমেন্ট আইডি হ'ল আইডি যা আপনি আপনার গ্রাহকের সাথে যোগাযোগ করেছেন

অভ্যন্তরীণ অর্ডার_আইডি ব্যবহার করে আপনি সহজেই একটি অর্ডার লোড করতে পারেন:

Mage::getModel('sales/order')->load($orderId);

পিএস: আপনার যদি এটির প্রয়োজন হয় তবে আপনি লোড অর্ডার থেকে সহজেই ইনক্রিমেন্ট আইডিটি পেতে পারেন:

$order->getIncrementId();

1
আপনার অর্থ বিকাশকারী অভ্যন্তরীণ আইডি এবং ক্লায়েন্ট এবং অন্যান্য ব্যবহার বৃদ্ধি_আইড ব্যবহার করবেন?
চার্লি

চার্লি, মরিয়াসের পোস্টের নীচে দুজনের মধ্যে পার্থক্য রয়েছে এবং এমপিএপ্পারের প্রতিক্রিয়া আসলে সেই পদ্ধতিটি দেখায় যা বর্ধিত আইডি ফেরত দেওয়ার আদেশে ডাকা হয়েছিল (যা অ্যাডমিন ভিউতে এবং গ্রাহকের কাছে কার্যকরভাবে 'অর্ডার আইডি')।
জোশুয়া চ্যাভনে

26

id= sales_flat_orderটেবিলের প্রাথমিক কী মান। আপনি আপনার দোকানে যে প্রতিটি অর্ডার পান এটির জন্য এটি স্বতঃসংশোধিত। এটি সাধারণত 1 থেকে শুরু হয় এবং উপরে যায়।

increment id= একটি "ব্যবহারকারী বান্ধব" অর্ডার স্থাপনের আগে উত্পন্ন নম্বর। এটি অবশ্যই অনন্য হতে হবে এবং এটি অনলাইন অর্থপ্রদানের পদ্ধতিগুলি রেফারেন্স হিসাবে ব্যবহার করে (তবে কেবল তা নয়)।
ডিফল্টরূপে বর্ধিত আইডি এর মতো দেখায়।

                  100000104
                  ||   || |
 store view id ---||   || |
                   |---||-|
                     |   |----- an increment number kept in the table eav_entity_store
    a lot of zeros --|

শূন্যের সংখ্যা পরিবর্তনশীল। str_padস্টোর আইডি ব্যতীত ইনক্রিমেন্ট আইডিটির দৈর্ঘ্য যাতে হয় তা ব্যবহার করে এটি যুক্ত করা হয় 8


আমার নতুন প্রশ্ন জিজ্ঞাসা করুন, তবে 1 ম বাইটটি EAV টেবিল থেকে একটি উপসর্গ মান এবং store_view_id নয়?
গুয়অন দ্য ওয়েব

4
@someGuyOnTheWeb। আচ্ছা ... হ্যাঁ না। প্রযুক্তিগতভাবে উপসর্গ (কেবল প্রথম বাইট নয় ... আমি এমন প্রকল্পগুলিতে কাজ করেছি যেগুলিতে 2 ডিজিটের উপসর্গ রয়েছে) সারণী থেকে আসে eav_entity_store। তবে প্রথম আদেশের জন্য সেই টেবিলে কোনও রেকর্ড নেই। সুতরাং একটি তৈরি করা হয়। এটি তৈরি করা হলে স্টোর আইডি হিসাবে সংরক্ষণ করা হয় increment_prefix। পদ্ধতিতে এটি কীভাবে কাজ করে দেখুন Mage_Eav_Model_Entity_Type::fetchNewIncrementId। লাইন থেকে শুরু করে: if (!$entityStoreConfig->getId()) {
মারিয়াস

5

বিক্রয় অর্ডারে দুটি মান, সত্তা_আইডি (অর্ডার আইডি) এবং ইনক্রিমেন্ট_আইডি (অর্ডার বর্ধন আইডি) থাকে। অর্ডার টেবিলের সত্তা_আইডিটি প্রাথমিক কী। এর অর্থ আপনি প্রকৃত অর্ডার সত্তা লোড করতে এটি ব্যবহার করেন। নিচে দেখ

Mage::getModel("sales/order")->load($enityId);

এবং পেতে

$order->getId(); অথবা $order->getEntityId();

ইনক্রিমেন্ট_আইডি সাধারণত একটি বেশি বন্ধুত্বপূর্ণ নম্বর যা প্রায়শই ওয়েবসাইট / স্টোর নির্দিষ্ট অর্থাৎ 20001201 2 এর সামনের 2 এর অর্থ প্রায়ই বোঝা যায় যে এটি আপনার দ্বিতীয় স্টোর / ওয়েবসাইটের আদেশ (কোনটি স্মরণে রাখতে পারছেন না)। এটি প্রায়শই রিয়েল অর্ডার আইডি হিসাবে উল্লেখ করা হয়। আপনি এই ইনক্রিমেন্ট_আইডি ব্যবহার করে একটি অর্ডার সত্তা লোড করতে পারেন

Mage::getModel("sales/order")->loadByIncrementId($incrementId);

এবং পেতে

$order->getRealOrderId(); or $order->getIncrementId();

0

order_id, যা আমি বিশ্বাস করি হিসাবে একই entity_id, sales_order সব eav টেবিল একসঙ্গে যোগ করার জন্য ব্যবহৃত টেবিল প্রাথমিক চাবিকাঠি। এটি ম্যাজেন্টোতে অভ্যন্তরীণভাবে ব্যবহৃত হয়।

order_increment_id গ্রাহককে প্রদর্শন করার জন্য ব্যবহৃত হয়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.