Magento Integration: Sales Order Synchronisation with Bundled Products

We talked about how to handle Configurable Product in my previous blog. Today, I will show you the difference between the Bundled Product.  In Magento, you can bundle a few Simple products together in Magento and sell it at a special price.
For example:
Bundle Product: My Computer Parts
Total Price: 450 
Bundle Items:
  1. NZXT Lexa Silver Aluminum ATX Mid-Tower Case (Normal Price: 150)
  2. AMD A64 X2 3800+ 2.0GHz OEM (Normal Price:  100)
  3. Western Digital – 1TB HD – 7200RPM (Normal Price:  300)

 

From the Magento API, you will receive the following data in a Sales Order:
<item xsi:type=”ns1:salesOrderItemEntity”>
                  <item_id xsi:type=”xsd:string”>1</item_id>
                  <order_id xsi:type=”xsd:string”>1</order_id>
                  <product_id xsi:type=”xsd:string”>165</product_id>
                  <product_type xsi:type=”xsd:string”>bundle</product_type>
                  <sku xsi:type=”xsd:string”>mycomputerparts</sku>
                  <name xsi:type=”xsd:string”>My Computer Parts</name>
                  <price xsi:type=”xsd:string”>450.0000</price>
</item>
<item xsi:type=”ns1:salesOrderItemEntity”>
                  <item_id xsi:type=”xsd:string”>2</item_id>
                  <order_id xsi:type=”xsd:string”>1</order_id>
                  <product_id xsi:type=”xsd:string”>139</product_id>
                  <product_type xsi:type=”xsd:string”>simple</product_type>
                  <sku xsi:type=”xsd:string”>nzxtlexa</sku>
                  <name xsi:type=”xsd:string”>NZXT Lexa Silver Aluminum ATX Mid-Tower Case (Default)</name>
                  <price xsi:type=”xsd:string”>150.0000</price>
</item>
<item xsi:type=”ns1:salesOrderItemEntity”>
                  <item_id xsi:type=”xsd:string”>3</item_id>
                  <order_id xsi:type=”xsd:string”>1</order_id>
                  <product_id xsi:type=”xsd:string”>148</product_id>
                  <product_type xsi:type=”xsd:string”>simple</product_type>
                  <sku xsi:type=”xsd:string”>amda64</sku>
                  <name xsi:type=”xsd:string”>AMD A64 X2 3800+ 2.0GHz OEM</name>
                  <price xsi:type=”xsd:string”>100.0000</price>
</item>
<item xsi:type=”ns1:salesOrderItemEntity”>
                  <item_id xsi:type=”xsd:string”>4</item_id>
                  <order_id xsi:type=”xsd:string”>1</order_id>
                  <product_id xsi:type=”xsd:string”>149</product_id>
                  <product_type xsi:type=”xsd:string”>simple</product_type>
                  <sku xsi:type=”xsd:string”>1tb7200</sku>
                  <name xsi:type=”xsd:string”>Western Digital – 1TB HD – 7200RPM</name>
                  <price xsi:type=”xsd:string”>300.0000</price>
</item>
While you are synchronising a Sales Order to another system, you can’t copy all the prices of each item. It will give you a wrong total amount (450 150 100 300 = 1000). To overcome this situation, your integration logic should directly take the price of the Bundle product and ignore all the other prices from the Bundle items.

Get in touch today to see how we can help you.