Integration Management
Updated on January 17th, 2023
-
Order Sources
- 1ShoppingCart
- Amazon Direct Fulfillment
-
Amazon Seller Central
- Amazon - Access to Orders.ListOrders is denied
- Amazon - No valid marketplaces
- Amazon Could Not Upload Tracking
- Amazon Inventory Error - An FBA offer already exists on this SKU
- Amazon Inventory Sync Issue
- Amazon Marketplace Alerts
- Amazon Marketplace Extra Fields
- Amazon Marketplace Integration Overview
- Amazon Marketplace Settings
- Amazon orders marked as late even when shipped same day
- Amazon Ship Confirmation Delays
- Amazon Ship Methods
- Error: Amazon MWS Developer Access is About to Expire
- Missing Amazon Seller Central Orders
- Setting Up Amazon Seller Central
- ApparelMagic
- ArcDynamic
- AspDotNetStorefront
- BigCommerce
- BlueCherry
- BrightSites
- ByDesign Freedom
- Centra
- ChannelAdvisor
- Cin7
- ClickBank
- Cratejoy
- CS Cart
- CSV Cart
- Dear Systems
- DemandStream
- DSCO
-
Ebay
- Ebay Auth token is expired
- Ebay Error - Variation level SKU should be supplied to revise a Multi-SKU item.
- eBay Integration Overview
- Ebay listings not syncing with Extensiv Integration Manager
- eBay Settings
- How to find "Sales Record Number" in eBay?
- Inventory-based listing management is not currently supported by this tool - Ebay
- Setting Up Ebay
- Using eBay Global Shipping Program
- You've reached the number of items you can list - Ebay
- Ecwid
- Etsy
- Faire
- Feature List
- Forecastly
- Goldbelly
- Google Shopping
- Groupon
- Houzz
- Infusionsoft
- Integral Group
- Joor
- Lightspeed Retail
- Linnworks
-
Magento
- Access Denied - Magento
- Invalid api path - Magento
- Invalid carrier specified - Magento
- Magento 1 Settings
- Magento 2 Permissions Error
- Magento 2 Settings
- Magento orders missing products
- Magento Shipment Emails Don't Include Tracking Number
- Setting Up Magento
- Setting Up Magento 2
- SOAP extension is not loaded - Error Message
- Supported Plugins - Magento
- Neto
- NetSuite
- Nexternal
- OnBuy
- OpenCart
-
Order Manager
- Extensiv Order Manager Integration Overview
- Extensiv Order Manager Settings
- Extensiv Order Manager Warehouse Name or Warehouse ID error
- Initialize Inventory Sync For New Extensiv Order Manager Products
- Setting Up Extensiv Order Manager
- Setting Up ShipStation as an Order Destination for Extensiv Order Management
- OrderBot
-
OrderStream
- CommerceHub Confirmation Error - PO does not exist for this relationship
- CommerceHub Confirmation Error - PO is not in a state where this action can be applied
- CommerceHub Inventory Not Updating
- CommerceHub Orders Late or Not Shipped
- CommerceHub OrderStream Invoices
- CommerceHub OrderStream Settings
- CommerceHub Required Resources
- CommerceHub Walmart.com
- Performing tests inside CommerceHub Testing Portal
- Setting Up CommerceHub OrderStream
- Setting up Merchant SKUs and UPCs - CommerceHub
- Overstock.com
- PayPal
-
PrestaShop
- Blank Tracking Number - PrestaShop
- Error pulling mapping code from PrestaShop
- Fatal Error - PrestaShop
- Internal error. To see this error please display the PHP errors. - PrestaShop
- Internal Server Error 500 - PrestaShop
- PrestaShop Settings
- Setting Up PrestaShop
- Shipping Confirmation Error - PrestaShop
- Unexpected HTTP Status 302 - PrestaShop
- Pulse Commerce
- Quickbooks
- Radial
- SalesForce
- Shift4Shop - 3DCart
- ShipStation
-
Shopify
- How to Ignore Shopify POS Orders
- Setting Up Shopify
- Shopify - Line Items: must be stocked at the same location
- Shopify - This action requires write_orders scope
- Shopify Filter Order Rules
- Shopify Integration Overview
- Shopify Inventory Not Syncing
- Shipping Method Setup - Shopify
- Shopify Payment Status Info
- Shopify Products say: Unavailable on Extensiv Integration Manager
- Shopify Settings
- SPS Commerce
- Squarespace
- Sticky.io
- Teapplix
- UltraCart
- Uniware ClearConnect
- Unleashed
- Veeqo
- Vend POS
- Vin eRetail
- Volusion
- Walmart Marketplace & DSV
- Wayfair
- Web Shop Manager
- Wish
-
WooCommerce
- API key provided does not have write permissions - WooCommerce
- Cannot communicate securely with peer - WooCommerce
- Cannot connect to WooCommerce site
- Conflicting Order Numbers - WooCommerce
- Error adding notes to order - WooCommerce
- Fix WooCommerce Permissions
- Invalid response from WooCommerce
- Setting Up WooCommerce
- Setting WooCommerce Timezone
- Sorry, you are not allowed to create resources - WooCommerce
- WooCommerce Confirmation Methods
- WooCommerce Inventory Sync
- WooCommerce reported a file not found error
- WooCommerce Settings
- WooCommerce Ship Methods
- Xero
- XML Cart
- Yahoo Stores - Small Business
- Zoho Inventory
Blank Tracking Number - PrestaShop
Problem
PrestaShop generates Shipping Confirmation Email that contains an empty tracking number:
-
Email shows "{shipping_number}" instead of the actual tracking number.
-
Email shows "{followup}" instead of the actual tracking link.
-
Email shows a blank tracking number.
Solution
PrestaShop server admin needs to modify two source files: Order.php & WebserviceRequest.php
Create a back up
Please create a back up Order.php & WebserviceRequest.php before making changes to these files in case you need to restore the originals!
- Please open PrestaShop root directory on server. Make sure that you have permission to modify PrestaShop source files.
- Go to classes/order directory, and open Order.php.
Find function setWsShippingNumber($shipping_number) (around line 2215), and insert the following line as marked:
public function setWsShippingNumber($shipping_number) { $id_order_carrier = Db::getInstance()->getValue(' SELECT `id_order_carrier` FROM `'._DB_PREFIX_.'order_carrier` WHERE `id_order` = '.(int)$this->id); if ($id_order_carrier) { $order_carrier = new OrderCarrier($id_order_carrier); $order_carrier->tracking_number = $shipping_number; $this->shipping_number = $shipping_number; // <----------Insert this line ! $order_carrier->update(); } else { $this->shipping_number = $shipping_number; } return true; }
Find function setCurrentState($id_order_state, $id_employee = 0) (around line 1545), and add following lines to that function:
public function setCurrentState($id_order_state, $id_employee = 0) { if (empty($id_order_state)) { return false; } $history = new OrderHistory(); $history->id_order = (int)$this->id; $history->id_employee = (int)$id_employee; $history->changeIdOrderState((int)$id_order_state, $this); $res = Db::getInstance()->getRow(' SELECT `invoice_number`, `invoice_date`, `delivery_number`, `delivery_date` FROM `'._DB_PREFIX_.'orders` WHERE `id_order` = '.(int)$this->id); $this->invoice_date = $res['invoice_date']; $this->invoice_number = $res['invoice_number']; $this->delivery_date = $res['delivery_date']; $this->delivery_number = $res['delivery_number']; $this->update(); $carrier = new Carrier($this->id_carrier, $this->id_lang); // <----------Insert this line ! $template_vars = array( // <----------Insert this line ! '{shipping_number}' => $this->shipping_number, // <----------Insert this line ! '{followup}' => str_replace('@', $this->shipping_number, $carrier->url), // <----------Insert this line ! ); // <----------Insert this line ! $history->addWithemail(true, $template_vars); }
'{followup}' should match Tracking URL placeholder in your Email Template
3. Make sure to save Order.php file before you close it.
Modify classes/webservice/WebserviceRequest.php:
4. Go to classes/webservice directory, and open file WebserviceRequest.php.
Find function saveEntityFromXml($successReturnCode) (around line 1371), and insert following lines (around line 1425):
...... foreach ($xmlEntities as $xmlEntity) { /** @var SimpleXMLElement $xmlEntity */ $attributes = $xmlEntity->children(); /** @var ObjectModel $object */ $retrieve_data = $this->resourceConfiguration['retrieveData']; if ($this->method == 'POST') { $object = new $retrieve_data['className'](); } elseif ($this->method == 'PUT') { $object = new $retrieve_data['className']((int)$attributes->id); if (!$object->id) { $this->setError(404, 'Invalid ID', 92); return false; } } $this->objects[] = $object; $i18n = false; if(!empty($this->resourceConfiguration['fields']['current_state'])){ // <----------Insert this line! (Around Line 1425) $prop = $this->resourceConfiguration['fields']['current_state']; // <----------Insert this line! unset($this->resourceConfiguration['fields']['current_state']); // <----------Insert this line! $this->resourceConfiguration['fields']['current_state'] = $prop; // <----------Insert this line! } // <----------Insert this line! // attributes foreach ($this->resourceConfiguration['fields'] as $fieldName => $fieldProperties) { $sqlId = $fieldProperties['sqlId']; if ($fieldName == 'id') { $sqlId = $fieldName; } if (isset($attributes->$fieldName) && isset($fieldProperties['sqlId']) && (!isset($fieldProperties['i18n']) || !$fieldProperties['i18n'])) { if (isset($fieldProperties['setter'])) { ......
5. Make sure to save WebserviceRequest.php before you close it.