tessguefen
4/8/2016 - 3:15 AM

XML Order Export (Work in Progress) -- DOES NOT INCLUDE PAYMENTS.

XML Order Export (Work in Progress) -- DOES NOT INCLUDE PAYMENTS.

<mvt:assign name="g.File_Path"       value="'/feed/'" />
<mvt:assign name="g.File_Name"       value="'order_import.xml'" />
<mvt:assign name="g.Final_File_Path" value="g.File_Path $ g.File_Name" />
<mvt:assign name="g.Full_File_Path"  value="g.domain:name $ g.File_Path $ g.File_Name" />
<mvt:assign name="g.temp_file"       value="g.File_Path $ 'temp_' $ g.File_Name" />

<mvt:if expr="ISNULL g.PerPage">
  <mvt:assign name="g.PerPage" value="10" />
</mvt:if>

<mvt:do file="g.Module_Library_DB" name="l.null" value="OrderList_Load_Offset(g.Offset, NULL, NULL, g.PerPage, g.NextOffset, l.settings:orders)" />

<mvt:eval expr="miva_array_elements(l.settings:orders)" />

<mvt:foreach iterator="order" array="orders">
  <mvt:assign name="l.settings:order:customer" value="NULL" />
  <mvt:do file="g.Module_Feature_CUS_DB" name="l.null" value="Customer_Load_ID(l.settings:order:cust_id, l.settings:order:customer)" />
  <mvt:assign name="l.xml" value="l.xml $ '
  <Order_Add>
    <OrderDate>
        <Day>' $ g.day $ '</Day>
        <Month>' $ g.month $ '</Month>
        <Year>' $ g.year $ '</Year>
        <Minute>' $ g.min $ '</Minute>
        <Hour>' $ g.24hour $ '</Hour> 
    </OrderDate>
    <ID>'$ l.settings:order:id $ '</ID>
    <ShipFirstName>' $ l.settings:order:ship_fname $ '</ShipFirstName>
    <ShipLastName>' $ l.settings:order:ship_lname $ '</ShipLastName>
    <ShipEmail><![CDATA[' $ l.settings:order:ship_email $ ']]></ShipEmail>
    <ShipPhone>'$ l.settings:order:ship_phone $ '</ShipPhone>
    <ShipCompany><![CDATA[' $ l.settings:order:ship_comp $ ']]></ShipCompany>
    <ShipAddress1><![CDATA[' $ l.settings:order:ship_addr1 $ ']]></ShipAddress1>
    <ShipAddress2><![CDATA[' $ l.settings:order:ship_addr2 $ ']]></ShipAddress2>
    <ShipCity><![CDATA[' $ l.settings:order:ship_city $ ']]></ShipCity>
    <ShipState><![CDATA[' $ l.settings:order:ship_state $ ']]></ShipState>
    <ShipZip>' $ l.settings:order:ship_zip $ '</ShipZip>
    <ShipCountry><![CDATA[' $ l.settings:order:ship_cntry $ ']]></ShipCountry>
    <BillFirstName>' $ l.settings:order:bill_fname $ '</BillFirstName>
    <BillLastName>' $ l.settings:order:bill_lname $ '</BillLastName>
    <BillEmail><![CDATA[' $ l.settings:order:bill_email $ ']]></BillEmail>
    <BillPhone>'$ l.settings:order:bill_phone $ '</BillPhone>
    <BillCompany><![CDATA[' $ l.settings:order:bill_comp $ ']]></BillCompany>
    <BillAddress1><![CDATA[' $ l.settings:order:bill_addr1 $ ']]></BillAddress1>
    <BillAddress2><![CDATA[' $ l.settings:order:bill_addr2 $ ']]></BillAddress2>
    <BillCity><![CDATA[' $ l.settings:order:bill_city $ ']]></BillCity>
    <BillState><![CDATA[' $ l.settings:order:bill_state $ ']]></BillState>
    <BillZip>' $ l.settings:order:bill_zip $ '</BillZip>
    <BillCountry><![CDATA[' $ l.settings:order:bill_cntry $ ']]></BillCountry>
  '" />
  <mvt:if expr="l.settings:order:customer:id GT 0">
    <mvt:assign name="l.xml" value="l.xml $ '<CustomerLogin>' $ l.settings:order:customer:login $ '</CustomerLogin>'" />
  </mvt:if>
  <mvt:do file="g.Module_Library_DB" name="l.null" value="OrderItemList_Load_Order(l.settings:order:id, l.settings:order:items)" />
  <mvt:if expr="miva_array_elements(l.settings:order:items) GT 0">
    <mvt:assign name="l.xml" value="l.xml $ l.tab $ '<Items>'" />
      <mvt:foreach iterator="item" array="order:items">
        <mvt:do file="g.Module_Library_DB" name="l.null" value="OrderOptionList_Load_Line( l.settings:item:line_id, l.settings:item:options)" />
        <mvt:assign name="l.xml" value="l.xml $
        '<Item>
          <code>' $ l.settings:item:code $ '</code>
          <Name><![CDATA[' $ encodeentities( l.settings:item:name ) $ ']]></Name>
          <Price>' $ l.settings:item:price $ '</Price>
          <Cost>' $ l.settings:item:retail $ '</Cost>
          <Weight>' $ l.settings:item:weight $ '</Weight>
          <Quantity>' $ l.settings:item:quantity $ '</Quantity>
        '" />
        <mvt:if expr="miva_array_elements(l.settings:item:options) GT 0">
          <mvt:assign name="l.xml" value="l.xml $ '
            <Options>
          '" />
          <mvt:foreach iterator="option" array="item:options">
            <mvt:assign name="l.xml" value="l.xml $ '
              <Option>
                <Price>' $ l.settings:option:price $ '</Price>
                <AttributeCode>' $ l.settings:option:attr_code $ '</AttributeCode>' " />
                <mvt:if expr="l.settings:option:data">
                  <mvt:assign name="l.xml" value="l.xml $ '
                  <Value>' $ l.settings:option:data $ '</Value>
                  '" />
                <mvt:else>
                  <mvt:assign name="l.xml" value="l.xml $ '
                  <OptionCode>' $ l.settings:option:opt_code $ '</OptionCode>
                  '" />
                </mvt:if>
                <mvt:if expr="l.settings:option:attmpat_id GT 0">
                  <mvt:do file="g.Module_Feature_ATT_DB" name="l.attr" value="AttributeTemplateAttr_Load_ID(l.settings:option:attmpat_id, l.settings:template_loaded)" />
                  <mvt:do file="g.Module_Feature_ATT_DB" name="l.null" value="AttributeTemplate_Load_ID(l.settings:template_loaded:attemp_id, l.settings:attr_template)" />
                  <mvt:if expr="l.settings:attr_template:id GT 0">
                  <mvt:assign name="l.xml" value="l.xml $ '<AttributeTemplateAttributeCode>' $ l.settings:attr_template:code $ '</AttributeTemplateAttributeCode>
                  '" />
                  </mvt:if>
                </mvt:if>
              <mvt:assign name="l.xml" value="l.xml $ '
              </Option>
              '" />
          </mvt:foreach>
          <mvt:assign name="l.xml" value="l.xml $ '
          </Options>
          '" />
        </mvt:if>
        <mvt:if expr="l.settings:item:shpmnt_id GT 0">
          <mvt:do file="g.Module_Library_DB" name="l.null" value="OrderShipment_Load_ID(l.settings:item:shpmnt_id, l.settings:item:shipment_info)" />
          <mvt:if expr="l.settings:item:shipment_info:id GT 0">
            <mvt:assign name="l.xml" value="l.xml $ '
              <Status>Shipped</Status>
              <TrackingType>' $ l.settings:item:shipment_info:tracktype $ '</TrackingType>
              <TrackingNumber>' $ l.settings:item:shipment_info:tracknum $ '</TrackingNumber>
            '" />
          </mvt:if>
        </mvt:if>
        <mvt:assign name="l.xml" value="l.xml $ '</Item>
        '" />
      </mvt:foreach>
      <mvt:assign name="l.xml" value="l.xml $ '</Items>'" />
    </mvt:if>   
    <mvt:do file="g.Module_Library_DB" name="l.null" value="OrderChargeList_Load_Order(l.settings:order:id, l.settings:order:charges)" />
    <mvt:if expr="miva_array_elements(l.settings:order:charges) GT 0">
      <mvt:assign name="l.xml" value="l.xml $ '<Charges>'" />
        <mvt:foreach iterator="charge" array="order:charges">
          <mvt:assign name="l.xml" value="l.xml $ '
            <Charge>
              <Type>' $ l.settings:charge:type $ '</Type>
              <Description><![CDATA[' $ l.settings:charge:descrip $ ']]></Description>
              <Amount>' $ l.settings:charge:amount $ '</Amount>
            </Charge>
          '" />
        </mvt:foreach>
      <mvt:assign name="l.xml" value="l.xml $ '</Charges>'" />
    </mvt:if>
  <mvt:assign name="l.xml" value="l.xml $ '</Order_Add>'" />
</mvt:foreach>
<mvt:assign name="g.next_url" value="l.settings:urls:_self:auto $ '?&Screen=migrate-orders&PerPage=' $ g.PerPage $ '&Offset=' $ g.NextOffset" />
<mvt:if expr="g.PerPage EQ g.NextOffset">
  <!-- Delete File & Create -->
  <mvt:assign name="l.file_exists" value="sexists( g.temp_file )" />
  <mvt:if expr="l.file_exists EQ 1">
    <mvt:assign name="l.file_deleted" value="sdelete( g.temp_file )" />
    <mvt:if expr="l.file_deleted EQ 1">
      <mvt:assign name="l.file_created" value="file_create( g.temp_file, 'SCRIPT', l.xml )" />
    </mvt:if>
  <mvt:else>
    <mvt:assign name="l.file_created" value="file_create( g.temp_file, 'SCRIPT', l.xml )" />
  </mvt:if>
  <meta http-equiv="refresh" content="0;URL='&mvt:global:next_url;'" />
  Processed <mvt:eval expr="g.PerPage + g.Offset" /> orders...
<mvt:elseif expr="g.NextOffset">
  <mvt:assign name="l.write_line" value="file_append( g.temp_file, 'script', l.xml )" />
  <meta http-equiv="refresh" content="0;URL='&mvt:global:next_url;'" />
  Processed <mvt:eval expr="g.PerPage + g.Offset" /> orders...
<mvt:else>
  <mvt:assign name="l.write_line" value="file_append( g.temp_file, 'script', l.xml )" />

  <mvt:assign name="l.file_exists" value="sexists( g.File_Path $ g.File_Name )" />
  <mvt:if expr="l.file_exists EQ 1">
    <mvt:assign name="l.file_deleted" value="sdelete( g.File_Path $ g.File_Name )" />
    <mvt:if expr="l.file_deleted EQ 1">
      <mvt:assign name="l.file_read" value="file_read( g.temp_file, 'SCRIPT', g.file_copy )" />
      <mvt:assign name="l.file_created" value="file_create( g.File_Path $ g.File_Name, 'SCRIPT', g.file_copy )" />
      <mvt:assign name="l.file_deleted" value="sdelete( g.temp_file )" />
    </mvt:if>
  <mvt:else>
    <mvt:assign name="l.file_read" value="file_read( g.temp_file, 'SCRIPT', g.file_copy )" />
    <mvt:assign name="l.file_created" value="file_create( g.File_Path $ g.File_Name, 'SCRIPT', g.file_copy )" />
    <mvt:assign name="l.file_deleted" value="sdelete( g.temp_file )" />
  </mvt:if>

  Order Export Complete. File is <a href="http://&mvt:global:Full_File_Path;" target="_blank">here</a>.
</mvt:if>
- Working on shipments
- Still testing.
- jrmy to the rescue