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:
| Setting | Example value | Description |
|---|---|---|
| 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:
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: | 2 | As 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 carrier | DHL | A 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 NetSuite | Yes | Whether 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
Authorize only mode
If you choose to authorize in Magento but capture in NetSuite, then your only option is Cybersource. You also need to:
- make sure the same NetSuite payment processor is enabled in Magento and in NetSuite
- make sure "Allow Request ID to Meet Payment Card Field Requirements" is enabled in NetSuite's credit card processor settings
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:
- Contact CyberSource to enable tokenization for your account
- Make sure the Magento extension you are using supports tokenization
- Make sure the NetSuite payment methods you are using have the "Tokenized" checkbox checked
- 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.
No comments to display
No comments to display