আরও গভীর খনন করার সময়, আমি বুঝতে পারি যে eav_entity_type.increment_per_storeএটি সহায়ক হতে পারে।
এটা. তবে কেবলমাত্র সেই ক্ষেত্রে, যখন আপনি একই ম্যাজেন্টো ইনস্টলেশনের একই অর্ডার নম্বর পরিসীমা ভাগ করে নেওয়ার জন্য সমস্ত স্টোর দর্শন (বিশ্বব্যাপী, তারা কোন ওয়েবসাইটের মধ্যে তারা সংজ্ঞায়িত হয়েছেন তা বিবেচনা করে) চান increment_id।
এটি আমার নির্দিষ্ট সমস্যাটি সমাধান করে না তবে এটি অন্য কারও পক্ষে সহায়ক, তাই আমরা এখানে যাচ্ছি:
আপনার অর্ডার নম্বরগুলির বিশ্বব্যাপী ভাগ করে নেওয়ার জন্য eav_entity_type.increment_per_store, এতে অর্ডার সত্তার সেট করুন 0,
অর্ডার সত্তার রেকর্ডটি লোড করার সময় এটি Mage_Eav_Model_Entity_Type::fetchNewIncrementId()ব্যবহারে বাড়ে , এটি কোনও স্টোর দর্শন সত্যই অন্তর্ভুক্ত তা বিবেচনা করে না।store_id = 0eav_entity_store
যদি এরকম কোনও রেকর্ড বিদ্যমান না থাকে তবে ম্যাজেন্টো ব্যবহার করে store_idএবং increment_prefixএর একটি তৈরি করে 0।
public function fetchNewIncrementId($storeId = null)
{
if (!$this->getIncrementModel()) {
return false;
}
if (!$this->getIncrementPerStore() || ($storeId === null)) {
/**
* store_id null we can have for entity from removed store
*/
$storeId = 0;
}
// Start transaction to run SELECT ... FOR UPDATE
$this->_getResource()->beginTransaction();
$entityStoreConfig = Mage::getModel('eav/entity_store')
->loadByEntityStore($this->getId(), $storeId);
if (!$entityStoreConfig->getId()) {
$entityStoreConfig
->setEntityTypeId($this->getId())
->setStoreId($storeId)
->setIncrementPrefix($storeId)
->save();
}
$incrementInstance = Mage::getModel($this->getIncrementModel())
->setPrefix($entityStoreConfig->getIncrementPrefix())
->setPadLength($this->getIncrementPadLength())
->setPadChar($this->getIncrementPadChar())
->setLastId($entityStoreConfig->getIncrementLastId())
->setEntityTypeId($entityStoreConfig->getEntityTypeId())
->setStoreId($entityStoreConfig->getStoreId());
/**
* do read lock on eav/entity_store to solve potential timing issues
* (most probably already done by beginTransaction of entity save)
*/
$incrementId = $incrementInstance->getNextId();
$entityStoreConfig->setIncrementLastId($incrementId);
$entityStoreConfig->save();
// Commit increment_last_id changes
$this->_getResource()->commit();
return $incrementId;
}
এই ব্যবহার করে যে কোনও সত্তা টাইপ জন্য কাজ করা উচিত eav/entity_increment_numericমডেল, মত order, invoice, shipmentএবং creditmemo।
যদিও সচেতন থাকুন যে আমি increment_per_storeএখনও কোনও অফিসিয়াল ডকুমেন্টেশন পাইনি । এবং এটি ম্যাগেন্টো ব্যাকএন্ডে কোনও বিকল্প নেই যাতে আপনাকে এটি কনফিগার করতে দেয়।
এর অর্থ বা অর্থ হতে পারে, এটি আনুষ্ঠানিকভাবে ব্যবহার করা হবে বলে ভাবা হয় না।
আপনার নিজের ঝুঁকিতে ব্যবহার করুন। যদি আপনার পরিবর্তনগুলি সর্বনাশ করে তবে আমাকে দোষ দেবেন না। আপনাকে সতর্ক করা হয়েছে ^^