Skip to main content

Order export

Orders are queued for export once they are placed. 

Customer data

The customer is pushed with the order, as described here. Note that even if an order is placed anonymously, a customer is still created in NetSuite, since it has no concept of anonymous orders.

Shipping Address

The shipping address is pushed with the order. As in Magento, the shipping address on the order is a separate entity from the customer's shipping address, so that even if the customer changes it in the future, the one on the order stays the same.

Billing Address

The billing address is pushed with the order. As in Magento, the billing address on the order is a separate entity from the customer's billing address, so that even if the customer changes it in the future, the one on the order stays the same.

Shipping Method

For the connector to work properly, a few settings must be defined at NetSuite->Settings->Shipping options:

SettingExample valueDescription
Mapping between Magento and NetSuite shipping methods

Free-''-2

UPS ground-''-5

A mapping between the active shipping methods in Magento and the defined shipping items in Magento. Each line has 3 options:

  • Shipping method name - a drop down from where you can select any shipping method defined & activated in Magento
  • Shipping Description - not used currently, leave it empty
  • NetSuite internal id - the internal id of a shipping item defined in NetSuite at Lists->Accounting->Shipping Items

Note that the shipping costs will be passed from Magento and they will override the values defined in NetSuite. So this means that you don't necessarily have to have a one to one mapping between Magento and NetSuite, just make it granular enough so that it suits your needs.

If none of the rules above match, use this NetSuite shipping item internal id:2As described, a "catch all" for shipping methods that are not mapped. NetSuite won't take in an order with a shipping method that is not mapped, so we still need to pass in a value.
Mapping between Magento Tracking number types and NetSuite shipping methods

UPS - 2

DHL - 5

NetSuite will pass back tracking information. Magento supports a pre-defined number of carriers for auto tracking (i.e. clicking a tracking number will take you to the carrier page for the parcel). This map ensures that if you use one of the pre-defined carriers (DHL, UPS, USPS, Fedex), automatic tracking checking will work. If you don't use any of the carriers Magento supports, you can ignore this map.
Default tracking number carrierDHLA catch all for if the above map does not match. It defaults to "Custom", which means that the customer will still see the tracking number but without the ability to track the order.
Send tracking information when receiving tracking numbers from NetSuiteYesWhether the customer is announced about the tracking number addition/change. This will be done via the standard shipping update mail in Magento. If you choose not to use this feature, the customer can still see the tracking number in his account, but there will be no notice when one gets added or changed.

 

Payment method

Payment method mapping

As with shipping methods, you need to define a one to one map between the Magento payment methods and the NetSuite ones. Each line contains:

  • Magento payment method - pick the Magento payment method from the drop down. All active methods are listed
  • Credit card - it is common to have a single payment method in Magento (i.e. "Cybersource"), but to want to map it to a different NetSuite payment methods in NetSuite based on the credit card type. If in this case, pick a specific credit card type from this drop down. Otherwise, choose "All"
  • NetSuite internal id - the internal id of a payment method defined in NetSuite at Setup->Accounting->Accounting Lists, "Payment Method" view

Payment processor mapping

The payment processor mapping allows you to define the fields and behavior for the passed payment method. Each line item contains:

  • Website. For credit card processing, you may choose to use a different merchant account for each website. This setting allows to define the mapping for a specific website or for "All"
  • Payment method - Drop down from where you can select any active Magento payment method
  • NetSuite Internal Id - the internal id of the credit card processor defined in NetSuite at Setup->Accounting->Credit Card Processing. If the specific method does not require credit card processing, you can leave this empty
  • Payment Processor helper class - defines a few extra fields that are to be passed per payment method. Options are:
    • Simple - no extra information is passed other than the mapped payment method. Can be used for most "general" payment methods
    • Check - used for check/money order. Will also pass the check/money order number
    • PayPal / PayPal Express - supports passing PayPal related information
    • Cybersource - use for Cybersource in normal (no tokenization) mode
    • Cybersourcetokenize - use with Cybersource in tokenization mode

Make sure you map all the used payment methods. A common omission is "No Payment Information required", which appears when the whole order is covered by user points/store credit. If this is a valid use case for your store, make sure you also map it.

Authorize & Capture mode

If both authorization and capturing is done in Magento, then the integration with NetSuite will be smooth. There is no payment information that needs to be passed except the method name.

Authorize only mode

If you choose to authorize in Magento but capture in NetSuite, then your only option is Cybersource. You also need to:

Cybersource and multiple shipments in authorize-only mode

If you need to do multiple charges for the same order (i.e. charge on shipment while doing split shipments), there are two options:

CyberSource split shipments

This is the least flexible method, described at https://support.cybersource.com/cybskb/index?page=content&id=C1108&actp=LIST . Basically, if your payment processor allows to, you can charge the same authorization multiple times with the condition that your total charge never goes over the initial authorization. Contact CyberSource to check if your setup supports this.

To use this method, simply choose "Cybersource" as a "Payment Processor helper class" for the payment method to payment processor mapping. The following card-related information will go to NetSuite:

  • card type
  • transaction id (part of the P/N ref number)

Tokenization

CyberSource tokenization is the more flexible option in that a CC token will allow you to charge multiple times no matter the payment processor and even charge more than the authorized amount. To use this approach:

  1. Contact CyberSource to enable tokenization for your account
  2. Make sure the Magento extension you are using supports tokenization
  3. Make sure the NetSuite payment methods you are using have the "Tokenized" checkbox checked
  4. Inside the NetSuite connector config, choose "Cybersourcetokenized" as a "Payment Processor helper class" for the payment method to payment processor mapping

The following information gets sent to NetSuite:

  • card type
  • card token (note that although this is sent as part of the CC number field, it is not the number but the token)
  • card expiration date
  • authorization code 
  • transaction id (part of the P/N ref number)

Line items and discount

For a product to be passed to NetSuite, it must have a NetSuite internal id, i.e. it must be imported from NetSuite or linked as described here. NetSuite will not take in random SKUs, i.e. products created in Magento that it does not know about.

For discounts, a discount item must be defined in NetSuite. Then its NetSuite internal id must be entered at NetSuite->Settings->Order Settings->Discount item internal id. All the discounts in Magento will be aggregated under this item. The rate will also be overridden. In case the rate is not overridden, contact NetSuite support. On some instances this feature is off. 

Order states

A Magento to NetSuite (and vice-versa) status mapping can be defined at NetSuite->Settings->Order Settings->Status Mapping. Every status change in NetSuite will update the status in Magento according to this map. Note that this does not work the other way around though: only the initials status in Magento will be pushed to NetSuite according to map, all other status changes in Magento will be ignored, as it is assumed all order processing is done in NetSuite.

Custom fields

Custom fields can also be pushed to NetSuite. You can define a map at NetSuite->Settings->Order Settings->Custom fields that are to be synched between Magento and NetSuite. Each line contains:

  • NetSuite field name - the field name as defined in NetSuite. Must be defined at Sales Order level
  • NetSuite field type:
    • custom field - simple : any field of a simple type, i.e. string, text area, number, date etc
    • custom field list : field of type list
    • standard : an order standard field. The list of possible standard fields can be found in the SuiteTalk documentation
  • NetSuite list internal id: the internal id of the list, in case the type of the field is list. Leave it empty otherwise
  • Value type:
    • Magento order attribute - whether the value to be passed is an attribute of the Magento order object
    • Fixed value: pass the value exactly as defined in the next field. Usecase: always pass the value of "Magento" to a "channel" field
  • Value. If value type is fixed, the value here will be passed with the order as-is. If value type is "Magento order attribute", then you need to pass the attribute exactly as it appears as a column name in the sales_flat_order table.