here is a built in way to export a product as xml.
$product = Mage::getModel('catalog/product')->load($entityId);
$xml = $product->toXml();
This will generate an xml with all the product attributes.
If you want to have only the name and description, do this:
$xml = $product->toXml(array('name', 'description'));
This will generate something like :
<item>
<name>Name here</name>
<description>Description here</description>
</item>
If you want to change the tag item
into something else, call it like this:
$xml = $product->toXml(array('name', 'description'), 'product');
If you want the xml header <?xml version="1.0" encoding="UTF-8"?>
call it like this:
$xml = $product->toXml(array('name', 'description'), 'product', true);
and because the description can contain special chars it may be a good idea to add <![CDATA[]]>
around the values. For that supply a 4th parameter true
:
$xml = $product->toXml(array('name', 'description'), 'product', true, true);
[EDIT]
The method toXml
I used above is defined in Varien_Object
class. If you are trying to achieve this outside Magento, you can add that class to your project and use it to generate xmls.
After retrieving the data from the db, just create an instance of Varien_Object
and set the name and description.
$obj = new Varien_Object();
$obj->setName(your name from the db);
$obj->setDescription(your description from the db);
$xml = $obj->toXml(array('name', 'description'), 'product', true, true);
//$xmlObj = simplexml_load_string($xml); //if you need it as an object
user1618341,According magento an order can place
from one store
,Magento is save order store id at sales_flat_order,sales_flat_grid order
.
At your collection you need get store_id.Also need rectify collection query,Please use * instead of some field
<?php
try {
$orders = Mage::getModel('sales/order')->getCollection()
->addFieldToFilter(
'status',
array(
'nin' => array('complete', 'canceled', 'processing', 'holded', 'fraud'),
'in' => 'pending',
))
->addAttributeToSelect('store_id')
->addAttributeToSelect('status');
}
catch (Mage_Core_Exception $e) {
}
I have put the condition to skip create shipment for one store view[if($eachorder->getData('store_id')!=='YOUSKIPSTOREID'):]
see code:
try {
foreach ($orders as $eachorder) {
$order = Mage::getModel("sales/order")->load($eachorder->getId());
if (!$order->canInvoice()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.'));
}
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
if (!$invoice->getTotalQty()) {
Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
}
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
/* put code for skip for one store */
if($eachorder->getData('store_id')!=='YOUSKIPSTOREID'):
$shipment = $order->prepareShipment();
if ($shipment) {
$shipment->register();
$order->setIsInProcess(true);
$transaction_save = Mage::getModel('core/resource_transaction')
->addObject($shipment)
->addObject($shipment->getOrder())
->save();
} else {
throw new Exception("Cant get shipment");
}
endif;
$order->setState(Mage_Sales_Model_Order::STATE_COMPLETE);
$order->save();
}
}catch (Mage_Core_Exception $e) {
}
If you getting the issues for create invoice and shipment,Please see my Blog:
Create invoice:
Create Shipment
:
Best Answer
You can use below code to format date: