2011-11-08 16 views
5

इस विषय पर कोई ठोस सहमति नहीं है। एक धागा on the Magento message board है जो सभी प्रकार की विविधताएं और दृष्टिकोण देता है, जिनमें से कोई भी मेरे लिए काम नहीं करता है और इनमें से कोई भी इस प्रक्रिया में क्या नहीं किया जाना चाहिए।मैगेंटो में प्रोग्रामेटिक रूप से ऑर्डर कैसे आयात करूं?

जो मैं बता सकता हूं, आपको वेबसाइट पर बनाए गए आदेश के चरणों को अनुकरण करने की आवश्यकता है, यानी 'कार्ट' में उत्पाद जोड़ें, शिपिंग और बिलिंग पता जोड़ें, एक शिपिंग विधि जोड़ें, भुगतान विधि जोड़ें और 'चेकआउट'।

क्या कोई वास्तव में इन चरणों को समझा सकता है, और चरणों को निष्पादित करने के लिए जिम्मेदार कोड की रेखाएं दिखा सकता है।

इसके अलावा, मैंने 'कार्ट' और 'उद्धरण' के संदेश बोर्ड कोड उदाहरणों में संदर्भ देखा है। कृपया 2.

+0

मैंने एक वैध प्रश्न पूछा। आप अपने समय को बकवास करने के लिए बर्बाद क्यों परेशान करेंगे? और किसने नरक नीचे मेरा सवाल मतदान किया ???? – Billy

+0

मेरा मुद्दा यह था कि किसी को आपके प्रश्न में आपके द्वारा अनुरोधित सभी चीजों का पर्याप्त उत्तर देने के लिए ब्लॉग आलेख के बराबर लिखना होगा। इसके अलावा, एक वाक्य लिखना वास्तव में मेरे अधिकांश समय को नहीं लेता है। इस साइट पर, आम तौर पर एक प्रश्न की आवश्यकता नहीं होती है जो लिखने के लिए 30 मिनट से अधिक समय लेती है। –

+0

मैंने टाइपिंग समय के 10 मिनट में आधा मेरा प्रश्न उत्तर दिया। – Billy

उत्तर

6

के बीच अंतर (या समानताएं) को समझाएं मैंने प्रोग्रामिंग कार्य को हल किया है। यह पता चला है कि आपको अन्य कार्टों के सुझाव के रूप में 'कार्ट में जोड़ने' का अनुकरण करने की आवश्यकता नहीं है। आप ऑर्डर ऑब्जेक्ट और संबंधित ऑब्जेक्ट्स बना सकते हैं और डेटा के साथ पॉप्युलेट कर सकते हैं, यह उतना आसान नहीं है जितना मैं चाहता हूं।

ऑर्डर बनाना सर्वोत्तम वर्णन this blog post द्वारा किया गया था।

मैं कोड यहाँ कॉपी किया है:

$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(); 

मैं अभी भी एक गाड़ी और उद्धरण है के बीच भेद की समझ नहीं मिला है।

संबंधित मुद्दे