আমরা একমাত্র পুরাতন, পুরানো পুরানো পয়েন্ট অফ বিক্রয় সিস্টেম থেকে আমাদের পোস হিসাবে একচেটিয়াভাবে Magento 1.7 ব্যবহার করতে চলেছি। অপ্রত্যাশিতভাবে নয়, আমরা একটি চ্যালেঞ্জের মুখোমুখি হ'ল কীভাবে বিপর্যয় ছাড়াই পুরানো সিস্টেম থেকে ম্যাগে প্রায় 20 বছরের রেকর্ড পাওয়া যায়।
এমনকি গ্রাহকের রেকর্ডগুলি স্থানান্তরিত করার চ্যালেঞ্জকে একপাশে রেখে আমি যে প্রশ্নটিতে এই প্রশ্নটির উপরে ফোকাস দিচ্ছি তা হ'ল আমি কীভাবে Pতিহাসিক ক্রম ডেটা মাইজে পুরানো POS থেকে স্থানান্তরিত করতে যাচ্ছি। আমরা যখন সংখ্যার অর্ডার দিয়ে কথা বলি তখন সঠিক সংখ্যার উপর আমি 100% নিশ্চিত নই, তবে আমি কমপক্ষে এক মিলিয়ন বলব।
এখানে কীভাবে যোগাযোগ করা যায় সে সম্পর্কে আমি যা ভাবছি তা এখানে:
- ম্যাজেন্টো এটির সাথে সুন্দর খেলতে কীভাবে ডেটা ফর্ম্যাট করতে হবে তা ঠিক করুন। আমরা এটি কার্যকর ফরমেটে পুরানো পস থেকে বেরিয়ে আসতে পারি কিনা তা প্রশ্নবিদ্ধ, তবে আসুন আমরা এক মুহুর্ত ধরে ধরে নিই যে এটি ঠিকঠাক হয় ...
- একটি .CSV ফাইল ডাব্লু / সুন্দরভাবে ফর্ম্যাট করা historicalতিহাসিক ডেটা তৈরি করুন
- সেই সিসিএসভি পড়ার একটি উপায় সন্ধান করুন Magento এর
$order
বস্তু সারিতে সারি -> সংরক্ষণ করুন () - লাভ!
আমার সমস্যাটি হ'ল আমি কীভাবে পয়েন্ট 2 এবং 3 এ যাব, চিত্রটি কীভাবে যাব সে সম্পর্কে আমি কিছুটা অস্পষ্ট। আমি পুরাতন পস থেকে আগত ডেটা ফর্ম্যাট করতে পারি তবে এটি আমার পক্ষে অত্যন্ত জটিল এবং পার্লের সাথে জড়িত থাকলেও আমার কাছে একবার। সিএসভি ফাইল (অথবা যে কোনও ফাইল টাইপ প্রকৃতপক্ষে এই প্রক্রিয়াটির জন্য কার্যকর হবে) আমি খুব অস্পষ্ট on আমি কীভাবে এটি ম্যাজেন্টোর অর্ডার অবজেক্টে ফিড করব।
আমি কিছু গুগলিং করেছি এবং ম্যাগের অর্ডার অবজেক্টটি প্রোগ্রামের মাধ্যমে আমদানি করতে লোকজনের উদাহরণ নিয়ে এসেছি, তবে তারা কীভাবে সামনের দিকের কার্ট বাদে ডেটা উত্সকে সংযোগ দিচ্ছে তা নিয়ে সামান্য আলোচনা হয়েছে। আমি অর্ডার অবজেক্টের একটি সংস্করণ অধ্যয়ন করছি:
$id=1; // get Customer Id
$customer = Mage::getModel('customer/customer')->load($id);
$transaction = Mage::getModel('core/resource_transaction');
$storeId = $customer->getStoreId();
$reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId);
$order = Mage::getModel('sales/order')
->setIncrementId($reservedOrderId)
->setStoreId($storeId)
->setQuoteId(0)
->setGlobal_currency_code('USD')
->setBase_currency_code('USD')
->setStore_currency_code('USD')
->setOrder_currency_code('USD');
// set Customer data
$order->setCustomer_email($customer->getEmail())
->setCustomerFirstname($customer->getFirstname())
->setCustomerLastname($customer->getLastname())
->setCustomerGroupId($customer->getGroupId())
->setCustomer_is_guest(0)
->setCustomer($customer);
// set Billing Address
$billing = $customer->getDefaultBillingAddress();
$billingAddress = Mage::getModel('sales/order_address')
->setStoreId($storeId)
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING)
->setCustomerId($customer->getId())
->setCustomerAddressId($customer->getDefaultBilling())
->setCustomer_address_id($billing->getEntityId())
->setPrefix($billing->getPrefix())
->setFirstname($billing->getFirstname())
->setMiddlename($billing->getMiddlename())
->setLastname($billing->getLastname())
->setSuffix($billing->getSuffix())
->setCompany($billing->getCompany())
->setStreet($billing->getStreet())
->setCity($billing->getCity())
->setCountry_id($billing->getCountryId())
->setRegion($billing->getRegion())
->setRegion_id($billing->getRegionId())
->setPostcode($billing->getPostcode())
->setTelephone($billing->getTelephone())
->setFax($billing->getFax());
$order->setBillingAddress($billingAddress);
$shipping = $customer->getDefaultShippingAddress();
$shippingAddress = Mage::getModel('sales/order_address')
->setStoreId($storeId)
->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
->setCustomerId($customer->getId())
->setCustomerAddressId($customer->getDefaultShipping())
->setCustomer_address_id($shipping->getEntityId())
->setPrefix($shipping->getPrefix())
->setFirstname($shipping->getFirstname())
->setMiddlename($shipping->getMiddlename())
->setLastname($shipping->getLastname())
->setSuffix($shipping->getSuffix())
->setCompany($shipping->getCompany())
->setStreet($shipping->getStreet())
->setCity($shipping->getCity())
->setCountry_id($shipping->getCountryId())
->setRegion($shipping->getRegion())
->setRegion_id($shipping->getRegionId())
->setPostcode($shipping->getPostcode())
->setTelephone($shipping->getTelephone())
->setFax($shipping->getFax());
$order->setShippingAddress($shippingAddress)
->setShipping_method('flatrate_flatrate')
->setShippingDescription($this->getCarrierName('flatrate'));
$orderPayment = Mage::getModel('sales/order_payment')
->setStoreId($storeId)
->setCustomerPaymentId(0)
->setMethod('purchaseorder')
->setPo_number(' - ');
$order->setPayment($orderPayment);
// let say, we have 2 products
$subTotal = 0;
$products = array(
'1001' => array(
'qty' => 1
),
'1002' ->array(
'qty' => 3
),
);
foreach ($products as $productId=>$product) {
$_product = Mage::getModel('catalog/product')->load($productId);
$rowTotal = $_product->getPrice() * $product['qty'];
$orderItem = Mage::getModel('sales/order_item')
->setStoreId($storeId)
->setQuoteItemId(0)
->setQuoteParentItemId(NULL)
->setProductId($productId)
->setProductType($_product->getTypeId())
->setQtyBackordered(NULL)
->setTotalQtyOrdered($product['rqty'])
->setQtyOrdered($product['qty'])
->setName($_product->getName())
->setSku($_product->getSku())
->setPrice($_product->getPrice())
->setBasePrice($_product->getPrice())
->setOriginalPrice($_product->getPrice())
->setRowTotal($rowTotal)
->setBaseRowTotal($rowTotal);
$subTotal += $rowTotal;
$order->addItem($orderItem);
}
$order->setSubtotal($subTotal)
->setBaseSubtotal($subTotal)
->setGrandTotal($subTotal)
->setBaseGrandTotal($subTotal);
$transaction->addObject($order);
$transaction->addCommitCallback(array($order, 'place'));
$transaction->addCommitCallback(array($order, 'save'));
$transaction->save();
সুতরাং এখানে আমার নির্দিষ্ট প্রশ্ন:
- এটিকে কি এই সমস্যার জন্য দূর থেকে সংবেদনশীল পদ্ধতির মতো বলে মনে হচ্ছে? এবং, যদি তা না হয় তবে কীভাবে আপনি মনে করেন যে আমি এই বোকামির চেয়ে কম ইস্যুটির কাছে যেতে পারি?
- যদি এটি সংবেদনশীল পদ্ধতির হয়, তবে অর্ডার প্রক্রিয়া দ্বারা কল করা প্রতিটি মডেলের জন্য আমার কি আলাদা আলাদা আলাদা সিএসভি দরকার? অর্থাৎ ম্যাজ :: গেটমোডেল ('বিক্রয় / আদেশ'), ম্যাজ :: গেটমোডেল ('বিক্রয় / অর্ডার_অ্যাড্রেস'), ইত্যাদি?
- একটি .CSV এমনকি পথ যেতে হবে?
- আমি কীভাবে এই তথ্যটিতে আমার ডেটা ফিড করব, সেই ডেটাটি একটি .CSV এর মধ্যে রয়েছে বা আপনার কী আছে?
- আপনি কিভাবে ওভারহেড সীমাবদ্ধ সম্পর্কে যেতে হবে?
এমনকি যদি আমি এটি সম্পর্কে সম্পূর্ণ বোকামি উপায়ে চিন্তা করি এবং আপনি আমাকে যতটা বলেন, আমি আসলেই কোনও ইনপুটকে প্রশংসা করি।
আপনাকে ধন্যবাদ, আপনাকে ধন্যবাদ আপনাকে ধন্যবাদ!