Version Notes
2.1.3
Download this release
Release Info
Developer | EcomwiseTeam |
Extension | Ecomwise_Mshop |
Version | 2.1.3 |
Comparing to | |
See all releases |
Version 2.1.3
- app/code/community/Ecomwise/Mshop/Block/Adminhtml/Api/Tab/Rolesedit.php +27 -0
- app/code/community/Ecomwise/Mshop/Block/Adminhtml/Catalog/Product/Edit/Tab/Inventory.php +11 -0
- app/code/community/Ecomwise/Mshop/Block/Adminhtml/Catalog/Product/Edit/Tabs.php +166 -0
- app/code/community/Ecomwise/Mshop/Block/Adminhtml/Catalog/Product/Price/Tier.php +8 -0
- app/code/community/Ecomwise/Mshop/Block/Adminhtml/Sales/Invoice/View.php +24 -0
- app/code/community/Ecomwise/Mshop/Block/Product/Price.php +63 -0
- app/code/community/Ecomwise/Mshop/Block/System/Config/Version.php +7 -0
- app/code/community/Ecomwise/Mshop/Helper/Data.php +5 -0
- app/code/community/Ecomwise/Mshop/Helper/Product.php +135 -0
- app/code/community/Ecomwise/Mshop/Model/Api/Server/Adapter/Soap.php +70 -0
- app/code/community/Ecomwise/Mshop/Model/Api/Server/V2/Adapter/Soap.php +49 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Api.php +367 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Api/V2.php +1217 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Attribute/Api.php +465 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Attribute/Api/V2.php +5 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Attribute/Tierprice.php +105 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Category/Api.php +5 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Category/Api/V2.php +87 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Product/Api/V2.php +250 -0
- app/code/community/Ecomwise/Mshop/Model/Catalog/Product/Type/Price.php +84 -0
- app/code/community/Ecomwise/Mshop/Model/Config/Source/Orderattributes.php +28 -0
- app/code/community/Ecomwise/Mshop/Model/Customer/Api/V2.php +35 -0
- app/code/community/Ecomwise/Mshop/Model/Observer.php +34 -0
- app/code/community/Ecomwise/Mshop/Model/Resource/Eav/Tierprice.php +41 -0
- app/code/community/Ecomwise/Mshop/Model/Sales/Api/V2.php +1538 -0
- app/code/community/Ecomwise/Mshop/Model/System/Config/Apply.php +22 -0
- app/code/community/Ecomwise/Mshop/Model/Utility/Api.php +284 -0
- app/code/community/Ecomwise/Mshop/Model/Utility/Api/V2.php +130 -0
- app/code/community/Ecomwise/Mshop/etc/api.xml +829 -0
- app/code/community/Ecomwise/Mshop/etc/config.xml +145 -0
- app/code/community/Ecomwise/Mshop/etc/system.xml +305 -0
- app/code/community/Ecomwise/Mshop/etc/wsdl.xml +2928 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-install-2.0.1.php +17 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.10-2.1.0.php +16 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.3-2.0.4.php +9 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.4-2.0.5.php +7 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.5-2.0.6.php +7 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.6-2.0.7.php +367 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.7-2.0.8.php +106 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.8-2.0.9.php +7 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.9-2.0.10.php +7 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.1.0-2.1.1.php +50 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.1.1-2.1.2.php +8 -0
- app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.1.2-2.1.3.php +24 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/price/tier_plus.phtml +182 -0
- app/design/adminhtml/default/default/template/catalog/product/tab/inventory_plus.phtml +48 -0
- app/etc/modules/Ecomwise_Mshop.xml +10 -0
- package.xml +18 -0
app/code/community/Ecomwise/Mshop/Block/Adminhtml/Api/Tab/Rolesedit.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Block_Adminhtml_Api_Tab_Rolesedit extends Mage_Adminhtml_Block_Api_Tab_Rolesedit {
|
3 |
+
|
4 |
+
public function __construct() {
|
5 |
+
parent::__construct();
|
6 |
+
|
7 |
+
$rid = Mage::app()->getRequest()->getParam('rid', false);
|
8 |
+
|
9 |
+
$resources = Mage::getModel('api/roles')->getResourcesList();
|
10 |
+
|
11 |
+
$rules_set = Mage::getResourceModel('api/rules_collection')->getByRoles($rid)->load();
|
12 |
+
|
13 |
+
$selrids = array();
|
14 |
+
|
15 |
+
foreach ($rules_set->getItems() as $item) {
|
16 |
+
if (array_key_exists(strtolower($item->getResource_id()), $resources) && $item->getApiPermission() == 'allow') {
|
17 |
+
$resources[$item->getResource_id()]['checked'] = true;
|
18 |
+
array_push($selrids, $item->getResource_id());
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
$this->setSelectedResources($selrids);
|
23 |
+
|
24 |
+
$this->setTemplate('api/rolesedit.phtml');
|
25 |
+
}
|
26 |
+
}
|
27 |
+
?>
|
app/code/community/Ecomwise/Mshop/Block/Adminhtml/Catalog/Product/Edit/Tab/Inventory.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Block_Adminhtml_Catalog_Product_Edit_Tab_Inventory extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Inventory{
|
3 |
+
|
4 |
+
public function __construct()
|
5 |
+
{
|
6 |
+
parent::__construct();
|
7 |
+
$this->setTemplate('catalog/product/tab/inventory_plus.phtml');
|
8 |
+
}
|
9 |
+
|
10 |
+
|
11 |
+
}
|
app/code/community/Ecomwise/Mshop/Block/Adminhtml/Catalog/Product/Edit/Tabs.php
ADDED
@@ -0,0 +1,166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Block_Adminhtml_Catalog_Product_Edit_Tabs extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs{
|
3 |
+
|
4 |
+
protected function _prepareLayout()
|
5 |
+
{
|
6 |
+
|
7 |
+
$product = $this->getProduct();
|
8 |
+
|
9 |
+
if (!($setId = $product->getAttributeSetId())) {
|
10 |
+
$setId = $this->getRequest()->getParam('set', null);
|
11 |
+
}
|
12 |
+
|
13 |
+
if ($setId) {
|
14 |
+
$groupCollection = Mage::getResourceModel('eav/entity_attribute_group_collection')
|
15 |
+
->setAttributeSetFilter($setId);
|
16 |
+
if(version_compare(Mage::getVersion(), "1.6.0.0", ">=")) {
|
17 |
+
$groupCollection->setSortOrder();
|
18 |
+
}
|
19 |
+
|
20 |
+
$groupCollection->load();
|
21 |
+
|
22 |
+
foreach ($groupCollection as $group) {
|
23 |
+
$attributes = $product->getAttributes($group->getId(), true);
|
24 |
+
// do not add groups without attributes
|
25 |
+
|
26 |
+
//Zend_Debug::dump($attributes); exit();
|
27 |
+
|
28 |
+
foreach ($attributes as $key => $attribute) {
|
29 |
+
if($attribute->getAttributeCode() == 'mamut_future_stock'){
|
30 |
+
unset($attributes[$key]);
|
31 |
+
}
|
32 |
+
|
33 |
+
if( !$attribute->getIsVisible() ) {
|
34 |
+
unset($attributes[$key]);
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
if (count($attributes)==0) {
|
39 |
+
continue;
|
40 |
+
}
|
41 |
+
|
42 |
+
$this->addTab('group_'.$group->getId(), array(
|
43 |
+
'label' => Mage::helper('catalog')->__($group->getAttributeGroupName()),
|
44 |
+
'content' => $this->_translateHtml($this->getLayout()->createBlock($this->getAttributeTabBlock(),
|
45 |
+
'adminhtml.catalog.product.edit.tab.attributes')->setGroup($group)
|
46 |
+
->setGroupAttributes($attributes)
|
47 |
+
->toHtml()),
|
48 |
+
));
|
49 |
+
}
|
50 |
+
|
51 |
+
if (Mage::helper('core')->isModuleEnabled('Mage_CatalogInventory')) {
|
52 |
+
|
53 |
+
$content = $this->getLayout()->createBlock('adminhtml/catalog_product_edit_tab_inventory')->toHtml();
|
54 |
+
//if(Mage::getStoreConfig("mshop/mamut_stock/show_fields") == "1"){
|
55 |
+
$content .= $this->getLayout()->createBlock('mshop/adminhtml_catalog_product_edit_tab_inventory')->toHtml();
|
56 |
+
//}
|
57 |
+
$this->addTab('inventory', array(
|
58 |
+
'label' => Mage::helper('catalog')->__('Inventory'),
|
59 |
+
'content' =>$this->_translateHtml($content)
|
60 |
+
));
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Don't display website tab for single mode
|
65 |
+
*/
|
66 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
67 |
+
$this->addTab('websites', array(
|
68 |
+
'label' => Mage::helper('catalog')->__('Websites'),
|
69 |
+
'content' => $this->_translateHtml($this->getLayout()
|
70 |
+
->createBlock('adminhtml/catalog_product_edit_tab_websites')->toHtml()),
|
71 |
+
));
|
72 |
+
}
|
73 |
+
|
74 |
+
$this->addTab('categories', array(
|
75 |
+
'label' => Mage::helper('catalog')->__('Categories'),
|
76 |
+
'url' => $this->getUrl('*/*/categories', array('_current' => true)),
|
77 |
+
'class' => 'ajax',
|
78 |
+
));
|
79 |
+
|
80 |
+
$this->addTab('related', array(
|
81 |
+
'label' => Mage::helper('catalog')->__('Related Products'),
|
82 |
+
'url' => $this->getUrl('*/*/related', array('_current' => true)),
|
83 |
+
'class' => 'ajax',
|
84 |
+
));
|
85 |
+
|
86 |
+
$this->addTab('upsell', array(
|
87 |
+
'label' => Mage::helper('catalog')->__('Up-sells'),
|
88 |
+
'url' => $this->getUrl('*/*/upsell', array('_current' => true)),
|
89 |
+
'class' => 'ajax',
|
90 |
+
));
|
91 |
+
|
92 |
+
$this->addTab('crosssell', array(
|
93 |
+
'label' => Mage::helper('catalog')->__('Cross-sells'),
|
94 |
+
'url' => $this->getUrl('*/*/crosssell', array('_current' => true)),
|
95 |
+
'class' => 'ajax',
|
96 |
+
));
|
97 |
+
|
98 |
+
$storeId = 0;
|
99 |
+
if ($this->getRequest()->getParam('store')) {
|
100 |
+
$storeId = Mage::app()->getStore($this->getRequest()->getParam('store'))->getId();
|
101 |
+
}
|
102 |
+
|
103 |
+
$alertPriceAllow = Mage::getStoreConfig('catalog/productalert/allow_price');
|
104 |
+
$alertStockAllow = Mage::getStoreConfig('catalog/productalert/allow_stock');
|
105 |
+
|
106 |
+
if (($alertPriceAllow || $alertStockAllow) && !$product->isGrouped()) {
|
107 |
+
$this->addTab('productalert', array(
|
108 |
+
'label' => Mage::helper('catalog')->__('Product Alerts'),
|
109 |
+
'content' => $this->_translateHtml($this->getLayout()
|
110 |
+
->createBlock('adminhtml/catalog_product_edit_tab_alerts', 'admin.alerts.products')->toHtml())
|
111 |
+
));
|
112 |
+
}
|
113 |
+
|
114 |
+
if( $this->getRequest()->getParam('id', false) ) {
|
115 |
+
if (Mage::helper('catalog')->isModuleEnabled('Mage_Review')) {
|
116 |
+
if (Mage::getSingleton('admin/session')->isAllowed('admin/catalog/reviews_ratings')){
|
117 |
+
$this->addTab('reviews', array(
|
118 |
+
'label' => Mage::helper('catalog')->__('Product Reviews'),
|
119 |
+
'url' => $this->getUrl('*/*/reviews', array('_current' => true)),
|
120 |
+
'class' => 'ajax',
|
121 |
+
));
|
122 |
+
}
|
123 |
+
}
|
124 |
+
if (Mage::helper('catalog')->isModuleEnabled('Mage_Tag')) {
|
125 |
+
if (Mage::getSingleton('admin/session')->isAllowed('admin/catalog/tag')){
|
126 |
+
$this->addTab('tags', array(
|
127 |
+
'label' => Mage::helper('catalog')->__('Product Tags'),
|
128 |
+
'url' => $this->getUrl('*/*/tagGrid', array('_current' => true)),
|
129 |
+
'class' => 'ajax',
|
130 |
+
));
|
131 |
+
|
132 |
+
$this->addTab('customers_tags', array(
|
133 |
+
'label' => Mage::helper('catalog')->__('Customers Tagged Product'),
|
134 |
+
'url' => $this->getUrl('*/*/tagCustomerGrid', array('_current' => true)),
|
135 |
+
'class' => 'ajax',
|
136 |
+
));
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Do not change this tab id
|
144 |
+
* @see Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs_Configurable
|
145 |
+
* @see Mage_Bundle_Block_Adminhtml_Catalog_Product_Edit_Tabs
|
146 |
+
*/
|
147 |
+
if (!$product->isGrouped()) {
|
148 |
+
$this->addTab('customer_options', array(
|
149 |
+
'label' => Mage::helper('catalog')->__('Custom Options'),
|
150 |
+
'url' => $this->getUrl('*/*/options', array('_current' => true)),
|
151 |
+
'class' => 'ajax',
|
152 |
+
));
|
153 |
+
}
|
154 |
+
|
155 |
+
}
|
156 |
+
else {
|
157 |
+
$this->addTab('set', array(
|
158 |
+
'label' => Mage::helper('catalog')->__('Settings'),
|
159 |
+
'content' => $this->_translateHtml($this->getLayout()
|
160 |
+
->createBlock('adminhtml/catalog_product_edit_tab_settings')->toHtml()),
|
161 |
+
'active' => true
|
162 |
+
));
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
}
|
app/code/community/Ecomwise/Mshop/Block/Adminhtml/Catalog/Product/Price/Tier.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Block_Adminhtml_Catalog_Product_Price_Tier extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Tier{
|
3 |
+
|
4 |
+
public function __construct()
|
5 |
+
{
|
6 |
+
$this->setTemplate('catalog/product/edit/price/tier_plus.phtml');
|
7 |
+
}
|
8 |
+
}
|
app/code/community/Ecomwise/Mshop/Block/Adminhtml/Sales/Invoice/View.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecomwise_Mshop_Block_Adminhtml_Sales_Invoice_View extends Mage_Adminhtml_Block_Sales_Order_Invoice_View{
|
4 |
+
|
5 |
+
public function getHeaderText()
|
6 |
+
{
|
7 |
+
if ($this->getInvoice()->getEmailSent()) {
|
8 |
+
$emailSent = Mage::helper('sales')->__('the invoice email was sent');
|
9 |
+
}
|
10 |
+
else {
|
11 |
+
$emailSent = Mage::helper('sales')->__('the invoice email is not sent');
|
12 |
+
}
|
13 |
+
|
14 |
+
$mamut_id = $this->getInvoice()->getmamutInvoiceId();
|
15 |
+
|
16 |
+
if($mamut_id != null){
|
17 |
+
$mamut_string = " | Mamut Invoice id: #".$mamut_id;
|
18 |
+
}else{
|
19 |
+
$mamut_string = '';
|
20 |
+
}
|
21 |
+
return Mage::helper('sales')->__('Invoice #%1$s | %2$s | %4$s (%3$s) ', $this->getInvoice()->getIncrementId(), $this->getInvoice()->getStateName(), $emailSent, $this->formatDate($this->getInvoice()->getCreatedAtDate(), 'medium', true)).$mamut_string;
|
22 |
+
}
|
23 |
+
|
24 |
+
}
|
app/code/community/Ecomwise/Mshop/Block/Product/Price.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Block_Product_Price extends Mage_Catalog_Block_Product_Price{
|
3 |
+
|
4 |
+
public function getTierPrices($product = null)
|
5 |
+
{
|
6 |
+
if (is_null($product)) {
|
7 |
+
$product = $this->getProduct();
|
8 |
+
}
|
9 |
+
$prices = $product->getFormatedTierPrice();
|
10 |
+
|
11 |
+
$res = array();
|
12 |
+
if (is_array($prices)) {
|
13 |
+
foreach ($prices as $price) {
|
14 |
+
$price['price_qty'] = $price['price_qty']*1;
|
15 |
+
$price_type = $price['tier_type'];
|
16 |
+
|
17 |
+
if ($product->getPrice() != $product->getFinalPrice()) {
|
18 |
+
$productPrice = $product->getFinalPrice();
|
19 |
+
} else {
|
20 |
+
$productPrice = $product->getPrice();
|
21 |
+
}
|
22 |
+
|
23 |
+
if($price_type == 1 && $price['price'] < 100){
|
24 |
+
|
25 |
+
$price['price'] = $productPrice - ($productPrice * $price['price'])/100 ;
|
26 |
+
$price['website_price'] = $price['price'];
|
27 |
+
}
|
28 |
+
|
29 |
+
if ($price['price'] < $productPrice) {
|
30 |
+
$price['savePercent'] = ceil(100 - (( 100/$productPrice ) * $price['price'] ));
|
31 |
+
|
32 |
+
$tierPrice = Mage::app()->getStore()->convertPrice(
|
33 |
+
Mage::helper('tax')->getPrice($product, $price['website_price'])
|
34 |
+
);
|
35 |
+
$price['formated_price'] = Mage::app()->getStore()->formatPrice($tierPrice);
|
36 |
+
$price['formated_price_incl_tax'] = Mage::app()->getStore()->formatPrice(
|
37 |
+
Mage::app()->getStore()->convertPrice(
|
38 |
+
Mage::helper('tax')->getPrice($product, $price['website_price'], true)
|
39 |
+
)
|
40 |
+
);
|
41 |
+
|
42 |
+
if (Mage::helper('catalog')->canApplyMsrp($product)) {
|
43 |
+
$oldPrice = $product->getFinalPrice();
|
44 |
+
$product->setPriceCalculation(false);
|
45 |
+
$product->setPrice($tierPrice);
|
46 |
+
$product->setFinalPrice($tierPrice);
|
47 |
+
|
48 |
+
$this->getLayout()->getBlock('product.info')->getPriceHtml($product);
|
49 |
+
$product->setPriceCalculation(true);
|
50 |
+
|
51 |
+
$price['real_price_html'] = $product->getRealPriceHtml();
|
52 |
+
$product->setFinalPrice($oldPrice);
|
53 |
+
}
|
54 |
+
|
55 |
+
$res[] = $price;
|
56 |
+
}
|
57 |
+
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
+
return $res;
|
62 |
+
}
|
63 |
+
}
|
app/code/community/Ecomwise/Mshop/Block/System/Config/Version.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Block_System_Config_Version extends Mage_Adminhtml_Block_System_Config_Form_Field{
|
3 |
+
|
4 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element){
|
5 |
+
return (string) "v".Mage::getConfig()->getNode()->modules->Ecomwise_Mshop->version;
|
6 |
+
}
|
7 |
+
}
|
app/code/community/Ecomwise/Mshop/Helper/Data.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Helper_Data extends Mage_Core_Helper_Abstract
|
3 |
+
{
|
4 |
+
|
5 |
+
}
|
app/code/community/Ecomwise/Mshop/Helper/Product.php
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Helper_Product extends Mage_Catalog_Helper_Product{
|
3 |
+
|
4 |
+
public function getProduct($productId, $store, $identifierType = null) {
|
5 |
+
$loadByIdOnFalse = false;
|
6 |
+
if ($identifierType == null) {
|
7 |
+
if ((is_string($productId) && !preg_match("/^[+-]?[1-9][0-9]*$|^0$/", $productId))
|
8 |
+
||($product = Mage::getModel('catalog/product')->loadByAttribute('sku', $productId)) ) {
|
9 |
+
$identifierType = 'sku';
|
10 |
+
$loadByIdOnFalse = true;
|
11 |
+
} else {
|
12 |
+
$identifierType = 'id';
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
$product = Mage::getModel('catalog/product');
|
17 |
+
if ($store !== null) {
|
18 |
+
$product->setStoreId($store);
|
19 |
+
}
|
20 |
+
|
21 |
+
if ($identifierType == 'sku') {
|
22 |
+
$idBySku = $product->getIdBySku($productId);
|
23 |
+
if ($idBySku) {
|
24 |
+
$productId = $idBySku;
|
25 |
+
$loadByIdOnFalse = true;
|
26 |
+
}
|
27 |
+
if ($loadByIdOnFalse) {
|
28 |
+
$identifierType = 'id';
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
if ($identifierType == 'id' && is_numeric($productId)) {
|
33 |
+
$productId = !is_float($productId) ? (int) $productId : 0;
|
34 |
+
$product->load($productId);
|
35 |
+
}
|
36 |
+
|
37 |
+
return $product;
|
38 |
+
}
|
39 |
+
|
40 |
+
|
41 |
+
public function addImages(){
|
42 |
+
$result = true;
|
43 |
+
$dirPath = Mage::getBaseDir('var')."/import/mshop/images";
|
44 |
+
$dirTempPath = Mage::getBaseDir('var')."/import/mshop/temp";
|
45 |
+
if(!is_dir($dirTempPath)){
|
46 |
+
mkdir($dirTempPath,0777,true);
|
47 |
+
}
|
48 |
+
|
49 |
+
$logFile = Mage::getBaseDir('var')."/import/mshop/images/uploaded_images.csv";
|
50 |
+
|
51 |
+
|
52 |
+
if (is_dir($dirPath)) {
|
53 |
+
$product_images = array();
|
54 |
+
$d=dir($dirPath);
|
55 |
+
Mage::app()->setCurrentStore(0);
|
56 |
+
while($file = $d->read()) {
|
57 |
+
set_time_limit (15);
|
58 |
+
if ($file == '.' || $file == '..'){
|
59 |
+
continue;
|
60 |
+
}
|
61 |
+
|
62 |
+
$pos = strrpos($file, '.');
|
63 |
+
$fileName = substr($file,0,$pos);
|
64 |
+
$fileType = substr($file,$pos);
|
65 |
+
$productId = '';
|
66 |
+
|
67 |
+
$product_sku = str_replace("__backslash__", "\\", $fileName);
|
68 |
+
$product_sku = str_replace("__slash__", "/", $product_sku);
|
69 |
+
$product_sku = (in_array(substr($product_sku, -2 ),array('_1','_2', '_3', '_4', '_5', '_6', '_7', '_8', '_9'))) ? substr($product_sku, 0, -2) : $product_sku;
|
70 |
+
|
71 |
+
$product_images[$product_sku][] = $file;
|
72 |
+
|
73 |
+
}
|
74 |
+
$str = "The following images have been uploaded:\n";
|
75 |
+
foreach($product_images as $sku => $pimgs){
|
76 |
+
set_time_limit (30);
|
77 |
+
$product = Mage::getModel("catalog/product")->loadByAttribute('sku', $sku);
|
78 |
+
if($product){
|
79 |
+
//get media attribute for deleting puprpose
|
80 |
+
$product = Mage::getModel("catalog/product")->load($product->getId());
|
81 |
+
$attributes = $product->getTypeInstance(true)->getSetAttributes($product);
|
82 |
+
$media = $attributes['media_gallery'];
|
83 |
+
foreach ($product->getMediaGalleryImages() as $image) {
|
84 |
+
if ($media->getBackend ()->getImage ( $product, $image['file'])) {
|
85 |
+
$media->getBackend ()->removeImage ($product, $image['file']);
|
86 |
+
}
|
87 |
+
}
|
88 |
+
$product->save();
|
89 |
+
foreach($pimgs as $file){
|
90 |
+
$pos = strpos($file, '.');
|
91 |
+
|
92 |
+
$fileName = substr($file,0,$pos);
|
93 |
+
$default = (in_array(substr($fileName, -2 ),array('_1','_2', '_3', '_4', '_5', '_6', '_7', '_8', '_9'))) ? null : array('image', 'small_image','thumbnail');
|
94 |
+
|
95 |
+
if($product->getImage() == 'no_selection' && $default == null){
|
96 |
+
$default = array('image', 'small_image','thumbnail');
|
97 |
+
}
|
98 |
+
|
99 |
+
$product->addImageToMediaGallery ($dirPath."/".$file, $default, false, false);
|
100 |
+
$str .= $file.";\n";
|
101 |
+
|
102 |
+
exec('cp -rf '.dirname($dirPath).'/images/'.$file.' '.dirname($dirPath).'/temp/'.$file.'');
|
103 |
+
unlink(dirname($dirPath)."/images/".$file);
|
104 |
+
|
105 |
+
$resource = Mage::getSingleton('core/resource');
|
106 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
107 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
108 |
+
$table = $resource->getTableName('catalog_product_entity_varchar');
|
109 |
+
$attrImageId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','image');
|
110 |
+
$attrSmallImageId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','small_image');
|
111 |
+
$attrThumbnailId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','thumbnail');
|
112 |
+
$q = $cw->query("DELETE FROM ".$table." WHERE entity_id=".$product->getId()." AND attribute_id IN (".$attrImageId.",".$attrSmallImageId.",".$attrThumbnailId.") AND store_id>0 AND (value LIKE '%".$fileName."%' OR value='no_selection')");
|
113 |
+
|
114 |
+
}
|
115 |
+
$product->save();
|
116 |
+
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
$fp = fopen($logFile, 'w');
|
121 |
+
fwrite($fp, $str);
|
122 |
+
fclose($fp);
|
123 |
+
$result = true;
|
124 |
+
|
125 |
+
}else{
|
126 |
+
$result = false;
|
127 |
+
}
|
128 |
+
|
129 |
+
return $result;
|
130 |
+
}
|
131 |
+
}
|
132 |
+
|
133 |
+
|
134 |
+
|
135 |
+
|
app/code/community/Ecomwise/Mshop/Model/Api/Server/Adapter/Soap.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecomwise_Mshop_Model_Api_Server_Adapter_Soap extends Mage_Api_Model_Server_Adapter_Soap
|
4 |
+
{
|
5 |
+
/*This method is overriding in order to set proper charset
|
6 |
+
* added 'true' parameter to setHeader()
|
7 |
+
* */
|
8 |
+
public function run()
|
9 |
+
{
|
10 |
+
$apiConfigCharset = Mage::getStoreConfig("api/config/charset");
|
11 |
+
|
12 |
+
if ($this->getController()->getRequest()->getParam('wsdl') !== null) {
|
13 |
+
// Generating wsdl content from template
|
14 |
+
$io = new Varien_Io_File();
|
15 |
+
$io->open(array('path'=>Mage::getModuleDir('etc', 'Mage_Api')));
|
16 |
+
|
17 |
+
$wsdlContent = $io->read('wsdl.xml');
|
18 |
+
|
19 |
+
$template = Mage::getModel('core/email_template_filter');
|
20 |
+
|
21 |
+
$wsdlConfig = new Varien_Object();
|
22 |
+
$queryParams = $this->getController()->getRequest()->getQuery();
|
23 |
+
if (isset($queryParams['wsdl'])) {
|
24 |
+
unset($queryParams['wsdl']);
|
25 |
+
}
|
26 |
+
|
27 |
+
$wsdlConfig->setUrl(
|
28 |
+
htmlspecialchars(Mage::getUrl('*/*/*', array('_query'=>$queryParams) ))
|
29 |
+
);
|
30 |
+
$wsdlConfig->setName('Magento');
|
31 |
+
$wsdlConfig->setHandler($this->getHandler());
|
32 |
+
|
33 |
+
$template->setVariables(array('wsdl'=>$wsdlConfig));
|
34 |
+
|
35 |
+
|
36 |
+
$this->getController()->getResponse()
|
37 |
+
->clearHeaders()
|
38 |
+
->setHeader('Content-Type','text/xml; charset='.$apiConfigCharset, true)
|
39 |
+
->setBody(
|
40 |
+
preg_replace(
|
41 |
+
'/<\?xml version="([^\"]+)"([^\>]+)>/i',
|
42 |
+
'<?xml version="$1" encoding="'.$apiConfigCharset.'"?>',
|
43 |
+
$template->filter($wsdlContent)
|
44 |
+
)
|
45 |
+
);
|
46 |
+
} else {
|
47 |
+
try {
|
48 |
+
$this->_instantiateServer();
|
49 |
+
|
50 |
+
$this->getController()->getResponse()
|
51 |
+
->clearHeaders()
|
52 |
+
->setHeader('Content-Type','text/xml; charset='.$apiConfigCharset, true)
|
53 |
+
->setBody(
|
54 |
+
preg_replace(
|
55 |
+
'/<\?xml version="([^\"]+)"([^\>]+)>/i',
|
56 |
+
'<?xml version="$1" encoding="'.$apiConfigCharset.'"?>',
|
57 |
+
$this->_soap->handle()
|
58 |
+
)
|
59 |
+
);
|
60 |
+
} catch( Zend_Soap_Server_Exception $e ) {
|
61 |
+
$this->fault( $e->getCode(), $e->getMessage() );
|
62 |
+
} catch( Exception $e ) {
|
63 |
+
$this->fault( $e->getCode(), $e->getMessage() );
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
return $this;
|
68 |
+
}
|
69 |
+
|
70 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Api/Server/V2/Adapter/Soap.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecomwise_Mshop_Model_Api_Server_V2_Adapter_Soap extends Mage_Api_Model_Server_V2_Adapter_Soap
|
4 |
+
{
|
5 |
+
/*This method is overriding in order to set proper charset
|
6 |
+
* added 'true' parameter to setHeader()
|
7 |
+
* */
|
8 |
+
public function run()
|
9 |
+
{
|
10 |
+
$apiConfigCharset = Mage::getStoreConfig("api/config/charset");
|
11 |
+
|
12 |
+
if ($this->getController()->getRequest()->getParam('wsdl') !== null) {
|
13 |
+
$wsdlConfig = Mage::getModel('api/wsdl_config');
|
14 |
+
$wsdlConfig->setHandler($this->getHandler())
|
15 |
+
->init();
|
16 |
+
$this->getController()->getResponse()
|
17 |
+
->clearHeaders()
|
18 |
+
->setHeader('Content-Type','text/xml; charset='.$apiConfigCharset, true)
|
19 |
+
->setBody(
|
20 |
+
preg_replace(
|
21 |
+
'/<\?xml version="([^\"]+)"([^\>]+)>/i',
|
22 |
+
'<?xml version="$1" encoding="'.$apiConfigCharset.'"?>',
|
23 |
+
$wsdlConfig->getWsdlContent()
|
24 |
+
)
|
25 |
+
);
|
26 |
+
} else {
|
27 |
+
try {
|
28 |
+
$this->_instantiateServer();
|
29 |
+
|
30 |
+
$this->getController()->getResponse()
|
31 |
+
->clearHeaders()
|
32 |
+
->setHeader('Content-Type','text/xml; charset='.$apiConfigCharset, true)
|
33 |
+
->setBody(
|
34 |
+
preg_replace(
|
35 |
+
'/<\?xml version="([^\"]+)"([^\>]+)>/i',
|
36 |
+
'<?xml version="$1" encoding="'.$apiConfigCharset.'"?>',
|
37 |
+
$this->_soap->handle()
|
38 |
+
)
|
39 |
+
);
|
40 |
+
} catch( Zend_Soap_Server_Exception $e ) {
|
41 |
+
$this->fault( $e->getCode(), $e->getMessage() );
|
42 |
+
} catch( Exception $e ) {
|
43 |
+
$this->fault( $e->getCode(), $e->getMessage() );
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
return $this;
|
48 |
+
}
|
49 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Api.php
ADDED
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Api extends Mage_Catalog_Model_Product_Api{
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Set Visibility to Products in Store Views
|
6 |
+
*
|
7 |
+
* @param string $productSku
|
8 |
+
* @param int $storeViews
|
9 |
+
* @param int $visibilityLevel: possible values are: 1 � not visible, 2 �catalog, 3 �search, 4 � catalog, search.
|
10 |
+
* @return string
|
11 |
+
*/
|
12 |
+
public function setVisibility($productSku, $storeViews, $visibilityLevel){
|
13 |
+
|
14 |
+
if(!is_array($storeViews)){
|
15 |
+
return $this->_fault('not_passed_array');
|
16 |
+
}
|
17 |
+
|
18 |
+
$vis_level = intval($visibilityLevel);
|
19 |
+
|
20 |
+
if($vis_level != 1 && $vis_level != 2 && $vis_level != 3 && $vis_level != 4 ){
|
21 |
+
|
22 |
+
return $this->_fault('visibility_level_not_exists');
|
23 |
+
}
|
24 |
+
|
25 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $productSku);
|
26 |
+
if($product){
|
27 |
+
$product_id = $product->getId();
|
28 |
+
}else{
|
29 |
+
return $this->_fault('product_not_exists_sku');
|
30 |
+
}
|
31 |
+
|
32 |
+
$product = Mage::getModel('catalog/product')
|
33 |
+
->setStoreId(0)
|
34 |
+
->load($product_id);
|
35 |
+
|
36 |
+
$vis_def = $product->getVisibility();
|
37 |
+
|
38 |
+
$webstore = Mage::app()->getStores();
|
39 |
+
$store_array = array();
|
40 |
+
foreach($webstore as $store){
|
41 |
+
$store_id = $store->getId();
|
42 |
+
$store_array[] = $store_id;
|
43 |
+
}
|
44 |
+
|
45 |
+
foreach($storeViews as $storeId){
|
46 |
+
if(!in_array($storeId, $store_array)){
|
47 |
+
return $this->_fault("store_view_not_exists");
|
48 |
+
}
|
49 |
+
}
|
50 |
+
$succ_msg = '';
|
51 |
+
foreach($store_array as $storeId){
|
52 |
+
if(in_array($storeId, $storeViews)){
|
53 |
+
$vis = $visibilityLevel;
|
54 |
+
}else{
|
55 |
+
$vis = 1;
|
56 |
+
}
|
57 |
+
$product = Mage::getModel('catalog/product')
|
58 |
+
->setStoreId($storeId)
|
59 |
+
->load($product_id);
|
60 |
+
try{
|
61 |
+
$product->setVisibility($vis);
|
62 |
+
$product->save();
|
63 |
+
}catch(Mage_Core_Exception $e){
|
64 |
+
$this->_fault('visibility_not_set', $e->getMessage());
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
try{
|
69 |
+
$product = Mage::getModel('catalog/product')
|
70 |
+
->setStoreId(0)
|
71 |
+
->load($product_id);
|
72 |
+
$product->setVisibility($vis_def);
|
73 |
+
$product->save();
|
74 |
+
}catch(Mage_Core_Exception $e){
|
75 |
+
$this->_fault('visibility_not_set', $e->getMessage());
|
76 |
+
}
|
77 |
+
|
78 |
+
return Mage::helper('catalog')->__('The product visibility was set for store views: ').implode(',',$storeViews);
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Remove product from categories below category
|
83 |
+
*
|
84 |
+
* @param unknown_type $productCode
|
85 |
+
* @param unknown_type $rootCategory
|
86 |
+
*/
|
87 |
+
public function removeProductCategoriesBellow($productCode, $rootCategory){
|
88 |
+
|
89 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$productCode);
|
90 |
+
if($product){
|
91 |
+
$product_id = $product->getId();
|
92 |
+
}else{
|
93 |
+
return $this->_fault('product_not_exists_sku');
|
94 |
+
}
|
95 |
+
$categories = $product->getCategoryIds();
|
96 |
+
$category = Mage::getModel('catalog/category')->load($rootCategory);
|
97 |
+
$subcategories = $this->getChildrenCat($rootCategory);
|
98 |
+
if (count($subcategories) > 0){
|
99 |
+
foreach($categories as $productCat){
|
100 |
+
if(in_array($productCat, $subcategories)){
|
101 |
+
$key = array_search($productCat, $categories);
|
102 |
+
unset($categories[$key]);
|
103 |
+
}
|
104 |
+
}
|
105 |
+
}else{
|
106 |
+
return $this->_fault('no_subcategories');
|
107 |
+
}
|
108 |
+
if(!in_array($rootCategory, $categories)){
|
109 |
+
$categories[]= $rootCategory;
|
110 |
+
}
|
111 |
+
try{
|
112 |
+
$product->setCategoryIds($categories);
|
113 |
+
$product->save();
|
114 |
+
return Mage::helper('catalog')->__('Product was removed from categories bellow root category');
|
115 |
+
}catch(Mage_Core_Exception $e){
|
116 |
+
return $this->_fault('product_not_removed', $e->getMessage());
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
protected function getChildrenCat($catId){
|
121 |
+
|
122 |
+
$sub = array();
|
123 |
+
$category = Mage::getModel('catalog/category')->load($catId);
|
124 |
+
$subcategories = $category->getChildrenCategories();
|
125 |
+
if (count($subcategories) > 0){
|
126 |
+
foreach($subcategories as $subcategory){
|
127 |
+
$id = $subcategory->getId();
|
128 |
+
$sub[] = $id;
|
129 |
+
$sub = array_merge($sub, $this->getChildrenCat($id));
|
130 |
+
}
|
131 |
+
}
|
132 |
+
return $sub;
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Create configurable product
|
137 |
+
*
|
138 |
+
* @param int $set
|
139 |
+
* @param string $sku
|
140 |
+
* @param array $productData
|
141 |
+
* @return int : id of new configurable product
|
142 |
+
*/
|
143 |
+
public function createConfigurable( $set, $sku, $productData){
|
144 |
+
if ( !$set || !$sku) {
|
145 |
+
$this->_fault('data_invalid');
|
146 |
+
}
|
147 |
+
|
148 |
+
$product = Mage::getModel('catalog/product');
|
149 |
+
|
150 |
+
$product->setStoreId($this->_getStoreId())
|
151 |
+
->setAttributeSetId($set)
|
152 |
+
->setTypeId('configurable')
|
153 |
+
->setSku($sku);
|
154 |
+
|
155 |
+
if (isset($productData['website_ids']) && is_array($productData['website_ids'])) {
|
156 |
+
$product->setWebsiteIds($productData['website_ids']);
|
157 |
+
}
|
158 |
+
|
159 |
+
foreach ($product->getTypeInstance(true)->getEditableAttributes($product) as $attribute) {
|
160 |
+
if ($this->_isAllowedAttribute($attribute)
|
161 |
+
&& isset($productData[$attribute->getAttributeCode()])) {
|
162 |
+
$product->setData(
|
163 |
+
$attribute->getAttributeCode(),
|
164 |
+
$productData[$attribute->getAttributeCode()]
|
165 |
+
);
|
166 |
+
}
|
167 |
+
}
|
168 |
+
|
169 |
+
$this->_prepareDataForSave($product, $productData);
|
170 |
+
|
171 |
+
try {
|
172 |
+
if (is_array($errors = $product->validate())) {
|
173 |
+
$strErrors = array();
|
174 |
+
foreach($errors as $code=>$error) {
|
175 |
+
$strErrors[] = ($error === true)? Mage::helper('catalog')->__('Attribute "%s" is invalid.', $code) : $error;
|
176 |
+
}
|
177 |
+
$this->_fault('data_invalid', implode("\n", $strErrors));
|
178 |
+
}
|
179 |
+
|
180 |
+
$product->save();
|
181 |
+
} catch (Mage_Core_Exception $e) {
|
182 |
+
$this->_fault('data_invalid', $e->getMessage());
|
183 |
+
}
|
184 |
+
|
185 |
+
return $product->getId();
|
186 |
+
}
|
187 |
+
|
188 |
+
protected function _prepareDataForSave ($product, $productData){
|
189 |
+
|
190 |
+
if (isset($productData['categories']) && is_array($productData['categories'])) {
|
191 |
+
$product->setCategoryIds($productData['categories']);
|
192 |
+
}
|
193 |
+
if (isset($productData['websites']) && is_array($productData['websites'])) {
|
194 |
+
foreach ($productData['websites'] as &$website) {
|
195 |
+
if (is_string($website)) {
|
196 |
+
try {
|
197 |
+
$website = Mage::app()->getWebsite($website)->getId();
|
198 |
+
} catch (Exception $e) { }
|
199 |
+
}
|
200 |
+
}
|
201 |
+
$product->setWebsiteIds($productData['websites']);
|
202 |
+
}
|
203 |
+
|
204 |
+
if (Mage::app()->isSingleStoreMode()) {
|
205 |
+
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
|
206 |
+
}
|
207 |
+
|
208 |
+
if (isset($productData['stock_data']) && is_array($productData['stock_data'])) {
|
209 |
+
$product->setStockData($productData['stock_data']);
|
210 |
+
}
|
211 |
+
|
212 |
+
if (isset($productData['tier_price']) && is_array($productData['tier_price'])) {
|
213 |
+
$tierPrices = Mage::getModel('catalog/product_attribute_tierprice_api')->prepareTierPrices($product, $productData['tier_price']);
|
214 |
+
$product->setData(Mage_Catalog_Model_Product_Attribute_Tierprice_Api::ATTRIBUTE_CODE, $tierPrices);
|
215 |
+
}
|
216 |
+
|
217 |
+
if(isset($productData['configurable_attributes_data']) && is_array($productData['configurable_attributes_data'])) {
|
218 |
+
foreach($productData['configurable_attributes_data'] as $key => $data) {
|
219 |
+
|
220 |
+
$data['label'] = (!empty($data['label'])) ? $data['label'] : $product->getResource()->getAttribute($data['attribute_code'])->getStoreLabel();
|
221 |
+
$data['frontend_label'] = (!empty($data['frontend_label'])) ? $data['frontend_label'] : $product->getResource()->getAttribute($data['attribute_code'])->getFrontendLabel();
|
222 |
+
$productData['configurable_attributes_data'][$key] = $data;
|
223 |
+
}
|
224 |
+
$product->setConfigurableAttributesData($this->getAttributeData($productData['configurable_attributes_data']));
|
225 |
+
$product->setCanSaveConfigurableAttributes(1);
|
226 |
+
|
227 |
+
if(isset($productData['configurable_products_data']) && is_array($productData['configurable_products_data'])) {
|
228 |
+
$product->setConfigurableProductsData($this->getProductData($productData['configurable_products_data']));
|
229 |
+
}
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
protected function getAttributeData($attCodes){
|
234 |
+
$attributesArray = array();
|
235 |
+
|
236 |
+
foreach($attCodes as $code){
|
237 |
+
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
|
238 |
+
->setCodeFilter($code)
|
239 |
+
->getFirstItem();
|
240 |
+
$data = $attributeInfo->getData();
|
241 |
+
$att_id = $data['attribute_id'];
|
242 |
+
$att_code = $data['attribute_code'];
|
243 |
+
$front_label = $data['frontend_label'];
|
244 |
+
$attributeOptionSingle = Mage::getResourceModel('eav/entity_attribute_option_collection')
|
245 |
+
->setPositionOrder('asc')
|
246 |
+
->setAttributeFilter($att_id)
|
247 |
+
->setStoreFilter()
|
248 |
+
->load();
|
249 |
+
$options = $attributeOptionSingle->getData();
|
250 |
+
|
251 |
+
$single_code = array(
|
252 |
+
'id' => NULL,
|
253 |
+
'label' => $front_label,
|
254 |
+
'position' => NULL
|
255 |
+
);
|
256 |
+
$values = array();
|
257 |
+
foreach($options as $option){
|
258 |
+
$index = $option['option_id'];
|
259 |
+
$attr_id = $option['attribute_id'];
|
260 |
+
$value = $option['value'];
|
261 |
+
$val = array(
|
262 |
+
'attribute_id' => ''.$attr_id.'',
|
263 |
+
'label' => $value,
|
264 |
+
'value_index' => $index,
|
265 |
+
'is_percent' => 0,
|
266 |
+
'pricing_value' => '0');
|
267 |
+
$values[] = $val;
|
268 |
+
|
269 |
+
}
|
270 |
+
|
271 |
+
$single_code ['values'] = $values;
|
272 |
+
$single_code ['attribute_id'] = $att_id;
|
273 |
+
$single_code ['attribute_code'] = $att_code;
|
274 |
+
$single_code ['frontend_label'] = $front_label;
|
275 |
+
$single_code ['html_id'] = 'config_super_product__attribute_0';
|
276 |
+
$attributesArray[] = $single_code;
|
277 |
+
}
|
278 |
+
|
279 |
+
return $attributesArray;
|
280 |
+
}
|
281 |
+
|
282 |
+
protected function getProductData($productSkus,$codes){
|
283 |
+
|
284 |
+
$values = array();
|
285 |
+
foreach($productSkus as $sid){
|
286 |
+
$single = array();
|
287 |
+
foreach($codes as $code){
|
288 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sid);
|
289 |
+
if($product){
|
290 |
+
$pid = $product->getId();
|
291 |
+
}else{
|
292 |
+
return false;
|
293 |
+
}
|
294 |
+
$attributeValue = $product->getData();
|
295 |
+
$attribute_id='';
|
296 |
+
$label = '';
|
297 |
+
$is_percent='';
|
298 |
+
$pricing_value='';
|
299 |
+
$attrarray = $this->getAttributeData(array($code));
|
300 |
+
|
301 |
+
foreach($attrarray[0]['values'] as $value){
|
302 |
+
if($value['value_index'] == $attributeValue[$code]){
|
303 |
+
$attribute_id = $value['attribute_id'];
|
304 |
+
$label = $value['label'];
|
305 |
+
$is_percent = $value['is_percent'];
|
306 |
+
$pricing_value = $value['pricing_value'];
|
307 |
+
}
|
308 |
+
}
|
309 |
+
$single[] = array('attribute_id'=>$attribute_id,'label'=>$label,'value_index'=>$attributeValue['color'],'is_percent'=>$is_percent,'pricing_value'=>$pricing_value);
|
310 |
+
}
|
311 |
+
$values[$pid] = $single;
|
312 |
+
}
|
313 |
+
return $values;
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* Add simple products to configurable
|
318 |
+
*
|
319 |
+
* @param int $confId
|
320 |
+
* @param array $simpleIds
|
321 |
+
*/
|
322 |
+
public function addToConfigurable($confId, $simpleIds){
|
323 |
+
$conf = Mage::getModel('catalog/product')->load($confId);
|
324 |
+
$conf_id = $conf->getId();
|
325 |
+
if(!$conf_id){
|
326 |
+
return $this->_fault('conf_product_not_exists');
|
327 |
+
}
|
328 |
+
|
329 |
+
if(!is_array($simpleIds)){
|
330 |
+
return $this->_fault('array_of_simple_products_not_passed');
|
331 |
+
}
|
332 |
+
if(!$conf->isConfigurable()){
|
333 |
+
return $this->_fault('not_configurable');
|
334 |
+
}
|
335 |
+
|
336 |
+
$loader = Mage::getResourceModel( 'catalog/product_type_configurable' )->load( $conf);
|
337 |
+
|
338 |
+
foreach($simpleIds as $id){
|
339 |
+
if(!$simid = Mage::getModel('catalog/product')->load($id)->getId()){
|
340 |
+
return $this->_fault('simple_product_not_exists');
|
341 |
+
}
|
342 |
+
}
|
343 |
+
try{
|
344 |
+
$ids = $conf->getTypeInstance()->getUsedProductIds();
|
345 |
+
$ids = array_merge($ids, $simpleIds);
|
346 |
+
|
347 |
+
$loader->saveProducts($conf->getId(), $ids);
|
348 |
+
return Mage::helper('catalog')->__("Simple products are added to the configurable product");
|
349 |
+
}catch(Mage_Core_Exception $e){
|
350 |
+
return $this->_fault('products_not_added', $e->getMessage());
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
+
/**
|
355 |
+
* Loops through all images in var/import/mshop/images and import images for a products
|
356 |
+
*
|
357 |
+
* @return boolean
|
358 |
+
*/
|
359 |
+
public function images(){
|
360 |
+
$result = Mage::helper('mshop/product')->addImages();
|
361 |
+
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
|
362 |
+
$process->reindexAll();
|
363 |
+
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_attribute');
|
364 |
+
$process->reindexAll();
|
365 |
+
return $result;
|
366 |
+
}
|
367 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Api/V2.php
ADDED
@@ -0,0 +1,1217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Api_V2 extends Mage_Catalog_Model_Product_Api_V2{
|
3 |
+
|
4 |
+
public function create($type, $set, $sku, $productData){
|
5 |
+
return Mage::getModel("mshop/catalog_product_api_v2")->create($type, $set, $sku, $productData);
|
6 |
+
}
|
7 |
+
|
8 |
+
public function update($productId, $productData, $store = null, $identifierType = null){
|
9 |
+
return Mage::getModel("mshop/catalog_product_api_v2")->update($productId, $productData, $store = null, $identifierType = null);
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Massively Updates the Product Status
|
14 |
+
*
|
15 |
+
* @param array $skus
|
16 |
+
* @return array of skus that are not found
|
17 |
+
*/
|
18 |
+
public function disableProducts($skus){
|
19 |
+
|
20 |
+
$resource = Mage::getSingleton('core/resource');
|
21 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
22 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
23 |
+
|
24 |
+
$product_et = $resource->getTableName('catalog_product_entity');
|
25 |
+
$product_eit = $resource->getTableName('catalog_product_entity_int');
|
26 |
+
|
27 |
+
//get the ID for theattribute by code "STATUS"
|
28 |
+
$entityTypeID = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
|
29 |
+
|
30 |
+
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
|
31 |
+
->setCodeFilter('status')
|
32 |
+
->setEntityTypeFilter($entityTypeID)
|
33 |
+
->getFirstItem();
|
34 |
+
|
35 |
+
$statusId = $attributeInfo->getAttributeId();
|
36 |
+
|
37 |
+
$results = array();
|
38 |
+
|
39 |
+
foreach ($skus as $sku){
|
40 |
+
//Try to get the Entity Id by SKU
|
41 |
+
$select_et = $cr->select()
|
42 |
+
->from($product_et)
|
43 |
+
->where("sku=?", $sku);
|
44 |
+
|
45 |
+
$et_row = $cr->fetchRow($select_et);
|
46 |
+
|
47 |
+
//Add the SKU to response if product is not found by SKU
|
48 |
+
if(!$et_row){
|
49 |
+
$results[] = strval($sku);
|
50 |
+
}else{
|
51 |
+
$pid = $et_row['entity_id'];
|
52 |
+
$q1 = $cw->query('UPDATE '.$product_eit.' SET value = 2 WHERE entity_id = '.$pid.' AND attribute_id = '.$statusId.'');
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
return $results;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Massively Updates the Product inventory: Quantity
|
61 |
+
*
|
62 |
+
* @param int $use_future_stock
|
63 |
+
* @return array of not found skus
|
64 |
+
*/
|
65 |
+
public function massiveUpdateQty($array, $use_future_stock){
|
66 |
+
|
67 |
+
$this->qtyUpdatesPreCheck($use_future_stock);
|
68 |
+
|
69 |
+
$resource = Mage::getSingleton('core/resource');
|
70 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
71 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
72 |
+
|
73 |
+
$product_entity_table = $resource->getTableName('catalog_product_entity');
|
74 |
+
$product_ci_stock_item = $resource->getTableName('cataloginventory_stock_item');
|
75 |
+
$product_ci_stock_status = $resource->getTableName('cataloginventory_stock_status');
|
76 |
+
|
77 |
+
$results = array();
|
78 |
+
|
79 |
+
foreach($array as $element){
|
80 |
+
|
81 |
+
$sku = $element->productSku;
|
82 |
+
if($use_future_stock == 1){
|
83 |
+
$qty = $element->productQty + $element->productFutureQty;
|
84 |
+
}else{
|
85 |
+
$qty = $element->productQty;
|
86 |
+
}
|
87 |
+
$productFutureQty = $element->productFutureQty ;
|
88 |
+
|
89 |
+
//Try to get the Entity Id by SKU
|
90 |
+
$select_et = $cr->select()
|
91 |
+
->from($product_entity_table)
|
92 |
+
->where("sku=?", $sku);
|
93 |
+
$et_row = $cr->fetchRow($select_et);
|
94 |
+
|
95 |
+
//Add the SKU to response if product is not found by SKU
|
96 |
+
if(!$et_row){
|
97 |
+
$results[] = strval($sku);
|
98 |
+
}else{
|
99 |
+
$pid = $et_row['entity_id'];
|
100 |
+
$entry_found = false;
|
101 |
+
|
102 |
+
$select_si = $cr->select()
|
103 |
+
->from($product_ci_stock_item)
|
104 |
+
->where("product_id=?", $pid);
|
105 |
+
|
106 |
+
$minQty = 0;
|
107 |
+
if($si_row = $cr->fetchRow($select_si)){
|
108 |
+
$entry_found = true;
|
109 |
+
$minQty = $this->getminimumQuantity($si_row);
|
110 |
+
};
|
111 |
+
|
112 |
+
$is_in_stock = 0;
|
113 |
+
if($entry_found){
|
114 |
+
$backorders = $this->getBackorders($si_row);
|
115 |
+
if($backorders){
|
116 |
+
$is_in_stock = 1;
|
117 |
+
}else{
|
118 |
+
if($qty > $minQty)
|
119 |
+
$is_in_stock = 1;
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
if($entry_found){
|
124 |
+
$q1 = $cw->query('UPDATE '.$product_ci_stock_item.' SET qty = "'.$qty.'", is_in_stock ="'.$is_in_stock.'" WHERE product_id = '.$pid.' ');
|
125 |
+
$q2 = $cw->query('UPDATE '.$product_ci_stock_status.' SET qty = "'.$qty.'", stock_status ="'.$is_in_stock.'" WHERE product_id = '.$pid.' ');
|
126 |
+
|
127 |
+
$this->updateFutureStock($pid,$use_future_stock,$productFutureQty);
|
128 |
+
|
129 |
+
if($q1 and $q2){
|
130 |
+
}else{
|
131 |
+
$results[] = strval($sku);
|
132 |
+
}
|
133 |
+
|
134 |
+
$extraAttributes = $element->extraAttributes ;
|
135 |
+
if(isset($extraAttributes)){
|
136 |
+
$this->updateExtraAttributes($pid,$extraAttributes);
|
137 |
+
}
|
138 |
+
}else{
|
139 |
+
//Add the SKU to response if product if for some reason there is no data for the given product in "cataloginventory_stock_item" database table
|
140 |
+
$results[] = strval($sku);
|
141 |
+
}
|
142 |
+
}
|
143 |
+
}
|
144 |
+
return $results;
|
145 |
+
}
|
146 |
+
|
147 |
+
// update extra attributes (used for method massiveUpdateQty)
|
148 |
+
protected function updateExtraAttributes($pid, $extraAttributes){
|
149 |
+
|
150 |
+
$resource = Mage::getSingleton('core/resource');
|
151 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
152 |
+
$product_ci_stock_item = $resource->getTableName('cataloginventory_stock_item');
|
153 |
+
|
154 |
+
if((isset($extraAttributes->mamut_store1)))
|
155 |
+
$cw->query('UPDATE '.$product_ci_stock_item.' SET mamut_store1 = "'.$extraAttributes->mamut_store1.'" WHERE product_id = '.$pid.'');
|
156 |
+
if((isset($extraAttributes->mamut_store2)))
|
157 |
+
$cw->query('UPDATE '.$product_ci_stock_item.' SET mamut_store2 = "'.$extraAttributes->mamut_store2.'" WHERE product_id = '.$pid.'');
|
158 |
+
if((isset($extraAttributes->mamut_store3)))
|
159 |
+
$cw->query('UPDATE '.$product_ci_stock_item.' SET mamut_store3 = "'.$extraAttributes->mamut_store3.'" WHERE product_id = '.$pid.'');
|
160 |
+
if((isset($extraAttributes->mamut_store4)))
|
161 |
+
$cw->query('UPDATE '.$product_ci_stock_item.' SET mamut_store4 = "'.$extraAttributes->mamut_store4.'" WHERE product_id = '.$pid.'');
|
162 |
+
if((isset($extraAttributes->mamut_store5)))
|
163 |
+
$cw->query('UPDATE '.$product_ci_stock_item.' SET mamut_store5 = "'.$extraAttributes->mamut_store5.'" WHERE product_id = '.$pid.'');
|
164 |
+
if((isset($extraAttributes->mamut_nextdeliverydate)))
|
165 |
+
$cw->query('UPDATE '.$product_ci_stock_item.' SET mamut_nextdeliverydate = "'.$extraAttributes->mamut_nextdeliverydate.'" WHERE product_id = '.$pid.'');
|
166 |
+
}
|
167 |
+
|
168 |
+
// update future stock
|
169 |
+
protected function updateFutureStock($pid,$use_future_stock,$productFutureQty){
|
170 |
+
|
171 |
+
$resource = Mage::getSingleton('core/resource');
|
172 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
173 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
174 |
+
|
175 |
+
$product_entity_varchar_table = $resource->getTableName('catalog_product_entity_varchar');
|
176 |
+
$mamutFutureStockId = $this->mamutFutureStockIsAvailable();
|
177 |
+
|
178 |
+
$select_evt = $cr->select()
|
179 |
+
->from($product_entity_varchar_table)
|
180 |
+
->where("entity_id=?", $pid)
|
181 |
+
->where("attribute_id=?", $mamutFutureStockId);
|
182 |
+
|
183 |
+
$evt_row = $cr->fetchRow($select_evt);
|
184 |
+
if($mamutFutureStockId and $use_future_stock)
|
185 |
+
{
|
186 |
+
if($evt_row)
|
187 |
+
{
|
188 |
+
$q3 = $cw->query('UPDATE '.$product_entity_varchar_table.' SET value = "'.$productFutureQty.'" WHERE entity_id = '.$pid.' AND attribute_id= '.$mamutFutureStockId.' ');
|
189 |
+
}else{
|
190 |
+
$q3 = $cw->query('INSERT INTO '.$product_entity_varchar_table.' (`entity_type_id`,`attribute_id`,`entity_id`,`store_id`,`value`) VALUES ("4","'.$mamutFutureStockId.'","'.$pid.'","0","'.$productFutureQty.'") ');
|
191 |
+
}
|
192 |
+
}
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Updates the Product inventory: Quantity
|
197 |
+
*
|
198 |
+
* @param string $sku
|
199 |
+
* @param int $qty
|
200 |
+
* @return boolean
|
201 |
+
*/
|
202 |
+
public function updateQty($sku, $qty){
|
203 |
+
|
204 |
+
$resource = Mage::getSingleton('core/resource');
|
205 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
206 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
207 |
+
|
208 |
+
$product_entity_table = $resource->getTableName('catalog_product_entity');
|
209 |
+
$product_ci_stock_item = $resource->getTableName('cataloginventory_stock_item');
|
210 |
+
$product_ci_stock_status = $resource->getTableName('cataloginventory_stock_status');
|
211 |
+
|
212 |
+
$entry_found = false;
|
213 |
+
|
214 |
+
//Try to get the Entity Id by SKU
|
215 |
+
$select_et = $cr->select()
|
216 |
+
->from($product_entity_table)
|
217 |
+
->where("sku=?", $sku);
|
218 |
+
$et_row = $cr->fetchRow($select_et);
|
219 |
+
|
220 |
+
//Return Error if product is not found by SKU
|
221 |
+
if(!$et_row){
|
222 |
+
$this->_fault('invalid_sku');
|
223 |
+
}
|
224 |
+
$pid = $et_row['entity_id'];
|
225 |
+
|
226 |
+
//With the acquired Entity ID try to load rows from "cataloginventory_stock_item" and "cataloginventory_stock_status"
|
227 |
+
$select_si = $cr->select()
|
228 |
+
->from($product_ci_stock_item)
|
229 |
+
->where("product_id=?", $pid);
|
230 |
+
|
231 |
+
$minQty = 0;
|
232 |
+
if($si_row = $cr->fetchRow($select_si)){
|
233 |
+
$entry_found = true;
|
234 |
+
$minQty = $this->getminimumQuantity($si_row);
|
235 |
+
};
|
236 |
+
|
237 |
+
$is_in_stock = 0;
|
238 |
+
if($entry_found){
|
239 |
+
$backorders = $this->getBackorders($si_row);
|
240 |
+
if($backorders){
|
241 |
+
$is_in_stock = 1;
|
242 |
+
}else{
|
243 |
+
if($qty > $minQty)
|
244 |
+
$is_in_stock = 1;
|
245 |
+
}
|
246 |
+
}
|
247 |
+
|
248 |
+
if($entry_found){
|
249 |
+
$q1 = $cw->query('UPDATE '.$product_ci_stock_item.' SET qty = "'.$qty.'", is_in_stock ="'.$is_in_stock.'" WHERE product_id = '.$pid.' ');
|
250 |
+
$q2 = $cw->query('UPDATE '.$product_ci_stock_status.' SET qty = "'.$qty.'", stock_status ="'.$is_in_stock.'" WHERE product_id = '.$pid.' ');
|
251 |
+
|
252 |
+
if($q1 and $q2){
|
253 |
+
return true;
|
254 |
+
}else{
|
255 |
+
//If some query goes wrong also throw an error
|
256 |
+
$this->_fault('update_query_failed');
|
257 |
+
}
|
258 |
+
}else{
|
259 |
+
//If rows cannot be selected from "cataloginventory_stock_item" and "cataloginventory_stock_status", throw an error about invalid Entity Id in these two tables
|
260 |
+
$this->_fault('invalid_pid');
|
261 |
+
};
|
262 |
+
|
263 |
+
return false;
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
* Updates the Product inventory: Quantity taking mamu_future_stock into account
|
268 |
+
*
|
269 |
+
* @param string $sku
|
270 |
+
* @param int $qty
|
271 |
+
* @param int $mamut_future_stock
|
272 |
+
* @param int $use_future_stock
|
273 |
+
* @return boolean
|
274 |
+
*/
|
275 |
+
public function updateQtyFutureStock($sku, $qty, $mamut_future_stock, $use_future_stock){
|
276 |
+
|
277 |
+
$this->qtyUpdatesPreCheck($use_future_stock);
|
278 |
+
$mamutFutureStockId = $this->mamutFutureStockIsAvailable();
|
279 |
+
|
280 |
+
$resource = Mage::getSingleton('core/resource');
|
281 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
282 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
283 |
+
|
284 |
+
$product_entity_table = $resource->getTableName('catalog_product_entity');
|
285 |
+
$product_entity_varchar_table = $resource->getTableName('catalog_product_entity_varchar');
|
286 |
+
$product_ci_stock_item = $resource->getTableName('cataloginventory_stock_item');
|
287 |
+
$product_ci_stock_status = $resource->getTableName('cataloginventory_stock_status');
|
288 |
+
|
289 |
+
|
290 |
+
$entry_found = false;
|
291 |
+
|
292 |
+
if($use_future_stock == 1){
|
293 |
+
$qty += $mamut_future_stock;
|
294 |
+
}
|
295 |
+
|
296 |
+
//Try to get the Entity Id by SKU
|
297 |
+
$select_et = $cr->select()
|
298 |
+
->from($product_entity_table)
|
299 |
+
->where("sku=?", $sku);
|
300 |
+
|
301 |
+
$et_row = $cr->fetchRow($select_et);
|
302 |
+
|
303 |
+
//Return Error if product is not found by SKU
|
304 |
+
if(!$et_row){
|
305 |
+
$this->_fault('invalid_sku');
|
306 |
+
}
|
307 |
+
|
308 |
+
$pid = $et_row['entity_id'];
|
309 |
+
|
310 |
+
//With the acquired Entity ID try to load rows from "cataloginventory_stock_item" and "cataloginventory_stock_status"
|
311 |
+
$select_si = $cr->select()
|
312 |
+
->from($product_ci_stock_item)
|
313 |
+
->where("product_id=?", $pid);
|
314 |
+
|
315 |
+
$minQty = 0;
|
316 |
+
if($si_row = $cr->fetchRow($select_si)){
|
317 |
+
$entry_found = true;
|
318 |
+
$minQty = $this->getminimumQuantity($si_row);
|
319 |
+
};
|
320 |
+
|
321 |
+
$is_in_stock = 0;
|
322 |
+
if($entry_found){
|
323 |
+
$backorders = $this->getBackorders($si_row);
|
324 |
+
if($backorders){
|
325 |
+
$is_in_stock = 1;
|
326 |
+
}else{
|
327 |
+
if($qty > $minQty)
|
328 |
+
$is_in_stock = 1;
|
329 |
+
}
|
330 |
+
}
|
331 |
+
|
332 |
+
if($entry_found){
|
333 |
+
$q1 = $cw->query('UPDATE '.$product_ci_stock_item.' SET qty = "'.$qty.'", is_in_stock ="'.$is_in_stock.'" WHERE product_id = '.$pid.' ');
|
334 |
+
$q2 = $cw->query('UPDATE '.$product_ci_stock_status.' SET qty = "'.$qty.'", stock_status ="'.$is_in_stock.'" WHERE product_id = '.$pid.' ');
|
335 |
+
|
336 |
+
$this->updateFutureStock($pid,$use_future_stock,$mamut_future_stock);
|
337 |
+
|
338 |
+
if($q1 and $q2){
|
339 |
+
return true;
|
340 |
+
}else{
|
341 |
+
//If some query goes wrong also throw an error
|
342 |
+
$this->_fault('update_query_failed');
|
343 |
+
}
|
344 |
+
}else{
|
345 |
+
//If rows cannot be selected from "cataloginventory_stock_item" and "cataloginventory_stock_status", throw an error
|
346 |
+
$this->_fault('invalid_pid');
|
347 |
+
};
|
348 |
+
|
349 |
+
return false;
|
350 |
+
}
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Return Simple Products SKUs
|
354 |
+
*
|
355 |
+
* @return array
|
356 |
+
*/
|
357 |
+
public function productsSkus(){
|
358 |
+
|
359 |
+
$resurce = Mage::getSingleton('core/resource');
|
360 |
+
$table = $resurce->getTableName('catalog/product');
|
361 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
362 |
+
|
363 |
+
$sql2 = "SELECT DISTINCT (e.sku)
|
364 |
+
FROM
|
365 |
+
".$resurce->getTableName('catalog_product_entity')." e,
|
366 |
+
".$resurce->getTableName('eav_attribute')." eav,
|
367 |
+
".$resurce->getTableName('catalog_product_entity_varchar')." var
|
368 |
+
WHERE
|
369 |
+
e.entity_type_id = eav.entity_type_id
|
370 |
+
AND eav.attribute_code = 'name'
|
371 |
+
AND eav.attribute_id = var.attribute_id
|
372 |
+
AND var.entity_id = e.entity_id
|
373 |
+
AND e.type_id='simple'";
|
374 |
+
|
375 |
+
$result = $connection->query($sql2);
|
376 |
+
$responce = $result->fetchAll(PDO::FETCH_COLUMN);
|
377 |
+
|
378 |
+
return $responce;
|
379 |
+
}
|
380 |
+
|
381 |
+
/**
|
382 |
+
* Loops through all images in var/import/mshop/images and import images for a products
|
383 |
+
*
|
384 |
+
* @return boolean
|
385 |
+
*/
|
386 |
+
public function images(){
|
387 |
+
$result = Mage::helper('mshop/product')->addImages();
|
388 |
+
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_flat');
|
389 |
+
$process->reindexAll();
|
390 |
+
$process = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_product_attribute');
|
391 |
+
$process->reindexAll();
|
392 |
+
return $result;
|
393 |
+
}
|
394 |
+
|
395 |
+
/**
|
396 |
+
* Return All Products SKUs
|
397 |
+
*
|
398 |
+
* @return array
|
399 |
+
*/
|
400 |
+
public function productsAllSkus(){
|
401 |
+
|
402 |
+
$resurce = Mage::getSingleton('core/resource');
|
403 |
+
$table = $resurce->getTableName('catalog/product');
|
404 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_read');
|
405 |
+
|
406 |
+
$sql2 = "SELECT DISTINCT (e.sku)
|
407 |
+
FROM
|
408 |
+
".$resurce->getTableName('catalog_product_entity')." e,
|
409 |
+
".$resurce->getTableName('eav_attribute')." eav,
|
410 |
+
".$resurce->getTableName('catalog_product_entity_varchar')." var
|
411 |
+
WHERE
|
412 |
+
e.entity_type_id = eav.entity_type_id
|
413 |
+
AND eav.attribute_code = 'name'
|
414 |
+
AND eav.attribute_id = var.attribute_id
|
415 |
+
AND var.entity_id = e.entity_id";
|
416 |
+
|
417 |
+
$result = $connection->query($sql2);
|
418 |
+
$responce = $result->fetchAll(PDO::FETCH_COLUMN);
|
419 |
+
|
420 |
+
return $responce;
|
421 |
+
}
|
422 |
+
|
423 |
+
/**
|
424 |
+
* Get Product Info For All Store Views
|
425 |
+
*
|
426 |
+
* @param string $productSku
|
427 |
+
* @return array of product data for each store view
|
428 |
+
*/
|
429 |
+
public function productFullInfo($productSku){
|
430 |
+
$productReturnEntityArray = array();
|
431 |
+
|
432 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$productSku);
|
433 |
+
$allStoresViews = Mage::app()->getStores();
|
434 |
+
|
435 |
+
foreach ($allStoresViews as $storeView){
|
436 |
+
$productReturnEntity = Mage::getModel('catalog/product_api')->info($product->getId(), $storeView->getId());
|
437 |
+
$productReturnEntity['mshop_store_view_id'] = $storeView->getId();
|
438 |
+
$productReturnEntity['mshop_store_view_name'] = $storeView->getName();
|
439 |
+
$productReturnEntityArray[] = $productReturnEntity;
|
440 |
+
}
|
441 |
+
|
442 |
+
return $productReturnEntityArray;
|
443 |
+
}
|
444 |
+
|
445 |
+
/**
|
446 |
+
* Set Visibility to Products in Store Views
|
447 |
+
*
|
448 |
+
* @param string $productSku
|
449 |
+
* @param int $storeViews
|
450 |
+
* @param int $visibilityLevel: possible values are: 1 � not visible, 2 �catalog, 3 �search, 4 � catalog, search.
|
451 |
+
* @return string
|
452 |
+
*/
|
453 |
+
public function setVisibility($productSku, $storeViews, $visibilityLevel){
|
454 |
+
|
455 |
+
if(!is_array($storeViews)){
|
456 |
+
return $this->_fault('not_passed_array');
|
457 |
+
}
|
458 |
+
|
459 |
+
$vis_level = intval($visibilityLevel);
|
460 |
+
if($vis_level != 1 && $vis_level != 2 && $vis_level != 3 && $vis_level != 4 ){
|
461 |
+
return $this->_fault('visibility_level_not_exists');
|
462 |
+
}
|
463 |
+
|
464 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $productSku);
|
465 |
+
if($product){
|
466 |
+
$product_id = $product->getId();
|
467 |
+
}else{
|
468 |
+
return $this->_fault('product_not_exists_sku');
|
469 |
+
}
|
470 |
+
|
471 |
+
$product = Mage::getModel('catalog/product')
|
472 |
+
->setStoreId(0)
|
473 |
+
->load($product_id);
|
474 |
+
|
475 |
+
$vis_def = $product->getVisibility();
|
476 |
+
$defaultData = $product->getData();
|
477 |
+
|
478 |
+
$webstore = Mage::app()->getStores();
|
479 |
+
$store_array = array();
|
480 |
+
foreach($webstore as $store){
|
481 |
+
$store_id = $store->getId();
|
482 |
+
$store_array[] = $store_id;
|
483 |
+
}
|
484 |
+
|
485 |
+
foreach($storeViews as $storeId){
|
486 |
+
if(!in_array($storeId, $store_array)){
|
487 |
+
return $this->_fault("store_view_not_exists");
|
488 |
+
}
|
489 |
+
}
|
490 |
+
|
491 |
+
foreach($store_array as $storeId){
|
492 |
+
if(in_array($storeId, $storeViews)){
|
493 |
+
$vis = $visibilityLevel;
|
494 |
+
}else{
|
495 |
+
$vis = 1;
|
496 |
+
}
|
497 |
+
$product = Mage::getModel('catalog/product')
|
498 |
+
->setStoreId($storeId)
|
499 |
+
->load($product_id);
|
500 |
+
|
501 |
+
try{
|
502 |
+
$product->setVisibility($vis);
|
503 |
+
$product->save();
|
504 |
+
|
505 |
+
}catch(Mage_Core_Exception $e){
|
506 |
+
$this->_fault('visibility_not_set', $e->getMessage());
|
507 |
+
}
|
508 |
+
}
|
509 |
+
|
510 |
+
try{
|
511 |
+
$product = Mage::getModel('catalog/product')
|
512 |
+
->setStoreId(0)
|
513 |
+
->load($product_id);
|
514 |
+
$product->setData($defaultData);
|
515 |
+
$product->setVisibility($vis_def);
|
516 |
+
$product->save();
|
517 |
+
}catch(Mage_Core_Exception $e){
|
518 |
+
$this->_fault('visibility_not_set', $e->getMessage());
|
519 |
+
}
|
520 |
+
|
521 |
+
return Mage::helper('catalog')->__('The product visibility was set for store views: ').implode(',',$storeViews);
|
522 |
+
}
|
523 |
+
|
524 |
+
/**
|
525 |
+
* Remove product from categories below category
|
526 |
+
*
|
527 |
+
* @param string $productCode : sku of product
|
528 |
+
* @param int $rootCategory : id of root category
|
529 |
+
*/
|
530 |
+
public function removeProductCategoriesBellow($productCode, $rootCategory){
|
531 |
+
|
532 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$productCode);
|
533 |
+
if($product){
|
534 |
+
$product_id = $product->getId();
|
535 |
+
}else{
|
536 |
+
return $this->_fault('product_not_exists_sku');
|
537 |
+
}
|
538 |
+
|
539 |
+
$categories = $product->getCategoryIds();
|
540 |
+
$category = Mage::getModel('catalog/category')->load($rootCategory);
|
541 |
+
$subcategories = $this->getChildrenCat($rootCategory);
|
542 |
+
if (count($subcategories) > 0){
|
543 |
+
foreach($categories as $productCat){
|
544 |
+
if(in_array($productCat, $subcategories)){
|
545 |
+
$key = array_search($productCat, $categories);
|
546 |
+
unset($categories[$key]);
|
547 |
+
}
|
548 |
+
}
|
549 |
+
}else{
|
550 |
+
return $this->_fault('no_subcategories');
|
551 |
+
}
|
552 |
+
if(!in_array($rootCategory, $categories)){
|
553 |
+
$categories[]= $rootCategory;
|
554 |
+
}
|
555 |
+
try{
|
556 |
+
$product->setCategoryIds($categories);
|
557 |
+
$product->save();
|
558 |
+
return Mage::helper('catalog')->__('Product was removed from categories bellow root category');
|
559 |
+
}catch(Mage_Core_Exception $e){
|
560 |
+
return $this->_fault('product_not_removed');
|
561 |
+
}
|
562 |
+
}
|
563 |
+
|
564 |
+
|
565 |
+
protected function getChildrenCat($catId){
|
566 |
+
$sub = array();
|
567 |
+
$category = Mage::getModel('catalog/category')->load($catId);
|
568 |
+
$subcategories = $category->getChildrenCategories();
|
569 |
+
if (count($subcategories) > 0){
|
570 |
+
foreach($subcategories as $subcategory){
|
571 |
+
$id = $subcategory->getId();
|
572 |
+
$sub[] = $id;
|
573 |
+
$sub = array_merge($sub, $this->getChildrenCat($id));
|
574 |
+
}
|
575 |
+
}
|
576 |
+
return $sub;
|
577 |
+
}
|
578 |
+
|
579 |
+
|
580 |
+
/**
|
581 |
+
* Create configurable product
|
582 |
+
*
|
583 |
+
* @param $set : Attribute set Id
|
584 |
+
* @param $sku : Sku of the new product
|
585 |
+
* @param $productData
|
586 |
+
* @param $simpleProductData : array of the simple products skus
|
587 |
+
* @param $attributesData : array of configurable attribute codes
|
588 |
+
* @return id of new configurable product.
|
589 |
+
*/
|
590 |
+
public function createConfigurable($set, $sku, $productData, $simpleProductData, $attributesData){
|
591 |
+
|
592 |
+
if ( !$set || !$sku) {
|
593 |
+
$this->_fault('data_invalid');
|
594 |
+
}
|
595 |
+
|
596 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
|
597 |
+
if($product){
|
598 |
+
$product_id = $product->getId();
|
599 |
+
if(!$product->isConfigurable()){
|
600 |
+
return $this->_fault('not_configurable');
|
601 |
+
}
|
602 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
603 |
+
$resurce = Mage::getSingleton('core/resource');
|
604 |
+
|
605 |
+
$supper = $resurce->getTableName('catalog_product_super_attribute');
|
606 |
+
$supper_label = $resurce->getTableName('catalog_product_super_attribute_label');
|
607 |
+
|
608 |
+
$resultd = $connection->query('SELECT * FROM '.$supper.' as kk
|
609 |
+
WHERE kk.product_id = '.$product_id.' ');
|
610 |
+
$rows = $resultd->fetchAll(PDO::FETCH_ASSOC);
|
611 |
+
|
612 |
+
if($rows){
|
613 |
+
foreach($rows as $row){
|
614 |
+
$product_super_atr = $row['product_super_attribute_id'];
|
615 |
+
$connection->delete($supper_label, 'product_super_attribute_id = '.$product_super_atr);
|
616 |
+
}
|
617 |
+
}
|
618 |
+
$connection->delete($supper, 'product_id = ' . $product_id);
|
619 |
+
}else{
|
620 |
+
$product = Mage::getModel('catalog/product');
|
621 |
+
$product->setStoreId($this->_getStoreId())
|
622 |
+
->setAttributeSetId($set)
|
623 |
+
->setTypeId('configurable')
|
624 |
+
->setSku($sku);
|
625 |
+
}
|
626 |
+
|
627 |
+
if (property_exists($productData, 'website_ids') && is_array($productData->website_ids)) {
|
628 |
+
$product->setWebsiteIds($productData->website_ids);
|
629 |
+
}
|
630 |
+
|
631 |
+
if (property_exists($productData, 'additional_attributes')) {
|
632 |
+
foreach ($productData->additional_attributes as $_attribute) {
|
633 |
+
$_attrCode = $_attribute->key;
|
634 |
+
$productData->$_attrCode = $_attribute->value;
|
635 |
+
}
|
636 |
+
unset($productData->additional_attributes);
|
637 |
+
}
|
638 |
+
|
639 |
+
foreach ($product->getTypeInstance(true)->getEditableAttributes($product) as $attribute) {
|
640 |
+
$_attrCode = $attribute->getAttributeCode();
|
641 |
+
if ($this->_isAllowedAttribute($attribute)
|
642 |
+
&& isset($productData->$_attrCode)) {
|
643 |
+
$product->setData(
|
644 |
+
$attribute->getAttributeCode(),
|
645 |
+
$productData->$_attrCode
|
646 |
+
);
|
647 |
+
}
|
648 |
+
}
|
649 |
+
|
650 |
+
$resp = $this->_prepareDataForSave($product, $productData, $simpleProductData, $attributesData, $set);
|
651 |
+
if($resp == 'no_attr'){
|
652 |
+
return $this->_fault('attribute_not_in_set');
|
653 |
+
}
|
654 |
+
if($resp == 'no_product'){
|
655 |
+
return $this->_fault('simple_product_not_exists');
|
656 |
+
}
|
657 |
+
|
658 |
+
try {
|
659 |
+
if (is_array($errors = $product->validate())) {
|
660 |
+
$strErrors = array();
|
661 |
+
foreach($errors as $code=>$error) {
|
662 |
+
$strErrors[] = ($error === true)? Mage::helper('catalog')->__('Attribute "%s" is invalid.', $code) : $error;
|
663 |
+
}
|
664 |
+
$this->_fault('data_invalid', implode("\n", $strErrors));
|
665 |
+
}
|
666 |
+
|
667 |
+
$product->save();
|
668 |
+
$this->setVisibilityHelperSkus($simpleProductData);
|
669 |
+
}catch (Mage_Core_Exception $e) {
|
670 |
+
$this->_fault('data_invalid', $e->getMessage());
|
671 |
+
}
|
672 |
+
|
673 |
+
return $product->getId();
|
674 |
+
}
|
675 |
+
|
676 |
+
// used by method createConfigurable
|
677 |
+
protected function _prepareDataForSave ($product, $productData, $simpleProductData , $attributesData, $set){
|
678 |
+
if (property_exists($productData, 'categories') && is_array($productData->categories)) {
|
679 |
+
$product->setCategoryIds($productData->categories);
|
680 |
+
}
|
681 |
+
|
682 |
+
if (property_exists($productData, 'websites') && is_array($productData->websites)) {
|
683 |
+
foreach ($productData->websites as &$website) {
|
684 |
+
if (is_string($website)) {
|
685 |
+
try {
|
686 |
+
$website = Mage::app()->getWebsite($website)->getId();
|
687 |
+
} catch (Exception $e) { }
|
688 |
+
}
|
689 |
+
}
|
690 |
+
$product->setWebsiteIds($productData->websites);
|
691 |
+
}
|
692 |
+
|
693 |
+
if (Mage::app()->isSingleStoreMode()) {
|
694 |
+
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
|
695 |
+
}
|
696 |
+
|
697 |
+
if (property_exists($productData, 'stock_data')) {
|
698 |
+
$_stockData = array();
|
699 |
+
foreach ($productData->stock_data as $key => $value) {
|
700 |
+
$_stockData[$key] = $value;
|
701 |
+
}
|
702 |
+
$product->setStockData($_stockData);
|
703 |
+
}
|
704 |
+
|
705 |
+
if (property_exists($productData, 'tier_price')) {
|
706 |
+
$tierPrices = Mage::getModel('catalog/product_attribute_tierprice_api_V2')->prepareTierPrices($product, $productData->tier_price);
|
707 |
+
$product->setData(Mage_Catalog_Model_Product_Attribute_Tierprice_Api_V2::ATTRIBUTE_CODE, $tierPrices);
|
708 |
+
}
|
709 |
+
|
710 |
+
if($attributesData != null && is_array($attributesData)&& $simpleProductData != null && is_array($simpleProductData)) {
|
711 |
+
$att_data = $this->getAttributeData($attributesData, $set);
|
712 |
+
if(!$att_data){
|
713 |
+
return "no_attr";
|
714 |
+
|
715 |
+
}
|
716 |
+
|
717 |
+
$product_data = $this->getProductData($simpleProductData,$attributesData);
|
718 |
+
|
719 |
+
if(!$product_data){
|
720 |
+
return "no_product";
|
721 |
+
}
|
722 |
+
$product->setConfigurableAttributesData($att_data);
|
723 |
+
$product->setCanSaveConfigurableAttributes(1);
|
724 |
+
$product->setConfigurableProductsData($product_data);
|
725 |
+
}
|
726 |
+
}
|
727 |
+
|
728 |
+
// used by method createConfigurable
|
729 |
+
protected function getAttributeData($attCodes, $set){
|
730 |
+
$attributesArray = array();
|
731 |
+
$entityTypeID = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
|
732 |
+
|
733 |
+
foreach($attCodes as $code){
|
734 |
+
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
|
735 |
+
->setCodeFilter($code)
|
736 |
+
->addSetInfo()
|
737 |
+
->getFirstItem();
|
738 |
+
|
739 |
+
$data = $attributeInfo->getData();
|
740 |
+
$att_id = $data['attribute_id'];
|
741 |
+
$set_info = $data['attribute_set_info'];
|
742 |
+
if(!key_exists($set, $set_info)){
|
743 |
+
return false;
|
744 |
+
}
|
745 |
+
$att_code = $data['attribute_code'];
|
746 |
+
$front_label = $data['frontend_label'];
|
747 |
+
|
748 |
+
$attributeOptionSingle = Mage::getResourceModel('eav/entity_attribute_option_collection')
|
749 |
+
->setPositionOrder('asc')
|
750 |
+
->setAttributeFilter($att_id)
|
751 |
+
->setStoreFilter()
|
752 |
+
->load();
|
753 |
+
$options = $attributeOptionSingle->getData();
|
754 |
+
|
755 |
+
$single_code = array(
|
756 |
+
'id' => NULL,
|
757 |
+
'label' => $front_label,
|
758 |
+
'position' => NULL
|
759 |
+
|
760 |
+
);
|
761 |
+
$values = array();
|
762 |
+
foreach($options as $option){
|
763 |
+
$index = $option['option_id'];
|
764 |
+
$attr_id = $option['attribute_id'];
|
765 |
+
$value = $option['value'];
|
766 |
+
|
767 |
+
$val = array(
|
768 |
+
'attribute_id' => ''.$attr_id.'',
|
769 |
+
'label' => $value,
|
770 |
+
'value_index' => $index,
|
771 |
+
'is_percent' => 0,
|
772 |
+
'pricing_value' => '0');
|
773 |
+
$values[] = $val;
|
774 |
+
|
775 |
+
}
|
776 |
+
$single_code ['values'] = $values;
|
777 |
+
$single_code ['attribute_id'] = $att_id;
|
778 |
+
$single_code ['attribute_code'] = $att_code;
|
779 |
+
$single_code ['frontend_label'] = $front_label;
|
780 |
+
$single_code ['html_id'] = 'config_super_product__attribute_0';
|
781 |
+
$attributesArray[] = $single_code;
|
782 |
+
}
|
783 |
+
|
784 |
+
return $attributesArray;
|
785 |
+
}
|
786 |
+
|
787 |
+
//used by _prepareDataForSave
|
788 |
+
protected function getProductData($productSkus,$codes){
|
789 |
+
|
790 |
+
$values = array();
|
791 |
+
foreach($productSkus as $sid){
|
792 |
+
$single = array();
|
793 |
+
foreach($codes as $code){
|
794 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sid);
|
795 |
+
if($product){
|
796 |
+
$pid = $product->getId();
|
797 |
+
}else{
|
798 |
+
return false;
|
799 |
+
}
|
800 |
+
$attributeValue = $product->getData();
|
801 |
+
$attribute_id='';
|
802 |
+
$label = '';
|
803 |
+
$is_percent='';
|
804 |
+
$pricing_value='';
|
805 |
+
$attrarray = $this->getAttributeData(array($code));
|
806 |
+
|
807 |
+
foreach($attrarray[0]['values'] as $value){
|
808 |
+
if($value['value_index'] == $attributeValue[$code]){
|
809 |
+
$attribute_id = $value['attribute_id'];
|
810 |
+
$label = $value['label'];
|
811 |
+
$is_percent = $value['is_percent'];
|
812 |
+
$pricing_value = $value['pricing_value'];
|
813 |
+
}
|
814 |
+
}
|
815 |
+
$single[] = array('attribute_id'=>$attribute_id,'label'=>$label,'value_index'=>$attributeValue['color'],'is_percent'=>$is_percent,'pricing_value'=>$pricing_value);
|
816 |
+
}
|
817 |
+
$values[$pid] = $single;
|
818 |
+
}
|
819 |
+
return $values;
|
820 |
+
}
|
821 |
+
|
822 |
+
/**
|
823 |
+
* Add simple product to configurable or grouped product
|
824 |
+
*
|
825 |
+
* @param int $confId : Id of configurable product
|
826 |
+
* @param array $simpleIds : Array of simple product Ids
|
827 |
+
*/
|
828 |
+
public function setToComplex($confId, $simpleIds){
|
829 |
+
|
830 |
+
$conf = Mage::getModel('catalog/product')->loadByAttribute("sku",$confId);
|
831 |
+
if(!$conf){
|
832 |
+
return $this->_fault('conf_product_not_exists');
|
833 |
+
}else{
|
834 |
+
$conf = Mage::getModel("catalog/product")->load($conf->getId());
|
835 |
+
}
|
836 |
+
|
837 |
+
if(!is_array($simpleIds)){
|
838 |
+
return $this->_fault('array_of_simple_products_not_passed');
|
839 |
+
}
|
840 |
+
if($conf->isConfigurable()){
|
841 |
+
return $this->addToConfigurable($conf,$simpleIds);
|
842 |
+
}else if($conf->isGrouped()){
|
843 |
+
return $this->addToGrouped($conf->getId(),$simpleIds);
|
844 |
+
}else{
|
845 |
+
return $this->_fault('not_grouped_configurable');
|
846 |
+
}
|
847 |
+
}
|
848 |
+
|
849 |
+
// used by method setToComplex
|
850 |
+
private function addToConfigurable($conf,$simpleIds){
|
851 |
+
$loader = Mage::getResourceModel( 'catalog/product_type_configurable' )->load($conf);
|
852 |
+
|
853 |
+
$ids_from_sku = array();
|
854 |
+
$ids_objects = array();
|
855 |
+
foreach($simpleIds as $id){
|
856 |
+
if(!$simid = Mage::getModel('catalog/product')->loadByAttribute("sku",$id)){
|
857 |
+
return $this->_fault('simple_product_not_exists');
|
858 |
+
}else{
|
859 |
+
$ids_from_sku [] = $simid->getId();
|
860 |
+
$ids_objects []= $simid;
|
861 |
+
}
|
862 |
+
}
|
863 |
+
try{
|
864 |
+
$ids = $conf->getTypeInstance()->getUsedProductIds();
|
865 |
+
$ids = array_merge($ids, $ids_from_sku);
|
866 |
+
|
867 |
+
$loader->saveProducts($conf, $ids);
|
868 |
+
|
869 |
+
$this->setVisibilityHelper($ids_objects);
|
870 |
+
return Mage::helper('catalog')->__("Simple products are added to the configurable product");
|
871 |
+
}catch(Mage_Core_Exception $e){
|
872 |
+
return $this->_fault('products_not_added', $e->getMessage());
|
873 |
+
}
|
874 |
+
}
|
875 |
+
|
876 |
+
private function setVisibilityHelper($objects){
|
877 |
+
foreach($objects as $obj){
|
878 |
+
try{
|
879 |
+
$obj->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
|
880 |
+
$obj->save();
|
881 |
+
}catch(Mage_Core_Exception $e){
|
882 |
+
|
883 |
+
}
|
884 |
+
}
|
885 |
+
}
|
886 |
+
|
887 |
+
// used by method createConfigurable
|
888 |
+
private function setVisibilityHelperSkus($skus){
|
889 |
+
foreach($skus as $sku){
|
890 |
+
$object = Mage::getModel("catalog/product")->loadByAttribute("sku", $sku);
|
891 |
+
if($object){
|
892 |
+
try{
|
893 |
+
$object->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
|
894 |
+
$object->save();
|
895 |
+
}catch(Mage_Core_Exception $e){
|
896 |
+
|
897 |
+
}
|
898 |
+
}
|
899 |
+
}
|
900 |
+
}
|
901 |
+
|
902 |
+
// used by method setToComplex
|
903 |
+
private function addToGrouped($confId,$simpleIds){
|
904 |
+
foreach($simpleIds as $id){
|
905 |
+
$ids_from_sku = array();
|
906 |
+
$ids_objects = array();
|
907 |
+
if(!$simid = Mage::getModel('catalog/product')->loadByAttribute("sku",$id)){
|
908 |
+
return $this->_fault('simple_product_not_exists');
|
909 |
+
}else{
|
910 |
+
$ids_from_sku [] = $simid->getId();
|
911 |
+
}
|
912 |
+
}
|
913 |
+
$pr_model = Mage::getModel('catalog/product_api_v2') ;
|
914 |
+
$link_model = Mage::getModel('catalog/product_link_api_v2') ;
|
915 |
+
|
916 |
+
$items = $link_model->items('grouped', $confId);
|
917 |
+
|
918 |
+
$already_present = array();
|
919 |
+
foreach($items as $item){
|
920 |
+
$product_id = $item['product_id'];
|
921 |
+
$already_present[] = $product_id;
|
922 |
+
try{
|
923 |
+
$link_model->remove('grouped', $confId, $product_id);
|
924 |
+
}catch(Exception $ex){
|
925 |
+
return $this->_fault('can_not_update', $ex->getMessage());
|
926 |
+
}
|
927 |
+
}
|
928 |
+
$temp = array_merge($simpleIds, $already_present);
|
929 |
+
$linkedProductData = $temp;
|
930 |
+
|
931 |
+
foreach($linkedProductData as $data){
|
932 |
+
try{
|
933 |
+
$link_model->assign('grouped', $confId, $data);
|
934 |
+
}catch(Exception $ex){
|
935 |
+
return $this->_fault('can_not_update', $ex->getMessage());
|
936 |
+
}
|
937 |
+
}
|
938 |
+
return Mage::helper('catalog')->__("Simple products are added to the grouped product");
|
939 |
+
}
|
940 |
+
|
941 |
+
/**
|
942 |
+
* Create grouped product
|
943 |
+
*
|
944 |
+
* @param int $set : Attribute set Id
|
945 |
+
* @param string $sku : Sku of the new product
|
946 |
+
* @param array $productData : data of the configurable product
|
947 |
+
* @param array $linkedProductData : array of the simple products skus
|
948 |
+
* @return int id of new configurable product
|
949 |
+
*/
|
950 |
+
public function createGrouped($set, $sku, $productData, $linkedProductData){
|
951 |
+
|
952 |
+
if ( !$set || !$sku) {
|
953 |
+
$this->_fault('data_invalid');
|
954 |
+
}
|
955 |
+
|
956 |
+
foreach($linkedProductData as $data){
|
957 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $data);
|
958 |
+
if(!$product){
|
959 |
+
return $this->_fault('simple_product_not_exists');
|
960 |
+
}
|
961 |
+
}
|
962 |
+
|
963 |
+
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
|
964 |
+
|
965 |
+
$pr_model = Mage::getModel('catalog/product_api_v2') ;
|
966 |
+
$link_model = Mage::getModel('catalog/product_link_api_v2') ;
|
967 |
+
|
968 |
+
if($product){
|
969 |
+
$pid = $product->getId();
|
970 |
+
if(!$product->isGrouped()){
|
971 |
+
return $this->_fault('not_grouped');
|
972 |
+
}
|
973 |
+
|
974 |
+
try{
|
975 |
+
$pr_model->update($sku, $productData);
|
976 |
+
}catch(Exception $ex){
|
977 |
+
return $this->_fault('can_not_update', $ex->getMessage());
|
978 |
+
}
|
979 |
+
|
980 |
+
$items = $link_model->items('grouped', $sku);
|
981 |
+
|
982 |
+
$already_present = array();
|
983 |
+
foreach($items as $item){
|
984 |
+
$product_id = $item['product_id'];
|
985 |
+
$already_present[] = $item['sku'];
|
986 |
+
try{
|
987 |
+
$link_model->remove('grouped', $sku, $product_id);
|
988 |
+
}catch(Exception $ex){
|
989 |
+
return $this->_fault('can_not_update', $ex->getMessage());
|
990 |
+
}
|
991 |
+
}
|
992 |
+
$temp = array_merge($linkedProductData, $already_present);
|
993 |
+
$linkedProductData = $temp;
|
994 |
+
|
995 |
+
foreach($linkedProductData as $data){
|
996 |
+
try{
|
997 |
+
$link_model->assign('grouped', $sku, $data);
|
998 |
+
}catch(Exception $ex){
|
999 |
+
return $this->_fault('can_not_update', $ex->getMessage());
|
1000 |
+
}
|
1001 |
+
}
|
1002 |
+
return $pid;
|
1003 |
+
}else{
|
1004 |
+
try{
|
1005 |
+
$pid = $pr_model->create('grouped', $set, $sku, $productData);
|
1006 |
+
}catch(Exception $ex){
|
1007 |
+
return $this->_fault('can_not_create', $ex->getMessage());
|
1008 |
+
}
|
1009 |
+
|
1010 |
+
foreach($linkedProductData as $data){
|
1011 |
+
try{
|
1012 |
+
$link_model->assign('grouped', $sku, $data);
|
1013 |
+
}catch(Exception $ex){
|
1014 |
+
return $this->_fault('can_not_create', $ex->getMessage());
|
1015 |
+
}
|
1016 |
+
}
|
1017 |
+
return $pid;
|
1018 |
+
}
|
1019 |
+
}
|
1020 |
+
|
1021 |
+
/**
|
1022 |
+
* Get products changed since given date
|
1023 |
+
*
|
1024 |
+
* @param $date
|
1025 |
+
* @return array of skus
|
1026 |
+
*/
|
1027 |
+
public function getProductsChangedSince($date)
|
1028 |
+
{
|
1029 |
+
$name = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'name');
|
1030 |
+
$name_id = $name->getId();
|
1031 |
+
|
1032 |
+
$resource = Mage::getSingleton('core/resource');
|
1033 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
1034 |
+
$product_et = $resource->getTableName('catalog_product_entity');
|
1035 |
+
$product_et_varchar = $resource->getTableName('catalog_product_entity_varchar');
|
1036 |
+
$query = "SELECT p.entity_id, p.updated_at, p.sku FROM `".$product_et."`
|
1037 |
+
AS p INNER JOIN `".$product_et_varchar."`
|
1038 |
+
AS v ON p.entity_id = v.entity_id
|
1039 |
+
AND p.updated_at > '".$date."'
|
1040 |
+
AND v.attribute_id = ".$name_id."
|
1041 |
+
AND v.store_id = 0";
|
1042 |
+
|
1043 |
+
$products = $cr->fetchAll($query);
|
1044 |
+
|
1045 |
+
$skus = array();
|
1046 |
+
|
1047 |
+
if($products){
|
1048 |
+
foreach ($products as $product){
|
1049 |
+
$skus[] = $product['sku'];
|
1050 |
+
}
|
1051 |
+
}
|
1052 |
+
return $skus;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
// get 'Qty for Item's Status to Become Out of Stock' for product
|
1056 |
+
private function getMinimumQuantity($si_row)
|
1057 |
+
{
|
1058 |
+
$minQty = 0;
|
1059 |
+
|
1060 |
+
$productsUseConfigMinQty = $si_row['use_config_min_qty'];
|
1061 |
+
|
1062 |
+
if($productsUseConfigMinQty == 1)
|
1063 |
+
{
|
1064 |
+
$systemMinQty = Mage::getStoreConfig('cataloginventory/item_options/min_qty');
|
1065 |
+
$minQty = $systemMinQty;
|
1066 |
+
}else
|
1067 |
+
{
|
1068 |
+
$productsMinQty = $si_row['min_qty'];
|
1069 |
+
$minQty = $productsMinQty;
|
1070 |
+
}
|
1071 |
+
return $minQty;
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
private function mamutFutureStockIsAvailable()
|
1075 |
+
{
|
1076 |
+
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'mamut_future_stock');
|
1077 |
+
if($attribute->getAttributeId())
|
1078 |
+
{
|
1079 |
+
return $attribute->getAttributeId();
|
1080 |
+
}
|
1081 |
+
return false;
|
1082 |
+
}
|
1083 |
+
|
1084 |
+
private function qtyUpdatesPreCheck($use_future_stock)
|
1085 |
+
{
|
1086 |
+
if($use_future_stock)
|
1087 |
+
{
|
1088 |
+
if(Mage::getStoreConfig('mshop/mamut_stock/use_stock_from_suppliers') == 0)
|
1089 |
+
{
|
1090 |
+
$this->_fault('mamut_future_stock_not_available');
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
$mamutFutureStockId = $this->mamutFutureStockIsAvailable();
|
1094 |
+
if($use_future_stock and !$mamutFutureStockId)
|
1095 |
+
{
|
1096 |
+
$this->_fault('mamut_future_stock_not_available');
|
1097 |
+
}
|
1098 |
+
}
|
1099 |
+
return;
|
1100 |
+
}
|
1101 |
+
|
1102 |
+
// get 'Backorders' inventory field for product
|
1103 |
+
private function getBackorders($si_row)
|
1104 |
+
{
|
1105 |
+
$backorders = 0;
|
1106 |
+
|
1107 |
+
$productsUseConfigBackorders = $si_row['use_config_backorders'];
|
1108 |
+
|
1109 |
+
if($productsUseConfigBackorders == 1)
|
1110 |
+
{
|
1111 |
+
$systemBackorders = Mage::getStoreConfig('cataloginventory/item_options/backorders');
|
1112 |
+
$backorders = $systemBackorders;
|
1113 |
+
}else
|
1114 |
+
{
|
1115 |
+
$productsBackorders = $si_row['backorders'];
|
1116 |
+
$backorders = $productsBackorders;
|
1117 |
+
}
|
1118 |
+
return $backorders;
|
1119 |
+
}
|
1120 |
+
|
1121 |
+
/**
|
1122 |
+
* Updated tier prices for product (percentage ot fixed)
|
1123 |
+
*
|
1124 |
+
* @param int $productId
|
1125 |
+
* @param int $tierPrices
|
1126 |
+
* @param int $identifierType
|
1127 |
+
* @return boolean
|
1128 |
+
*/
|
1129 |
+
public function updateTierPrices($productId, $tierPrices, $identifierType = null){
|
1130 |
+
$product = $this->_initProduct($productId, $identifierType);
|
1131 |
+
|
1132 |
+
$updatedTierPrices = $this->prepareTierPrices($product, $tierPrices);
|
1133 |
+
if (is_null($updatedTierPrices)) {
|
1134 |
+
$this->_fault('data_invalid', Mage::helper('catalog')->__('Invalid Tier Prices'));
|
1135 |
+
}
|
1136 |
+
|
1137 |
+
$product->setData(Mage_Catalog_Model_Product_Attribute_Tierprice_Api::ATTRIBUTE_CODE, $updatedTierPrices);
|
1138 |
+
try {
|
1139 |
+
if (is_array($errors = $product->validate())) {
|
1140 |
+
$strErrors = array();
|
1141 |
+
foreach($errors as $code=>$error) {
|
1142 |
+
$strErrors[] = ($error === true)? Mage::helper('catalog')->__('Value for "%s" is invalid.', $code) : Mage::helper('catalog')->__('Value for "%s" is invalid: %s', $code, $error);
|
1143 |
+
}
|
1144 |
+
$this->_fault('data_invalid', implode("\n", $strErrors));
|
1145 |
+
}
|
1146 |
+
$product->save();
|
1147 |
+
} catch (Mage_Core_Exception $e) {
|
1148 |
+
$this->_fault('not_updated', $e->getMessage());
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
return true;
|
1152 |
+
}
|
1153 |
+
|
1154 |
+
protected function _initProduct($productId, $identifierType = null)
|
1155 |
+
{
|
1156 |
+
$product = Mage::helper('catalog/product')->getProduct($productId, $this->_getStoreId($store), $identifierType);
|
1157 |
+
if (!$product->getId()) {
|
1158 |
+
$this->_fault('product_not_exists');
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
return $product;
|
1162 |
+
}
|
1163 |
+
|
1164 |
+
// prepare tier prices (fixed or percentage)
|
1165 |
+
public function prepareTierPrices($product, $tierPrices = null)
|
1166 |
+
{
|
1167 |
+
if (!is_array($tierPrices)) {
|
1168 |
+
return null;
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
$updateValue = array();
|
1172 |
+
|
1173 |
+
foreach ($tierPrices as $tierPrice) {
|
1174 |
+
if (!is_object($tierPrice)
|
1175 |
+
|| !isset($tierPrice->qty)
|
1176 |
+
|| !isset($tierPrice->price)) {
|
1177 |
+
$this->_fault('data_invalid', Mage::helper('catalog')->__('Invalid Tier Prices'));
|
1178 |
+
}
|
1179 |
+
|
1180 |
+
if (!isset($tierPrice->website) || $tierPrice->website == 'all') {
|
1181 |
+
$tierPrice->website = 0;
|
1182 |
+
} else {
|
1183 |
+
try {
|
1184 |
+
$tierPrice->website = Mage::app()->getWebsite($tierPrice->website)->getId();
|
1185 |
+
} catch (Mage_Core_Exception $e) {
|
1186 |
+
$tierPrice->website = 0;
|
1187 |
+
}
|
1188 |
+
}
|
1189 |
+
|
1190 |
+
if (intval($tierPrice->website) > 0 && !in_array($tierPrice->website, $product->getWebsiteIds())) {
|
1191 |
+
$this->_fault('data_invalid', Mage::helper('catalog')->__('Invalid tier prices. The product is not associated to the requested website.'));
|
1192 |
+
}
|
1193 |
+
|
1194 |
+
if (!isset($tierPrice->customer_group_id)) {
|
1195 |
+
$tierPrice->customer_group_id = 'all';
|
1196 |
+
}
|
1197 |
+
|
1198 |
+
if ($tierPrice->customer_group_id == 'all') {
|
1199 |
+
$tierPrice->customer_group_id = Mage_Customer_Model_Group::CUST_GROUP_ALL;
|
1200 |
+
}
|
1201 |
+
|
1202 |
+
if($tierPrice->tier_type && $tierPrice->tier_type != 1 ){
|
1203 |
+
$tierPrice->tier_type = 0;
|
1204 |
+
}
|
1205 |
+
|
1206 |
+
$updateValue[] = array(
|
1207 |
+
'website_id' => $tierPrice->website,
|
1208 |
+
'cust_group' => $tierPrice->customer_group_id,
|
1209 |
+
'price_qty' => $tierPrice->qty,
|
1210 |
+
'price' => $tierPrice->price,
|
1211 |
+
'tier_type' => $tierPrice->tier_type
|
1212 |
+
);
|
1213 |
+
}
|
1214 |
+
|
1215 |
+
return $updateValue;
|
1216 |
+
}
|
1217 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Attribute/Api.php
ADDED
@@ -0,0 +1,465 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Attribute_Api extends Mage_Catalog_Model_Product_Attribute_Api{
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Get Attribute Option Id
|
6 |
+
*
|
7 |
+
* @param string $attribute_code : attribute code
|
8 |
+
* @param string $attribute_label : attribute label
|
9 |
+
* @return id for the given attribute label
|
10 |
+
*/
|
11 |
+
public function getAttributeLabelId($attribute_code, $attribute_label){
|
12 |
+
|
13 |
+
$entityTypeID = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
|
14 |
+
|
15 |
+
$attribute = Mage::getResourceModel('eav/entity_attribute_collection')
|
16 |
+
->setCodeFilter($attribute_code)
|
17 |
+
->setEntityTypeFilter($entityTypeID)
|
18 |
+
->getFirstItem();
|
19 |
+
|
20 |
+
$attributeId = $attribute->getId();
|
21 |
+
|
22 |
+
if($attributeId == null){
|
23 |
+
return $this->_fault('att_not_exists');
|
24 |
+
}
|
25 |
+
|
26 |
+
$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
|
27 |
+
$attribute_options = $attribute ->getSource()->getAllOptions();
|
28 |
+
|
29 |
+
foreach($attribute_options as $option){
|
30 |
+
if($option['label'] == $attribute_label){
|
31 |
+
return $option['value'];
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
return $this->_fault('option_not_exists');
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Add attribute options
|
40 |
+
*
|
41 |
+
* @param string $attributeCode
|
42 |
+
* @param array $attributeOptions
|
43 |
+
* @return boolean
|
44 |
+
*/
|
45 |
+
public function addoptions($attributeCode, $attributeOptions){
|
46 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
47 |
+
$entityTypeID = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
|
48 |
+
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
|
49 |
+
->setEntityTypeFilter($entityTypeID)
|
50 |
+
->setCodeFilter($attributeCode)
|
51 |
+
->getFirstItem();
|
52 |
+
$attributeId = $attributeInfo['attribute_id'];
|
53 |
+
|
54 |
+
if($attributeId == null){
|
55 |
+
return $this->_fault('att_not_exists');
|
56 |
+
}
|
57 |
+
|
58 |
+
try{
|
59 |
+
for($i = 0; $i < sizeof($attributeOptions); $i++) {
|
60 |
+
$option = array();
|
61 |
+
$option['attribute_id'] = $attributeId;
|
62 |
+
$option['value'][$value][0] = $attributeOptions[$i];
|
63 |
+
|
64 |
+
$setup->addAttributeOption($option);
|
65 |
+
}
|
66 |
+
|
67 |
+
return true;
|
68 |
+
}catch(Exception $ex){
|
69 |
+
$this->_fault('can_not_add_option', $ex->getMessage());
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Set All attribute options
|
75 |
+
*
|
76 |
+
* @param string $attributeCode
|
77 |
+
* @param array of strings $attributeOptions
|
78 |
+
* @return boolean
|
79 |
+
*/
|
80 |
+
public function setOptions($attributeCode, $attributeOptions){
|
81 |
+
|
82 |
+
if(count($attributeOptions) == 0){
|
83 |
+
$this->_fault('array_options_not_passed');
|
84 |
+
}
|
85 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
86 |
+
|
87 |
+
|
88 |
+
$attribute_model = Mage::getModel('eav/entity_attribute');
|
89 |
+
$attribute_options_model= Mage::getModel('eav/entity_attribute_source_table') ;
|
90 |
+
|
91 |
+
$attribute_id = $attribute_model->getIdByCode('catalog_product', $attributeCode);
|
92 |
+
|
93 |
+
if($attribute_id == null){
|
94 |
+
return $this->_fault('att_not_exists');
|
95 |
+
}
|
96 |
+
$attribute = $attribute_model->load($attribute_id);
|
97 |
+
|
98 |
+
$attribute_table = $attribute_options_model->setAttribute($attribute);
|
99 |
+
$options = $attribute_options_model->getAllOptions(false);
|
100 |
+
|
101 |
+
try{
|
102 |
+
for($i = 0; $i < sizeof($attributeOptions); $i++) {
|
103 |
+
$exist = false;
|
104 |
+
if($options){
|
105 |
+
foreach ($options as $option){
|
106 |
+
if(in_array($attributeOptions[$i],$option))
|
107 |
+
$exist = true;
|
108 |
+
}
|
109 |
+
}
|
110 |
+
if($exist)
|
111 |
+
continue;
|
112 |
+
|
113 |
+
$option = array();
|
114 |
+
$option['attribute_id'] = $attribute_id;
|
115 |
+
$option['value'][$value][0] = $attributeOptions[$i];
|
116 |
+
|
117 |
+
$setup->addAttributeOption($option);
|
118 |
+
}
|
119 |
+
|
120 |
+
return true;
|
121 |
+
}catch(Exception $ex){
|
122 |
+
$this->_fault('can_not_add_option', $ex->getMessage());
|
123 |
+
}
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Delete attribute options
|
128 |
+
*
|
129 |
+
* @param string $attributeCode
|
130 |
+
*/
|
131 |
+
public function deleteOptions($attributeCode){
|
132 |
+
|
133 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
134 |
+
|
135 |
+
$attribute_model = Mage::getModel('eav/entity_attribute');
|
136 |
+
$attribute_options_model = Mage::getModel('eav/entity_attribute_source_table') ;
|
137 |
+
|
138 |
+
$attribute_id = $attribute_model->getIdByCode('catalog_product', $attributeCode);
|
139 |
+
|
140 |
+
if($attribute_id == null){
|
141 |
+
return $this->_fault('att_not_exists');
|
142 |
+
}
|
143 |
+
$attribute = $attribute_model->load($attribute_id);
|
144 |
+
|
145 |
+
$attribute_table = $attribute_options_model->setAttribute($attribute);
|
146 |
+
$options = $attribute_options_model->getAllOptions(false);
|
147 |
+
|
148 |
+
if($options){
|
149 |
+
try{
|
150 |
+
foreach ($options as $option){
|
151 |
+
$option_id = $option['value'];
|
152 |
+
$options['delete'][$option_id] = true;
|
153 |
+
$options['value'][$option_id] = true;
|
154 |
+
}
|
155 |
+
|
156 |
+
$setup->addAttributeOption($options);
|
157 |
+
}catch(Exception $ex){
|
158 |
+
$this->_fault('can_not_delete_option', $ex->getMessage());
|
159 |
+
}
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Delete product attribute
|
165 |
+
*
|
166 |
+
* @param string $attributeName
|
167 |
+
* @param int $store
|
168 |
+
* @return boolean
|
169 |
+
*/
|
170 |
+
public function delete($attributeName, $store = null){
|
171 |
+
$storeId = $this->_getStoreId($store);
|
172 |
+
$attribute = Mage::getModel('catalog/product')
|
173 |
+
->setStoreId($storeId)
|
174 |
+
->getResource()
|
175 |
+
->getAttribute($attributeName);
|
176 |
+
|
177 |
+
if (!$attribute) {
|
178 |
+
$this->_fault('not_exists');
|
179 |
+
}
|
180 |
+
|
181 |
+
try {
|
182 |
+
$attribute->delete();
|
183 |
+
} catch (Mage_Core_Exception $e) {
|
184 |
+
$this->_fault('not_deleted', $e->getMessage());
|
185 |
+
|
186 |
+
return false;
|
187 |
+
}
|
188 |
+
return true;
|
189 |
+
}
|
190 |
+
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Create new product attribute
|
194 |
+
*
|
195 |
+
* @param striong $labelText : label of the new attribute
|
196 |
+
* @param string $attributeCode : new attribute code
|
197 |
+
* @param array $values : Attribute values
|
198 |
+
* @param array $productTypes : Possible values are(simple, grouped, configurable, virtual, bundle, downloadable, giftcard)
|
199 |
+
* @return int : attribute Id
|
200 |
+
*/
|
201 |
+
public function create($labelText, $attributeCode, $values = null, $productTypes = null){
|
202 |
+
$labelText = trim($labelText);
|
203 |
+
$attributeCode = trim($attributeCode);
|
204 |
+
|
205 |
+
if($labelText == '' || $attributeCode == ''){
|
206 |
+
$this->_fault('att_code_label_not_provided');
|
207 |
+
}
|
208 |
+
if($values === null){
|
209 |
+
$values = array();
|
210 |
+
}
|
211 |
+
|
212 |
+
if($productTypes === null){
|
213 |
+
$productTypes = array();
|
214 |
+
}
|
215 |
+
|
216 |
+
$entityTypeID = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
|
217 |
+
$attribute = Mage::getResourceModel('eav/entity_attribute_collection')
|
218 |
+
->setCodeFilter($attributeCode)
|
219 |
+
->setEntityTypeFilter($entityTypeID)
|
220 |
+
->getFirstItem();
|
221 |
+
$attributId = $attribute->getId();
|
222 |
+
if($attributId != null){
|
223 |
+
return $attributId;
|
224 |
+
}
|
225 |
+
|
226 |
+
$data = array(
|
227 |
+
'is_global' => '1',
|
228 |
+
|
229 |
+
'frontend_input' => 'text',
|
230 |
+
|
231 |
+
'default_value_text' => '',
|
232 |
+
|
233 |
+
'default_value_yesno' => '0',
|
234 |
+
|
235 |
+
'default_value_date' => '',
|
236 |
+
|
237 |
+
'default_value_textarea' => '',
|
238 |
+
|
239 |
+
'is_unique' => '0',
|
240 |
+
|
241 |
+
'is_required' => '0',
|
242 |
+
|
243 |
+
'frontend_class' => '',
|
244 |
+
|
245 |
+
'is_searchable' => '1',
|
246 |
+
|
247 |
+
'is_visible_in_advanced_search' => '1',
|
248 |
+
|
249 |
+
'is_comparable' => '1',
|
250 |
+
|
251 |
+
'is_used_for_promo_rules' => '0',
|
252 |
+
|
253 |
+
'is_html_allowed_on_front' => '1',
|
254 |
+
|
255 |
+
'is_visible_on_front' => '0',
|
256 |
+
|
257 |
+
'used_in_product_listing' => '0',
|
258 |
+
|
259 |
+
'used_for_sort_by' => '0',
|
260 |
+
|
261 |
+
'is_configurable' => '0',
|
262 |
+
|
263 |
+
'is_filterable' => '0',
|
264 |
+
|
265 |
+
'is_filterable_in_search' => '0',
|
266 |
+
|
267 |
+
'backend_type' => 'varchar',
|
268 |
+
|
269 |
+
'default_value' => '',
|
270 |
+
);
|
271 |
+
|
272 |
+
foreach($values as $key => $newValue){
|
273 |
+
|
274 |
+
if(isset($data[$key]) == false){
|
275 |
+
$this->_fault('attr_code_not_valid');
|
276 |
+
}else{
|
277 |
+
$data[$key] = $newValue;
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
$data['apply_to'] = $productTypes;
|
282 |
+
$data['attribute_code'] = $attributeCode;
|
283 |
+
$data['frontend_label'] = array(
|
284 |
+
0 => $labelText,
|
285 |
+
|
286 |
+
1 => '',
|
287 |
+
|
288 |
+
3 => '',
|
289 |
+
|
290 |
+
2 => '',
|
291 |
+
|
292 |
+
4 => '',
|
293 |
+
);
|
294 |
+
|
295 |
+
$model = Mage::getModel('catalog/resource_eav_attribute');
|
296 |
+
$model->addData($data);
|
297 |
+
$model->setEntityTypeId($entityTypeID);
|
298 |
+
$model->setIsUserDefined(1);
|
299 |
+
|
300 |
+
try{
|
301 |
+
$model->save();
|
302 |
+
}catch(Exception $ex){
|
303 |
+
$this->_fault('cat_not_create_attribute');
|
304 |
+
}
|
305 |
+
|
306 |
+
$id = $model->getId();
|
307 |
+
return $id;
|
308 |
+
}
|
309 |
+
|
310 |
+
/**
|
311 |
+
* Get sets that contain listed attributes
|
312 |
+
*
|
313 |
+
* @param array $attr_codes : Array of attribute codes
|
314 |
+
* @return array of attribute sets that contain listed attributes
|
315 |
+
*/
|
316 |
+
public function getSets($attr_codes){
|
317 |
+
if(!is_array($attr_codes)){
|
318 |
+
$this->_fault('array_not_passed');
|
319 |
+
return;
|
320 |
+
}
|
321 |
+
|
322 |
+
$con_sets = array();
|
323 |
+
$entityType = Mage::getModel('catalog/product')->getResource()->getEntityType();
|
324 |
+
$sets = Mage::getModel('eav/entity_attribute_set')
|
325 |
+
->getResourceCollection()
|
326 |
+
->setEntityTypeFilter($entityType->getId())
|
327 |
+
->load();
|
328 |
+
|
329 |
+
foreach($sets as $set){
|
330 |
+
$is = true;
|
331 |
+
$id = $set->getId();
|
332 |
+
$data = $set->getData();
|
333 |
+
$collection = Mage::getResourceModel('catalog/product_attribute_collection')
|
334 |
+
->addVisibleFilter()
|
335 |
+
->setAttributeSetFilter($id)
|
336 |
+
->getData();
|
337 |
+
|
338 |
+
$at = array();
|
339 |
+
foreach($collection as $attr) {
|
340 |
+
$code = $attr['attribute_code'];
|
341 |
+
$at[] = $code;
|
342 |
+
}
|
343 |
+
foreach($attr_codes as $code){
|
344 |
+
if(!in_array($code, $at)){
|
345 |
+
$is = false;
|
346 |
+
break;
|
347 |
+
}
|
348 |
+
}
|
349 |
+
|
350 |
+
if($is){
|
351 |
+
$inset = array('id'=>$id,'name'=>$data['attribute_set_name']);
|
352 |
+
$con_sets[] = $inset;
|
353 |
+
}
|
354 |
+
}
|
355 |
+
if(count($con_sets) > 0){
|
356 |
+
return $con_sets;
|
357 |
+
}else{
|
358 |
+
$this->_fault('no_sets_found');
|
359 |
+
return;
|
360 |
+
}
|
361 |
+
}
|
362 |
+
|
363 |
+
/**
|
364 |
+
* Copy Atribute set
|
365 |
+
*
|
366 |
+
* @param int $setId : ID of the set to be copied
|
367 |
+
* @param string $newSetName : name of the new copied set
|
368 |
+
* @return int : ID of the newly created attribute set
|
369 |
+
*/
|
370 |
+
public function copyAttributeSet($setId, $newSetName){
|
371 |
+
|
372 |
+
$entityType = Mage::getModel('catalog/product')->getResource()->getEntityType();
|
373 |
+
$sets = Mage::getModel('eav/entity_attribute_set')
|
374 |
+
->getResourceCollection()
|
375 |
+
->setEntityTypeFilter($entityType->getId())
|
376 |
+
->load();
|
377 |
+
|
378 |
+
foreach($sets as $set) {
|
379 |
+
$data = $set->getData();
|
380 |
+
$name = $data['attribute_set_name'];
|
381 |
+
if($name == $newSetName){
|
382 |
+
$this->_fault('set_name_exists');
|
383 |
+
return;
|
384 |
+
}
|
385 |
+
}
|
386 |
+
|
387 |
+
$set = Mage::getModel('eav/entity_attribute_set')->load($setId);
|
388 |
+
$set_id = $set->getId();
|
389 |
+
$set_entity_type = $set->getEntityTypeId();
|
390 |
+
|
391 |
+
if($set_id == null){
|
392 |
+
$this->_fault('set_not_exists');
|
393 |
+
return;
|
394 |
+
}
|
395 |
+
|
396 |
+
if($entityType->getId() != $set_entity_type){
|
397 |
+
$this->_fault('no_product_attribute_set');
|
398 |
+
return;
|
399 |
+
}
|
400 |
+
|
401 |
+
try{
|
402 |
+
$model = Mage::getModel('eav/entity_attribute_set')
|
403 |
+
->setEntityTypeId($entityType->getId());
|
404 |
+
$model->setAttributeSetName($newSetName);
|
405 |
+
$model->save();
|
406 |
+
$model->initFromSkeleton($setId);
|
407 |
+
$model->save();
|
408 |
+
$newId = $model->getId();
|
409 |
+
return $newId;
|
410 |
+
}catch(Mage_Core_Exception $e){
|
411 |
+
return $this->_fault('not_copied',$e->getMessage());
|
412 |
+
}
|
413 |
+
}
|
414 |
+
|
415 |
+
/**
|
416 |
+
* Add atribute to set
|
417 |
+
*
|
418 |
+
* @param string $attributeCode
|
419 |
+
* @param int $set_id
|
420 |
+
* @return string
|
421 |
+
*/
|
422 |
+
public function addToSet($attributeCode,$set_id){
|
423 |
+
$entityType = Mage::getModel('catalog/product')->getResource()->getEntityType();
|
424 |
+
$setId = null;
|
425 |
+
$set = Mage::getModel('eav/entity_attribute_set')->load($set_id);
|
426 |
+
|
427 |
+
$setId = $set->getId();
|
428 |
+
if($setId == null){
|
429 |
+
return $this->_fault('set_not_exists');
|
430 |
+
}
|
431 |
+
|
432 |
+
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
|
433 |
+
->setEntityTypeFilter($entityType->getId())
|
434 |
+
->setCodeFilter($attributeCode)
|
435 |
+
->getFirstItem();
|
436 |
+
|
437 |
+
if(! ($attribute_id = $attributeInfo['attribute_id'])){
|
438 |
+
return $this->_fault('att_not_exists');
|
439 |
+
}
|
440 |
+
|
441 |
+
$gr = array();
|
442 |
+
$groups = Mage::getModel('eav/entity_attribute_group')
|
443 |
+
->getResourceCollection()
|
444 |
+
->setAttributeSetFilter($setId)
|
445 |
+
->load();
|
446 |
+
|
447 |
+
foreach($groups as $group){
|
448 |
+
$id = $group->getId();
|
449 |
+
$data = $group->getData();
|
450 |
+
$name = $data['attribute_group_name'];
|
451 |
+
$gr[] = $id;
|
452 |
+
|
453 |
+
}
|
454 |
+
sort($gr);
|
455 |
+
$group_id = $gr[0];
|
456 |
+
|
457 |
+
try{
|
458 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
459 |
+
$setup->addAttributeToSet($entityType->getId(),$setId, $group_id, $attribute_id);
|
460 |
+
return Mage::helper('catalog')->__('The attribute has been added to the set.');
|
461 |
+
}catch(Mage_Core_Exception $e){
|
462 |
+
return $this->_fault('not_added').$e->getMessage();
|
463 |
+
}
|
464 |
+
}
|
465 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Attribute/Api/V2.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Attribute_Api_V2 extends Ecomwise_Mshop_Model_Catalog_Attribute_Api
|
3 |
+
{
|
4 |
+
|
5 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Attribute/Tierprice.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Attribute_Tierprice extends Mage_Catalog_Model_Product_Attribute_Backend_Tierprice
|
3 |
+
{
|
4 |
+
public function afterSave($object){
|
5 |
+
|
6 |
+
$websiteId = Mage::app()->getStore($object->getStoreId())->getWebsiteId();
|
7 |
+
$isGlobal = $this->getAttribute()->isScopeGlobal() || $websiteId == 0;
|
8 |
+
|
9 |
+
$tierPrices = $object->getData($this->getAttribute()->getName());
|
10 |
+
if (empty($tierPrices)) {
|
11 |
+
if ($isGlobal) {
|
12 |
+
$this->_getResource()->deletePriceData($object->getId());
|
13 |
+
} else {
|
14 |
+
$this->_getResource()->deletePriceData($object->getId(), $websiteId);
|
15 |
+
}
|
16 |
+
return $this;
|
17 |
+
}
|
18 |
+
|
19 |
+
$old = array();
|
20 |
+
$new = array();
|
21 |
+
|
22 |
+
// prepare original data for compare
|
23 |
+
$origTierPrices = $object->getOrigData($this->getAttribute()->getName());
|
24 |
+
if (!is_array($origTierPrices)) {
|
25 |
+
$origTierPrices = array();
|
26 |
+
}
|
27 |
+
foreach ($origTierPrices as $data) {
|
28 |
+
if ($data['website_id'] > 0 || ($data['website_id'] == '0' && $isGlobal)) {
|
29 |
+
$key = join('-', array($data['website_id'], $data['cust_group'], $data['price_qty'] * 1));
|
30 |
+
$old[$key] = $data;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
// prepare data for save
|
35 |
+
foreach ($tierPrices as $data) {
|
36 |
+
if (empty($data['price_qty']) || !isset($data['cust_group']) || !empty($data['delete'])) {
|
37 |
+
continue;
|
38 |
+
}
|
39 |
+
if ($this->getAttribute()->isScopeGlobal() && $data['website_id'] > 0) {
|
40 |
+
continue;
|
41 |
+
}
|
42 |
+
if (!$isGlobal && (int)$data['website_id'] == 0) {
|
43 |
+
continue;
|
44 |
+
}
|
45 |
+
|
46 |
+
$key = join('-', array($data['website_id'], $data['cust_group'], $data['price_qty'] * 1));
|
47 |
+
|
48 |
+
$useForAllGroups = $data['cust_group'] == Mage_Customer_Model_Group::CUST_GROUP_ALL;
|
49 |
+
$customerGroupId = !$useForAllGroups ? $data['cust_group'] : 0;
|
50 |
+
|
51 |
+
$new[$key] = array(
|
52 |
+
'website_id' => $data['website_id'],
|
53 |
+
'all_groups' => $useForAllGroups ? 1 : 0,
|
54 |
+
'customer_group_id' => $customerGroupId,
|
55 |
+
'qty' => $data['price_qty'],
|
56 |
+
'value' => $data['price'],
|
57 |
+
'tier_type' => $data['tier_type'],
|
58 |
+
);
|
59 |
+
}
|
60 |
+
|
61 |
+
$delete = array_diff_key($old, $new);
|
62 |
+
$insert = array_diff_key($new, $old);
|
63 |
+
$update = array_intersect_key($new, $old);
|
64 |
+
|
65 |
+
$isChanged = false;
|
66 |
+
$productId = $object->getId();
|
67 |
+
|
68 |
+
if (!empty($delete)) {
|
69 |
+
foreach ($delete as $data) {
|
70 |
+
$this->_getResource()->deletePriceData($productId, null, $data['price_id']);
|
71 |
+
$isChanged = true;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
if (!empty($insert)) {
|
76 |
+
foreach ($insert as $data) {
|
77 |
+
$price = new Varien_Object($data);
|
78 |
+
$price->setEntityId($productId);
|
79 |
+
$this->_getResource()->savePriceData($price);
|
80 |
+
$isChanged = true;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
if (!empty($update)) {
|
85 |
+
foreach ($update as $k => $v) {
|
86 |
+
if (($old[$k]['price'] != $v['value']) || ($old[$k]['tier_type'] != $v['tier_type'])) {
|
87 |
+
$price = new Varien_Object(array(
|
88 |
+
'value_id' => $old[$k]['price_id'],
|
89 |
+
'value' => $v['value'],
|
90 |
+
'tier_type' => $v['tier_type']
|
91 |
+
));
|
92 |
+
$this->_getResource()->savePriceData($price);
|
93 |
+
$isChanged = true;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
if ($isChanged) {
|
99 |
+
$valueChangedKey = $this->getAttribute()->getName() . '_changed';
|
100 |
+
$object->setData($valueChangedKey, 1);
|
101 |
+
}
|
102 |
+
|
103 |
+
return $this;
|
104 |
+
}
|
105 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Category/Api.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Category_Api extends Mage_Catalog_Model_Category_Api
|
3 |
+
{
|
4 |
+
|
5 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Category/Api/V2.php
ADDED
@@ -0,0 +1,87 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Category_Api_V2 extends Mage_Catalog_Model_Category_Api_V2
|
3 |
+
{
|
4 |
+
/**
|
5 |
+
* Create new category
|
6 |
+
*
|
7 |
+
* @param int $parentId
|
8 |
+
* @param array $categoryData
|
9 |
+
* @param int $store
|
10 |
+
* @return int : ID of new created category
|
11 |
+
*/
|
12 |
+
public function create($parentId, $categoryData, $store = null)
|
13 |
+
{
|
14 |
+
$parent_category = $this->_initCategory($parentId, $store);
|
15 |
+
|
16 |
+
$category = Mage::getModel('catalog/category')
|
17 |
+
->setStoreId($this->_getStoreId($store));
|
18 |
+
|
19 |
+
$category->addData(array('path'=>implode('/',$parent_category->getPathIds())));
|
20 |
+
|
21 |
+
$category ->setAttributeSetId($category->getDefaultAttributeSetId());
|
22 |
+
/* @var $category Mage_Catalog_Model_Category */
|
23 |
+
|
24 |
+
foreach ($category->getAttributes() as $attribute) {
|
25 |
+
$_attrCode = $attribute->getAttributeCode();
|
26 |
+
if ($this->_isAllowedAttribute($attribute)
|
27 |
+
&& isset($categoryData->$_attrCode)) {
|
28 |
+
$category->setData(
|
29 |
+
$attribute->getAttributeCode(),
|
30 |
+
$categoryData->$_attrCode
|
31 |
+
);
|
32 |
+
}
|
33 |
+
}
|
34 |
+
|
35 |
+
$category->setParentId($parent_category->getId());
|
36 |
+
try {
|
37 |
+
$validate = $category->validate();
|
38 |
+
if ($validate !== true) {
|
39 |
+
foreach ($validate as $code => $error) {
|
40 |
+
if ($error === true) {
|
41 |
+
if($code !== 'available_sort_by' and substr(Mage::getVersion(), 0, 3) != "1.4"){
|
42 |
+
Mage::throwException(Mage::helper('catalog')->__('Attribute "%s" is required.', $code));
|
43 |
+
}
|
44 |
+
}
|
45 |
+
else {
|
46 |
+
Mage::throwException($error);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
50 |
+
$category->save();
|
51 |
+
}
|
52 |
+
catch (Mage_Core_Exception $e) {
|
53 |
+
$this->_fault('data_invalid', $e->getMessage());
|
54 |
+
}
|
55 |
+
return $category->getId();
|
56 |
+
}
|
57 |
+
|
58 |
+
public function assignProduct($categoryId, $productId, $position = null, $identifierType = null)
|
59 |
+
{
|
60 |
+
if($identifierType == 'sku'){
|
61 |
+
$product = Mage::getModel('catalog/product');
|
62 |
+
$productId = $product->getIdBySku($productId);
|
63 |
+
if(!$productId){
|
64 |
+
$this->_fault('not_exists','Product not exists.');
|
65 |
+
}
|
66 |
+
}else{
|
67 |
+
$product = Mage::getModel('catalog/product')->load($productId);
|
68 |
+
if(!$productId = $product->getId()){
|
69 |
+
$this->_fault('not_exists','Product not exists.');
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
$category = $this->_initCategory($categoryId);
|
74 |
+
$positions = $category->getProductsPosition();
|
75 |
+
|
76 |
+
$positions[$productId] = $position;
|
77 |
+
$category->setPostedProducts($positions);
|
78 |
+
|
79 |
+
try {
|
80 |
+
$category->save();
|
81 |
+
}catch (Mage_Core_Exception $e) {
|
82 |
+
$this->_fault('data_invalid', $e->getMessage());
|
83 |
+
}
|
84 |
+
|
85 |
+
return true;
|
86 |
+
}
|
87 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Product/Api/V2.php
ADDED
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Product_Api_V2 extends Mage_Catalog_Model_Product_Api_V2{
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Create product
|
6 |
+
*
|
7 |
+
* @param string $type
|
8 |
+
* @param int $set
|
9 |
+
* @param string $sku
|
10 |
+
* @param array $productData
|
11 |
+
*/
|
12 |
+
public function create($type, $set, $sku, $productData)
|
13 |
+
{
|
14 |
+
if (!$type || !$set || !$sku) {
|
15 |
+
$this->_fault('data_invalid');
|
16 |
+
}
|
17 |
+
$product = Mage::getModel('catalog/product');
|
18 |
+
/* @var $product Mage_Catalog_Model_Product */
|
19 |
+
|
20 |
+
$product->setStoreId($this->_getStoreId())
|
21 |
+
->setAttributeSetId($set)
|
22 |
+
->setTypeId($type)
|
23 |
+
->setSku($sku);
|
24 |
+
|
25 |
+
if (property_exists($productData, 'website_ids') && is_array($productData->website_ids)) {
|
26 |
+
$product->setWebsiteIds($productData->website_ids);
|
27 |
+
}
|
28 |
+
|
29 |
+
if (property_exists($productData, 'additional_attributes')) {
|
30 |
+
|
31 |
+
Mage::log($productData->additional_attributes);
|
32 |
+
foreach ($productData->additional_attributes as $_attribute) {
|
33 |
+
$_attrCode = $_attribute->key;
|
34 |
+
$productData->$_attrCode = $_attribute->value;
|
35 |
+
}
|
36 |
+
unset($productData->additional_attributes);
|
37 |
+
}
|
38 |
+
|
39 |
+
foreach ($product->getTypeInstance(true)->getEditableAttributes($product) as $attribute) {
|
40 |
+
$_attrCode = $attribute->getAttributeCode();
|
41 |
+
if ($this->_isAllowedAttribute($attribute)
|
42 |
+
&& isset($productData->$_attrCode)) {
|
43 |
+
$product->setData(
|
44 |
+
$attribute->getAttributeCode(),
|
45 |
+
$productData->$_attrCode
|
46 |
+
);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
$this->_prepareDataForSave($product, $productData, "create");
|
51 |
+
|
52 |
+
try {
|
53 |
+
if (is_array($errors = $product->validate())) {
|
54 |
+
$strErrors = array();
|
55 |
+
foreach($errors as $code=>$error) {
|
56 |
+
$strErrors[] = ($error === true)? Mage::helper('catalog')->__('Attribute "%s" is invalid.', $code) : $error;
|
57 |
+
}
|
58 |
+
$this->_fault('data_invalid', implode("\n", $strErrors));
|
59 |
+
}
|
60 |
+
$product->save();
|
61 |
+
} catch (Mage_Core_Exception $e) {
|
62 |
+
$this->_fault('data_invalid', $e->getMessage());
|
63 |
+
}
|
64 |
+
return $product->getId();
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Update product
|
70 |
+
*
|
71 |
+
* @param int $productId
|
72 |
+
* @param array $productData
|
73 |
+
* @param int $store
|
74 |
+
* @param int $identifierType
|
75 |
+
* @return boolean
|
76 |
+
*/
|
77 |
+
public function update($productId, $productData, $store = null, $identifierType = null)
|
78 |
+
{
|
79 |
+
$product = $this->_getProduct($productId, $store, $identifierType);
|
80 |
+
|
81 |
+
if (!$product->getId()) {
|
82 |
+
$this->_fault('not_exists');
|
83 |
+
}
|
84 |
+
|
85 |
+
if (property_exists($productData, 'website_ids') && is_array($productData->website_ids)) {
|
86 |
+
$product->setWebsiteIds($productData->website_ids);
|
87 |
+
}
|
88 |
+
|
89 |
+
if (property_exists($productData, 'additional_attributes')) {
|
90 |
+
foreach ($productData->additional_attributes as $_attribute) {
|
91 |
+
$_attrCode = $_attribute->key;
|
92 |
+
$productData->$_attrCode = $_attribute->value;
|
93 |
+
}
|
94 |
+
unset($productData->additional_attributes);
|
95 |
+
}
|
96 |
+
|
97 |
+
foreach ($product->getTypeInstance(true)->getEditableAttributes($product) as $attribute) {
|
98 |
+
$_attrCode = $attribute->getAttributeCode();
|
99 |
+
if ($this->_isAllowedAttribute($attribute)
|
100 |
+
&& isset($productData->$_attrCode)) {
|
101 |
+
$product->setData(
|
102 |
+
$attribute->getAttributeCode(),
|
103 |
+
$productData->$_attrCode
|
104 |
+
);
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
//fix for minimal price
|
109 |
+
if(isset($productData->price)){
|
110 |
+
if($product->getMinimalPrice() != null && $product->getMinimalPrice() != "" && $product->getMinimalPrice() < (float)$productData->price ){
|
111 |
+
$product->setMinimalPrice($productData->price);
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
$this->_prepareDataForSave($product, $productData, "update");
|
116 |
+
|
117 |
+
try {
|
118 |
+
if (is_array($errors = $product->validate())) {
|
119 |
+
$strErrors = array();
|
120 |
+
foreach($errors as $code=>$error) {
|
121 |
+
$strErrors[] = ($error === true)? Mage::helper('catalog')->__('Value for "%s" is invalid.', $code) : Mage::helper('catalog')->__('Value for "%s" is invalid: %s', $code, $error);
|
122 |
+
}
|
123 |
+
$this->_fault('data_invalid', implode("\n", $strErrors));
|
124 |
+
}
|
125 |
+
$product->save();
|
126 |
+
} catch (Mage_Core_Exception $e) {
|
127 |
+
$this->_fault('data_invalid', $e->getMessage());
|
128 |
+
}
|
129 |
+
|
130 |
+
return true;
|
131 |
+
}
|
132 |
+
|
133 |
+
|
134 |
+
protected function _prepareDataForSave ($product, $productData, $caller = null)
|
135 |
+
{
|
136 |
+
if (property_exists($productData, 'categories') && is_array($productData->categories)) {
|
137 |
+
$product->setCategoryIds($productData->categories);
|
138 |
+
}
|
139 |
+
|
140 |
+
if (property_exists($productData, 'websites') && is_array($productData->websites)) {
|
141 |
+
foreach ($productData->websites as &$website) {
|
142 |
+
if (is_string($website)) {
|
143 |
+
try {
|
144 |
+
$website = Mage::app()->getWebsite($website)->getId();
|
145 |
+
} catch (Exception $e) { }
|
146 |
+
}
|
147 |
+
}
|
148 |
+
$product->setWebsiteIds($productData->websites);
|
149 |
+
}
|
150 |
+
|
151 |
+
if (Mage::app()->isSingleStoreMode()) {
|
152 |
+
$product->setWebsiteIds(array(Mage::app()->getStore(true)->getWebsite()->getId()));
|
153 |
+
}
|
154 |
+
|
155 |
+
if($caller != null && $caller == "update"){
|
156 |
+
|
157 |
+
if (property_exists($productData, 'stock_data')) {
|
158 |
+
|
159 |
+
$_stockData = array('use_config_manage_stock' => 1);
|
160 |
+
foreach ($productData->stock_data as $key => $value) {
|
161 |
+
$_stockData[$key] = $value;
|
162 |
+
}
|
163 |
+
|
164 |
+
if($productData->stock_data->qty && $productData->stock_data->qty > 0 ){
|
165 |
+
$_stockData['is_in_stock'] = 1;
|
166 |
+
}else{
|
167 |
+
$_stockData['is_in_stock'] = 0;
|
168 |
+
}
|
169 |
+
$product->setStockData($_stockData);
|
170 |
+
}
|
171 |
+
}else{
|
172 |
+
|
173 |
+
if (property_exists($productData, 'stock_data')) {
|
174 |
+
$_stockData = array();
|
175 |
+
foreach ($productData->stock_data as $key => $value) {
|
176 |
+
$_stockData[$key] = $value;
|
177 |
+
}
|
178 |
+
} else {
|
179 |
+
$_stockData = array('use_config_manage_stock' => 0);
|
180 |
+
}
|
181 |
+
|
182 |
+
if($productData->stock_data->qty && $productData->stock_data->qty > 0 ){
|
183 |
+
$_stockData['is_in_stock'] = 1;
|
184 |
+
}else{
|
185 |
+
$_stockData['is_in_stock'] = 0;
|
186 |
+
}
|
187 |
+
$product->setStockData($_stockData);
|
188 |
+
}
|
189 |
+
|
190 |
+
if (property_exists($productData, 'tier_price')) {
|
191 |
+
$tierPrices = Mage::getModel('catalog/product_attribute_tierprice_api_V2')->prepareTierPrices($product, $productData->tier_price);
|
192 |
+
$product->setData(Mage_Catalog_Model_Product_Attribute_Tierprice_Api_V2::ATTRIBUTE_CODE, $tierPrices);
|
193 |
+
}
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Override for default 'catalogProductInfo', adds the 'cost' property to the response Entity
|
198 |
+
*
|
199 |
+
* @param int $productId
|
200 |
+
* @param int $store
|
201 |
+
* @param array $attributes
|
202 |
+
* @param int $identifierType
|
203 |
+
* @return array of product attributes
|
204 |
+
*/
|
205 |
+
public function info($productId, $store = null, $attributes = null, $identifierType = null)
|
206 |
+
{
|
207 |
+
$product = $this->_getProduct($productId, $store, $identifierType);
|
208 |
+
|
209 |
+
if (!$product->getId()) {
|
210 |
+
$this->_fault('not_exists');
|
211 |
+
}
|
212 |
+
|
213 |
+
$result = array( // Basic product data
|
214 |
+
'product_id' => $product->getId(),
|
215 |
+
'sku' => $product->getSku(),
|
216 |
+
'set' => $product->getAttributeSetId(),
|
217 |
+
'type' => $product->getTypeId(),
|
218 |
+
'categories' => $product->getCategoryIds(),
|
219 |
+
'websites' => $product->getWebsiteIds(),
|
220 |
+
'cost' => $product->getCost()
|
221 |
+
);
|
222 |
+
|
223 |
+
$allAttributes = array();
|
224 |
+
if (isset($attributes->attributes)) {
|
225 |
+
$allAttributes += array_merge($allAttributes, $attributes->attributes);
|
226 |
+
}
|
227 |
+
|
228 |
+
$_additionalAttributeCodes = array();
|
229 |
+
if (isset($attributes->additional_attributes)) {
|
230 |
+
foreach ($attributes->additional_attributes as $k => $_attributeCode) {
|
231 |
+
$allAttributes[] = $_attributeCode;
|
232 |
+
$_additionalAttributeCodes[] = $_attributeCode;
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
$_additionalAttribute = 0;
|
237 |
+
foreach ($product->getTypeInstance(true)->getEditableAttributes($product) as $attribute) {
|
238 |
+
if ($this->_isAllowedAttribute($attribute, $allAttributes)) {
|
239 |
+
if (in_array($attribute->getAttributeCode(), $_additionalAttributeCodes)) {
|
240 |
+
$result['additional_attributes'][$_additionalAttribute]['key'] = $attribute->getAttributeCode();
|
241 |
+
$result['additional_attributes'][$_additionalAttribute]['value'] = $product->getData($attribute->getAttributeCode());
|
242 |
+
$_additionalAttribute++;
|
243 |
+
} else {
|
244 |
+
$result[$attribute->getAttributeCode()] = $product->getData($attribute->getAttributeCode());
|
245 |
+
}
|
246 |
+
}
|
247 |
+
}
|
248 |
+
return $result;
|
249 |
+
}
|
250 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Catalog/Product/Type/Price.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Catalog_Product_Type_Price extends Mage_Catalog_Model_Product_Type_Price{
|
3 |
+
|
4 |
+
public function getTierPrice($qty=null, $product)
|
5 |
+
{
|
6 |
+
$allGroups = Mage_Customer_Model_Group::CUST_GROUP_ALL;
|
7 |
+
$prices = Mage::getModel("catalog/product")->load($product->getId())->getData('tier_price');
|
8 |
+
|
9 |
+
if (is_null($prices)) {
|
10 |
+
if ($attribute = $product->getResource()->getAttribute('tier_price')) {
|
11 |
+
$attribute->getBackend()->afterLoad($product);
|
12 |
+
$prices = $product->getData('tier_price');
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
if (is_null($prices) || !is_array($prices)) {
|
17 |
+
if (!is_null($qty)) {
|
18 |
+
return $product->getPrice();
|
19 |
+
}
|
20 |
+
return array(array(
|
21 |
+
'price' => $product->getPrice(),
|
22 |
+
'website_price' => $product->getPrice(),
|
23 |
+
'price_qty' => 1,
|
24 |
+
'cust_group' => $allGroups,
|
25 |
+
));
|
26 |
+
}
|
27 |
+
|
28 |
+
$custGroup = $this->_getCustomerGroupId($product);
|
29 |
+
if ($qty) {
|
30 |
+
$prevQty = 1;
|
31 |
+
$prevPrice = $product->getPrice();
|
32 |
+
$prevGroup = $allGroups;
|
33 |
+
foreach ($prices as $price) {
|
34 |
+
|
35 |
+
if ($price['cust_group']!=$custGroup && $price['cust_group']!=$allGroups) {
|
36 |
+
// tier not for current customer group nor is for all groups
|
37 |
+
continue;
|
38 |
+
}
|
39 |
+
if ($qty < $price['price_qty']) {
|
40 |
+
// tier is higher than product qty
|
41 |
+
continue;
|
42 |
+
}
|
43 |
+
if ($price['price_qty'] < $prevQty) {
|
44 |
+
// higher tier qty already found
|
45 |
+
continue;
|
46 |
+
}
|
47 |
+
if ($price['price_qty'] == $prevQty && $prevGroup != $allGroups && $price['cust_group'] == $allGroups) {
|
48 |
+
// found tier qty is same as current tier qty but current tier group is ALL_GROUPS
|
49 |
+
continue;
|
50 |
+
}
|
51 |
+
|
52 |
+
$prevPrice = $price['website_price'];
|
53 |
+
$prevQty = $price['price_qty'];
|
54 |
+
if($price['tier_type'] == 1 && $price['price_qty'] <= 100){
|
55 |
+
$off = ($price['website_price'] * $product->getPrice())/100;
|
56 |
+
$prevPrice = $product->getPrice() - $off;
|
57 |
+
|
58 |
+
}
|
59 |
+
$prevGroup = $price['cust_group'];
|
60 |
+
}
|
61 |
+
|
62 |
+
return $prevPrice;
|
63 |
+
} else {
|
64 |
+
$qtyCache = array();
|
65 |
+
foreach ($prices as $i => $price) {
|
66 |
+
if ($price['cust_group'] != $custGroup && $price['cust_group'] != $allGroups) {
|
67 |
+
unset($prices[$i]);
|
68 |
+
} else if (isset($qtyCache[$price['price_qty']])) {
|
69 |
+
$j = $qtyCache[$price['price_qty']];
|
70 |
+
if ($prices[$j]['website_price'] > $price['website_price']) {
|
71 |
+
unset($prices[$j]);
|
72 |
+
$qtyCache[$price['price_qty']] = $i;
|
73 |
+
} else {
|
74 |
+
unset($prices[$i]);
|
75 |
+
}
|
76 |
+
} else {
|
77 |
+
$qtyCache[$price['price_qty']] = $i;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
return ($prices) ? $prices : array();
|
83 |
+
}
|
84 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Config/Source/Orderattributes.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Config_Source_Orderattributes {
|
3 |
+
|
4 |
+
public function toOptionArray(){
|
5 |
+
|
6 |
+
$resource = Mage::getSingleton('core/resource');
|
7 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
8 |
+
$order_et = $resource->getTableName('sales_flat_order');
|
9 |
+
|
10 |
+
$query = 'SHOW COLUMNS FROM '.$order_et.'';
|
11 |
+
$rows = $cr->fetchAll($query);
|
12 |
+
|
13 |
+
$otions = array();
|
14 |
+
|
15 |
+
foreach($rows as $key=>$val){
|
16 |
+
$value = $val['Field'];
|
17 |
+
|
18 |
+
$value_label_array = explode('_', $value);
|
19 |
+
|
20 |
+
$value_label = implode(' ', $value_label_array);
|
21 |
+
$value_label = ucwords($value_label);
|
22 |
+
$options [] = array('value' => $value, 'label'=>$value_label);
|
23 |
+
|
24 |
+
}
|
25 |
+
return $options;
|
26 |
+
}
|
27 |
+
|
28 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Customer/Api/V2.php
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Customer_Api_V2 extends Mage_Customer_Model_Customer_Api_V2{
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Override for customerCustomerCreate()
|
6 |
+
* Create new customer, confirmed account and send auto generated password
|
7 |
+
*
|
8 |
+
* @param array $customerData
|
9 |
+
* @return int : customer ID
|
10 |
+
*/
|
11 |
+
public function create($customerData)
|
12 |
+
{
|
13 |
+
$customerData = $this->_prepareData($customerData);
|
14 |
+
try {
|
15 |
+
$customer = Mage::getModel('customer/customer')
|
16 |
+
->setData($customerData)
|
17 |
+
->setForceConfirmed(true)
|
18 |
+
->save();
|
19 |
+
|
20 |
+
$sendMailIsActive = Mage::getStoreConfig('mshop/parameters/send_mail');
|
21 |
+
if($sendMailIsActive)
|
22 |
+
{
|
23 |
+
if(!isset($customerData['password'])) {
|
24 |
+
$newPassword = $customer->generatePassword();
|
25 |
+
$customer->changePassword($newPassword);
|
26 |
+
}
|
27 |
+
$customer->sendNewAccountEmail('registered', '', $customerData['store_id']);
|
28 |
+
}
|
29 |
+
|
30 |
+
} catch (Mage_Core_Exception $e) {
|
31 |
+
$this->_fault('data_invalid', $e->getMessage());
|
32 |
+
}
|
33 |
+
return $customer->getId();
|
34 |
+
}
|
35 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Observer.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Observer extends Varien_Object{
|
3 |
+
|
4 |
+
public function saveConfigAfter($data){
|
5 |
+
|
6 |
+
$order = $data['order'];
|
7 |
+
|
8 |
+
$resource = Mage::getSingleton('core/resource');
|
9 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
10 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
11 |
+
$esbo_t = $resource->getTableName('ecomwise_settings_before_order');
|
12 |
+
|
13 |
+
$query = $cr->query("SHOW TABLES LIKE '".$esbo_t."'");
|
14 |
+
$num_rows = count($query->fetchAll());
|
15 |
+
|
16 |
+
if($num_rows == 1){
|
17 |
+
|
18 |
+
$includeTaxSettings = Mage::getStoreConfig('tax/calculation/price_includes_tax');
|
19 |
+
|
20 |
+
$orderId = $order->getId();
|
21 |
+
|
22 |
+
$select_esbo_t = $cr->select()
|
23 |
+
->from($esbo_t)
|
24 |
+
->where("order_id=?", $orderId);
|
25 |
+
|
26 |
+
$esbo_row = $cr->fetchRow($select_esbo_t);
|
27 |
+
|
28 |
+
if(!$esbo_row)
|
29 |
+
{
|
30 |
+
$cw->query('INSERT INTO '.$esbo_t.' (`order_id`,`including_tax`) VALUES ('.$orderId.','.$includeTaxSettings.')');
|
31 |
+
}
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Resource/Eav/Tierprice.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Resource_Eav_Tierprice extends Mage_Catalog_Model_Resource_Product_Attribute_Backend_Tierprice
|
3 |
+
{
|
4 |
+
/**
|
5 |
+
* Load Tier Prices for product
|
6 |
+
*
|
7 |
+
* @param int $productId
|
8 |
+
* @param int $websiteId
|
9 |
+
* @return Mage_Catalog_Model_Resource_Product_Attribute_Backend_Tierprice
|
10 |
+
*/
|
11 |
+
public function loadPriceData($productId, $websiteId = null)
|
12 |
+
{
|
13 |
+
$adapter = $this->_getReadAdapter();
|
14 |
+
|
15 |
+
$columns = array(
|
16 |
+
'price_id' => $this->getIdFieldName(),
|
17 |
+
'website_id' => 'website_id',
|
18 |
+
'all_groups' => 'all_groups',
|
19 |
+
'cust_group' => 'customer_group_id',
|
20 |
+
'price_qty' => 'qty',
|
21 |
+
'price' => 'value',
|
22 |
+
'tier_type' => 'tier_type',
|
23 |
+
);
|
24 |
+
|
25 |
+
$select = $adapter->select()
|
26 |
+
->from($this->getMainTable(), $columns)
|
27 |
+
->where('entity_id=?', $productId)
|
28 |
+
->order('qty');
|
29 |
+
|
30 |
+
if (!is_null($websiteId)) {
|
31 |
+
if ($websiteId == '0') {
|
32 |
+
$select->where('website_id = ?', $websiteId);
|
33 |
+
} else {
|
34 |
+
$select->where('website_id IN(?)', array(0, $websiteId));
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
return $adapter->fetchAll($select);
|
39 |
+
}
|
40 |
+
}
|
41 |
+
?>
|
app/code/community/Ecomwise/Mshop/Model/Sales/Api/V2.php
ADDED
@@ -0,0 +1,1538 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Ecomwise_Mshop_Model_Sales_Api_V2 extends Mage_Sales_Model_Order_Api_V2{
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Shippment create API Function
|
6 |
+
* @param string $orderIncrementId
|
7 |
+
* @param string $comment
|
8 |
+
* @param boolean $email
|
9 |
+
* @param strnig $trackNumber
|
10 |
+
* @return string shippment id
|
11 |
+
*/
|
12 |
+
public function orderShipmentCreate($orderIncrementId, $comment = null, $email = false, $trackNumber = null){
|
13 |
+
$shipmentId = Mage::getModel('sales/order_shipment_api')->create($orderIncrementId, array(), $comment, $email, 0);
|
14 |
+
if($trackNumber!=null){
|
15 |
+
$trackId = Mage::getModel('sales/order_shipment_api')->addTrack($shipmentId, "custom", " ", $trackNumber);
|
16 |
+
}
|
17 |
+
return $shipmentId;
|
18 |
+
}
|
19 |
+
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Credit Memo Info function
|
23 |
+
* @param string $creditmemoIncrementId
|
24 |
+
* @return array
|
25 |
+
*/
|
26 |
+
public function creditMemo($creditmemoIncrementId)
|
27 |
+
{
|
28 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
29 |
+
$resurce = Mage::getSingleton('core/resource');
|
30 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
31 |
+
|
32 |
+
//Load default credit memo
|
33 |
+
$creditmemo = Mage::getModel('sales/order_creditmemo')->load($creditmemoIncrementId, 'increment_id');
|
34 |
+
if(!$creditmemo->getIncrementId()){
|
35 |
+
$this->_fault("credit_memo_not_exist");
|
36 |
+
}
|
37 |
+
$result = $this->info(Mage::getModel('sales/order')->load(intval($creditmemo->getOrderId()))->getIncrementId());
|
38 |
+
$result["status_creditmemo"] = 1;
|
39 |
+
|
40 |
+
$bundleFixed = false;
|
41 |
+
$bundleItemId = 0;
|
42 |
+
$priceIncludingTaxDetected = false;
|
43 |
+
$tax_percent = null;
|
44 |
+
$mshop_discount_percent_bundle = null;
|
45 |
+
|
46 |
+
//Get the "System -> Configuration -> Sales -> Tax -> Catalog Prices" settings at the moment of the order
|
47 |
+
$esbo_t = $resurce->getTableName('ecomwise_settings_before_order');
|
48 |
+
$select_esbo_t = $cr->select()
|
49 |
+
->from($esbo_t)
|
50 |
+
->where("order_id=?", Mage::getModel('sales/order')->load(intval($creditmemo->getOrderId()))->getIncrementId());
|
51 |
+
|
52 |
+
$esbo_row = $cr->fetchRow($select_esbo_t);
|
53 |
+
$includeTaxSettings = null;
|
54 |
+
if($esbo_row)
|
55 |
+
{
|
56 |
+
$includeTaxSettings = $esbo_row['including_tax'];
|
57 |
+
}
|
58 |
+
$creditmemo = Mage::getModel('sales/order_creditmemo_api')->info($creditmemoIncrementId);
|
59 |
+
|
60 |
+
//Handle order level data
|
61 |
+
$result = $this->setOrderData($creditmemo, $result);
|
62 |
+
|
63 |
+
$order_item_to_stay = array();
|
64 |
+
foreach ($creditmemo['items'] as $cmitem)
|
65 |
+
{
|
66 |
+
$order_item_to_stay[] = $cmitem['order_item_id'];
|
67 |
+
}
|
68 |
+
|
69 |
+
for ($i = 0; $i <= count($result['items']); $i++)
|
70 |
+
{
|
71 |
+
if(!in_array($result['items'][$i]['item_id'], $order_item_to_stay))
|
72 |
+
{
|
73 |
+
unset($result['items'][$i]);
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
$itemCounter = 0;
|
78 |
+
$ritems = $result['items'];
|
79 |
+
$result['items'] = null; $result['items'] = array();
|
80 |
+
|
81 |
+
foreach($ritems as $key => $oitem)
|
82 |
+
{
|
83 |
+
$cmitem = null; $cmitem = array();
|
84 |
+
foreach ($creditmemo['items'] as $cmpitem)
|
85 |
+
{
|
86 |
+
if($oitem['item_id'] == $cmpitem['order_item_id'])
|
87 |
+
{
|
88 |
+
$cmitem = $cmpitem;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
//Set item data
|
93 |
+
$oitem = $this->setItemData($oitem, $cmitem);
|
94 |
+
|
95 |
+
//Bundle products handling
|
96 |
+
$oitem['mshop_bundle_type'] = 'none';
|
97 |
+
$product_options = unserialize($oitem['product_options']);
|
98 |
+
|
99 |
+
if(array_key_exists('product_calculations', $product_options)) {
|
100 |
+
if($product_options['product_calculations'] == 0) {
|
101 |
+
$oitem['mshop_bundle_type'] = 'dynamic';
|
102 |
+
// Dynamic bundle price: based on underlying products, so set all M-Shop prices to 0
|
103 |
+
$oitem['mshop_base_price_incl_tax'] = 0;
|
104 |
+
$oitem['mshop_base_price_excl_tax'] = 0;
|
105 |
+
$oitem['mshop_discount_percent'] = 0;
|
106 |
+
}
|
107 |
+
else{
|
108 |
+
$bundleFixed = true;
|
109 |
+
$oitem['mshop_bundle_type'] = 'fixed';
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
if($oitem['product_type'] == 'bundle' and $product_options['product_calculations'] != 0){
|
114 |
+
$bundleItemId = $oitem['item_id'];
|
115 |
+
// Set budle product data
|
116 |
+
$oitem = $this -> setBundleProductData($oitem, $product_options, $includeTaxSettings);
|
117 |
+
$mshop_discount_percent_bundle = $oitem['mshop_discount_percent'];
|
118 |
+
}
|
119 |
+
|
120 |
+
if($bundleItemId != 0 and $oitem['parent_item_id'] == $bundleItemId)
|
121 |
+
{
|
122 |
+
//this is an underlying item of the bundle product
|
123 |
+
$oitem = $this -> setBundleItemsData($oitem, $includeTaxSettings);
|
124 |
+
$oitem['mshop_discount_percent'] = $mshop_discount_percent_bundle;
|
125 |
+
}
|
126 |
+
|
127 |
+
$result['items'][] = $oitem;
|
128 |
+
$itemCounter++;
|
129 |
+
}
|
130 |
+
|
131 |
+
return $result;
|
132 |
+
}
|
133 |
+
|
134 |
+
|
135 |
+
private function setOrderData($creditmemo, $result){
|
136 |
+
$result['order_id'] = $creditmemo['creditmemo_id'];
|
137 |
+
$result['increment_id'] = $creditmemo['increment_id'];
|
138 |
+
$result['mshop_order_increment_id'] = $creditmemo['order_increment_id'];
|
139 |
+
$result['store_id'] = $creditmemo['store_id'];
|
140 |
+
$result['adjustment_positive'] = $creditmemo['adjustment_positive'];
|
141 |
+
$result['base_shipping_tax_amount'] = $creditmemo['base_shipping_tax_amount'];
|
142 |
+
$result['store_to_order_rate'] = $creditmemo['store_to_order_rate'];
|
143 |
+
$result['base_discount_amount'] = $creditmemo['base_discount_amount'];
|
144 |
+
$result['base_to_order_rate'] = $creditmemo['base_to_order_rate'];
|
145 |
+
$result['grand_total'] = $creditmemo['grand_total'];
|
146 |
+
$result['base_adjustment_negative'] = $creditmemo['base_adjustment_negative'];
|
147 |
+
$result['base_subtotal_incl_tax'] = $creditmemo['base_subtotal_incl_tax'];
|
148 |
+
$result['shipping_amount'] = $creditmemo['shipping_amount'];
|
149 |
+
$result['subtotal_incl_tax'] = $creditmemo['subtotal_incl_tax'];
|
150 |
+
$result['adjustment_negative'] = $creditmemo['adjustment_negative'];
|
151 |
+
$result['base_shipping_amount'] = $creditmemo['base_shipping_amount'];
|
152 |
+
$result['store_to_base_rate'] = $creditmemo['store_to_base_rate'];
|
153 |
+
$result['base_to_global_rate'] = $creditmemo['base_to_global_rate'];
|
154 |
+
$result['base_subtotal'] = $creditmemo['base_subtotal'];
|
155 |
+
$result['discount_amount'] = $creditmemo['discount_amount'];
|
156 |
+
$result['subtotal'] = $creditmemo['subtotal'];
|
157 |
+
$result['base_grand_total'] = $creditmemo['base_grand_total'];
|
158 |
+
$result['base_adjustment_positive'] = $creditmemo['base_adjustment_positive'];
|
159 |
+
$result['base_tax_amount'] = $creditmemo['base_tax_amount'];
|
160 |
+
$result['shipping_tax_amount'] = $creditmemo['shipping_tax_amount'];
|
161 |
+
$result['tax_amount'] = $creditmemo['tax_amount'];
|
162 |
+
$result['email_sent'] = $creditmemo['email_sent'];
|
163 |
+
$result['state'] = $creditmemo['state'];
|
164 |
+
$result['shipping_address_id'] = $creditmemo['shipping_address_id'];
|
165 |
+
$result['billing_address_id'] = $creditmemo['billing_address_id'];
|
166 |
+
$result['store_currency_code'] = $creditmemo['store_currency_code'];
|
167 |
+
$result['order_currency_code'] = $creditmemo['order_currency_code'];
|
168 |
+
$result['base_currency_code'] = $creditmemo['base_currency_code'];
|
169 |
+
$result['global_currency_code'] = $creditmemo['global_currency_code'];
|
170 |
+
$result['created_at'] = $creditmemo['created_at'];
|
171 |
+
$result['updated_at'] = $creditmemo['updated_at'];
|
172 |
+
$result['hidden_tax_amount'] = $creditmemo['hidden_tax_amount'];
|
173 |
+
$result['base_hidden_tax_amount'] = $creditmemo['base_hidden_tax_amount'];
|
174 |
+
$result['shipping_hidden_tax_amount'] = $creditmemo['shipping_hidden_tax_amount'];
|
175 |
+
$result['base_shipping_hidden_tax_amnt'] = $creditmemo['base_shipping_hidden_tax_amnt'];
|
176 |
+
$result['shipping_incl_tax'] = $creditmemo['shipping_incl_tax'];
|
177 |
+
$result['base_shipping_incl_tax'] = $creditmemo['shipping_amount'];
|
178 |
+
$result['mshop_gross_shipping_amount'] = $creditmemo['shipping_amount'] + $creditmemo['shipping_tax_amount'];
|
179 |
+
|
180 |
+
return $result;
|
181 |
+
}
|
182 |
+
|
183 |
+
private function setItemData($oitem, $cmitem){
|
184 |
+
$oitem['base_price'] = $cmitem['base_price'];
|
185 |
+
$oitem['base_price_incl_tax'] = $cmitem['base_price_incl_tax'];
|
186 |
+
$oitem['base_discount_amount'] = $cmitem['base_discount_amount'];
|
187 |
+
$oitem['tax_amount'] = $cmitem['tax_amount'];
|
188 |
+
$oitem['base_row_total'] = $cmitem['base_row_total'];
|
189 |
+
$oitem['discount_amount'] = $cmitem['discount_amount'];
|
190 |
+
$oitem['row_total'] = $cmitem['row_total'];
|
191 |
+
$oitem['price_incl_tax'] = $cmitem['price_incl_tax'];
|
192 |
+
$oitem['base_tax_amount'] = $cmitem['base_tax_amount'];
|
193 |
+
$oitem['qty'] = $cmitem['qty'];
|
194 |
+
$oitem['base_cost'] = $cmitem['base_cost'];
|
195 |
+
$oitem['price'] = $cmitem['price'];
|
196 |
+
$oitem['base_row_total_incl_tax'] = $cmitem['base_row_total_incl_tax'];
|
197 |
+
$oitem['row_total_incl_tax'] = $cmitem['row_total_incl_tax'];
|
198 |
+
$oitem['product_id'] = $cmitem['product_id'];
|
199 |
+
$oitem['additional_data'] = $cmitem['additional_data'];
|
200 |
+
$oitem['description'] = $cmitem['description'];
|
201 |
+
$oitem['sku'] = $cmitem['sku'];
|
202 |
+
$oitem['free_shipping'] = $cmitem['free_shipping'];
|
203 |
+
$oitem['is_qty_decimal'] = $cmitem['is_qty_decimal'];
|
204 |
+
$oitem['name'] = $cmitem['name'];
|
205 |
+
$oitem['hidden_tax_amount'] = $cmitem['hidden_tax_amount'];
|
206 |
+
$oitem['base_hidden_tax_amount'] = $cmitem['base_hidden_tax_amount'];
|
207 |
+
$oitem['weee_tax_disposition'] = $cmitem['weee_tax_disposition'];
|
208 |
+
$oitem['base_weee_tax_disposition'] = $cmitem['base_weee_tax_disposition'];
|
209 |
+
$oitem['base_weee_tax_row_disposition'] = $cmitem['base_weee_tax_row_disposition'];
|
210 |
+
$oitem['weee_tax_applied'] = $cmitem['weee_tax_applied'];
|
211 |
+
$oitem['base_weee_tax_applied_amount'] = $cmitem['base_weee_tax_applied_amount'];
|
212 |
+
$oitem['base_weee_tax_applied_row_amnt'] = $cmitem['base_weee_tax_applied_row_amnt'];
|
213 |
+
$oitem['weee_tax_applied_amount'] = $cmitem['weee_tax_applied_amount'];
|
214 |
+
$oitem['weee_tax_applied_row_amount'] = $cmitem['weee_tax_applied_row_amount'];
|
215 |
+
|
216 |
+
$oitem['mshop_base_price_incl_tax'] = number_format(0.0000, 4);
|
217 |
+
if($oitem['discount_percent'] != null and $oitem['discount_percent'] != 0.0000){
|
218 |
+
if($oitem['base_price_incl_tax'] != null and $oitem['base_price_incl_tax'] != 0.0000)
|
219 |
+
$oitem['mshop_base_price_incl_tax'] = number_format($oitem['base_price_incl_tax'], 4,'.', '');
|
220 |
+
}else{
|
221 |
+
if($oitem['base_price_incl_tax'] != null and $oitem['base_price_incl_tax'] != 0.0000)
|
222 |
+
$oitem['mshop_base_price_incl_tax'] = number_format(($oitem['base_price_incl_tax'] - $oitem['base_discount_amount']/$oitem['qty_refunded']), 4,'.', '');
|
223 |
+
}
|
224 |
+
|
225 |
+
$oitem['mshop_base_price_excl_tax'] = number_format(0.0000, 4);
|
226 |
+
if($oitem['discount_percent'] != null and $oitem['discount_percent'] != 0.0000){
|
227 |
+
if($oitem['base_price'] != null and $oitem['base_price'] != 0.0000)
|
228 |
+
$oitem['mshop_base_price_excl_tax'] = number_format($oitem['base_price'], 4,'.', '');
|
229 |
+
}else{
|
230 |
+
if($oitem['base_price'] != null and $oitem['base_price'] != 0.0000)
|
231 |
+
$oitem['mshop_base_price_excl_tax'] = number_format(($oitem['base_price'] - $oitem['base_discount_amount']/$oitem['qty_refunded']), 4,'.', '');
|
232 |
+
}
|
233 |
+
$oitem['mshop_discount_percent'] = 0;
|
234 |
+
|
235 |
+
return $oitem;
|
236 |
+
}
|
237 |
+
|
238 |
+
private function setBundleProductData($oitem, $product_options, $includeTaxSettings){
|
239 |
+
$tax_percent = $oitem['tax_percent'];
|
240 |
+
|
241 |
+
$sumOfUnderlyingValues = null;
|
242 |
+
if(array_key_exists('bundle_options', $product_options)) {
|
243 |
+
$bundle_options = $product_options['bundle_options'];
|
244 |
+
foreach ($bundle_options as $bundle_option)
|
245 |
+
{
|
246 |
+
$value_array = $bundle_option['value'];
|
247 |
+
$sumOfUnderlyingValues = null;
|
248 |
+
foreach($value_array as $one_value)
|
249 |
+
{
|
250 |
+
$sumOfUnderlyingValues += $one_value['price'];
|
251 |
+
}
|
252 |
+
break;
|
253 |
+
}
|
254 |
+
}
|
255 |
+
$sumOfUnderlyingValuesInclTax = null;
|
256 |
+
$sumOfUnderlyingValuesExclTax = null;
|
257 |
+
|
258 |
+
if($includeTaxSettings == "1")
|
259 |
+
{
|
260 |
+
$sumOfUnderlyingValuesInclTax = $sumOfUnderlyingValues;
|
261 |
+
$sumOfUnderlyingValuesExclTax = number_format(($sumOfUnderlyingValuesInclTax / (1 + $tax_percent/100)), 4);
|
262 |
+
}
|
263 |
+
else
|
264 |
+
{
|
265 |
+
$sumOfUnderlyingValuesExclTax = $sumOfUnderlyingValues;
|
266 |
+
$sumOfUnderlyingValuesInclTax = number_format(($sumOfUnderlyingValuesExclTax * (1 + $tax_percent/100) ), 4);
|
267 |
+
}
|
268 |
+
|
269 |
+
$oitem['mshop_base_price_incl_tax'] = number_format(0.0000, 4);
|
270 |
+
if($oitem['discount_percent'] != null and $oitem['discount_percent'] != 0.0000){
|
271 |
+
if($cmitem['base_price_incl_tax'] != null and $oitem['base_price_incl_tax'] != 0.0000)
|
272 |
+
$oitem['mshop_base_price_incl_tax'] = number_format($oitem['base_price_incl_tax'] - $sumOfUnderlyingValuesInclTax, 4,'.', '');
|
273 |
+
}
|
274 |
+
else
|
275 |
+
{
|
276 |
+
if($oitem['base_price_incl_tax'] != null and $oitem['base_price_incl_tax'] != 0.0000)
|
277 |
+
$oitem['mshop_base_price_incl_tax'] = number_format(($oitem['base_price_incl_tax'] - $sumOfUnderlyingValuesInclTax - $oitem['base_discount_amount']/$oitem['qty_refunded']), 4,'.', '');
|
278 |
+
}
|
279 |
+
|
280 |
+
$oitem['mshop_base_price_excl_tax'] = number_format(0.0000, 4);
|
281 |
+
if($oitem['discount_percent'] != null and $oitem['discount_percent'] != 0.0000){
|
282 |
+
if($oitem['base_price'] != null and $oitem['base_price'] != 0.0000)
|
283 |
+
$oitem['mshop_base_price_excl_tax'] = number_format($oitem['base_price'] - $sumOfUnderlyingValuesExclTax , 4,'.', '');
|
284 |
+
}
|
285 |
+
else
|
286 |
+
{
|
287 |
+
if($oitem['base_price'] != null and $oitem['base_price'] != 0.0000)
|
288 |
+
$oitem['mshop_base_price_excl_tax'] = number_format(($oitem['base_price'] - $sumOfUnderlyingValuesExclTax - $oitem['base_discount_amount']/$oitem['qty_refunded']), 4,'.', '');
|
289 |
+
}
|
290 |
+
$oitem['mshop_discount_percent'] = $oitem['discount_percent'];
|
291 |
+
|
292 |
+
return $oitem;
|
293 |
+
}
|
294 |
+
|
295 |
+
private function setBundleItemsData($oitem, $includeTaxSettings){
|
296 |
+
$tax_percent = $oitem['tax_percent'];
|
297 |
+
$underlyingProductOptions = unserialize($oitem['product_options']);
|
298 |
+
$bundleSelectionAttributes = unserialize($underlyingProductOptions['bundle_selection_attributes']);
|
299 |
+
|
300 |
+
$underlyingItemValue = $bundleSelectionAttributes['price'];
|
301 |
+
$underlyingItemValueInclTax = null;
|
302 |
+
$underlyingItemValueExclTax = null;
|
303 |
+
|
304 |
+
if($includeTaxSettings == "1")
|
305 |
+
{
|
306 |
+
$underlyingItemValueInclTax = $underlyingItemValue;
|
307 |
+
$underlyingItemValueExclTax = number_format(($underlyingItemValueInclTax / ( 1 + $tax_percent/100)), 4);
|
308 |
+
}
|
309 |
+
else
|
310 |
+
{
|
311 |
+
$underlyingItemValueExclTax = $underlyingItemValue;
|
312 |
+
$underlyingItemValueInclTax = number_format(($underlyingItemValueExclTax * (1 + $tax_percent/100)), 4);
|
313 |
+
}
|
314 |
+
|
315 |
+
$oitem['mshop_base_price_incl_tax'] = $underlyingItemValueInclTax;
|
316 |
+
$oitem['mshop_base_price_excl_tax'] = $underlyingItemValueExclTax;
|
317 |
+
|
318 |
+
return $oitem;
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
*
|
323 |
+
* List Of Orders filtered by status and order id
|
324 |
+
* @param int $startId
|
325 |
+
* @param array $orderStatuses
|
326 |
+
* @return array
|
327 |
+
*/
|
328 |
+
public function getOrdersFromWithStatus($startId, $orderStatuses){
|
329 |
+
|
330 |
+
$results = array();
|
331 |
+
$lastOrder = Mage::getModel('sales/order')->getCollection()->addOrder('entity_id')->setPageSize(1);
|
332 |
+
foreach ($lastOrder as $order){
|
333 |
+
$lastOrderId = $order->getId();
|
334 |
+
}
|
335 |
+
|
336 |
+
for($i = $startId + 1; $i < $lastOrderId + 1; $i++){
|
337 |
+
$order = Mage::getModel('sales/order')->load($i);
|
338 |
+
if($order->getStatus())
|
339 |
+
{
|
340 |
+
if(in_array($order->getStatus(), $orderStatuses)){
|
341 |
+
$results[] = $order->getIncrementId();
|
342 |
+
}
|
343 |
+
}
|
344 |
+
}
|
345 |
+
return $results;
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
*
|
350 |
+
* List of Credit memos filtered by credit memo id
|
351 |
+
* @param int $startId
|
352 |
+
* @return array
|
353 |
+
*/
|
354 |
+
public function getCreditmemosFrom($startId){
|
355 |
+
$results = array();
|
356 |
+
$lastCreditMemo = Mage::getModel('sales/order_creditmemo')->getCollection()->addOrder('entity_id')->setPageSize(1);
|
357 |
+
foreach ($lastCreditMemo as $creditmemo){
|
358 |
+
$lastCreditMemoId = $creditmemo->getId();
|
359 |
+
}
|
360 |
+
for($i = $startId + 1; $i < $lastCreditMemoId + 1; $i++){
|
361 |
+
$creditmemo = Mage::getModel('sales/order_creditmemo')->load($i);
|
362 |
+
if($creditmemo->getId()){
|
363 |
+
$results[] = $creditmemo->getIncrementId();
|
364 |
+
}
|
365 |
+
}
|
366 |
+
|
367 |
+
return $results;
|
368 |
+
}
|
369 |
+
|
370 |
+
/**
|
371 |
+
* List of items ordered for order filtered by order ids.
|
372 |
+
*
|
373 |
+
* @param array $ordersIds
|
374 |
+
* @return array
|
375 |
+
*/
|
376 |
+
public function getSalesForOrders($ordersIds){
|
377 |
+
|
378 |
+
if(!is_array($ordersIds)){
|
379 |
+
$this->_fault("array_id_not_passed");
|
380 |
+
}
|
381 |
+
|
382 |
+
$increments_string = implode('","', $ordersIds);
|
383 |
+
$increments_string = '"'.$increments_string.'"';
|
384 |
+
// Resources
|
385 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
386 |
+
$resource = Mage::getSingleton('core/resource');
|
387 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
388 |
+
$sales_item_table = $resource->getTableName("sales_flat_order_item");
|
389 |
+
$sales_table = $resource->getTableName("sales_flat_order");
|
390 |
+
|
391 |
+
|
392 |
+
$query = "SELECT order_id, SUM(qty_ordered) as qty, sku, product_type FROM ".$sales_item_table." as st INNER JOIN ".$sales_table." as s ON st.order_id = s.entity_id WHERE s.increment_id
|
393 |
+
IN (".$increments_string.") AND st.product_type <> 'configurable' AND st.product_type <> 'bundle' GROUP BY st.sku";
|
394 |
+
|
395 |
+
$results_query = $cr->query($query);
|
396 |
+
|
397 |
+
$results = $results_query->fetchAll();
|
398 |
+
return $results;
|
399 |
+
}
|
400 |
+
|
401 |
+
/**
|
402 |
+
* List of items ordered for order filtered by order statuses.
|
403 |
+
*
|
404 |
+
* @param array $ordersIds
|
405 |
+
* @return array
|
406 |
+
*/
|
407 |
+
public function getSalesForOrdersWithStatus($orderStatuses){
|
408 |
+
|
409 |
+
if(!is_array($orderStatuses)){
|
410 |
+
$this->_fault("array_id_not_passed");
|
411 |
+
}
|
412 |
+
|
413 |
+
$statuses_string = implode('","', $orderStatuses);
|
414 |
+
$statuses_string = '"'.$statuses_string.'"';
|
415 |
+
// Resources
|
416 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
417 |
+
$resource = Mage::getSingleton('core/resource');
|
418 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
419 |
+
$sales_item_table = $resource->getTableName("sales_flat_order_item");
|
420 |
+
$sales_table = $resource->getTableName("sales_flat_order");
|
421 |
+
|
422 |
+
|
423 |
+
$query = "SELECT order_id, SUM(qty_ordered) as qty, sku, product_type FROM ".$sales_item_table." as st INNER JOIN ".$sales_table." as s ON st.order_id = s.entity_id WHERE s.status
|
424 |
+
IN(".$statuses_string.") AND st.product_type <> 'configurable' AND st.product_type <> 'bundle' GROUP BY st.sku";
|
425 |
+
|
426 |
+
|
427 |
+
$results_query = $cr->query($query);
|
428 |
+
|
429 |
+
$results = $results_query->fetchAll();
|
430 |
+
|
431 |
+
return $results;
|
432 |
+
}
|
433 |
+
|
434 |
+
/**
|
435 |
+
*
|
436 |
+
* @see Mage_Sales_Model_Order_Api_V2::items()
|
437 |
+
*/
|
438 |
+
public function items($filters = null){
|
439 |
+
return parent::items($filters);
|
440 |
+
}
|
441 |
+
|
442 |
+
|
443 |
+
/**
|
444 |
+
* Order Info API method
|
445 |
+
*
|
446 |
+
* string Order Increment Id
|
447 |
+
* @see Mage_Sales_Model_Order_Api::info()
|
448 |
+
*/
|
449 |
+
public function info($orderIncrementId){
|
450 |
+
|
451 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
452 |
+
$resurce = Mage::getSingleton('core/resource');
|
453 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
454 |
+
$tax_con = $resurce->getTableName('tax_calculation');
|
455 |
+
$tax_rule = $resurce->getTableName('tax_calculation_rule');
|
456 |
+
$tax_classes = $resurce->getTableName('tax_class');
|
457 |
+
$tax_rates = $resurce->getTableName('tax_calculation_rate');
|
458 |
+
|
459 |
+
$order = $this->_initOrder($orderIncrementId);
|
460 |
+
$order_id = $order->getId();
|
461 |
+
$result = $this->_getAttributes($order, 'order');
|
462 |
+
$purchasedFrom = $order->getStoreId();
|
463 |
+
|
464 |
+
//Get addresses details
|
465 |
+
$billing_address = $order->getBillingAddress();
|
466 |
+
$shipping_address = $order->getShippingAddress();
|
467 |
+
$bundleItemId = 0;
|
468 |
+
$priceIncludingTaxDetected = false;
|
469 |
+
$tax_percent = null;
|
470 |
+
$mshop_discount_percent_bundle = null;
|
471 |
+
|
472 |
+
//Get the "System -> Configuration -> Sales -> Tax -> Catalog Prices" settings at the moment of the order
|
473 |
+
$esbo_t = $resurce->getTableName('ecomwise_settings_before_order');
|
474 |
+
$select_esbo_t = $cr->select()
|
475 |
+
->from($esbo_t)
|
476 |
+
->where("order_id=?", $order->getId());
|
477 |
+
|
478 |
+
$esbo_row = $cr->fetchRow($select_esbo_t);
|
479 |
+
$includeTaxSettings = null;
|
480 |
+
if($esbo_row)
|
481 |
+
{
|
482 |
+
$includeTaxSettings = $esbo_row['including_tax'];
|
483 |
+
}
|
484 |
+
|
485 |
+
//Get Shipment Tax Rule
|
486 |
+
$customer_group_id = $order->getCustomerGroupId();
|
487 |
+
$group = Mage::getModel('customer/group')->load($customer_group_id);
|
488 |
+
$cust_tax_class_id = $group->getTaxClassId();
|
489 |
+
|
490 |
+
$result = $this->getShippingTaxRule($purchasedFrom, $shipping_address, $order, $cust_tax_class_id, $result);
|
491 |
+
|
492 |
+
$result['mshop_invoice_date'] = $this->getInvoiceDate($orderIncrementId);
|
493 |
+
$result['shipping_address'] = $this->_getAttributes($order->getShippingAddress(), 'order_address');
|
494 |
+
$result['billing_address'] = $this->_getAttributes($order->getBillingAddress(), 'order_address');
|
495 |
+
$result['billing_address']['mshop_middle_name'] = $order->getCustomerMiddlename();
|
496 |
+
|
497 |
+
$billing_street = $order->getBillingAddress()->getStreet();
|
498 |
+
$result = $this->getBillingData($billing_street,$result);
|
499 |
+
|
500 |
+
$shipping_street = $order->getShippingAddress()->getStreet();
|
501 |
+
$result = $this->getShippingData($billing_street,$shipping_street,$result);
|
502 |
+
|
503 |
+
$result = $this->getCustomerData($order,$result);
|
504 |
+
|
505 |
+
$result['items'] = array();
|
506 |
+
|
507 |
+
$sumQuantities = 0;
|
508 |
+
foreach ($order->getAllItems() as $item)
|
509 |
+
{
|
510 |
+
if($item['product_type'] == 'simple')
|
511 |
+
{
|
512 |
+
$sumQuantities += $item['qty_ordered'];
|
513 |
+
}
|
514 |
+
}
|
515 |
+
|
516 |
+
$stores = array();
|
517 |
+
foreach ($order->getAllItems() as $item) {
|
518 |
+
|
519 |
+
$product_id = $item['product_id'];
|
520 |
+
$store_id = $item['store_id'];
|
521 |
+
$product = Mage::getModel('catalog/product')
|
522 |
+
->setStoreId($store_id)
|
523 |
+
->load($product_id);
|
524 |
+
$product_id = $product->getId();
|
525 |
+
|
526 |
+
$stores_product = $this->getVisibleInStore($product_id);
|
527 |
+
$srores_product_single = array();
|
528 |
+
$stores_product_single['product_id'] = $product_id;
|
529 |
+
$stores_product_single['store_view_ids'] = $stores_product;
|
530 |
+
$stores[] = $stores_product_single;
|
531 |
+
|
532 |
+
$options = $this->_getAttributes($item, 'order_item');
|
533 |
+
$options = $this->getItemTaxData($item, $order, $cust_tax_class_id, $product, $options);
|
534 |
+
$tax_percent = $options['tax_percent'];
|
535 |
+
|
536 |
+
$options = $this->getDataForItem($item, $product, $options);
|
537 |
+
|
538 |
+
//Bundle products handling
|
539 |
+
$options = $this->getBundleItemData($item, $tax_percent, $includeTaxSettings, $bundleItemId, $options);
|
540 |
+
|
541 |
+
//Sweettooth redemption points calculation
|
542 |
+
$options = $this->getRedemptionPointsData($options);
|
543 |
+
|
544 |
+
$result['items'][] = $options;
|
545 |
+
}
|
546 |
+
|
547 |
+
$result['payment'] = $this->_getAttributes($order->getPayment(), 'order_payment');
|
548 |
+
|
549 |
+
$result = $this->getRemboursData($billing_address, $order, $result);
|
550 |
+
|
551 |
+
$result['mshop_bankaccount'] = $result['payment']['incasso_bankaccount'] != '' ? $result['payment']['incasso_bankaccount'] : '';
|
552 |
+
|
553 |
+
$result['mshop_store_views_visible_in'] = $stores;
|
554 |
+
|
555 |
+
$result['status_history'] = array();
|
556 |
+
foreach ($order->getAllStatusHistory() as $history) {
|
557 |
+
$result['status_history'][] = $this->_getAttributes($history, 'order_status_history');
|
558 |
+
}
|
559 |
+
|
560 |
+
$result['status'] = $result['status'] == "ideal_paid" ? "processing" : $result['status'] ;
|
561 |
+
|
562 |
+
$grossShipping = $order->getBaseShippingAmount()+$order->getBaseShippingTaxAmount();
|
563 |
+
$result['mshop_gross_shipping_amount'] = number_format($grossShipping != null ? $grossShipping : 0, 4);
|
564 |
+
|
565 |
+
if($discount_amount = $order->getBaseDiscountAmount()){
|
566 |
+
$result['mshop_discount_amount'] = $discount_amount;
|
567 |
+
}else{
|
568 |
+
$result['mshop_discount_amount'] = 0;
|
569 |
+
}
|
570 |
+
|
571 |
+
$result = $this->getMshopInvoiceId($order, $result);
|
572 |
+
|
573 |
+
$result = $this->getCustomOrderFields($order, $result);
|
574 |
+
|
575 |
+
$result['mshop_order_increment_id'] = $orderIncrementId;
|
576 |
+
|
577 |
+
$result = $this->getMsopPaymentDate($order, $result);
|
578 |
+
|
579 |
+
return $result;
|
580 |
+
}
|
581 |
+
|
582 |
+
private function getShippingTaxRule($purchasedFrom, $shipping_address, $order, $cust_tax_class_id, $result){
|
583 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
584 |
+
$resurce = Mage::getSingleton('core/resource');
|
585 |
+
$tax_con = $resurce->getTableName('tax_calculation');
|
586 |
+
$tax_rates = $resurce->getTableName('tax_calculation_rate');
|
587 |
+
|
588 |
+
$tax = Mage::getStoreConfig('tax',$purchasedFrom);
|
589 |
+
$class_id = $tax['classes']['shipping_tax_class'];
|
590 |
+
$tax_class_for_shipping_id = null;
|
591 |
+
if(!($class_id == null || $class_id == '')){
|
592 |
+
$tax_class_for_shipping_id = $class_id;
|
593 |
+
|
594 |
+
$shipping_country_id = $shipping_address['country_id'];
|
595 |
+
|
596 |
+
if($shipping_country_id != '' && $shipping_country_id != null){
|
597 |
+
|
598 |
+
|
599 |
+
$resultr = $connection->query('SELECT * FROM '.$tax_con.', '.$tax_rates.'
|
600 |
+
WHERE '.$tax_con.'.product_tax_class_id = '.$tax_class_for_shipping_id.'
|
601 |
+
AND '.$tax_con.'.customer_tax_class_id = '.$cust_tax_class_id.'
|
602 |
+
AND '.$tax_rates.'.tax_country_id = "'.$shipping_country_id.'"
|
603 |
+
AND '.$tax_rates.'.tax_calculation_rate_id = '.$tax_con.'.tax_calculation_rate_id');
|
604 |
+
|
605 |
+
|
606 |
+
$tax_rule_rows = $resultr->fetchAll(PDO::FETCH_ASSOC);
|
607 |
+
|
608 |
+
if($tax_rule_rows){
|
609 |
+
$result['mshop_shipment_tax_rule'] = strval($tax_rule_rows[0]['tax_calculation_rule_id']);
|
610 |
+
}else{
|
611 |
+
$result['mshop_shipment_tax_rule'] = '';
|
612 |
+
}
|
613 |
+
}else{
|
614 |
+
$result['mshop_shipment_tax_rule'] = '';
|
615 |
+
}
|
616 |
+
|
617 |
+
}else{
|
618 |
+
|
619 |
+
$result['mshop_shipment_tax_rule'] = '';
|
620 |
+
}
|
621 |
+
|
622 |
+
return $result;
|
623 |
+
}
|
624 |
+
|
625 |
+
|
626 |
+
private function getBillingData($billing_street,$result){
|
627 |
+
if(is_array($billing_street)){
|
628 |
+
|
629 |
+
$result['mshop_billing_address'] = implode(' ', $billing_street);
|
630 |
+
|
631 |
+
if(count($billing_street) > 2 && isset($billing_street[0])){
|
632 |
+
$result['mshop_billing_street_name'] = $billing_street[0];
|
633 |
+
}else{
|
634 |
+
$result['mshop_billing_street_name'] = '';
|
635 |
+
}
|
636 |
+
|
637 |
+
if(count($billing_street) > 2 &&isset($billing_street[1])){
|
638 |
+
$result['mshop_billing_street_number'] = $billing_street[1];
|
639 |
+
}else{
|
640 |
+
$result['mshop_billing_street_number'] = '';
|
641 |
+
}
|
642 |
+
|
643 |
+
|
644 |
+
if(count($billing_street) > 2 &&isset($billing_street[2])){
|
645 |
+
$result['mshop_billing_number_addition'] = $billing_street[2];
|
646 |
+
}else{
|
647 |
+
$result['mshop_billing_number_addition'] = '';
|
648 |
+
}
|
649 |
+
}else{
|
650 |
+
$result['mshop_billing_address'] = '';
|
651 |
+
}
|
652 |
+
return $result;
|
653 |
+
}
|
654 |
+
|
655 |
+
private function getShippingData($billing_street,$shipping_street,$result){
|
656 |
+
if(is_array($shipping_street)){
|
657 |
+
$result['mshop_shipping_address'] = implode(' ', $shipping_street);
|
658 |
+
|
659 |
+
if(count($billing_street) > 2 && isset($billing_street[0])){
|
660 |
+
$result['mshop_shipping_street_name'] = $shipping_street[0];
|
661 |
+
}else{
|
662 |
+
$result['mshop_shipping_street_name'] = '';
|
663 |
+
}
|
664 |
+
|
665 |
+
if(count($billing_street) > 2 && isset($billing_street[1])){
|
666 |
+
$result['mshop_shipping_street_number'] = $shipping_street[1];
|
667 |
+
}else{
|
668 |
+
$result['mshop_shipping_street_number'] = '';
|
669 |
+
}
|
670 |
+
|
671 |
+
|
672 |
+
if(count($billing_street) > 2 && isset($billing_street[2])){
|
673 |
+
$result['mshop_shipping_number_addition'] = $shipping_street[2];
|
674 |
+
}else{
|
675 |
+
$result['mshop_shipping_number_addition'] = '';
|
676 |
+
}
|
677 |
+
}else{
|
678 |
+
$result['mshop_shipping_address'] = '';
|
679 |
+
}
|
680 |
+
|
681 |
+
return $result;
|
682 |
+
}
|
683 |
+
|
684 |
+
private function getCustomerData($order, $result){
|
685 |
+
if($order->getOnestepcheckoutCustomercomment() and $order->getOnestepcheckoutCustomercomment() != 'Vermeld hier uw specifieke afleverinstructie'){
|
686 |
+
$result['mshop_customer_comment'] = $order->getOnestepcheckoutCustomercomment();
|
687 |
+
}else{
|
688 |
+
$result['mshop_customer_comment'] = '';
|
689 |
+
}
|
690 |
+
$customer_prefix = $order->getCustomerPrefix();
|
691 |
+
|
692 |
+
$customer_prefix = ($customer_prefix != null)? $customer_prefix : '';
|
693 |
+
$result['mshop_customer_prefix'] = $customer_prefix;
|
694 |
+
|
695 |
+
$customer_middlename = $order->getCustomerMiddlename();
|
696 |
+
|
697 |
+
$customer_middlename = ($customer_middlename != null)? $customer_middlename : '';
|
698 |
+
$result['mshop_customer_middlename'] = $customer_middlename;
|
699 |
+
|
700 |
+
|
701 |
+
$mapping = array(
|
702 |
+
'nn_NO' => 'NO',
|
703 |
+
'sv_SE' => 'SV',
|
704 |
+
'da_DK' => 'DA',
|
705 |
+
'fi_FI' => 'FI',
|
706 |
+
'en_US' => 'EN',
|
707 |
+
'fr_FR' => 'FR',
|
708 |
+
'de_DE' => 'DE',
|
709 |
+
'es_ES' => 'ES',
|
710 |
+
'it_IT' => 'IT',
|
711 |
+
'pt_PT' => 'PT',
|
712 |
+
'el_GR' => 'EL',
|
713 |
+
'zh_CN' => 'ZH',
|
714 |
+
'cs_CZ' => 'CS',
|
715 |
+
'id_ID' => 'ID',
|
716 |
+
'he_IL' => 'HE',
|
717 |
+
'ja_JP' => 'JA',
|
718 |
+
'ms_MY' => 'MS',
|
719 |
+
'nl_NL' => 'NL',
|
720 |
+
'ru_RU' => 'RU',
|
721 |
+
'ar_SA' => 'AR',
|
722 |
+
'ko_KR' => 'KO',
|
723 |
+
'th_TH' => 'TH',
|
724 |
+
'tr_TR' => 'TR',
|
725 |
+
'is_IS' => 'IS'
|
726 |
+
);
|
727 |
+
|
728 |
+
$result['mshop_customer_language'] = '';
|
729 |
+
|
730 |
+
$attributeCllId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('customer','customer_language_locale');
|
731 |
+
if($attributeCllId)
|
732 |
+
{
|
733 |
+
$customerModel = Mage::getModel('customer/customer');
|
734 |
+
$customerCollection = $customerModel->getCollection();
|
735 |
+
foreach ($customerCollection as $customer)
|
736 |
+
{
|
737 |
+
$customerObj = $customerModel->load($customer->getId());
|
738 |
+
if($customerObj->getEmail() == $order->getCustomerEmail())
|
739 |
+
{
|
740 |
+
if($customerObj->getCustomerLanguageLocale())
|
741 |
+
{
|
742 |
+
$result['mshop_customer_language'] = $mapping[$customerObj->getCustomerLanguageLocale()];
|
743 |
+
}
|
744 |
+
}
|
745 |
+
}
|
746 |
+
}
|
747 |
+
|
748 |
+
// Customer not exists error fix for customer_is_guest = 0 and customer_id=NULL
|
749 |
+
$cus_is_gest = $result['customer_is_guest'];
|
750 |
+
if($cus_is_gest != 1){
|
751 |
+
|
752 |
+
$customer_id = $result['customer_id'];
|
753 |
+
if($customer_id != null && $customer_id != ''){
|
754 |
+
|
755 |
+
$customer = Mage::getModel("customer/customer")->load($customer_id);
|
756 |
+
if(!$customer->getId()){
|
757 |
+
$result['customer_is_guest'] = 1;
|
758 |
+
}
|
759 |
+
}else{
|
760 |
+
$customer_email = $result['customer_email'] ;
|
761 |
+
if($customer_email != null && $customer_email != ''){
|
762 |
+
|
763 |
+
$store_id = $result['store_id'];
|
764 |
+
|
765 |
+
$store = Mage::getModel('core/store')->load($store_id);
|
766 |
+
if($store->getId()){
|
767 |
+
|
768 |
+
$website_id = $store->getWebsiteId();
|
769 |
+
|
770 |
+
$customer = Mage::getModel("customer/customer")->setWebsiteId($website_id)->loadByEmail($customer_email);
|
771 |
+
if($customer->getId()){
|
772 |
+
$result['customer_id'] = $customer->getId();
|
773 |
+
}else{
|
774 |
+
$result['customer_is_guest'] = 1;
|
775 |
+
}
|
776 |
+
}else{
|
777 |
+
$result['customer_is_guest'] = 1;
|
778 |
+
}
|
779 |
+
}else{
|
780 |
+
$result['customer_is_guest'] = 1;
|
781 |
+
}
|
782 |
+
}
|
783 |
+
}
|
784 |
+
|
785 |
+
return $result;
|
786 |
+
}
|
787 |
+
|
788 |
+
private function getItemTaxData($item, $order, $cust_tax_class_id, $product, $options){
|
789 |
+
|
790 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
791 |
+
$resurce = Mage::getSingleton('core/resource');
|
792 |
+
$tax_con = $resurce->getTableName('tax_calculation');
|
793 |
+
$tax_rule = $resurce->getTableName('tax_calculation_rule');
|
794 |
+
$tax_rates = $resurce->getTableName('tax_calculation_rate');
|
795 |
+
|
796 |
+
$tax_class_id = $product->getTaxClassId();
|
797 |
+
|
798 |
+
$product_type = $item['product_type'];
|
799 |
+
|
800 |
+
if($product_type == "downloadable" || $product_type == "virtual" ){
|
801 |
+
$order_billing = $order->getBillingAddress()->getData();
|
802 |
+
}else{
|
803 |
+
$order_billing = $order->getShippingAddress()->getData();
|
804 |
+
}
|
805 |
+
|
806 |
+
$tax_country_id = $order_billing['country_id'];
|
807 |
+
|
808 |
+
|
809 |
+
if($item['tax_percent'] == null){
|
810 |
+
$item['tax_percent'] = 0.0000;
|
811 |
+
}
|
812 |
+
$resultr = $connection->query('SELECT * FROM '.$tax_rates.' WHERE rate = '.$item['tax_percent'].'
|
813 |
+
AND tax_country_id = "'.$tax_country_id.'" LIMIT 1');
|
814 |
+
|
815 |
+
$tax_rate_row = $resultr->fetch(PDO::FETCH_ASSOC);
|
816 |
+
|
817 |
+
$tax_rate_id = $tax_rate_row['tax_calculation_rate_id'];
|
818 |
+
|
819 |
+
if($tax_class_id != null && $cust_tax_class_id !=null && $tax_class_id != '' && $cust_tax_class_id!='' and $tax_rate_id != null and $tax_rate_id != ''){
|
820 |
+
|
821 |
+
$resultd = $connection->query('SELECT * FROM '.$tax_con.' as kk, '.$tax_rule.' as rr
|
822 |
+
WHERE kk.tax_calculation_rule_id = rr.tax_calculation_rule_id
|
823 |
+
AND kk.customer_tax_class_id = '.$cust_tax_class_id.'
|
824 |
+
AND kk.product_tax_class_id = '.$tax_class_id.'
|
825 |
+
AND kk.tax_calculation_rate_id = '.$tax_rate_id.' LIMIT 1');
|
826 |
+
$row = $resultd->fetch(PDO::FETCH_ASSOC);
|
827 |
+
}
|
828 |
+
if($row){
|
829 |
+
$rule_id = $row['tax_calculation_rule_id'];
|
830 |
+
$rule_name = $row['code'];
|
831 |
+
}else{
|
832 |
+
$rule_id = ' ';
|
833 |
+
$rule_name = ' ';
|
834 |
+
}
|
835 |
+
|
836 |
+
$options['cost'] = $options['base_cost'];
|
837 |
+
$options['mshop_taxclass_rule_code'] = $rule_name;
|
838 |
+
$options['mshop_taxclass_rule_id'] = $rule_id;
|
839 |
+
|
840 |
+
return $options;
|
841 |
+
}
|
842 |
+
|
843 |
+
private function getDataForItem($item, $product, $options){
|
844 |
+
|
845 |
+
$options['mshop_item_id'] = ($options['item_id'] != '')? $options['item_id'] : '';
|
846 |
+
$options['mshop_parent_item_id'] = ($options['parent_item_id'] != '')? $options['parent_item_id'] : '';
|
847 |
+
|
848 |
+
$options['mshop_base_price_incl_tax'] = number_format(0.0000, 4);
|
849 |
+
if($item['discount_percent'] != null and $item['discount_percent'] != 0.0000){
|
850 |
+
if($item['base_price_incl_tax'] != null and $item['base_price_incl_tax'] != 0.0000)
|
851 |
+
$options['mshop_base_price_incl_tax'] = number_format($item['base_price_incl_tax'], 4,'.', '');
|
852 |
+
}else{
|
853 |
+
if($item['base_price_incl_tax'] != null and $item['base_price_incl_tax'] != 0.0000)
|
854 |
+
//1.5.0
|
855 |
+
$options['mshop_base_price_incl_tax'] = number_format(($item['base_price_incl_tax'] - $item['base_discount_amount']/$item['qty_ordered']), 4,'.', '');
|
856 |
+
}
|
857 |
+
|
858 |
+
$options['mshop_base_price_excl_tax'] = number_format(0.0000, 4);
|
859 |
+
if($item['discount_percent'] != null and $item['discount_percent'] != 0.0000){
|
860 |
+
if($item['base_price'] != null and $item['base_price'] != 0.0000)
|
861 |
+
$options['mshop_base_price_excl_tax'] = number_format($item['base_price'], 4,'.', '');
|
862 |
+
}else{
|
863 |
+
if($item['base_price'] != null and $item['base_price'] != 0.0000)
|
864 |
+
//1.5.0
|
865 |
+
$options['mshop_base_price_excl_tax'] = number_format(($item['base_price'] - $item['base_discount_amount']/$item['qty_ordered']), 4,'.', '');
|
866 |
+
}
|
867 |
+
$options['mshop_discount_percent'] = $item['discount_percent'];
|
868 |
+
$options['mshop_short_description'] = ($product->getShortDescription() != "" && $product->getShortDescription() != null)? $product->getShortDescription() : " ";
|
869 |
+
|
870 |
+
return $options;
|
871 |
+
}
|
872 |
+
|
873 |
+
private function getBundleItemData ($item, $tax_percent, $includeTaxSettings, $bundleItemId, $options){
|
874 |
+
$options['mshop_bundle_type'] = 'none';
|
875 |
+
|
876 |
+
$product_options = unserialize($options['product_options']);
|
877 |
+
|
878 |
+
if(array_key_exists('product_calculations', $product_options)) {
|
879 |
+
if($product_options['product_calculations'] == 0) {
|
880 |
+
$options['mshop_bundle_type'] = 'dynamic';
|
881 |
+
// Dynamic bundle price: based on underlying products, so set all M-Shop prices to 0
|
882 |
+
$options['mshop_base_price_incl_tax'] = 0;
|
883 |
+
$options['mshop_base_price_excl_tax'] = 0;
|
884 |
+
$options['mshop_discount_percent'] = 0;
|
885 |
+
}
|
886 |
+
else{
|
887 |
+
$options['mshop_bundle_type'] = 'fixed';
|
888 |
+
}
|
889 |
+
}
|
890 |
+
|
891 |
+
if($options['product_type'] == 'bundle' and $product_options['product_calculations'] != 0){
|
892 |
+
|
893 |
+
$bundleItemId = $options['item_id'];
|
894 |
+
$tax_percent = $options['tax_percent'];
|
895 |
+
|
896 |
+
if(array_key_exists('bundle_options', $product_options)) {
|
897 |
+
$bundle_options = $product_options['bundle_options'];
|
898 |
+
foreach ($bundle_options as $bundle_option)
|
899 |
+
{
|
900 |
+
$value_array = $bundle_option['value'];
|
901 |
+
foreach($value_array as $one_value)
|
902 |
+
{
|
903 |
+
$sumOfUnderlyingValues += $one_value['price'];
|
904 |
+
}
|
905 |
+
}
|
906 |
+
}
|
907 |
+
$sumOfUnderlyingValuesInclTax = null;
|
908 |
+
$sumOfUnderlyingValuesExclTax = null;
|
909 |
+
|
910 |
+
if($includeTaxSettings == "1")
|
911 |
+
{
|
912 |
+
$sumOfUnderlyingValuesInclTax = $sumOfUnderlyingValues;
|
913 |
+
$sumOfUnderlyingValuesExclTax = number_format(($sumOfUnderlyingValuesInclTax / (1 + $tax_percent/100)), 4);
|
914 |
+
}
|
915 |
+
else
|
916 |
+
{
|
917 |
+
$sumOfUnderlyingValuesExclTax = $sumOfUnderlyingValues;
|
918 |
+
$sumOfUnderlyingValuesInclTax = number_format(($sumOfUnderlyingValuesExclTax * (1 + $tax_percent/100) ), 4);
|
919 |
+
}
|
920 |
+
|
921 |
+
$options['mshop_base_price_incl_tax'] = number_format(0.0000, 4);
|
922 |
+
if($item['discount_percent'] != null and $item['discount_percent'] != 0.0000){
|
923 |
+
if($item['base_price_incl_tax'] != null and $item['base_price_incl_tax'] != 0.0000)
|
924 |
+
$options['mshop_base_price_incl_tax'] = number_format($item['base_price_incl_tax'] - $sumOfUnderlyingValuesInclTax, 4,'.', '');
|
925 |
+
}
|
926 |
+
else
|
927 |
+
{
|
928 |
+
if($item['base_price_incl_tax'] != null and $item['base_price_incl_tax'] != 0.0000)
|
929 |
+
$options['mshop_base_price_incl_tax'] = number_format(($item['base_price_incl_tax'] - $sumOfUnderlyingValuesInclTax - $item['base_discount_amount']/$item['qty_ordered']), 4,'.', '');
|
930 |
+
}
|
931 |
+
|
932 |
+
$options['mshop_base_price_excl_tax'] = number_format(0.0000, 4);
|
933 |
+
if($item['discount_percent'] != null and $item['discount_percent'] != 0.0000){
|
934 |
+
if($item['base_price'] != null and $item['base_price'] != 0.0000)
|
935 |
+
$options['mshop_base_price_excl_tax'] = number_format($item['base_price'] - $sumOfUnderlyingValuesExclTax , 4,'.', '');
|
936 |
+
}
|
937 |
+
else
|
938 |
+
{
|
939 |
+
if($item['base_price'] != null and $item['base_price'] != 0.0000)
|
940 |
+
$options['mshop_base_price_excl_tax'] = number_format(($item['base_price'] - $sumOfUnderlyingValuesExclTax - $item['base_discount_amount']/$item['qty_ordered']), 4,'.', '');
|
941 |
+
}
|
942 |
+
$options['mshop_discount_percent'] = $item['discount_percent'];
|
943 |
+
$mshop_discount_percent_bundle = $options['mshop_discount_percent'];
|
944 |
+
}
|
945 |
+
|
946 |
+
if($bundleItemId != 0 and $options['parent_item_id'] == $bundleItemId)
|
947 |
+
{
|
948 |
+
//this is an underlying item of the bundle product
|
949 |
+
$underlyingProductOptions = unserialize($options['product_options']);
|
950 |
+
$bundleSelectionAttributes = unserialize($underlyingProductOptions['bundle_selection_attributes']);
|
951 |
+
|
952 |
+
$underlyingItemValue = $bundleSelectionAttributes['price'];
|
953 |
+
$underlyingItemValueInclTax = null;
|
954 |
+
$underlyingItemValueExclTax = null;
|
955 |
+
|
956 |
+
if($includeTaxSettings == "1")
|
957 |
+
{
|
958 |
+
$underlyingItemValueInclTax = $underlyingItemValue;
|
959 |
+
$underlyingItemValueExclTax = number_format(($underlyingItemValueInclTax / ( 1 + $tax_percent/100)), 4);
|
960 |
+
}
|
961 |
+
else
|
962 |
+
{
|
963 |
+
$underlyingItemValueExclTax = $underlyingItemValue;
|
964 |
+
$underlyingItemValueInclTax = number_format(($underlyingItemValueExclTax * (1 + $tax_percent/100)), 4);
|
965 |
+
}
|
966 |
+
|
967 |
+
$options['mshop_base_price_incl_tax'] = $underlyingItemValueInclTax;
|
968 |
+
$options['mshop_base_price_excl_tax'] = $underlyingItemValueExclTax;
|
969 |
+
$options['mshop_discount_percent'] = $mshop_discount_percent_bundle;
|
970 |
+
}
|
971 |
+
|
972 |
+
return $options;
|
973 |
+
}
|
974 |
+
|
975 |
+
private function getRedemptionPointsData($options){
|
976 |
+
if( isset($options['row_total_before_redemptions'])
|
977 |
+
&& isset($options['row_total_before_redemptions_incl_tax'])
|
978 |
+
&& isset($options['row_total_after_redemptions'])
|
979 |
+
&& isset($options['row_total_after_redemptions_incl_tax']) ){
|
980 |
+
$options['mshop_base_price_incl_tax'] = number_format($options['mshop_base_price_incl_tax']-($options['row_total_before_redemptions_incl_tax'] - $options['row_total_after_redemptions_incl_tax']),4);
|
981 |
+
$options['mshop_base_price_excl_tax'] = number_format($options['mshop_base_price_excl_tax']-($options['row_total_before_redemptions'] - $options['row_total_after_redemptions']),4);
|
982 |
+
}
|
983 |
+
|
984 |
+
return $options;
|
985 |
+
}
|
986 |
+
|
987 |
+
private function getRemboursData($billing_address, $order, $result){
|
988 |
+
|
989 |
+
if($result['payment']['method'] == 'cashondelivery'){
|
990 |
+
$rembours = array();
|
991 |
+
$rembours['product_type'] = 'simple';
|
992 |
+
$rembours['sku'] = 'REMBOURS';
|
993 |
+
|
994 |
+
$rembours['mshop_item_id'] = '';
|
995 |
+
$rembours['mshop_parent_item_id'] = '';
|
996 |
+
|
997 |
+
$rembours['mshop_discount_percent'] = 0;
|
998 |
+
|
999 |
+
$rembours['name'] = Mage::getStoreConfig('payment/cashondelivery/title');
|
1000 |
+
|
1001 |
+
$shipping_address = $order->getShippingAddress();
|
1002 |
+
$shipping_country_id = $shipping_address['country_id'];
|
1003 |
+
|
1004 |
+
if($shipping_country_id == '' || $shipping_country_id == null){
|
1005 |
+
$shipping_country_id = $billing_address['country_id'];
|
1006 |
+
|
1007 |
+
}
|
1008 |
+
|
1009 |
+
$shipping_origin_country_id = Mage::getStoreConfig('shipping/origin/country_id');
|
1010 |
+
if($shipping_country_id == $shipping_origin_country_id){
|
1011 |
+
$cod_cost = Mage::getStoreConfig('payment/cashondelivery/inlandcosts');
|
1012 |
+
}else{
|
1013 |
+
$cod_cost = Mage::getStoreConfig('payment/cashondelivery/foreigncountrycosts');
|
1014 |
+
}
|
1015 |
+
|
1016 |
+
|
1017 |
+
$rembours['base_price'] = number_format($cod_cost, 4,'.', '');
|
1018 |
+
$rembours['mshop_base_price_incl_tax'] = number_format(($result['base_cod_fee'] + $result['base_cod_tax_amount']), 4,'.', '');
|
1019 |
+
$rembours['mshop_base_price_excl_tax'] = number_format($result['base_cod_fee'], 4,'.', '');
|
1020 |
+
$rembours['qty_ordered'] = 1;
|
1021 |
+
$rembours['discount_percent'] = 0;
|
1022 |
+
$rembours['mshop_taxclass_rule_id'] = Mage::getStoreConfig('tax/classes/cod_tax_class');
|
1023 |
+
|
1024 |
+
$result['items'][] = $rembours;
|
1025 |
+
}
|
1026 |
+
|
1027 |
+
return $result;
|
1028 |
+
}
|
1029 |
+
|
1030 |
+
private function getCustomOrderFields($order, $result){
|
1031 |
+
$custom1 = Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_1');
|
1032 |
+
$result['custom_order_1'] = ($order->getData($custom1) != null )? $order->getData($custom1) : '';
|
1033 |
+
|
1034 |
+
$custom2 = Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_2');
|
1035 |
+
$result['custom_order_2'] = ($order->getData($custom2) != null )? $order->getData($custom2) : '';
|
1036 |
+
|
1037 |
+
$custom3 = Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_3');
|
1038 |
+
$result['custom_order_3'] = ($order->getData($custom3) != null )? $order->getData($custom3) : '';
|
1039 |
+
|
1040 |
+
return $result;
|
1041 |
+
}
|
1042 |
+
|
1043 |
+
private function getMsopPaymentDate($order, $result){
|
1044 |
+
$orderId = $order->getId();
|
1045 |
+
$ordersCollection = Mage::getModel('sales/order_status_history')->getCollection()->addFieldToFilter('status', 'processing')->addFieldToFilter('parent_id', $orderId);
|
1046 |
+
|
1047 |
+
if($ordersCollection->count() > 0 ) {
|
1048 |
+
$item = $ordersCollection->getFirstItem();
|
1049 |
+
$date = $item->getCreatedAt();
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
$result['mshop_payment_date'] = $date;
|
1053 |
+
|
1054 |
+
return $result;
|
1055 |
+
}
|
1056 |
+
|
1057 |
+
private function getMshopInvoiceId($order, $result){
|
1058 |
+
$invoiceCollection = $order->getInvoiceCollection();
|
1059 |
+
$invoiceIds = array();
|
1060 |
+
foreach ($invoiceCollection as $invoice){
|
1061 |
+
$invoice_id = $invoice->getIncrementId();
|
1062 |
+
$invoiceIds[] = $invoice_id;
|
1063 |
+
}
|
1064 |
+
$result['mshop_invoice_id'] = $invoiceIds;
|
1065 |
+
|
1066 |
+
return $result;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
/**
|
1070 |
+
* Product visibility for stores API Method
|
1071 |
+
*
|
1072 |
+
* @param int $pid
|
1073 |
+
* @return array
|
1074 |
+
*/
|
1075 |
+
private function getVisibleInStore($pid){
|
1076 |
+
$allStores = Mage::app()->getStores();
|
1077 |
+
$product_stores = array();
|
1078 |
+
foreach ($allStores as $store){
|
1079 |
+
$store_id = $store->getId();
|
1080 |
+
$product = Mage::getModel('catalog/product')
|
1081 |
+
->setStoreId($store_id)
|
1082 |
+
->load($pid);
|
1083 |
+
if($product->getId()!= null){
|
1084 |
+
$data = $product->getData();
|
1085 |
+
$visibility = $data['visibility'];
|
1086 |
+
if($visibility == 2 || $visibility == 4){
|
1087 |
+
$product_stores[] = $store_id;
|
1088 |
+
}
|
1089 |
+
}
|
1090 |
+
}
|
1091 |
+
|
1092 |
+
return $product_stores;
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
/**
|
1096 |
+
*
|
1097 |
+
* Order Invoice creation date
|
1098 |
+
* @param string $orderNumber
|
1099 |
+
* @return string
|
1100 |
+
*/
|
1101 |
+
private function getInvoiceDate($orderNumber){
|
1102 |
+
|
1103 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);
|
1104 |
+
$data = $order->getData();
|
1105 |
+
$store_id = $data['store_id'];
|
1106 |
+
|
1107 |
+
$orderId = $order->getId();
|
1108 |
+
if($orderId == null){
|
1109 |
+
$this->_fault('order_not_exist');
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
1113 |
+
|
1114 |
+
$resurce = Mage::getSingleton('core/resource');
|
1115 |
+
|
1116 |
+
$invoice_table = $resurce->getTableName('sales_flat_invoice_grid');
|
1117 |
+
|
1118 |
+
$resultd = $connection->query('SELECT * FROM '.$invoice_table.' WHERE order_increment_id = "'.$orderNumber.'" LIMIT 1');
|
1119 |
+
$row = $resultd->fetch(PDO::FETCH_ASSOC);
|
1120 |
+
|
1121 |
+
if($row){
|
1122 |
+
$inv_date = $row['created_at'];
|
1123 |
+
return $this->gmtToLocal($inv_date);
|
1124 |
+
}else{
|
1125 |
+
return $this->gmtToLocal($order->getCreatedAt());
|
1126 |
+
}
|
1127 |
+
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
/**
|
1131 |
+
*
|
1132 |
+
* GMT to Local
|
1133 |
+
* @param string $datetime
|
1134 |
+
* @return string
|
1135 |
+
*/
|
1136 |
+
private function gmtToLocal($datetime){
|
1137 |
+
$_date_format = 'Y-m-d H:i:s';
|
1138 |
+
$time = strtotime($datetime);
|
1139 |
+
$tz = Mage::app()->getStore()->getConfig('general/locale/timezone');
|
1140 |
+
$oldzone = @date_default_timezone_get();
|
1141 |
+
$result = date_default_timezone_set($tz);
|
1142 |
+
$return = date($_date_format,$time);
|
1143 |
+
date_default_timezone_set($oldzone);
|
1144 |
+
return $return;
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
/**
|
1148 |
+
* Tax class for shipping setting
|
1149 |
+
*
|
1150 |
+
* @return boolean
|
1151 |
+
*/
|
1152 |
+
public function hasTaxClassForShipping(){
|
1153 |
+
$tax = Mage::getStoreConfig('tax');
|
1154 |
+
$class_id = $tax['classes']['shipping_tax_class'];
|
1155 |
+
if($class_id == 0){
|
1156 |
+
return false;
|
1157 |
+
}else{
|
1158 |
+
return true;
|
1159 |
+
}
|
1160 |
+
}
|
1161 |
+
|
1162 |
+
/**
|
1163 |
+
*
|
1164 |
+
* Create invoice with mamut invoice id
|
1165 |
+
*
|
1166 |
+
* @param string $incrementId
|
1167 |
+
* @param string $mamutinvoiceId
|
1168 |
+
* @throws Exception
|
1169 |
+
* @return string
|
1170 |
+
*/
|
1171 |
+
public function orderMamutCreateInvoice($incrementId, $mamutinvoiceId){
|
1172 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
|
1173 |
+
|
1174 |
+
if (!$order->getId()) {
|
1175 |
+
$this->_fault('order_not_exist');
|
1176 |
+
}
|
1177 |
+
|
1178 |
+
//Get the order store_id
|
1179 |
+
$storeId = $order->getStoreId();
|
1180 |
+
|
1181 |
+
if (count($order->getInvoiceCollection()) > 0) {
|
1182 |
+
return Mage::helper('core')->__('null - invoice allready present');
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
if (!$order->canInvoice()) {
|
1186 |
+
return Mage::helper('core')->__('null - order can not be invoiced');
|
1187 |
+
}
|
1188 |
+
|
1189 |
+
try{
|
1190 |
+
$savedQtys = array();
|
1191 |
+
$invoice = Mage::getModel("sales/service_order", $order)->prepareInvoice($savedQtys);
|
1192 |
+
if (!$invoice->getTotalQty()) {
|
1193 |
+
$this->_fault('invoice_not_created');
|
1194 |
+
}
|
1195 |
+
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE);
|
1196 |
+
|
1197 |
+
$invoice->register();
|
1198 |
+
|
1199 |
+
$invoice->getOrder()->setCustomerNoteNotify(false);
|
1200 |
+
$invoice->getOrder()->setIsInProcess(true);
|
1201 |
+
|
1202 |
+
$transactionSave = Mage::getModel("core/resource_transaction")
|
1203 |
+
->addObject($invoice)
|
1204 |
+
->addObject($invoice->getOrder());
|
1205 |
+
|
1206 |
+
$transactionSave->save();
|
1207 |
+
|
1208 |
+
$invoice = Mage::getModel('sales/order_invoice')->load($invoice->getId());
|
1209 |
+
$invoice->setMamutInvoiceId((int)$mamutinvoiceId);
|
1210 |
+
$invoice->save();
|
1211 |
+
|
1212 |
+
if(Mage::getStoreConfig('mshop/parameters_invoice/send_mail')){
|
1213 |
+
$templateId = Mage::getStoreConfig('mshop/parameters_invoice/email_template', $storeId);
|
1214 |
+
|
1215 |
+
try {
|
1216 |
+
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
|
1217 |
+
->setIsSecureMode(true);
|
1218 |
+
$paymentBlock->getMethod()->setStore($storeId);
|
1219 |
+
$paymentBlockHtml = $paymentBlock->toHtml();
|
1220 |
+
} catch (Exception $exception) {
|
1221 |
+
throw $exception;
|
1222 |
+
}
|
1223 |
+
|
1224 |
+
|
1225 |
+
$vars = array(
|
1226 |
+
'order' => $order,
|
1227 |
+
'invoice' => $invoice,
|
1228 |
+
'comment' => "",
|
1229 |
+
'billing' => $order->getBillingAddress(),
|
1230 |
+
'payment_html' => $paymentBlockHtml,
|
1231 |
+
'mamutInvoiceId' => $mamutinvoiceId
|
1232 |
+
);
|
1233 |
+
$this->sendInvoiceShippingEmail($templateId, $vars, $order);
|
1234 |
+
}
|
1235 |
+
|
1236 |
+
return $invoice->getIncrementId();
|
1237 |
+
|
1238 |
+
}catch(Exception $ex){
|
1239 |
+
$this->_fault('invoice_not_created');
|
1240 |
+
}
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
/**
|
1244 |
+
* Send order "Ordered items can not be delivered" email
|
1245 |
+
*
|
1246 |
+
* @param string $increment_id
|
1247 |
+
* @throws Exception
|
1248 |
+
* @return boolean
|
1249 |
+
*/
|
1250 |
+
public function orderNotInStock($increment_id){
|
1251 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($increment_id);
|
1252 |
+
if (!$order->getId()) {
|
1253 |
+
$this->_fault('order_not_exist');
|
1254 |
+
}
|
1255 |
+
$storeId = $order->getStore()->getId();
|
1256 |
+
|
1257 |
+
//change order status set in configuration
|
1258 |
+
$status = Mage::getStoreConfig('mshop/parameters_not_in_stock/order_status', $storeId);
|
1259 |
+
if($status){
|
1260 |
+
try{
|
1261 |
+
$order->setState($status,$status,'',false);
|
1262 |
+
$order->save();
|
1263 |
+
}catch(Exception $ex){
|
1264 |
+
$this->_fault('order_state_not_changed');
|
1265 |
+
}
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
if(Mage::getStoreConfig('mshop/parameters_not_in_stock/send_mail', $storeId)){
|
1269 |
+
$template = Mage::getStoreConfig('mshop/parameters_not_in_stock/email_template', $storeId);
|
1270 |
+
|
1271 |
+
try {
|
1272 |
+
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
|
1273 |
+
->setIsSecureMode(true);
|
1274 |
+
$paymentBlock->getMethod()->setStore($storeId);
|
1275 |
+
$paymentBlockHtml = $paymentBlock->toHtml();
|
1276 |
+
|
1277 |
+
} catch (Exception $exception) {
|
1278 |
+
throw $exception;
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
$vars = array(
|
1282 |
+
'billing' => $order->getBillingAddress(),
|
1283 |
+
'payment_html' => $paymentBlockHtml)
|
1284 |
+
;
|
1285 |
+
return $this->sendEmail($template, $vars, $order);
|
1286 |
+
}
|
1287 |
+
return true;
|
1288 |
+
}
|
1289 |
+
|
1290 |
+
/**
|
1291 |
+
* Cancel order and send email
|
1292 |
+
*
|
1293 |
+
* @param string $incrementId
|
1294 |
+
* @return boolean
|
1295 |
+
*/
|
1296 |
+
public function orderCancel($incrementId){
|
1297 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
|
1298 |
+
if (!$order->getId()) {
|
1299 |
+
$this->_fault('order_not_exist');
|
1300 |
+
}
|
1301 |
+
|
1302 |
+
$status = $order->getStatus();
|
1303 |
+
if($status == 'canceled'){
|
1304 |
+
return false;
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
try{
|
1308 |
+
$order->setState('canceled','canceled','',false);
|
1309 |
+
$order->save();
|
1310 |
+
}catch(Exception $ex){
|
1311 |
+
$this->_fault('order_state_not_changed');
|
1312 |
+
}
|
1313 |
+
$storeId = $order->getStore()->getId();
|
1314 |
+
if(Mage::getStoreConfig('mshop/parameters_order_cancellation/send_mail',$storeId )){
|
1315 |
+
$templateId = Mage::getStoreConfig('mshop/parameters_order_cancellation/email_template', $storeId);
|
1316 |
+
$vars = array();
|
1317 |
+
return $this->sendEmail($templateId, $vars, $order);
|
1318 |
+
}
|
1319 |
+
return true;
|
1320 |
+
}
|
1321 |
+
|
1322 |
+
/**
|
1323 |
+
* Helper function
|
1324 |
+
*
|
1325 |
+
* @param string $template
|
1326 |
+
* @param array $vars
|
1327 |
+
* @param object $order
|
1328 |
+
* @return boolean
|
1329 |
+
*/
|
1330 |
+
private function sendEmail($template, $vars, $order){
|
1331 |
+
|
1332 |
+
if(!$order->getId()){
|
1333 |
+
return false;
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
$storeId = $order->getStore()->getId();
|
1337 |
+
$senderName = Mage::getStoreConfig('general/store_information/name', $storeId);
|
1338 |
+
$senderEmail = Mage::getStoreConfig('trans_email/ident_general/email', $storeId);
|
1339 |
+
|
1340 |
+
$senderName = ($senderName != '')? $senderName : 'System';
|
1341 |
+
$senderEmail = ($senderEmail != '')? $senderEmail : 'info@system.com';
|
1342 |
+
|
1343 |
+
$store_url = Mage::getStoreConfig('web/unsecure/base_url', $storeId);
|
1344 |
+
|
1345 |
+
$sender = array('name' => $senderName,
|
1346 |
+
'email' => $senderEmail);
|
1347 |
+
|
1348 |
+
$customerEmail = $order->getCustomerEmail();
|
1349 |
+
|
1350 |
+
if ($order->getCustomerIsGuest()) {
|
1351 |
+
$customerName = $order->getBillingAddress()->getName();
|
1352 |
+
} else {
|
1353 |
+
$customerName = $order->getCustomerName();
|
1354 |
+
}
|
1355 |
+
|
1356 |
+
$vars = array_merge($vars, array('order'=>$order)) ;
|
1357 |
+
|
1358 |
+
$translate = Mage::getSingleton('core/translate');
|
1359 |
+
$translate->setTranslateInline(true);
|
1360 |
+
$model_email = Mage::getModel('core/email_template');
|
1361 |
+
$model_email->sendTransactional($template, $sender, $customerEmail, $customerName, $vars, $storeId);
|
1362 |
+
|
1363 |
+
return $model_email->getSentSuccess();
|
1364 |
+
}
|
1365 |
+
|
1366 |
+
/**
|
1367 |
+
* Order is picked emil
|
1368 |
+
* @param string $inicrementId
|
1369 |
+
* @throws Exception
|
1370 |
+
* @return boolean
|
1371 |
+
*/
|
1372 |
+
public function orderPicked($inicrementId){
|
1373 |
+
|
1374 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($inicrementId);
|
1375 |
+
if (!$order->getId()) {
|
1376 |
+
$this->_fault('order_not_exist');
|
1377 |
+
}
|
1378 |
+
|
1379 |
+
$storeId = $order->getStore()->getId();
|
1380 |
+
|
1381 |
+
//change order status set in configuration
|
1382 |
+
$status = Mage::getStoreConfig('mshop/parameters_order_picked/order_status', $storeId);
|
1383 |
+
if($status){
|
1384 |
+
try{
|
1385 |
+
$order->setState($status,$status,'',false);
|
1386 |
+
$order->save();
|
1387 |
+
}catch(Exception $ex){
|
1388 |
+
$this->_fault('order_state_not_changed');
|
1389 |
+
}
|
1390 |
+
}
|
1391 |
+
|
1392 |
+
|
1393 |
+
if(Mage::getStoreConfig('mshop/parameters_order_picked/send_mail', $storeId )){
|
1394 |
+
$template = Mage::getStoreConfig('mshop/parameters_order_picked/email_template', $storeId);
|
1395 |
+
|
1396 |
+
try {
|
1397 |
+
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
|
1398 |
+
->setIsSecureMode(true);
|
1399 |
+
$paymentBlock->getMethod()->setStore($storeId);
|
1400 |
+
$paymentBlockHtml = $paymentBlock->toHtml();
|
1401 |
+
|
1402 |
+
|
1403 |
+
} catch (Exception $exception) {
|
1404 |
+
throw $exception;
|
1405 |
+
}
|
1406 |
+
|
1407 |
+
$vars = array(
|
1408 |
+
'billing' => $order->getBillingAddress(),
|
1409 |
+
'payment_html' => $paymentBlockHtml);
|
1410 |
+
|
1411 |
+
return $this->sendEmail($template, $vars, $order);
|
1412 |
+
}
|
1413 |
+
|
1414 |
+
return true;
|
1415 |
+
}
|
1416 |
+
|
1417 |
+
/**
|
1418 |
+
* Create shippment for order
|
1419 |
+
*
|
1420 |
+
* @param string $inicrementId
|
1421 |
+
* @param string $trackAndTraceCode
|
1422 |
+
* @throws Exception
|
1423 |
+
* @return string
|
1424 |
+
*/
|
1425 |
+
public function orderCreateShipment($inicrementId, $trackAndTraceCode){
|
1426 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($inicrementId);
|
1427 |
+
if (!$order->getId()) {
|
1428 |
+
$this->_fault('order_not_exist');
|
1429 |
+
}
|
1430 |
+
|
1431 |
+
if (!$order->canShip()) {
|
1432 |
+
$this->_fault('shipment_not_created');
|
1433 |
+
}
|
1434 |
+
if (count($order->getShipmentsCollection()) > 0) {
|
1435 |
+
$this->_fault("shipment_not_created");
|
1436 |
+
}
|
1437 |
+
$storeId = $order->getStore()->getId();
|
1438 |
+
//Start store emulation process
|
1439 |
+
$appEmulation = Mage::getSingleton('core/app_emulation');
|
1440 |
+
$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
|
1441 |
+
|
1442 |
+
$send_mail = Mage::getStoreConfig('mshop/parameters_order_shipped/send_mail', $storeId);
|
1443 |
+
$templateId = Mage::getStoreConfig('mshop/parameters_order_shipped/email_template', $storeId);
|
1444 |
+
$shipmentId = Mage::getModel('sales/order_shipment_api')->create($inicrementId, array(), '', 0, 0);
|
1445 |
+
$shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentId);
|
1446 |
+
|
1447 |
+
try {
|
1448 |
+
// Retrieve specified view block from appropriate design package (depends on emulated store)
|
1449 |
+
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
|
1450 |
+
->setIsSecureMode(true);
|
1451 |
+
$paymentBlock->getMethod()->setStore($storeId);
|
1452 |
+
$paymentBlockHtml = $paymentBlock->toHtml();
|
1453 |
+
} catch (Exception $exception) {
|
1454 |
+
// Stop store emulation process
|
1455 |
+
$appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
|
1456 |
+
throw $exception;
|
1457 |
+
}
|
1458 |
+
|
1459 |
+
if($trackAndTraceCode!=null){
|
1460 |
+
$trackId = Mage::getModel('sales/order_shipment_api')->addTrack($shipmentId, "custom", " ", $trackAndTraceCode);
|
1461 |
+
}
|
1462 |
+
|
1463 |
+
$vars = array(
|
1464 |
+
'order' => $order,
|
1465 |
+
'shipment' => $shipment,
|
1466 |
+
'comment' => "",
|
1467 |
+
'billing' => $order->getBillingAddress(),
|
1468 |
+
'payment_html' => $paymentBlockHtml,
|
1469 |
+
'trackingCode' => $trackAndTraceCode
|
1470 |
+
);
|
1471 |
+
|
1472 |
+
if($send_mail){
|
1473 |
+
$this->sendInvoiceShippingEmail($templateId, $vars,$order);
|
1474 |
+
}
|
1475 |
+
return $shipmentId;
|
1476 |
+
}
|
1477 |
+
|
1478 |
+
/**
|
1479 |
+
* Send Mail helper function
|
1480 |
+
* @param int $templateId
|
1481 |
+
* @param array $vars
|
1482 |
+
* @param object $order
|
1483 |
+
* @return boolean
|
1484 |
+
*/
|
1485 |
+
private function sendInvoiceShippingEmail($templateId, $vars, $order){
|
1486 |
+
if(!$order->getId()){
|
1487 |
+
return false;
|
1488 |
+
}
|
1489 |
+
|
1490 |
+
$storeId = $order->getStore()->getId();
|
1491 |
+
$senderName = Mage::getStoreConfig('general/store_information/name', $storeId);
|
1492 |
+
$senderEmail = Mage::getStoreConfig('trans_email/ident_general/email', $storeId);
|
1493 |
+
|
1494 |
+
$senderName = ($senderName != '')? $senderName : 'System';
|
1495 |
+
$senderEmail = ($senderEmail != '')? $senderEmail : 'info@system.com';
|
1496 |
+
|
1497 |
+
$store_url = Mage::getStoreConfig('web/unsecure/base_url', $storeId);
|
1498 |
+
|
1499 |
+
$sender = array('name' => $senderName,
|
1500 |
+
'email' => $senderEmail);
|
1501 |
+
|
1502 |
+
$customerEmail = $order->getCustomerEmail();
|
1503 |
+
|
1504 |
+
if ($order->getCustomerIsGuest()) {
|
1505 |
+
$customerName = $order->getBillingAddress()->getName();
|
1506 |
+
} else {
|
1507 |
+
$customerName = $order->getCustomerName();
|
1508 |
+
}
|
1509 |
+
|
1510 |
+
$translate = Mage::getSingleton('core/translate');
|
1511 |
+
$translate->setTranslateInline(true);
|
1512 |
+
$model_email = Mage::getModel('core/email_template');
|
1513 |
+
$model_email->sendTransactional($templateId, $sender, $customerEmail, $customerName, $vars, $storeId);
|
1514 |
+
|
1515 |
+
return $model_email->getSentSuccess();
|
1516 |
+
}
|
1517 |
+
|
1518 |
+
/**
|
1519 |
+
* Order info custom fileds mapping
|
1520 |
+
* @return array
|
1521 |
+
*
|
1522 |
+
*/
|
1523 |
+
public function orderCustomFieldsMapping(){
|
1524 |
+
$custom1 = (Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_1') != null)? Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_1'): '';
|
1525 |
+
$custom1_label = ucwords(str_replace('_', ' ', $custom1));
|
1526 |
+
|
1527 |
+
$custom2 = (Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_2') != null)? Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_2'): '';
|
1528 |
+
$custom2_label = ucwords(str_replace('_', ' ', $custom2));
|
1529 |
+
|
1530 |
+
$custom3 = (Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_3') != null)? Mage::getStoreConfig('mshop/parameters_order_custom_attributes/custom_order_3'): '';
|
1531 |
+
$custom3_label = ucwords(str_replace('_', ' ', $custom3));
|
1532 |
+
return array(
|
1533 |
+
array('order_custom_field'=> 'custom_order_1', 'order_beckend_field'=> $custom1, 'order_beckend_field_label'=> $custom1_label),
|
1534 |
+
array('order_custom_field'=> 'custom_order_2', 'order_beckend_field'=> $custom2, 'order_beckend_field_label'=> $custom2_label),
|
1535 |
+
array('order_custom_field'=> 'custom_order_3', 'order_beckend_field'=> $custom3, 'order_beckend_field_label'=> $custom3_label)
|
1536 |
+
);
|
1537 |
+
}
|
1538 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/System/Config/Apply.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecomwise_Mshop_Model_System_Config_Apply extends Mage_Tax_Model_System_Config_Source_Apply
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
$this->_options = array(
|
8 |
+
/*
|
9 |
+
array(
|
10 |
+
'value' => 0,
|
11 |
+
'label' => Mage::helper('tax')->__('Before Discount')
|
12 |
+
),
|
13 |
+
*/
|
14 |
+
|
15 |
+
array(
|
16 |
+
'value' => 1,
|
17 |
+
'label' => Mage::helper('tax')->__('After Discount')
|
18 |
+
)
|
19 |
+
|
20 |
+
);
|
21 |
+
}
|
22 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Utility/Api.php
ADDED
@@ -0,0 +1,284 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecomwise_Mshop_Model_Utility_Api extends Mage_Api_Model_Resource_Abstract
|
4 |
+
{
|
5 |
+
public function cleanCache(){
|
6 |
+
Mage::app()->getCacheInstance()->cleanType('Web Services Configuration');
|
7 |
+
return true;
|
8 |
+
}
|
9 |
+
|
10 |
+
public function items(){
|
11 |
+
try{
|
12 |
+
$collection = Mage::getModel('tax/class')->getCollection();
|
13 |
+
}catch(Mage_Core_Exception $e){
|
14 |
+
$this->_fault('no_tax_classes_found', $e->getMessage());
|
15 |
+
}
|
16 |
+
$result = array();
|
17 |
+
foreach($collection as $taxClass){
|
18 |
+
if($taxClass->getClassType() == 'PRODUCT'){
|
19 |
+
$result[] = $taxClass->toArray(array('class_id', 'class_name', 'class_type'));
|
20 |
+
}
|
21 |
+
}
|
22 |
+
return $result;
|
23 |
+
}
|
24 |
+
|
25 |
+
public function paymentMethods($store=null){
|
26 |
+
try{
|
27 |
+
$paymentMethods = Mage::getSingleton('payment/config')->getAllMethods($store);
|
28 |
+
$paymentMethodsActive = Mage::getSingleton('payment/config')->getActiveMethods($store);
|
29 |
+
}
|
30 |
+
catch(Mage_Core_Exception $e){
|
31 |
+
$this->_fault('no_payment_methods_found', $e->getMessage());
|
32 |
+
}
|
33 |
+
$result = array();
|
34 |
+
foreach($paymentMethods as $code => $model){
|
35 |
+
$title = Mage::getStoreConfig('payment/'.$code.'/title');
|
36 |
+
foreach ($paymentMethodsActive as $code1 => $model1){
|
37 |
+
if ($code==$code1)
|
38 |
+
{
|
39 |
+
$title="*".$title;
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
$result[] = array('method_code' => $code, 'method_title' => $title);
|
44 |
+
}
|
45 |
+
return $result;
|
46 |
+
}
|
47 |
+
|
48 |
+
public function shippingMethods($store=null){
|
49 |
+
try{
|
50 |
+
$shippingMethods = Mage::getSingleton('shipping/config')->getAllCarriers($store);
|
51 |
+
}
|
52 |
+
catch(Mage_Core_Exception $e){
|
53 |
+
$this->_fault('no_shipping_methods_found', $e->getMessage());
|
54 |
+
}
|
55 |
+
$methods = array();
|
56 |
+
$i = 0;
|
57 |
+
foreach($shippingMethods as $code => $model){
|
58 |
+
if(!$model->isActive()){
|
59 |
+
//continue;
|
60 |
+
}
|
61 |
+
$carrierMethods = $model->getAllowedMethods();
|
62 |
+
if(!$carrierMethods){
|
63 |
+
continue;
|
64 |
+
}
|
65 |
+
$carrierTitle = Mage::getStoreConfig('carriers/'.$code.'/title', $store);
|
66 |
+
$methods[$i] = array(
|
67 |
+
'method_title' => $carrierTitle,
|
68 |
+
'method_code' => $code,
|
69 |
+
'available_methods' => array(),
|
70 |
+
);
|
71 |
+
foreach($carrierMethods as $methodCode=>$methodTitle){
|
72 |
+
$methods[$i]['available_methods'][] = $methodTitle;
|
73 |
+
}
|
74 |
+
$i++;
|
75 |
+
}
|
76 |
+
return $methods;
|
77 |
+
}
|
78 |
+
|
79 |
+
public function getStores() {
|
80 |
+
$stores_arr = array();
|
81 |
+
$websites = Mage::app()->getWebsites ();
|
82 |
+
foreach ( $websites as $_website ){
|
83 |
+
$websitename = $_website->getName();
|
84 |
+
$webid = $_website->getId();
|
85 |
+
foreach ($_website->getGroups() as $group) {
|
86 |
+
$group_arr = array();
|
87 |
+
$groupname = $group->getName();
|
88 |
+
$stores = $group->getStores();
|
89 |
+
foreach ($stores as $_store) {
|
90 |
+
$webstores = array();
|
91 |
+
$id = $_store->getId ();
|
92 |
+
$locale = Mage::getStoreConfig('general/locale/code',$id);
|
93 |
+
$name = $_store->getName ();
|
94 |
+
$webstores['id'] = $id;
|
95 |
+
$webstores['name'] = $name;
|
96 |
+
$webstores['language'] = $locale;
|
97 |
+
$webstores['url'] = $_store->getUrl();
|
98 |
+
$group_arr[] = $webstores;
|
99 |
+
}
|
100 |
+
$stores_arr[$websitename][$groupname] = $group_arr;
|
101 |
+
}
|
102 |
+
|
103 |
+
}
|
104 |
+
|
105 |
+
if(count($stores_arr) == 0){
|
106 |
+
$this->_fault('no_stores_found');
|
107 |
+
}
|
108 |
+
return $stores_arr;
|
109 |
+
}
|
110 |
+
|
111 |
+
public function itemsByStore($store_id=null){
|
112 |
+
$methods = array();
|
113 |
+
$stores = array();
|
114 |
+
Mage::app()->getCacheInstance()->cleanType('config');
|
115 |
+
|
116 |
+
if($store_id != null){
|
117 |
+
$stores[] = Mage::getModel('core/store')->load($store_id);
|
118 |
+
}else{
|
119 |
+
$stores = Mage::app()->getStores();
|
120 |
+
}
|
121 |
+
foreach ($stores as $store){
|
122 |
+
$id = $store->getId();
|
123 |
+
$name = $store->getName();
|
124 |
+
try{
|
125 |
+
$paymentMethods = Mage::getSingleton('payment/config')->getActiveMethods($store);
|
126 |
+
}catch(Mage_Core_Exception $e){
|
127 |
+
$this->_fault('no_payment_methods_found', $e->getMessage());
|
128 |
+
}
|
129 |
+
|
130 |
+
$result = array();
|
131 |
+
foreach($paymentMethods as $code => $model){
|
132 |
+
$title = Mage::getStoreConfig('payment/'.$code.'/title');
|
133 |
+
$result[] = array('method_code' => $code, 'method_title' => $title);
|
134 |
+
}
|
135 |
+
$methods[$name]['id'] = $id;
|
136 |
+
$methods[$name]['payment_methods'] = $result;
|
137 |
+
|
138 |
+
}
|
139 |
+
if(count($methods > 0)){
|
140 |
+
return $methods;
|
141 |
+
}else{
|
142 |
+
return $this->_fault('no_paymentmethods_for_store_found');
|
143 |
+
}
|
144 |
+
|
145 |
+
}
|
146 |
+
|
147 |
+
public function getVersion(){
|
148 |
+
return Mage::getVersion();
|
149 |
+
}
|
150 |
+
|
151 |
+
public function getSetting($setting_name){
|
152 |
+
if($setting_name == 'backorders'){
|
153 |
+
$backorder_status = false;
|
154 |
+
$backorders = Mage::getStoreConfig('cataloginventory/item_options/backorders');
|
155 |
+
switch($backorders){
|
156 |
+
case 0:
|
157 |
+
break;
|
158 |
+
case 1:
|
159 |
+
$backorder_status = true;
|
160 |
+
break;
|
161 |
+
case 2:
|
162 |
+
$backorder_status = true;
|
163 |
+
break;
|
164 |
+
}
|
165 |
+
|
166 |
+
return $backorder_status;
|
167 |
+
|
168 |
+
}else if($setting_name == 'multiple_shipment'){
|
169 |
+
$tomultiple = Mage::getStoreConfig('shipping/option/checkout_multiple');
|
170 |
+
$multiple_status = false;
|
171 |
+
|
172 |
+
switch($tomultiple){
|
173 |
+
case 0:
|
174 |
+
break;
|
175 |
+
case 1:
|
176 |
+
$max_qty = Mage::getStoreConfig('shipping/option/checkout_multiple_maximum_qty');
|
177 |
+
$multiple_status = true;
|
178 |
+
break;
|
179 |
+
}
|
180 |
+
return $multiple_status;
|
181 |
+
|
182 |
+
}else if($setting_name == 'gross_prices'){
|
183 |
+
return Mage::getStoreConfig('tax/calculation/price_includes_tax');
|
184 |
+
}else{
|
185 |
+
|
186 |
+
$this->_fault('invalid_parametars');
|
187 |
+
return;
|
188 |
+
}
|
189 |
+
}
|
190 |
+
|
191 |
+
public function getMshopVersion(){
|
192 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
193 |
+
$modulesArray = (array)$modules;
|
194 |
+
|
195 |
+
if(!isset($modulesArray['Ecomwise_Mshop'])) {
|
196 |
+
return $this->_fault('module_not_installed');
|
197 |
+
}
|
198 |
+
$mshop = (array)$modulesArray['Ecomwise_Mshop'];
|
199 |
+
return $mshop['version'];
|
200 |
+
|
201 |
+
}
|
202 |
+
public function getMshopB2BVersion(){
|
203 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
204 |
+
$modulesArray = (array)$modules;
|
205 |
+
|
206 |
+
if(!isset($modulesArray['Ecomwise_MshopB2B'])) {
|
207 |
+
return $this->_fault('module_b2b_not_installed');
|
208 |
+
}
|
209 |
+
$mshop = (array)$modulesArray['Ecomwise_MshopB2B'];
|
210 |
+
return $mshop['version'];
|
211 |
+
|
212 |
+
}
|
213 |
+
|
214 |
+
public function getIvoiceDate($orderNumber){
|
215 |
+
|
216 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);
|
217 |
+
$data = $order->getData();
|
218 |
+
$store_id = $data['store_id'];
|
219 |
+
|
220 |
+
$orderId = $order->getId();
|
221 |
+
if($orderId == null){
|
222 |
+
$this->_fault('order_not_exists');
|
223 |
+
}
|
224 |
+
|
225 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
226 |
+
|
227 |
+
$resurce = Mage::getSingleton('core/resource');
|
228 |
+
|
229 |
+
$invoice_table = $resurce->getTableName('sales_flat_invoice_grid');
|
230 |
+
|
231 |
+
$resultd = $connection->query('SELECT * FROM '.$invoice_table.' WHERE order_increment_id = '.$orderNumber.' LIMIT 1');
|
232 |
+
$row = $resultd->fetch(PDO::FETCH_ASSOC);
|
233 |
+
|
234 |
+
if($row){
|
235 |
+
$inv_date = $row['created_at'];
|
236 |
+
return $this->gmtToLocal($inv_date);
|
237 |
+
}else{
|
238 |
+
return $this->gmtToLocal($order->getCreatedAt());
|
239 |
+
}
|
240 |
+
}
|
241 |
+
|
242 |
+
private function gmtToLocal($datetime){
|
243 |
+
$_date_format = 'Y-m-d H:i:s';
|
244 |
+
$time = strtotime($datetime);
|
245 |
+
$tz = Mage::app()->getStore()->getConfig('general/locale/timezone');
|
246 |
+
$oldzone = @date_default_timezone_get();
|
247 |
+
$result = date_default_timezone_set($tz);
|
248 |
+
$return = date($_date_format,$time);
|
249 |
+
date_default_timezone_set($oldzone);
|
250 |
+
return $return;
|
251 |
+
}
|
252 |
+
|
253 |
+
public function taxRules(){
|
254 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
255 |
+
|
256 |
+
$resurce = Mage::getSingleton('core/resource');
|
257 |
+
$tax_rule = $resurce->getTableName('tax_calculation_rule');
|
258 |
+
|
259 |
+
$resultd = $connection->query('SELECT * FROM '.$tax_rule.'');
|
260 |
+
$rows = $resultd->fetchAll(PDO::FETCH_ASSOC);
|
261 |
+
if($rows){
|
262 |
+
$rules = array();
|
263 |
+
foreach($rows as $row){
|
264 |
+
$rule_id = $row['tax_calculation_rule_id'];
|
265 |
+
$rule_name = $row['code'];
|
266 |
+
$rule_single = array('tax_rule_id'=>$rule_id, 'tax_rule_name'=> $rule_name);
|
267 |
+
$rules[] = $rule_single;
|
268 |
+
}
|
269 |
+
return $rules;
|
270 |
+
}else{
|
271 |
+
return $this->_fault('rules_not_found');
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
public function isMshopB2BInstalled(){
|
276 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
277 |
+
$modulesArray = (array)$modules;
|
278 |
+
|
279 |
+
if(isset($modulesArray['Ecomwise_MshopB2B'])) {
|
280 |
+
return true;
|
281 |
+
}
|
282 |
+
return false;
|
283 |
+
}
|
284 |
+
}
|
app/code/community/Ecomwise/Mshop/Model/Utility/Api/V2.php
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecomwise_Mshop_Model_Utility_Api_V2 extends Ecomwise_Mshop_Model_Utility_Api{
|
4 |
+
|
5 |
+
|
6 |
+
public function paymentStatuses(){
|
7 |
+
//$stats = Mage::getModel('sales/order_status')->getCollection();
|
8 |
+
$stats = Mage::getSingleton('sales/order_config')->getStatuses();
|
9 |
+
|
10 |
+
$result = array();
|
11 |
+
foreach ($stats as $code => $label){
|
12 |
+
$result[] = array('statusCode' => $code, 'status' => $label);
|
13 |
+
}
|
14 |
+
return $result;
|
15 |
+
}
|
16 |
+
|
17 |
+
public function items(){
|
18 |
+
try{
|
19 |
+
$collection = Mage::getModel('tax/class')->getCollection();
|
20 |
+
}
|
21 |
+
catch(Mage_Core_Exception $e){
|
22 |
+
$this->_fault('no_tax_classes_found', $e->getMessage());
|
23 |
+
}
|
24 |
+
$result = array();
|
25 |
+
foreach($collection as $taxClass){
|
26 |
+
if($taxClass->getClassType() == 'PRODUCT'){
|
27 |
+
$result[] = $taxClass->toArray(array('class_id', 'class_name', 'class_type'));
|
28 |
+
}
|
29 |
+
}
|
30 |
+
return $result;
|
31 |
+
}
|
32 |
+
|
33 |
+
public function shippingMethods($store=null){
|
34 |
+
try{
|
35 |
+
$shippingMethods = Mage::getSingleton('shipping/config')->getAllCarriers($store);
|
36 |
+
}catch(Mage_Core_Exception $e){
|
37 |
+
$this->_fault('no_shipping_methods_found', $e->getMessage());
|
38 |
+
}
|
39 |
+
$methods = array();
|
40 |
+
|
41 |
+
foreach($shippingMethods as $code => $model){
|
42 |
+
if(!$model->isActive()){
|
43 |
+
//continue;
|
44 |
+
}
|
45 |
+
//$carrierMethods = $model->getAllowedMethods();
|
46 |
+
//if(!$carrierMethods){
|
47 |
+
// continue;
|
48 |
+
//}
|
49 |
+
$carrierTitle = Mage::getStoreConfig('carriers/'.$code.'/title', $store);
|
50 |
+
$methods[] = array(
|
51 |
+
'method_title' => $carrierTitle,
|
52 |
+
'method_code' => $code
|
53 |
+
);
|
54 |
+
|
55 |
+
}
|
56 |
+
return $methods;
|
57 |
+
}
|
58 |
+
|
59 |
+
private function _formatCarrierMethods(array $carrierMethods){
|
60 |
+
$res = array();
|
61 |
+
foreach($carrierMethods as $methodCode => $methodTitle){
|
62 |
+
$res[] = $methodTitle;
|
63 |
+
}
|
64 |
+
return $res;
|
65 |
+
}
|
66 |
+
|
67 |
+
public function getStores(){
|
68 |
+
$group_arr = array();
|
69 |
+
$websites = Mage::app()->getWebsites ();
|
70 |
+
foreach ( $websites as $_website ){
|
71 |
+
$websitename = $_website->getName();
|
72 |
+
$webid = intval($_website->getId());
|
73 |
+
foreach ($_website->getGroups() as $group){
|
74 |
+
$groupname = $group->getName();
|
75 |
+
$stores = $group->getStores();
|
76 |
+
foreach ($stores as $_store) {
|
77 |
+
$webstores = array();
|
78 |
+
$id = intval($_store->getId ());
|
79 |
+
$locale = Mage::getStoreConfig('general/locale/code',$id);
|
80 |
+
$name = $_store->getName ();
|
81 |
+
$webstores['websiteid'] = $webid;
|
82 |
+
$webstores['groupname'] = $groupname;
|
83 |
+
$webstores['storeid'] = $id;
|
84 |
+
$webstores['name'] = $name;
|
85 |
+
$webstores['language'] = $locale;
|
86 |
+
$webstores['store_url'] = $_store->getUrl();
|
87 |
+
$group_arr[] = $webstores;
|
88 |
+
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
}
|
93 |
+
if(count($group_arr) == 0){
|
94 |
+
$this->_fault('no_stores_found');
|
95 |
+
}
|
96 |
+
return $group_arr;
|
97 |
+
}
|
98 |
+
|
99 |
+
|
100 |
+
public function itemsByStore($store_id=null){
|
101 |
+
$methods = array();
|
102 |
+
$stores = array();
|
103 |
+
Mage::app()->getCacheInstance()->cleanType('config');
|
104 |
+
|
105 |
+
if($store_id != null){
|
106 |
+
$stores[] = Mage::getModel('core/store')->load($store_id);
|
107 |
+
}else{
|
108 |
+
$stores = Mage::app()->getStores();
|
109 |
+
}
|
110 |
+
foreach ($stores as $store){
|
111 |
+
$id = $store->getId();
|
112 |
+
$name = $store->getName();
|
113 |
+
try{
|
114 |
+
$paymentMethods = Mage::getSingleton('payment/config')->getActiveMethods($store);
|
115 |
+
}catch(Mage_Core_Exception $e){
|
116 |
+
$this->_fault('no_payment_methods_found', $e->getMessage());
|
117 |
+
}
|
118 |
+
foreach($paymentMethods as $code => $model){
|
119 |
+
$title = Mage::getStoreConfig('payment/'.$code.'/title');
|
120 |
+
$result = array('method_code' => $code, 'method_title' => $title, 'store_id'=>$id,'store_name'=>$name);
|
121 |
+
$methods[] = $result;
|
122 |
+
}
|
123 |
+
}
|
124 |
+
if(count($methods )== 0){
|
125 |
+
$this->_fault('no_paymentmethods_for_store_found');
|
126 |
+
|
127 |
+
}
|
128 |
+
return $methods;
|
129 |
+
}
|
130 |
+
}
|
app/code/community/Ecomwise/Mshop/etc/api.xml
ADDED
@@ -0,0 +1,829 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<api>
|
4 |
+
<resources>
|
5 |
+
<sales_order translate="title" module="sales">
|
6 |
+
<faults module="sales">
|
7 |
+
<product_not_exists>
|
8 |
+
<code>104</code>
|
9 |
+
<message>Error: One or more products associated to this order currently are not existing.</message>
|
10 |
+
</product_not_exists>
|
11 |
+
</faults>
|
12 |
+
</sales_order>
|
13 |
+
|
14 |
+
<!-- sales order methods -->
|
15 |
+
<mshop_sales translate="title" module="mshop">
|
16 |
+
<model>mshop/sales_api</model>
|
17 |
+
<title>Sales Methods Api</title>
|
18 |
+
<acl>mshop/sales</acl>
|
19 |
+
<methods>
|
20 |
+
|
21 |
+
<orderShipment translate="title" module="mshop">
|
22 |
+
<title>Create new shipment for order</title>
|
23 |
+
<method>orderShipmentCreate</method>
|
24 |
+
</orderShipment>
|
25 |
+
|
26 |
+
<creditMemo translate="title" module="mshop">
|
27 |
+
<title>Retrieves the credit memo information</title>
|
28 |
+
<method>creditMemo</method>
|
29 |
+
</creditMemo>
|
30 |
+
|
31 |
+
<getOrdersFromWithStatus translate="title" module="mshop">
|
32 |
+
<title>Get Increment Ids For Multiple Orders</title>
|
33 |
+
<method>getOrdersFromWithStatus</method>
|
34 |
+
</getOrdersFromWithStatus>
|
35 |
+
|
36 |
+
<getCreditmemosFrom translate="title" module="mshop">
|
37 |
+
<title>Get Increment Ids For Multiple Credit Memos</title>
|
38 |
+
<method>getCreditmemosFrom</method>
|
39 |
+
</getCreditmemosFrom>
|
40 |
+
|
41 |
+
<getSalesForOrders translate="title" module="mshop">
|
42 |
+
<title>Get Sales For Orders</title>
|
43 |
+
<method>getSalesForOrders</method>
|
44 |
+
</getSalesForOrders>
|
45 |
+
|
46 |
+
<getSalesForOrdersWithStatus translate="title" module="mshop">
|
47 |
+
<title>Get Sales For Orders</title>
|
48 |
+
<method>getSalesForOrdersWithStatus</method>
|
49 |
+
</getSalesForOrdersWithStatus>
|
50 |
+
|
51 |
+
<orderList translate="title" module="mshop">
|
52 |
+
<title>List Orders</title>
|
53 |
+
<method>items</method>
|
54 |
+
</orderList>
|
55 |
+
<hasTaxClassForShipping translate="title" module="mshop">
|
56 |
+
<title>Check if has tax class for shipping</title>
|
57 |
+
<method>hasTaxClassForShipping</method>
|
58 |
+
</hasTaxClassForShipping>
|
59 |
+
|
60 |
+
<orderCreateInvoice translate="title" module="mshop">
|
61 |
+
<title>Create new invoice for order with mamut id</title>
|
62 |
+
<method>orderMamutCreateInvoice</method>
|
63 |
+
</orderCreateInvoice>
|
64 |
+
|
65 |
+
<orderCancel translate="title" module="mshop">
|
66 |
+
<title>Order cancellation</title>
|
67 |
+
<method>orderCancel</method>
|
68 |
+
</orderCancel>
|
69 |
+
|
70 |
+
<orderNotInStock translate="title" module="mshop">
|
71 |
+
<title>Ordered items are not in stock</title>
|
72 |
+
<method>orderNotInStock</method>
|
73 |
+
</orderNotInStock>
|
74 |
+
|
75 |
+
<orderPicked translate="title" module="mshop">
|
76 |
+
<title>Order is picked</title>
|
77 |
+
<method>orderPicked</method>
|
78 |
+
</orderPicked>
|
79 |
+
|
80 |
+
<orderCreateShipment translate="title" module="mshop">
|
81 |
+
<title>Order is shipped</title>
|
82 |
+
<method>orderCreateShipment</method>
|
83 |
+
</orderCreateShipment>
|
84 |
+
<orderCustomFieldsMapping>
|
85 |
+
<title>Custom order fields mapping</title>
|
86 |
+
<method>orderCustomFieldsMapping</method>
|
87 |
+
</orderCustomFieldsMapping>
|
88 |
+
|
89 |
+
</methods>
|
90 |
+
<faults module="mshop">
|
91 |
+
|
92 |
+
<array_id_not_passed>
|
93 |
+
<code>101</code>
|
94 |
+
<message>Array of order ids sholud be passed as parametar</message>
|
95 |
+
</array_id_not_passed>
|
96 |
+
|
97 |
+
<invoice_not_created>
|
98 |
+
<code>103</code>
|
99 |
+
<message>Can not create invoice for order.</message>
|
100 |
+
</invoice_not_created>
|
101 |
+
|
102 |
+
<credit_memo_not_exist>
|
103 |
+
<code>102</code>
|
104 |
+
<message>Credit memo id does not exist</message>
|
105 |
+
</credit_memo_not_exist>
|
106 |
+
<order_not_exist>
|
107 |
+
<code>103</code>
|
108 |
+
<message>Order increment id does not exist</message>
|
109 |
+
</order_not_exist>
|
110 |
+
<email_is_not_avtivated>
|
111 |
+
<code>104</code>
|
112 |
+
<message>Email sending is turned off for this method</message>
|
113 |
+
</email_is_not_avtivated>
|
114 |
+
<order_state_not_changed>
|
115 |
+
<code>105</code>
|
116 |
+
<message>Order state was not changed</message>
|
117 |
+
</order_state_not_changed>
|
118 |
+
<shipment_not_created>
|
119 |
+
<code>106</code>
|
120 |
+
<message>Can not create shipment for order.</message>
|
121 |
+
</shipment_not_created>
|
122 |
+
</faults>
|
123 |
+
</mshop_sales>
|
124 |
+
<!-- end sales -->
|
125 |
+
|
126 |
+
<!-- utility methods -->
|
127 |
+
<mshop_utility translate="title" module="mshop">
|
128 |
+
<model>mshop/utility_api</model>
|
129 |
+
<title>Utility Methods Api</title>
|
130 |
+
<acl>mshop/utility</acl>
|
131 |
+
<methods>
|
132 |
+
|
133 |
+
<listPaymentStatuses translate="title" module="mshop">
|
134 |
+
<title>List of payment statuses</title>
|
135 |
+
<method>paymentStatuses</method>
|
136 |
+
</listPaymentStatuses>
|
137 |
+
|
138 |
+
<listProductTaxClasses translate="title" module="mshop">
|
139 |
+
<title>List of tax classes</title>
|
140 |
+
<method>items</method>
|
141 |
+
</listProductTaxClasses>
|
142 |
+
|
143 |
+
<listTaxClassRules translate="title" module="mshop">
|
144 |
+
<title>List of tax classe rules</title>
|
145 |
+
<method>taxRules</method>
|
146 |
+
</listTaxClassRules>
|
147 |
+
|
148 |
+
<cleanCache translate="title" module="mshop">
|
149 |
+
<title>Clean cache type:Web Services Configuration</title>
|
150 |
+
<method>cleanCache</method>
|
151 |
+
</cleanCache>
|
152 |
+
|
153 |
+
<listPaymentMethods translate="title" module="mshop">
|
154 |
+
<title>List of payment methods</title>
|
155 |
+
<method>paymentMethods</method>
|
156 |
+
</listPaymentMethods>
|
157 |
+
|
158 |
+
<listShippingMethods translate="title" module="mshop">
|
159 |
+
<title>List of shipping methods</title>
|
160 |
+
<method>shippingMethods</method>
|
161 |
+
</listShippingMethods>
|
162 |
+
|
163 |
+
<listStoreViews translate="title" module="mshop">
|
164 |
+
<title>List of stores in website </title>
|
165 |
+
<method>getStores</method>
|
166 |
+
</listStoreViews>
|
167 |
+
|
168 |
+
<listPaymentMethodsByStore translate="title" module="mshop">
|
169 |
+
<title>List of payment methods by stores</title>
|
170 |
+
<method>itemsByStore</method>
|
171 |
+
</listPaymentMethodsByStore>
|
172 |
+
|
173 |
+
<getMagentoVersion translate="title" module="mshop">
|
174 |
+
<title>Get Magento Vesion</title>
|
175 |
+
<method>getVersion</method>
|
176 |
+
</getMagentoVersion>
|
177 |
+
|
178 |
+
<getSetting translate="title" module="mshop">
|
179 |
+
<title>Get Magento Setting</title>
|
180 |
+
<method>getSetting</method>
|
181 |
+
</getSetting>
|
182 |
+
|
183 |
+
<getMshopVersion translate="title" module="mshop">
|
184 |
+
<title>Get Mshop version</title>
|
185 |
+
<method>getMshopVersion</method>
|
186 |
+
</getMshopVersion>
|
187 |
+
|
188 |
+
<getMshopB2BVersion translate="title" module="mshop">
|
189 |
+
<title>Get MshopB2B version if installed</title>
|
190 |
+
<method>getMshopB2BVersion</method>
|
191 |
+
</getMshopB2BVersion>
|
192 |
+
|
193 |
+
<getOrderInvoiceDate translate="title" module="mshop">
|
194 |
+
<title>Get order invoice date</title>
|
195 |
+
<method>getIvoiceDate</method>
|
196 |
+
</getOrderInvoiceDate>
|
197 |
+
|
198 |
+
<isMshopB2BInstalled translate="title" module="mshop">
|
199 |
+
<title>Check if MshopB2B extension is installed</title>
|
200 |
+
<method>isMshopB2BInstalled</method>
|
201 |
+
</isMshopB2BInstalled>
|
202 |
+
</methods>
|
203 |
+
<faults module="mshop">
|
204 |
+
<no_tax_classes_found>
|
205 |
+
<code>101</code>
|
206 |
+
<message>There were no active tax classes found.</message>
|
207 |
+
</no_tax_classes_found>
|
208 |
+
|
209 |
+
<no_payment_methods_found>
|
210 |
+
<code>102</code>
|
211 |
+
<message>There were no active payment methods found.</message>
|
212 |
+
</no_payment_methods_found>
|
213 |
+
|
214 |
+
<no_shipping_methods_found>
|
215 |
+
<code>103</code>
|
216 |
+
<message>There were no active shipping methods found.</message>
|
217 |
+
</no_shipping_methods_found>
|
218 |
+
|
219 |
+
<no_stores_found>
|
220 |
+
<code>104</code>
|
221 |
+
<message>There were no stores found.</message>
|
222 |
+
</no_stores_found>
|
223 |
+
|
224 |
+
<no_paymentmethods_for_store_found>
|
225 |
+
<code>105</code>
|
226 |
+
<message>There were no payment methods for store found.</message>
|
227 |
+
</no_paymentmethods_for_store_found>
|
228 |
+
|
229 |
+
<can_not_retrive_version>
|
230 |
+
<code>106</code>
|
231 |
+
<message>Magento version can't be retrived.</message>
|
232 |
+
</can_not_retrive_version>
|
233 |
+
|
234 |
+
<invalid_parametars>
|
235 |
+
<code>107</code>
|
236 |
+
<message>Invalid setting parametar value passed. Allowed values are: "backorders", "multiple_shipment" and "gross_prices"</message>
|
237 |
+
</invalid_parametars>
|
238 |
+
|
239 |
+
<module_not_installed>
|
240 |
+
<code>108</code>
|
241 |
+
<message>Module Mshop is not installed</message>
|
242 |
+
</module_not_installed>
|
243 |
+
|
244 |
+
<order_not_exists>
|
245 |
+
<code>109</code>
|
246 |
+
<message>Order with this number not exists</message>
|
247 |
+
</order_not_exists>
|
248 |
+
|
249 |
+
<rules_not_found>
|
250 |
+
<code>110</code>
|
251 |
+
<message>Tax class rules not found</message>
|
252 |
+
</rules_not_found>
|
253 |
+
|
254 |
+
<module_b2b_not_installed>
|
255 |
+
<code>111</code>
|
256 |
+
<message>Module MshopB2B is not installed</message>
|
257 |
+
</module_b2b_not_installed>
|
258 |
+
|
259 |
+
</faults>
|
260 |
+
</mshop_utility>
|
261 |
+
|
262 |
+
<!-- end utility methods -->
|
263 |
+
|
264 |
+
<!-- attribute methods -->
|
265 |
+
<mshop_attribute translate="title" module="mshop">
|
266 |
+
<model>mshop/catalog_attribute_api</model>
|
267 |
+
<title>Catalog Attribute Methods Api</title>
|
268 |
+
<acl>mshop/catalog</acl>
|
269 |
+
<methods>
|
270 |
+
<optionId translate="title" module="mshop">
|
271 |
+
<title>Get Attribute Option Id</title>
|
272 |
+
<method>getAttributeLabelId</method>
|
273 |
+
<acl>catalog/attribute/attributeLabelId</acl>
|
274 |
+
</optionId>
|
275 |
+
|
276 |
+
<create translate="title" module="mshop">
|
277 |
+
<title>Create new product attribute</title>
|
278 |
+
<method>create</method>
|
279 |
+
<acl>catalog/attribute/create</acl>
|
280 |
+
</create>
|
281 |
+
|
282 |
+
<delete translate="title" module="mshop">
|
283 |
+
<title>Delete product attribute</title>
|
284 |
+
<method>delete</method>
|
285 |
+
<acl>catalog/attribute/delete</acl>
|
286 |
+
</delete>
|
287 |
+
|
288 |
+
<addOptions translate="title" module="mshop">
|
289 |
+
<title>Add attribute options</title>
|
290 |
+
<method>addoptions</method>
|
291 |
+
<acl>catalog/attribute/addoptions</acl>
|
292 |
+
</addOptions>
|
293 |
+
|
294 |
+
<setsThatContain translate="title" module="mshop">
|
295 |
+
<title>Get sets that contain listed attributes</title>
|
296 |
+
<method>getSets</method>
|
297 |
+
</setsThatContain>
|
298 |
+
|
299 |
+
<copySet translate="title" module="mshop">
|
300 |
+
<title>Copy Atribute set</title>
|
301 |
+
<method>copyAttributeSet</method>
|
302 |
+
<acl>catalog/attribute/copyset</acl>
|
303 |
+
</copySet>
|
304 |
+
|
305 |
+
<addToSet translate="title" module="mshop">
|
306 |
+
<title>Add atribute to set</title>
|
307 |
+
<method>addToSet</method>
|
308 |
+
<acl>catalog/attribute/addtoset</acl>
|
309 |
+
</addToSet>
|
310 |
+
|
311 |
+
<setOptions translate="title" module="mshop">
|
312 |
+
<title>Set All attribute options</title>
|
313 |
+
<method>setOptions</method>
|
314 |
+
<acl>catalog/attribute/addoptions</acl>
|
315 |
+
</setOptions>
|
316 |
+
|
317 |
+
<deleteOptions translate="title" module="mshop">
|
318 |
+
<title>Delete attribute options</title>
|
319 |
+
<method>deleteOptions</method>
|
320 |
+
<acl>catalog/attribute/addoptions</acl>
|
321 |
+
</deleteOptions>
|
322 |
+
|
323 |
+
</methods>
|
324 |
+
<faults module="mshop">
|
325 |
+
<set_not_exists>
|
326 |
+
<code>101</code>
|
327 |
+
<message>Attribute set with this Id not exists</message>
|
328 |
+
</set_not_exists>
|
329 |
+
|
330 |
+
<not_copied>
|
331 |
+
<code>101</code>
|
332 |
+
<message>Attribute set can't be copied</message>
|
333 |
+
</not_copied>
|
334 |
+
|
335 |
+
<att_code_label_not_provided>
|
336 |
+
<code>101</code>
|
337 |
+
<message>Attributes label and code should be provided.</message>
|
338 |
+
</att_code_label_not_provided>
|
339 |
+
|
340 |
+
<set_group_id_not_provided>
|
341 |
+
<code>102</code>
|
342 |
+
<message>Attribute Set Id and Group Id should be provided.</message>
|
343 |
+
</set_group_id_not_provided>
|
344 |
+
|
345 |
+
<attr_code_not_valid>
|
346 |
+
<code>103</code>
|
347 |
+
<message>Invalid attribute code.</message>
|
348 |
+
</attr_code_not_valid>
|
349 |
+
|
350 |
+
<cat_not_create_attribute>
|
351 |
+
<code>104</code>
|
352 |
+
<message>Attribute can't be created.</message>
|
353 |
+
</cat_not_create_attribute>
|
354 |
+
|
355 |
+
<not_deleted>
|
356 |
+
<code>105</code>
|
357 |
+
<message>Attribute can't be deleted.</message>
|
358 |
+
</not_deleted>
|
359 |
+
|
360 |
+
<not_exists>
|
361 |
+
<code>106</code>
|
362 |
+
<message>Attribute not exists.</message>
|
363 |
+
</not_exists>
|
364 |
+
|
365 |
+
<can_not_add_option>
|
366 |
+
<code>107</code>
|
367 |
+
<message>Option can't be created.</message>
|
368 |
+
</can_not_add_option>
|
369 |
+
|
370 |
+
<no_sets_found>
|
371 |
+
<code>108</code>
|
372 |
+
<message>No sets were found containig this attributes</message>
|
373 |
+
</no_sets_found>
|
374 |
+
|
375 |
+
<array_not_passed>
|
376 |
+
<code>109</code>
|
377 |
+
<message>Array of attribute codes sholud be passed as parametar</message>
|
378 |
+
</array_not_passed>
|
379 |
+
|
380 |
+
<att_not_exists>
|
381 |
+
<code>110</code>
|
382 |
+
<message>Attribute with this code not exists</message>
|
383 |
+
</att_not_exists>
|
384 |
+
|
385 |
+
<not_added>
|
386 |
+
<code>111</code>
|
387 |
+
<message>Attribute set can't be added</message>
|
388 |
+
</not_added>
|
389 |
+
|
390 |
+
<no_product_attribute_set>
|
391 |
+
<code>112</code>
|
392 |
+
<message>Attribute set with given Id is not product attribute set</message>
|
393 |
+
</no_product_attribute_set>
|
394 |
+
|
395 |
+
<set_name_exists>
|
396 |
+
<code>113</code>
|
397 |
+
<message>Attribute set with given name allready exists</message>
|
398 |
+
</set_name_exists>
|
399 |
+
|
400 |
+
<can_not_delete_option>
|
401 |
+
<code>114</code>
|
402 |
+
<message>Can not delete previuos options</message>
|
403 |
+
</can_not_delete_option>
|
404 |
+
|
405 |
+
<array_options_not_passed>
|
406 |
+
<code>115</code>
|
407 |
+
<message>Array of attribute options sholud be passed as parametar</message>
|
408 |
+
</array_options_not_passed>
|
409 |
+
|
410 |
+
<option_not_exists>
|
411 |
+
<code>116</code>
|
412 |
+
<message>Option with this label not exist</message>
|
413 |
+
</option_not_exists>
|
414 |
+
</faults>
|
415 |
+
</mshop_attribute>
|
416 |
+
<!-- end attribute methods -->
|
417 |
+
|
418 |
+
<!-- catalog methods -->
|
419 |
+
<mshop_catalog translate="title" module="mshop">
|
420 |
+
<model>mshop/catalog_api</model>
|
421 |
+
<title>Catalog Methods Api</title>
|
422 |
+
<acl>mshop/catalog</acl>
|
423 |
+
<methods>
|
424 |
+
<disableProducts translate="title" module="mshop">
|
425 |
+
<title>Massively Updates the Product Status</title>
|
426 |
+
<method>disableProducts</method>
|
427 |
+
<acl>catalog/product/updatestatus</acl>
|
428 |
+
</disableProducts>
|
429 |
+
|
430 |
+
<inventoryStockUpdate translate="title" module="mshop">
|
431 |
+
<title>Massively Updates the Product inventory: Quantity</title>
|
432 |
+
<method>massiveUpdateQty</method>
|
433 |
+
<acl>catalog/product/updateqty</acl>
|
434 |
+
</inventoryStockUpdate>
|
435 |
+
|
436 |
+
<inventoryStockItemUpdate translate="title" module="mshop">
|
437 |
+
<title>Updates the Product inventory: Quantity</title>
|
438 |
+
<method>updateQty</method>
|
439 |
+
<acl>catalog/product/updateqty</acl>
|
440 |
+
</inventoryStockItemUpdate>
|
441 |
+
|
442 |
+
<inventoryStockItemFutureStockUpdate translate="title" module="mshop">
|
443 |
+
<title>Updates the Product inventory: Quantity taking mamu_future_stock into account as well</title>
|
444 |
+
<method>updateQtyFutureStock</method>
|
445 |
+
<acl>catalog/product/updateqty</acl>
|
446 |
+
</inventoryStockItemFutureStockUpdate>
|
447 |
+
|
448 |
+
<simpleProductsList translate="title" module="mshop">
|
449 |
+
<title>Return Simple Products SKUs</title>
|
450 |
+
<method>productsSkus</method>
|
451 |
+
<acl>catalog/product/simpleproductslist</acl>
|
452 |
+
</simpleProductsList>
|
453 |
+
|
454 |
+
<productsList translate="title" module="mshop">
|
455 |
+
<title>Return All Products SKUs</title>
|
456 |
+
<method>productsAllSkus</method>
|
457 |
+
<acl>catalog/product/productslist</acl>
|
458 |
+
</productsList>
|
459 |
+
|
460 |
+
<setProductVisibleInStoreViews translate="title" module="mshop">
|
461 |
+
<title>Set Visibility to Products in Store Views</title>
|
462 |
+
<method>setVisibility</method>
|
463 |
+
<acl>catalog/product/setvisibility</acl>
|
464 |
+
</setProductVisibleInStoreViews>
|
465 |
+
|
466 |
+
<removeProductCategoriesBelow translate="title" module="mshop">
|
467 |
+
<title>remove product from categories below category</title>
|
468 |
+
<method>removeProductCategoriesBellow</method>
|
469 |
+
<acl>catalog/product/removebelow</acl>
|
470 |
+
</removeProductCategoriesBelow>
|
471 |
+
|
472 |
+
<checkCreateConfigurableProduct translate="title" module="mshop">
|
473 |
+
<title>Create configurable product</title>
|
474 |
+
<method>createConfigurable</method>
|
475 |
+
<acl>catalog/product/createconfigurable</acl>
|
476 |
+
</checkCreateConfigurableProduct>
|
477 |
+
|
478 |
+
<setProductsToComplex translate="title" module="mshop">
|
479 |
+
<title>Add simple product to configurable or grouped product</title>
|
480 |
+
<method>setToComplex</method>
|
481 |
+
<acl>catalog/product/addtoconfigurable</acl>
|
482 |
+
</setProductsToComplex>
|
483 |
+
|
484 |
+
<checkCreateGroupedProduct translate="title" module="mshop">
|
485 |
+
<title>Create grouped product</title>
|
486 |
+
<method>createGrouped</method>
|
487 |
+
<acl>catalog/product/creategrouped</acl>
|
488 |
+
</checkCreateGroupedProduct>
|
489 |
+
|
490 |
+
<productFullInfo translate="title" module="mshop">
|
491 |
+
<title>Get Product Info For All Store Views</title>
|
492 |
+
<method>productFullInfo</method>
|
493 |
+
<acl>catalog/product/fullproductinfo</acl>
|
494 |
+
</productFullInfo>
|
495 |
+
|
496 |
+
<!-- since 1.2.6 new -->
|
497 |
+
<productCreate>
|
498 |
+
<title>Create product pre 1.6.2 version compatible method</title>
|
499 |
+
<method>create</method>
|
500 |
+
<acl>catalog/product/create</acl>
|
501 |
+
</productCreate>
|
502 |
+
|
503 |
+
<productGetProductsChangedSince>
|
504 |
+
<title>Array of products changed since given date</title>
|
505 |
+
<method>getProductsChangedSince</method>
|
506 |
+
<acl>catalog/product/getproductschangedsince</acl>
|
507 |
+
</productGetProductsChangedSince>
|
508 |
+
|
509 |
+
<productUpdate>
|
510 |
+
<title>Update product pre 1.6.2 version compatible method</title>
|
511 |
+
<method>update</method>
|
512 |
+
<acl>catalog/product/update</acl>
|
513 |
+
</productUpdate>
|
514 |
+
|
515 |
+
<importImages translate="title" module="mshop">
|
516 |
+
<title>import images</title>
|
517 |
+
<method>images</method>
|
518 |
+
</importImages>
|
519 |
+
|
520 |
+
<productAttributeTierPriceUpdate>
|
521 |
+
<title>Updated tier prices for product(percentage ot fixed)</title>
|
522 |
+
<method>updateTierPrices</method>
|
523 |
+
</productAttributeTierPriceUpdate>
|
524 |
+
|
525 |
+
<!-- end -->
|
526 |
+
|
527 |
+
</methods>
|
528 |
+
<faults module="mshop">
|
529 |
+
<!-- Since 2.0.6 -->
|
530 |
+
<mamut_future_stock_not_available>
|
531 |
+
<code>2061</code>
|
532 |
+
<message>Error 2061: You are trying to use the "Future Stock" feature, however it seems like the "mamut_future_stock" attribute is not present.</message>
|
533 |
+
</mamut_future_stock_not_available>
|
534 |
+
<!-- Since 2.0.6 -->
|
535 |
+
|
536 |
+
<!-- Since 1.2.5 -->
|
537 |
+
<invalid_sku>
|
538 |
+
<code>1001</code>
|
539 |
+
<message>Error 1251: No such Product Sku was found</message>
|
540 |
+
</invalid_sku>
|
541 |
+
<invalid_pid>
|
542 |
+
<code>1002</code>
|
543 |
+
<message>Error 1252: No such Product Id was found</message>
|
544 |
+
</invalid_pid>
|
545 |
+
<update_query_failed>
|
546 |
+
<code>1003</code>
|
547 |
+
<message>Error 1253: The update query was not executed properly</message>
|
548 |
+
</update_query_failed>
|
549 |
+
<!-- End Since 1.2.5 -->
|
550 |
+
|
551 |
+
|
552 |
+
<store_view_not_exists>
|
553 |
+
<code>101</code>
|
554 |
+
<message>Store View Not Exists</message>
|
555 |
+
</store_view_not_exists>
|
556 |
+
|
557 |
+
<visibility_level_not_exists>
|
558 |
+
<code>102</code>
|
559 |
+
<message>This visibility level not exists. (1 - Not Visible Individually, 2 - Catalog, 3 - Search, 4 - Catalog, Search)</message>
|
560 |
+
</visibility_level_not_exists>
|
561 |
+
|
562 |
+
<visibility_not_set>
|
563 |
+
<code>103</code>
|
564 |
+
<message>Visibility for the product was not set</message>
|
565 |
+
</visibility_not_set>
|
566 |
+
|
567 |
+
<product_not_exists>
|
568 |
+
<code>104</code>
|
569 |
+
<message>Product with this id not exists</message>
|
570 |
+
</product_not_exists>
|
571 |
+
|
572 |
+
<not_passed_array>
|
573 |
+
<code>105</code>
|
574 |
+
<message>Store views should be passed as array of integers</message>
|
575 |
+
</not_passed_array>
|
576 |
+
|
577 |
+
<no_subcategories>
|
578 |
+
<code>106</code>
|
579 |
+
<message>The provided category doesn't have subcategories</message>
|
580 |
+
</no_subcategories>
|
581 |
+
|
582 |
+
<product_not_removed>
|
583 |
+
<code>107</code>
|
584 |
+
<message>Product was not removed from subcategories</message>
|
585 |
+
</product_not_removed>
|
586 |
+
|
587 |
+
<store_not_exists>
|
588 |
+
<code>100</code>
|
589 |
+
<message>Requested store view not found.</message>
|
590 |
+
</store_not_exists>
|
591 |
+
|
592 |
+
<not_exists>
|
593 |
+
<code>109</code>
|
594 |
+
<message>Product not exists.</message>
|
595 |
+
</not_exists>
|
596 |
+
|
597 |
+
<data_invalid>
|
598 |
+
<code>110</code>
|
599 |
+
<message>Invalid data given. Details in error message.</message>
|
600 |
+
</data_invalid>
|
601 |
+
|
602 |
+
<attribute_not_in_set>
|
603 |
+
<code>111</code>
|
604 |
+
<message>Attribute is not in set</message>
|
605 |
+
</attribute_not_in_set>
|
606 |
+
|
607 |
+
<conf_product_not_exists>
|
608 |
+
<code>112</code>
|
609 |
+
<message>Product not exits</message>
|
610 |
+
</conf_product_not_exists>
|
611 |
+
|
612 |
+
<not_configurable>
|
613 |
+
<code>113</code>
|
614 |
+
<message>Product is not configurable</message>
|
615 |
+
</not_configurable>
|
616 |
+
|
617 |
+
<products_not_added>
|
618 |
+
<code>114</code>
|
619 |
+
<message>Products are not added</message>
|
620 |
+
</products_not_added>
|
621 |
+
|
622 |
+
<simple_product_not_exists>
|
623 |
+
<code>115</code>
|
624 |
+
<message>Simple product not exits</message>
|
625 |
+
</simple_product_not_exists>
|
626 |
+
|
627 |
+
<array_of_simple_products_not_passed>
|
628 |
+
<code>116</code>
|
629 |
+
<message>Array of simple products ids is not passed</message>
|
630 |
+
</array_of_simple_products_not_passed>
|
631 |
+
|
632 |
+
<product_not_exists_sku>
|
633 |
+
<code>117</code>
|
634 |
+
<message>Product with this SKU not exists.</message>
|
635 |
+
</product_not_exists_sku>
|
636 |
+
|
637 |
+
<not_grouped>
|
638 |
+
<code>118</code>
|
639 |
+
<message>Product is not grouped.</message>
|
640 |
+
</not_grouped>
|
641 |
+
|
642 |
+
<can_not_update>
|
643 |
+
<code>119</code>
|
644 |
+
<message>Grouped product can not be updated</message>
|
645 |
+
</can_not_update>
|
646 |
+
|
647 |
+
<can_not_create>
|
648 |
+
<code>120</code>
|
649 |
+
<message>Grouped product can not be created</message>
|
650 |
+
</can_not_create>
|
651 |
+
<not_grouped_configurable>
|
652 |
+
<code>121</code>
|
653 |
+
<message>Product is not of type grouped or type configurable</message>
|
654 |
+
</not_grouped_configurable>
|
655 |
+
</faults>
|
656 |
+
</mshop_catalog>
|
657 |
+
|
658 |
+
<!-- end catalog methods -->
|
659 |
+
|
660 |
+
<!-- catalog category methods -->
|
661 |
+
<mshop_m_category translate="title" module="mshop">
|
662 |
+
<model>mshop/catalog_category_api</model>
|
663 |
+
<title>Catalog Category Methods Api</title>
|
664 |
+
<acl>mshop/catalog</acl>
|
665 |
+
<methods>
|
666 |
+
<create translate="title" module="mshop">
|
667 |
+
<title>Create new category</title>
|
668 |
+
<method>create</method>
|
669 |
+
<acl>catalog/category/create</acl>
|
670 |
+
</create>
|
671 |
+
</methods>
|
672 |
+
<faults module="mshop">
|
673 |
+
<store_not_exists>
|
674 |
+
<code>100</code>
|
675 |
+
<message>Requested store view not found.</message>
|
676 |
+
</store_not_exists>
|
677 |
+
|
678 |
+
<website_not_exists>
|
679 |
+
<code>101</code>
|
680 |
+
<message>Requested website not found.</message>
|
681 |
+
</website_not_exists>
|
682 |
+
|
683 |
+
<not_exists>
|
684 |
+
<code>102</code>
|
685 |
+
<message>Category not exists.</message>
|
686 |
+
</not_exists>
|
687 |
+
|
688 |
+
<data_invalid>
|
689 |
+
<code>103</code>
|
690 |
+
<message>Invalid data given. Details in error message.</message>
|
691 |
+
</data_invalid>
|
692 |
+
|
693 |
+
</faults>
|
694 |
+
</mshop_m_category>
|
695 |
+
<!--end catalog category methods -->
|
696 |
+
</resources>
|
697 |
+
<resources_alias>
|
698 |
+
<utility>mshop_utility</utility>
|
699 |
+
<m_customer>mshop_m_customer</m_customer>
|
700 |
+
<attribute>mshop_attribute</attribute>
|
701 |
+
<catalog>mshop_catalog</catalog>
|
702 |
+
<sales>mshop_sales</sales>
|
703 |
+
<m_category>mshop_m_category</m_category>
|
704 |
+
</resources_alias>
|
705 |
+
<v2>
|
706 |
+
<resources_function_prefix>
|
707 |
+
<utility>mshopUtility</utility>
|
708 |
+
<m_customer>mshopMCustomer</m_customer>
|
709 |
+
<attribute>mshopProductAttribute</attribute>
|
710 |
+
<catalog>mshopCatalog</catalog>
|
711 |
+
<sales>mshopSales</sales>
|
712 |
+
<m_category>mshopMCategory</m_category>
|
713 |
+
</resources_function_prefix>
|
714 |
+
</v2>
|
715 |
+
<acl>
|
716 |
+
<resources>
|
717 |
+
<ecomwise translate="title" module="mshop">
|
718 |
+
<title>Ecomwise</title>
|
719 |
+
<sort_order>100</sort_order>
|
720 |
+
<mshopapi translate="title" module="mshop">
|
721 |
+
<title>Mshop Api</title>
|
722 |
+
<sort_order>100</sort_order>
|
723 |
+
<utility translate="title" module="mshop">
|
724 |
+
<title>Api Utility Methods</title>
|
725 |
+
<sort_order>100</sort_order>
|
726 |
+
</utility>
|
727 |
+
<catalog translate="title" module="mshop">
|
728 |
+
<title>Catalog Api Methods</title>
|
729 |
+
<sort_order>101</sort_order>
|
730 |
+
<attribute translate="title" module="mshop">
|
731 |
+
<title>Catalog Attribute Api Methods</title>
|
732 |
+
<sort_order>102</sort_order>
|
733 |
+
<create translate="title" module="mshop">
|
734 |
+
<title>Create</title>
|
735 |
+
</create>
|
736 |
+
|
737 |
+
<addoptions translate="title" module="mshop">
|
738 |
+
<title>Add options</title>
|
739 |
+
</addoptions>
|
740 |
+
|
741 |
+
<delete translate="title" module="mshop">
|
742 |
+
<title>Delete</title>
|
743 |
+
</delete>
|
744 |
+
|
745 |
+
<copyset translate="title" module="mshop">
|
746 |
+
<title>Copy sets</title>
|
747 |
+
</copyset>
|
748 |
+
|
749 |
+
<addtoset translate="title" module="mshop">
|
750 |
+
<title>Add attributes to sets</title>
|
751 |
+
</addtoset>
|
752 |
+
|
753 |
+
<attributeLabelId translate="title" module="mshop">
|
754 |
+
<title>Get Attribute Option Id</title>
|
755 |
+
</attributeLabelId>
|
756 |
+
</attribute>
|
757 |
+
<product translate="title" module="mshop">
|
758 |
+
<title>Catalog Product Api Methods</title>
|
759 |
+
<sort_order>103</sort_order>
|
760 |
+
|
761 |
+
<updatestatus translate="title" module="mshop">
|
762 |
+
<title>Update Product Status</title>
|
763 |
+
</updatestatus>
|
764 |
+
<updateqty translate="title" module="mshop">
|
765 |
+
<title>Update Product Quantity</title>
|
766 |
+
</updateqty>
|
767 |
+
|
768 |
+
<simpleproductslist translate="title" module="mshop">
|
769 |
+
<title>Return Simple Products SKUs</title>
|
770 |
+
</simpleproductslist>
|
771 |
+
|
772 |
+
<productslist translate="title" module="mshop">
|
773 |
+
<title>Return All Products SKUs</title>
|
774 |
+
</productslist>
|
775 |
+
|
776 |
+
<setvisibility translate="title" module="mshop">
|
777 |
+
<title>Set product visibility</title>
|
778 |
+
</setvisibility>
|
779 |
+
|
780 |
+
<removebelow translate="title" module="mshop">
|
781 |
+
<title>Remove product from categories below root category</title>
|
782 |
+
</removebelow>
|
783 |
+
|
784 |
+
<createconfigurable translate="title" module="mshop">
|
785 |
+
<title>Create configurable product</title>
|
786 |
+
</createconfigurable>
|
787 |
+
|
788 |
+
<creategrouped translate="title" module="mshop">
|
789 |
+
<title>Create grouped product</title>
|
790 |
+
</creategrouped>
|
791 |
+
|
792 |
+
<create translate="title" module="mshop">
|
793 |
+
<title>Create product pre 1.6.2 version compatible method</title>
|
794 |
+
</create>
|
795 |
+
|
796 |
+
<getproductschangedsince translate="title" module="mshop">
|
797 |
+
<title>Get Products Changed Since</title>
|
798 |
+
</getproductschangedsince>
|
799 |
+
|
800 |
+
<update translate="title" module="mshop">
|
801 |
+
<title>Update product pre 1.6.2 version compatible method</title>
|
802 |
+
</update>
|
803 |
+
|
804 |
+
<fullproductinfo translate="title" module="mshop">
|
805 |
+
<title>Get Full Product Info</title>
|
806 |
+
</fullproductinfo>
|
807 |
+
|
808 |
+
|
809 |
+
<importimages translate="title" module="mshop">
|
810 |
+
<title>import images</title>
|
811 |
+
</importimages>
|
812 |
+
</product>
|
813 |
+
<category>
|
814 |
+
<create translate="title" module="mshop">
|
815 |
+
<title>Create new category</title>
|
816 |
+
</create>
|
817 |
+
</category>
|
818 |
+
|
819 |
+
</catalog>
|
820 |
+
<sales translate="title" module="mshop">
|
821 |
+
<title>Sales Methods</title>
|
822 |
+
<sort_order>105</sort_order>
|
823 |
+
</sales>
|
824 |
+
</mshopapi>
|
825 |
+
</ecomwise>
|
826 |
+
</resources>
|
827 |
+
</acl>
|
828 |
+
</api>
|
829 |
+
</config>
|
app/code/community/Ecomwise/Mshop/etc/config.xml
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Ecomwise_Mshop>
|
5 |
+
<version>2.1.3</version>
|
6 |
+
</Ecomwise_Mshop>
|
7 |
+
</modules>
|
8 |
+
<global>
|
9 |
+
<helpers>
|
10 |
+
<mshop>
|
11 |
+
<class>Ecomwise_Mshop_Helper</class>
|
12 |
+
</mshop>
|
13 |
+
<catalog>
|
14 |
+
<rewrite>
|
15 |
+
<product>Ecomwise_Mshop_Helper_Product</product>
|
16 |
+
</rewrite>
|
17 |
+
</catalog>
|
18 |
+
</helpers>
|
19 |
+
<blocks>
|
20 |
+
<mshop>
|
21 |
+
<class>Ecomwise_Mshop_Block</class>
|
22 |
+
</mshop>
|
23 |
+
<adminhtml>
|
24 |
+
<rewrite>
|
25 |
+
<!-- <sales_order_invoice_view>Ecomwise_Mshop_Block_Adminhtml_Sales_Invoice_View</sales_order_invoice_view> -->
|
26 |
+
<api_tab_rolesedit>Ecomwise_Mshop_Block_Adminhtml_Api_Tab_Rolesedit</api_tab_rolesedit>
|
27 |
+
<catalog_product_edit_tabs>Ecomwise_Mshop_Block_Adminhtml_Catalog_Product_Edit_Tabs</catalog_product_edit_tabs>
|
28 |
+
<catalog_product_edit_tab_price_tier>Ecomwise_Mshop_Block_Adminhtml_Catalog_Product_Price_Tier</catalog_product_edit_tab_price_tier>
|
29 |
+
</rewrite>
|
30 |
+
</adminhtml>
|
31 |
+
<catalog>
|
32 |
+
<rewrite>
|
33 |
+
<product_price>Ecomwise_Mshop_Block_Product_Price</product_price>
|
34 |
+
</rewrite>
|
35 |
+
</catalog>
|
36 |
+
</blocks>
|
37 |
+
<models>
|
38 |
+
<mshop>
|
39 |
+
<class>Ecomwise_Mshop_Model</class>
|
40 |
+
</mshop>
|
41 |
+
<sales>
|
42 |
+
<rewrite>
|
43 |
+
<order_api_v2>Ecomwise_Mshop_Model_Sales_Api_V2</order_api_v2>
|
44 |
+
</rewrite>
|
45 |
+
</sales>
|
46 |
+
<tax>
|
47 |
+
<rewrite>
|
48 |
+
<system_config_source_apply>Ecomwise_Mshop_Model_System_Config_Apply</system_config_source_apply>
|
49 |
+
</rewrite>
|
50 |
+
</tax>
|
51 |
+
<catalog>
|
52 |
+
<rewrite>
|
53 |
+
<product_api_v2>Ecomwise_Mshop_Model_Catalog_Product_Api_V2</product_api_v2>
|
54 |
+
<category_api_v2>Ecomwise_Mshop_Model_Catalog_Category_Api_V2</category_api_v2>
|
55 |
+
<product_type_price>Ecomwise_Mshop_Model_Catalog_Product_Type_Price</product_type_price>
|
56 |
+
<product_attribute_backend_tierprice>Ecomwise_Mshop_Model_Catalog_Attribute_Tierprice</product_attribute_backend_tierprice>
|
57 |
+
</rewrite>
|
58 |
+
</catalog>
|
59 |
+
<catalog_resource>
|
60 |
+
<rewrite>
|
61 |
+
<product_attribute_backend_tierprice>Ecomwise_Mshop_Model_Resource_Eav_Tierprice</product_attribute_backend_tierprice>
|
62 |
+
</rewrite>
|
63 |
+
</catalog_resource>
|
64 |
+
<customer>
|
65 |
+
<rewrite>
|
66 |
+
<customer_api_v2>Ecomwise_Mshop_Model_Customer_Api_V2</customer_api_v2>
|
67 |
+
</rewrite>
|
68 |
+
</customer>
|
69 |
+
<api>
|
70 |
+
<rewrite>
|
71 |
+
<server_adapter_soap>Ecomwise_Mshop_Model_Api_Server_Adapter_Soap</server_adapter_soap>
|
72 |
+
<server_v2_adapter_soap>Ecomwise_Mshop_Model_Api_Server_V2_Adapter_Soap</server_v2_adapter_soap>
|
73 |
+
</rewrite>
|
74 |
+
</api>
|
75 |
+
</models>
|
76 |
+
<resources>
|
77 |
+
<mshop_setup>
|
78 |
+
<setup>
|
79 |
+
<module>Ecomwise_Mshop</module>
|
80 |
+
<class>Mage_Sales_Model_Mysql4_Setup</class>
|
81 |
+
</setup>
|
82 |
+
<connection>
|
83 |
+
<use>core_setup</use>
|
84 |
+
</connection>
|
85 |
+
</mshop_setup>
|
86 |
+
<mshop_write>
|
87 |
+
<connection>
|
88 |
+
<use>core_write</use>
|
89 |
+
</connection>
|
90 |
+
</mshop_write>
|
91 |
+
<mshop_read>
|
92 |
+
<connection>
|
93 |
+
<use>core_read</use>
|
94 |
+
</connection>
|
95 |
+
</mshop_read>
|
96 |
+
</resources>
|
97 |
+
<events>
|
98 |
+
<sales_order_save_after>
|
99 |
+
<observers>
|
100 |
+
<mshop_model_observer_before>
|
101 |
+
<type>singleton</type>
|
102 |
+
<class>Ecomwise_Mshop_Model_Observer</class>
|
103 |
+
<method>saveConfigAfter</method>
|
104 |
+
</mshop_model_observer_before>
|
105 |
+
</observers>
|
106 |
+
</sales_order_save_after>
|
107 |
+
</events>
|
108 |
+
</global>
|
109 |
+
<adminhtml>
|
110 |
+
<acl>
|
111 |
+
<resources>
|
112 |
+
<all>
|
113 |
+
<title>Allow Everything</title>
|
114 |
+
</all>
|
115 |
+
<admin>
|
116 |
+
<children>
|
117 |
+
<system>
|
118 |
+
<children>
|
119 |
+
<config>
|
120 |
+
<children>
|
121 |
+
<mshop translate="title" module="mshop">
|
122 |
+
<title>Ecomwise Mshop</title>
|
123 |
+
</mshop>
|
124 |
+
</children>
|
125 |
+
</config>
|
126 |
+
</children>
|
127 |
+
</system>
|
128 |
+
</children>
|
129 |
+
</admin>
|
130 |
+
</resources>
|
131 |
+
</acl>
|
132 |
+
</adminhtml>
|
133 |
+
<default>
|
134 |
+
<mshop>
|
135 |
+
<parameters>
|
136 |
+
<send_mail>0</send_mail>
|
137 |
+
</parameters>
|
138 |
+
<mamut_stock>
|
139 |
+
<use_stock_from_suppliers>0</use_stock_from_suppliers>
|
140 |
+
<show_fields>0</show_fields>
|
141 |
+
</mamut_stock>
|
142 |
+
</mshop>
|
143 |
+
</default>
|
144 |
+
|
145 |
+
</config>
|
app/code/community/Ecomwise/Mshop/etc/system.xml
ADDED
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
|
3 |
+
<config>
|
4 |
+
<tabs>
|
5 |
+
<mshop_tab translate="label" module="mshop">
|
6 |
+
<label>M-shop</label>
|
7 |
+
<sort_order>210</sort_order>
|
8 |
+
</mshop_tab>
|
9 |
+
</tabs>
|
10 |
+
<sections>
|
11 |
+
<mshop translate="label" module="mshop">
|
12 |
+
<label>M-shop B2C</label>
|
13 |
+
<tab>mshop_tab</tab>
|
14 |
+
<frontend_type>text</frontend_type>
|
15 |
+
<sort_order>110</sort_order>
|
16 |
+
<show_in_default>1</show_in_default>
|
17 |
+
<show_in_website>1</show_in_website>
|
18 |
+
<show_in_store>1</show_in_store>
|
19 |
+
<groups>
|
20 |
+
<about translate="label">
|
21 |
+
<label>About M-shop</label>
|
22 |
+
<frontend_type>text</frontend_type>
|
23 |
+
<sort_order>1</sort_order>
|
24 |
+
<show_in_default>1</show_in_default>
|
25 |
+
<show_in_website>1</show_in_website>
|
26 |
+
<show_in_store>1</show_in_store>
|
27 |
+
<fields>
|
28 |
+
<mshop_version translate="label">
|
29 |
+
<label>M-shop B2C</label>
|
30 |
+
<frontend_type>select</frontend_type>
|
31 |
+
<frontend_model>mshop/system_config_version</frontend_model>
|
32 |
+
<sort_order>10</sort_order>
|
33 |
+
<show_in_default>1</show_in_default>
|
34 |
+
<show_in_website>1</show_in_website>
|
35 |
+
<show_in_store>1</show_in_store>
|
36 |
+
</mshop_version>
|
37 |
+
</fields>
|
38 |
+
</about>
|
39 |
+
|
40 |
+
<parameters translate="label">
|
41 |
+
<label>Create customer settings</label>
|
42 |
+
<frontend_type>text</frontend_type>
|
43 |
+
<sort_order>3</sort_order>
|
44 |
+
<show_in_default>1</show_in_default>
|
45 |
+
<show_in_website>1</show_in_website>
|
46 |
+
<show_in_store>1</show_in_store>
|
47 |
+
<fields>
|
48 |
+
<send_mail translate="label">
|
49 |
+
<label>Send email when customer is updated via API</label>
|
50 |
+
<frontend_type>select</frontend_type>
|
51 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
52 |
+
<sort_order>10</sort_order>
|
53 |
+
<show_in_default>1</show_in_default>
|
54 |
+
<show_in_website>1</show_in_website>
|
55 |
+
<show_in_store>1</show_in_store>
|
56 |
+
</send_mail>
|
57 |
+
<!--
|
58 |
+
<use_stock_from_suppliers translate="label">
|
59 |
+
<label>Use stock from suppliers</label>
|
60 |
+
<frontend_type>select</frontend_type>
|
61 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
62 |
+
<sort_order>11</sort_order>
|
63 |
+
<show_in_default>1</show_in_default>
|
64 |
+
<show_in_website>1</show_in_website>
|
65 |
+
<show_in_store>1</show_in_store>
|
66 |
+
</use_stock_from_suppliers>
|
67 |
+
-->
|
68 |
+
</fields>
|
69 |
+
</parameters>
|
70 |
+
|
71 |
+
<mamut_stock translate="label">
|
72 |
+
<label>Inventory settings</label>
|
73 |
+
<frontend_type>text</frontend_type>
|
74 |
+
<sort_order>3</sort_order>
|
75 |
+
<show_in_default>1</show_in_default>
|
76 |
+
<show_in_website>1</show_in_website>
|
77 |
+
<show_in_store>1</show_in_store>
|
78 |
+
<fields>
|
79 |
+
<show_fields translate="label">
|
80 |
+
<label>Display Mamut warehouses in the product inventory tab</label>
|
81 |
+
<frontend_type>select</frontend_type>
|
82 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
83 |
+
<sort_order>10</sort_order>
|
84 |
+
<show_in_default>1</show_in_default>
|
85 |
+
<show_in_website>0</show_in_website>
|
86 |
+
<show_in_store>0</show_in_store>
|
87 |
+
</show_fields>
|
88 |
+
|
89 |
+
<use_stock_from_suppliers translate="label">
|
90 |
+
<label>Use from suppliers stock</label>
|
91 |
+
<frontend_type>select</frontend_type>
|
92 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
93 |
+
<sort_order>11</sort_order>
|
94 |
+
<show_in_default>1</show_in_default>
|
95 |
+
<show_in_website>1</show_in_website>
|
96 |
+
<show_in_store>1</show_in_store>
|
97 |
+
</use_stock_from_suppliers>
|
98 |
+
|
99 |
+
</fields>
|
100 |
+
|
101 |
+
</mamut_stock>
|
102 |
+
|
103 |
+
<parameters_invoice translate="label">
|
104 |
+
<label>Create invoice with mamut id settings</label>
|
105 |
+
<frontend_type>text</frontend_type>
|
106 |
+
<sort_order>4</sort_order>
|
107 |
+
<show_in_default>1</show_in_default>
|
108 |
+
<show_in_website>1</show_in_website>
|
109 |
+
<show_in_store>1</show_in_store>
|
110 |
+
<fields>
|
111 |
+
<send_mail translate="label">
|
112 |
+
<label>Send email when invoice is created via API</label>
|
113 |
+
<frontend_type>select</frontend_type>
|
114 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
115 |
+
<sort_order>10</sort_order>
|
116 |
+
<show_in_default>1</show_in_default>
|
117 |
+
<show_in_website>1</show_in_website>
|
118 |
+
<show_in_store>1</show_in_store>
|
119 |
+
</send_mail>
|
120 |
+
|
121 |
+
<email_template translate="label">
|
122 |
+
<label>Email template</label>
|
123 |
+
<frontend_type>select</frontend_type>
|
124 |
+
<source_model>adminhtml/system_config_source_email_template</source_model>
|
125 |
+
<sort_order>13</sort_order>
|
126 |
+
<show_in_default>1</show_in_default>
|
127 |
+
<show_in_website>1</show_in_website>
|
128 |
+
<show_in_store>1</show_in_store>
|
129 |
+
</email_template>
|
130 |
+
|
131 |
+
</fields>
|
132 |
+
</parameters_invoice>
|
133 |
+
<parameters_order_cancellation translate="label">
|
134 |
+
<label>Order Cancellation</label>
|
135 |
+
<frontend_type>text</frontend_type>
|
136 |
+
<sort_order>5</sort_order>
|
137 |
+
<show_in_default>1</show_in_default>
|
138 |
+
<show_in_website>1</show_in_website>
|
139 |
+
<show_in_store>1</show_in_store>
|
140 |
+
<fields>
|
141 |
+
<send_mail translate="label">
|
142 |
+
<label>Send email when order is cancelled via API</label>
|
143 |
+
<frontend_type>select</frontend_type>
|
144 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
145 |
+
<sort_order>10</sort_order>
|
146 |
+
<show_in_default>1</show_in_default>
|
147 |
+
<show_in_website>1</show_in_website>
|
148 |
+
<show_in_store>1</show_in_store>
|
149 |
+
</send_mail>
|
150 |
+
<email_template translate="label">
|
151 |
+
<label>Email template</label>
|
152 |
+
<frontend_type>select</frontend_type>
|
153 |
+
<source_model>adminhtml/system_config_source_email_template</source_model>
|
154 |
+
<sort_order>13</sort_order>
|
155 |
+
<show_in_default>1</show_in_default>
|
156 |
+
<show_in_website>1</show_in_website>
|
157 |
+
<show_in_store>1</show_in_store>
|
158 |
+
</email_template>
|
159 |
+
</fields>
|
160 |
+
</parameters_order_cancellation>
|
161 |
+
<parameters_not_in_stock translate="label">
|
162 |
+
<label>Ordered items can not be delivered</label>
|
163 |
+
<frontend_type>text</frontend_type>
|
164 |
+
<sort_order>6</sort_order>
|
165 |
+
<show_in_default>1</show_in_default>
|
166 |
+
<show_in_website>1</show_in_website>
|
167 |
+
<show_in_store>1</show_in_store>
|
168 |
+
<fields>
|
169 |
+
<send_mail translate="label">
|
170 |
+
<label>Send email notification when ordered items are not in stock</label>
|
171 |
+
<frontend_type>select</frontend_type>
|
172 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
173 |
+
<sort_order>10</sort_order>
|
174 |
+
<show_in_default>1</show_in_default>
|
175 |
+
<show_in_website>1</show_in_website>
|
176 |
+
<show_in_store>1</show_in_store>
|
177 |
+
</send_mail>
|
178 |
+
<email_template translate="label">
|
179 |
+
<label>Email template</label>
|
180 |
+
<frontend_type>select</frontend_type>
|
181 |
+
<source_model>adminhtml/system_config_source_email_template</source_model>
|
182 |
+
<sort_order>13</sort_order>
|
183 |
+
<show_in_default>1</show_in_default>
|
184 |
+
<show_in_website>1</show_in_website>
|
185 |
+
<show_in_store>1</show_in_store>
|
186 |
+
</email_template>
|
187 |
+
<order_status translate="label">
|
188 |
+
<label>Order Status</label>
|
189 |
+
<frontend_type>select</frontend_type>
|
190 |
+
<source_model>adminhtml/system_config_source_order_status_newprocessing</source_model>
|
191 |
+
<sort_order>2</sort_order>
|
192 |
+
<show_in_default>1</show_in_default>
|
193 |
+
<show_in_website>1</show_in_website>
|
194 |
+
<show_in_store>0</show_in_store>
|
195 |
+
</order_status>
|
196 |
+
</fields>
|
197 |
+
</parameters_not_in_stock>
|
198 |
+
<parameters_order_picked translate="label">
|
199 |
+
<label>Order is picked</label>
|
200 |
+
<frontend_type>text</frontend_type>
|
201 |
+
<sort_order>7</sort_order>
|
202 |
+
<show_in_default>1</show_in_default>
|
203 |
+
<show_in_website>1</show_in_website>
|
204 |
+
<show_in_store>1</show_in_store>
|
205 |
+
<fields>
|
206 |
+
<send_mail translate="label">
|
207 |
+
<label>Send email when order is picked via API</label>
|
208 |
+
<frontend_type>select</frontend_type>
|
209 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
210 |
+
<sort_order>10</sort_order>
|
211 |
+
<show_in_default>1</show_in_default>
|
212 |
+
<show_in_website>1</show_in_website>
|
213 |
+
<show_in_store>1</show_in_store>
|
214 |
+
</send_mail>
|
215 |
+
<email_template translate="label">
|
216 |
+
<label>Email template</label>
|
217 |
+
<frontend_type>select</frontend_type>
|
218 |
+
<source_model>adminhtml/system_config_source_email_template</source_model>
|
219 |
+
<sort_order>13</sort_order>
|
220 |
+
<show_in_default>1</show_in_default>
|
221 |
+
<show_in_website>1</show_in_website>
|
222 |
+
<show_in_store>1</show_in_store>
|
223 |
+
</email_template>
|
224 |
+
<order_status translate="label">
|
225 |
+
<label>Order Status</label>
|
226 |
+
<frontend_type>select</frontend_type>
|
227 |
+
<source_model>adminhtml/system_config_source_order_status_newprocessing</source_model>
|
228 |
+
<sort_order>2</sort_order>
|
229 |
+
<show_in_default>1</show_in_default>
|
230 |
+
<show_in_website>1</show_in_website>
|
231 |
+
<show_in_store>0</show_in_store>
|
232 |
+
</order_status>
|
233 |
+
</fields>
|
234 |
+
</parameters_order_picked>
|
235 |
+
<parameters_order_shipped translate="label">
|
236 |
+
<label>Order is shipped</label>
|
237 |
+
<frontend_type>text</frontend_type>
|
238 |
+
<sort_order>8</sort_order>
|
239 |
+
<show_in_default>1</show_in_default>
|
240 |
+
<show_in_website>1</show_in_website>
|
241 |
+
<show_in_store>1</show_in_store>
|
242 |
+
<fields>
|
243 |
+
<send_mail translate="label">
|
244 |
+
<label>Send email when order is shipped via API</label>
|
245 |
+
<frontend_type>select</frontend_type>
|
246 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
247 |
+
<sort_order>10</sort_order>
|
248 |
+
<show_in_default>1</show_in_default>
|
249 |
+
<show_in_website>1</show_in_website>
|
250 |
+
<show_in_store>1</show_in_store>
|
251 |
+
</send_mail>
|
252 |
+
<email_template translate="label">
|
253 |
+
<label>Email template</label>
|
254 |
+
<frontend_type>select</frontend_type>
|
255 |
+
<source_model>adminhtml/system_config_source_email_template</source_model>
|
256 |
+
<sort_order>13</sort_order>
|
257 |
+
<show_in_default>1</show_in_default>
|
258 |
+
<show_in_website>1</show_in_website>
|
259 |
+
<show_in_store>1</show_in_store>
|
260 |
+
</email_template>
|
261 |
+
</fields>
|
262 |
+
</parameters_order_shipped>
|
263 |
+
|
264 |
+
<parameters_order_custom_attributes translate="label">
|
265 |
+
<label>Order info custom fields</label>
|
266 |
+
<frontend_type>text</frontend_type>
|
267 |
+
<sort_order>9</sort_order>
|
268 |
+
<show_in_default>1</show_in_default>
|
269 |
+
<show_in_website>1</show_in_website>
|
270 |
+
<show_in_store>1</show_in_store>
|
271 |
+
<fields>
|
272 |
+
<custom_order_1 translate="label">
|
273 |
+
<label>Custom order field 1</label>
|
274 |
+
<frontend_type>select</frontend_type>
|
275 |
+
<source_model>mshop/config_source_orderattributes</source_model>
|
276 |
+
<sort_order>10</sort_order>
|
277 |
+
<show_in_default>1</show_in_default>
|
278 |
+
<show_in_website>0</show_in_website>
|
279 |
+
<show_in_store>0</show_in_store>
|
280 |
+
</custom_order_1>
|
281 |
+
<custom_order_2 translate="label">
|
282 |
+
<label>Custom order field 2</label>
|
283 |
+
<frontend_type>select</frontend_type>
|
284 |
+
<source_model>mshop/config_source_orderattributes</source_model>
|
285 |
+
<sort_order>13</sort_order>
|
286 |
+
<show_in_default>1</show_in_default>
|
287 |
+
<show_in_website>0</show_in_website>
|
288 |
+
<show_in_store>0</show_in_store>
|
289 |
+
</custom_order_2>
|
290 |
+
|
291 |
+
<custom_order_3 translate="label">
|
292 |
+
<label>Custom order field 3</label>
|
293 |
+
<frontend_type>select</frontend_type>
|
294 |
+
<source_model>mshop/config_source_orderattributes</source_model>
|
295 |
+
<sort_order>14</sort_order>
|
296 |
+
<show_in_default>1</show_in_default>
|
297 |
+
<show_in_website>0</show_in_website>
|
298 |
+
<show_in_store>0</show_in_store>
|
299 |
+
</custom_order_3>
|
300 |
+
</fields>
|
301 |
+
</parameters_order_custom_attributes>
|
302 |
+
</groups>
|
303 |
+
</mshop>
|
304 |
+
</sections>
|
305 |
+
</config>
|
app/code/community/Ecomwise/Mshop/etc/wsdl.xml
ADDED
@@ -0,0 +1,2928 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
3 |
+
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
4 |
+
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
|
5 |
+
name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
|
6 |
+
<types>
|
7 |
+
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
8 |
+
targetNamespace="urn:Magento">
|
9 |
+
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"
|
10 |
+
schemaLocation="http://schemas.xmlsoap.org/soap/encoding/" />
|
11 |
+
|
12 |
+
<!-- fix for "associativeMultiArray" missing error on 1.6.1 magento version -->
|
13 |
+
<complexType name="associativeMultiArray">
|
14 |
+
<complexContent>
|
15 |
+
<restriction base="soapenc:Array">
|
16 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:associativeMultiEntity[]" />
|
17 |
+
</restriction>
|
18 |
+
</complexContent>
|
19 |
+
</complexType>
|
20 |
+
|
21 |
+
<complexType name="associativeMultiEntity">
|
22 |
+
<all>
|
23 |
+
<element name="key" type="xsd:string" />
|
24 |
+
<element name="value" type="typens:ArrayOfString" />
|
25 |
+
</all>
|
26 |
+
</complexType>
|
27 |
+
<!-- -->
|
28 |
+
|
29 |
+
<!-- utility -->
|
30 |
+
|
31 |
+
<complexType name="mshopUtilityListTaxClassRulesEntity">
|
32 |
+
<all>
|
33 |
+
<element name="tax_rule_id" type="xsd:int" minOccurs="0" />
|
34 |
+
<element name="tax_rule_name" type="xsd:string" />
|
35 |
+
</all>
|
36 |
+
</complexType>
|
37 |
+
|
38 |
+
<complexType name="mshopUtilityListTaxClassRulesEntityArray">
|
39 |
+
<complexContent>
|
40 |
+
<restriction base="soapenc:Array">
|
41 |
+
<attribute ref="soapenc:arrayType"
|
42 |
+
wsdl:arrayType="typens:mshopUtilityListTaxClassRulesEntity[]" />
|
43 |
+
</restriction>
|
44 |
+
</complexContent>
|
45 |
+
</complexType>
|
46 |
+
|
47 |
+
|
48 |
+
<complexType name="mshopUtilityListPaymentStatusesEntity">
|
49 |
+
<all>
|
50 |
+
<element name="status" type="xsd:string" />
|
51 |
+
<element name="statusCode" type="xsd:string" />
|
52 |
+
</all>
|
53 |
+
</complexType>
|
54 |
+
|
55 |
+
<complexType name="mshopUtilityListPaymentStatusesEntityArray">
|
56 |
+
<complexContent>
|
57 |
+
<restriction base="soapenc:Array">
|
58 |
+
<attribute ref="soapenc:arrayType"
|
59 |
+
wsdl:arrayType="typens:mshopUtilityListPaymentStatusesEntity[]" />
|
60 |
+
</restriction>
|
61 |
+
</complexContent>
|
62 |
+
</complexType>
|
63 |
+
|
64 |
+
|
65 |
+
<complexType name="mshopUtilityListTaxClassesEntity">
|
66 |
+
<all>
|
67 |
+
<element name="class_id" type="xsd:int" minOccurs="0" />
|
68 |
+
<element name="class_name" type="xsd:string" />
|
69 |
+
<element name="class_type" type="xsd:string" />
|
70 |
+
</all>
|
71 |
+
</complexType>
|
72 |
+
|
73 |
+
<complexType name="mshopUtilityListTaxClassesEntityArray">
|
74 |
+
<complexContent>
|
75 |
+
<restriction base="soapenc:Array">
|
76 |
+
<attribute ref="soapenc:arrayType"
|
77 |
+
wsdl:arrayType="typens:mshopUtilityListTaxClassesEntity[]" />
|
78 |
+
</restriction>
|
79 |
+
</complexContent>
|
80 |
+
</complexType>
|
81 |
+
|
82 |
+
<complexType name="mshopUtilityListPaymentMethodsEntityArray">
|
83 |
+
<complexContent>
|
84 |
+
<restriction base="soapenc:Array">
|
85 |
+
<attribute ref="soapenc:arrayType"
|
86 |
+
wsdl:arrayType="typens:mshopUtilityListPaymentMethodsEntity[]" />
|
87 |
+
</restriction>
|
88 |
+
</complexContent>
|
89 |
+
</complexType>
|
90 |
+
|
91 |
+
<complexType name="mshopUtilityListPaymentMethodsEntity">
|
92 |
+
<all>
|
93 |
+
<element name="method_code" type="xsd:string" />
|
94 |
+
<element name="method_title" type="xsd:string" />
|
95 |
+
</all>
|
96 |
+
</complexType>
|
97 |
+
|
98 |
+
<complexType name="mshopUtilityListShippingMethodsEntityArray">
|
99 |
+
<complexContent>
|
100 |
+
<restriction base="soapenc:Array">
|
101 |
+
<attribute ref="soapenc:arrayType"
|
102 |
+
wsdl:arrayType="typens:mshopUtilityListShippingMethodsEntity[]" />
|
103 |
+
</restriction>
|
104 |
+
</complexContent>
|
105 |
+
</complexType>
|
106 |
+
|
107 |
+
<complexType name="mshopUtilityListShippingMethodsEntity">
|
108 |
+
<all>
|
109 |
+
<element name="method_title" type="xsd:string" />
|
110 |
+
<element name="method_code" type="xsd:string" />
|
111 |
+
</all>
|
112 |
+
</complexType>
|
113 |
+
|
114 |
+
<complexType name="mshopUtilityListStoreViewEntityArray">
|
115 |
+
<complexContent>
|
116 |
+
<restriction base="soapenc:Array">
|
117 |
+
<attribute ref="soapenc:arrayType"
|
118 |
+
wsdl:arrayType="typens:mshopUtilityListStoreViewEntity[]" />
|
119 |
+
</restriction>
|
120 |
+
</complexContent>
|
121 |
+
</complexType>
|
122 |
+
|
123 |
+
<complexType name="mshopUtilityListStoreViewEntity">
|
124 |
+
<all>
|
125 |
+
<element name="websiteid" type="xsd:int" minOccurs="0" />
|
126 |
+
<element name="groupname" type="xsd:string" />
|
127 |
+
<element name="storeid" type="xsd:int" minOccurs="0" />
|
128 |
+
<element name="name" type="xsd:string" />
|
129 |
+
<element name="language" type="xsd:string" />
|
130 |
+
<element name="store_url" type="xsd:string" />
|
131 |
+
</all>
|
132 |
+
</complexType>
|
133 |
+
|
134 |
+
<complexType name="mshopUtilityListPaymentMethodsByStoreEntityArray">
|
135 |
+
<complexContent>
|
136 |
+
<restriction base="soapenc:Array">
|
137 |
+
<attribute ref="soapenc:arrayType"
|
138 |
+
wsdl:arrayType="typens:mshopUtilityListPaymentMethodsByStoreEntity[]" />
|
139 |
+
</restriction>
|
140 |
+
</complexContent>
|
141 |
+
</complexType>
|
142 |
+
|
143 |
+
<complexType name="mshopUtilityListPaymentMethodsByStoreEntity">
|
144 |
+
<all>
|
145 |
+
<element name="method_code" type="xsd:string" />
|
146 |
+
<element name="method_title" type="xsd:string" />
|
147 |
+
<element name="store_id" type="xsd:int" minOccurs="0" />
|
148 |
+
<element name="store_name" type="xsd:string" />
|
149 |
+
</all>
|
150 |
+
</complexType>
|
151 |
+
|
152 |
+
<!-- end utility -->
|
153 |
+
|
154 |
+
<!-- attribute -->
|
155 |
+
|
156 |
+
<complexType name="mshopProductAttributeCreateArrayEntity">
|
157 |
+
<all>
|
158 |
+
<element name="is_global" type="xsd:int" minOccurs="0" />
|
159 |
+
<element name="frontend_input" type="xsd:string" minOccurs="0" />
|
160 |
+
<element name="default_value_text" type="xsd:string"
|
161 |
+
minOccurs="0" />
|
162 |
+
<element name="default_value_yesno" type="xsd:int"
|
163 |
+
minOccurs="0" />
|
164 |
+
<element name="default_value_date" type="xsd:string"
|
165 |
+
minOccurs="0" />
|
166 |
+
<element name="default_value_textarea" type="xsd:string"
|
167 |
+
minOccurs="0" />
|
168 |
+
<element name="is_unique" type="xsd:int" minOccurs="0" />
|
169 |
+
<element name="is_required" type="xsd:int" minOccurs="0" />
|
170 |
+
<element name="frontend_class" type="xsd:string" minOccurs="0" />
|
171 |
+
<element name="is_searchable" type="xsd:int" minOccurs="0" />
|
172 |
+
<element name="is_visible_in_advanced_search" type="xsd:int"
|
173 |
+
minOccurs="0" />
|
174 |
+
<element name="is_comparable" type="xsd:int" minOccurs="0" />
|
175 |
+
<element name="is_used_for_promo_rules" type="xsd:int"
|
176 |
+
minOccurs="0" />
|
177 |
+
<element name="is_html_allowed_on_front" type="xsd:int"
|
178 |
+
minOccurs="0" />
|
179 |
+
<element name="is_visible_on_front" type="xsd:int"
|
180 |
+
minOccurs="0" />
|
181 |
+
<element name="used_in_product_listing" type="xsd:int"
|
182 |
+
minOccurs="0" />
|
183 |
+
<element name="used_for_sort_by" type="xsd:int" minOccurs="0" />
|
184 |
+
<element name="is_configurable" type="xsd:int" minOccurs="0" />
|
185 |
+
<element name="is_filterable" type="xsd:int" minOccurs="0" />
|
186 |
+
<element name="is_filterable_in_search" type="xsd:int"
|
187 |
+
minOccurs="0" />
|
188 |
+
<element name="backend_type" type="xsd:string" minOccurs="0" />
|
189 |
+
<element name="default_value" type="xsd:string" minOccurs="0" />
|
190 |
+
</all>
|
191 |
+
</complexType>
|
192 |
+
|
193 |
+
<complexType name="mshopProductAttributeSetsEntityArray">
|
194 |
+
<complexContent>
|
195 |
+
<restriction base="soapenc:Array">
|
196 |
+
<attribute ref="soapenc:arrayType"
|
197 |
+
wsdl:arrayType="typens:mshopProductAttributeSetsEntity[]" />
|
198 |
+
</restriction>
|
199 |
+
</complexContent>
|
200 |
+
</complexType>
|
201 |
+
|
202 |
+
<complexType name="mshopProductAttributeSetsEntity">
|
203 |
+
<all>
|
204 |
+
<element name="id" type="xsd:string" />
|
205 |
+
<element name="name" type="xsd:string" />
|
206 |
+
</all>
|
207 |
+
</complexType>
|
208 |
+
|
209 |
+
<!-- end attribute -->
|
210 |
+
|
211 |
+
<!-- sales -->
|
212 |
+
<complexType name="mshopSalesCreditMemoEntity">
|
213 |
+
<all>
|
214 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
215 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
216 |
+
<element name="increment_id" type="xsd:string" minOccurs="0" />
|
217 |
+
<element name="transaction_id" type="xsd:string" minOccurs="0" />
|
218 |
+
<element name="global_currency_code" type="xsd:string" minOccurs="0" />
|
219 |
+
<element name="base_currency_code" type="xsd:string" minOccurs="0" />
|
220 |
+
<element name="order_currency_code" type="xsd:string" minOccurs="0" />
|
221 |
+
<element name="store_currency_code" type="xsd:string" minOccurs="0" />
|
222 |
+
<element name="cybersource_token" type="xsd:string" minOccurs="0" />
|
223 |
+
<element name="invoice_id" type="xsd:string" minOccurs="0" />
|
224 |
+
<element name="billing_address_id" type="xsd:string" minOccurs="0" />
|
225 |
+
<element name="shipping_address_id" type="xsd:string" minOccurs="0" />
|
226 |
+
<element name="state" type="xsd:string" minOccurs="0" />
|
227 |
+
<element name="creditmemo_status" type="xsd:string" minOccurs="0" />
|
228 |
+
<element name="email_sent" type="xsd:string" minOccurs="0" />
|
229 |
+
<element name="order_id" type="xsd:string" minOccurs="0" />
|
230 |
+
<element name="tax_amount" type="xsd:string" minOccurs="0" />
|
231 |
+
<element name="shipping_tax_amount" type="xsd:string" minOccurs="0" />
|
232 |
+
<element name="base_tax_amount" type="xsd:string" minOccurs="0" />
|
233 |
+
<element name="base_adjustment_positive" type="xsd:string" minOccurs="0" />
|
234 |
+
<element name="base_grand_total" type="xsd:string" minOccurs="0" />
|
235 |
+
<element name="adjustment" type="xsd:string" minOccurs="0" />
|
236 |
+
<element name="subtotal" type="xsd:string" minOccurs="0" />
|
237 |
+
<element name="discount_amount" type="xsd:string" minOccurs="0" />
|
238 |
+
<element name="base_subtotal" type="xsd:string" minOccurs="0" />
|
239 |
+
<element name="base_adjustment" type="xsd:string" minOccurs="0" />
|
240 |
+
<element name="base_to_global_rate" type="xsd:string" minOccurs="0" />
|
241 |
+
<element name="store_to_base_rate" type="xsd:string" minOccurs="0" />
|
242 |
+
<element name="base_shipping_amount" type="xsd:string" minOccurs="0" />
|
243 |
+
<element name="adjustment_negative" type="xsd:string" minOccurs="0" />
|
244 |
+
<element name="subtotal_incl_tax" type="xsd:string" minOccurs="0" />
|
245 |
+
<element name="shipping_amount" type="xsd:string" minOccurs="0" />
|
246 |
+
<element name="base_subtotal_incl_tax" type="xsd:string" minOccurs="0" />
|
247 |
+
<element name="base_adjustment_negative" type="xsd:string" minOccurs="0" />
|
248 |
+
<element name="grand_total" type="xsd:string" minOccurs="0" />
|
249 |
+
<element name="base_discount_amount" type="xsd:string" minOccurs="0" />
|
250 |
+
<element name="base_to_order_rate" type="xsd:string" minOccurs="0" />
|
251 |
+
<element name="store_to_order_rate" type="xsd:string" minOccurs="0" />
|
252 |
+
<element name="base_shipping_tax_amount" type="xsd:string" minOccurs="0" />
|
253 |
+
<element name="adjustment_positive" type="xsd:string" minOccurs="0" />
|
254 |
+
<element name="store_id" type="xsd:string" minOccurs="0" />
|
255 |
+
<element name="hidden_tax_amount" type="xsd:string" minOccurs="0" />
|
256 |
+
<element name="base_hidden_tax_amount" type="xsd:string" minOccurs="0" />
|
257 |
+
<element name="shipping_hidden_tax_amount" type="xsd:string" minOccurs="0" />
|
258 |
+
<element name="base_shipping_hidden_tax_amnt" type="xsd:string" minOccurs="0" />
|
259 |
+
<element name="shipping_incl_tax" type="xsd:string" minOccurs="0" />
|
260 |
+
<element name="base_shipping_incl_tax" type="xsd:string" minOccurs="0" />
|
261 |
+
<element name="base_customer_balance_amount" type="xsd:string" minOccurs="0" />
|
262 |
+
<element name="customer_balance_amount" type="xsd:string" minOccurs="0" />
|
263 |
+
<element name="bs_customer_bal_total_refunded" type="xsd:string" minOccurs="0" />
|
264 |
+
<element name="customer_bal_total_refunded" type="xsd:string" minOccurs="0" />
|
265 |
+
<element name="base_gift_cards_amount" type="xsd:string" minOccurs="0" />
|
266 |
+
<element name="gift_cards_amount" type="xsd:string" minOccurs="0" />
|
267 |
+
<element name="gw_base_price" type="xsd:string" minOccurs="0" />
|
268 |
+
<element name="gw_price" type="xsd:string" minOccurs="0" />
|
269 |
+
<element name="gw_items_base_price" type="xsd:string" minOccurs="0" />
|
270 |
+
<element name="gw_items_price" type="xsd:string" minOccurs="0" />
|
271 |
+
<element name="gw_card_base_price" type="xsd:string" minOccurs="0" />
|
272 |
+
<element name="gw_card_price" type="xsd:string" minOccurs="0" />
|
273 |
+
<element name="gw_base_tax_amount" type="xsd:string" minOccurs="0" />
|
274 |
+
<element name="gw_tax_amount" type="xsd:string" minOccurs="0" />
|
275 |
+
<element name="gw_items_base_tax_amount" type="xsd:string" minOccurs="0" />
|
276 |
+
<element name="gw_items_tax_amount" type="xsd:string" minOccurs="0" />
|
277 |
+
<element name="gw_card_base_tax_amount" type="xsd:string" minOccurs="0" />
|
278 |
+
<element name="gw_card_tax_amount" type="xsd:string" minOccurs="0" />
|
279 |
+
<element name="base_reward_currency_amount" type="xsd:string" minOccurs="0" />
|
280 |
+
<element name="reward_currency_amount" type="xsd:string" minOccurs="0" />
|
281 |
+
<element name="reward_points_balance" type="xsd:string" minOccurs="0" />
|
282 |
+
<element name="reward_points_balance_refund" type="xsd:string" minOccurs="0" />
|
283 |
+
<element name="creditmemo_id" type="xsd:string" minOccurs="0" />
|
284 |
+
<element name="items" type="typens:mshopSalesCreditMemoItemEntityArray" minOccurs="0" />
|
285 |
+
<element name="comments" type="typens:mshopSalesCreditMemoCommentEntityArray" minOccurs="0" />
|
286 |
+
|
287 |
+
</all>
|
288 |
+
</complexType>
|
289 |
+
|
290 |
+
<complexType name="mshopSalesCreditMemoEntityArray">
|
291 |
+
<complexContent>
|
292 |
+
<restriction base="soapenc:Array">
|
293 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopSalesCreditMemoEntity[]" />
|
294 |
+
</restriction>
|
295 |
+
</complexContent>
|
296 |
+
</complexType>
|
297 |
+
<complexType name="mshopSalesCreditMemoItemEntity">
|
298 |
+
<all>
|
299 |
+
<element name="item_id" type="xsd:string" minOccurs="0" />
|
300 |
+
<element name="parent_id" type="xsd:string" minOccurs="0" />
|
301 |
+
<element name="weee_tax_applied_row_amount" type="xsd:string" minOccurs="0" />
|
302 |
+
<element name="base_price" type="xsd:string" minOccurs="0" />
|
303 |
+
<element name="base_weee_tax_row_disposition" type="xsd:string" minOccurs="0" />
|
304 |
+
<element name="tax_amount" type="xsd:string" minOccurs="0" />
|
305 |
+
<element name="base_weee_tax_applied_amount" type="xsd:string" minOccurs="0" />
|
306 |
+
<element name="weee_tax_row_disposition" type="xsd:string" minOccurs="0" />
|
307 |
+
<element name="base_row_total" type="xsd:string" minOccurs="0" />
|
308 |
+
<element name="discount_amount" type="xsd:string" minOccurs="0" />
|
309 |
+
<element name="row_total" type="xsd:string" minOccurs="0" />
|
310 |
+
<element name="weee_tax_applied_amount" type="xsd:string" minOccurs="0" />
|
311 |
+
<element name="base_discount_amount" type="xsd:string" minOccurs="0" />
|
312 |
+
<element name="base_weee_tax_disposition" type="xsd:string" minOccurs="0" />
|
313 |
+
<element name="price_incl_tax" type="xsd:string" minOccurs="0" />
|
314 |
+
<element name="base_tax_amount" type="xsd:string" minOccurs="0" />
|
315 |
+
<element name="weee_tax_disposition" type="xsd:string" minOccurs="0" />
|
316 |
+
<element name="base_price_incl_tax" type="xsd:string" minOccurs="0" />
|
317 |
+
<element name="qty" type="xsd:string" minOccurs="0" />
|
318 |
+
<element name="base_cost" type="xsd:string" minOccurs="0" />
|
319 |
+
<element name="base_weee_tax_applied_row_amount" type="xsd:string" minOccurs="0" />
|
320 |
+
<element name="price" type="xsd:string" minOccurs="0" />
|
321 |
+
<element name="base_row_total_incl_tax" type="xsd:string" minOccurs="0" />
|
322 |
+
<element name="row_total_incl_tax" type="xsd:string" minOccurs="0" />
|
323 |
+
<element name="product_id" type="xsd:string" minOccurs="0" />
|
324 |
+
<element name="order_item_id" type="xsd:string" minOccurs="0" />
|
325 |
+
<element name="additional_data" type="xsd:string" minOccurs="0" />
|
326 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
327 |
+
<element name="weee_tax_applied" type="xsd:string" minOccurs="0" />
|
328 |
+
<element name="sku" type="xsd:string" minOccurs="0" />
|
329 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
330 |
+
<element name="hidden_tax_amount" type="xsd:string" minOccurs="0"/>
|
331 |
+
<element name="base_hidden_tax_amount" type="xsd:string" minOccurs="0"/>
|
332 |
+
</all>
|
333 |
+
</complexType>
|
334 |
+
<complexType name="mshopSalesCreditMemoItemEntityArray">
|
335 |
+
<complexContent>
|
336 |
+
<restriction base="soapenc:Array">
|
337 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopSalesCreditMemoItemEntity[]" />
|
338 |
+
</restriction>
|
339 |
+
</complexContent>
|
340 |
+
</complexType>
|
341 |
+
<complexType name="mshopSalesCreditMemoCommentEntity">
|
342 |
+
<all>
|
343 |
+
<element name="parent_id" type="xsd:string" minOccurs="0" />
|
344 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
345 |
+
<element name="comment" type="xsd:string" minOccurs="0" />
|
346 |
+
<element name="is_customer_notified" type="xsd:string" minOccurs="0" />
|
347 |
+
<!-- <element name="comment_id" type="xsd:string" minOccurs="0" /> -->
|
348 |
+
<element name="is_visible_on_front" type="xsd:string" minOccurs="0"/>
|
349 |
+
</all>
|
350 |
+
</complexType>
|
351 |
+
<complexType name="mshopSalesCreditMemoCommentEntityArray">
|
352 |
+
<complexContent>
|
353 |
+
<restriction base="soapenc:Array">
|
354 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopSalesCreditMemoCommentEntity[]" />
|
355 |
+
</restriction>
|
356 |
+
</complexContent>
|
357 |
+
</complexType>
|
358 |
+
<complexType name="mshopSalesCreditMemoData">
|
359 |
+
<all>
|
360 |
+
<element name="qtys" type="typens:orderItemIdQtyArray" minOccurs="0"/>
|
361 |
+
<element name="shipping_amount" type="xsd:double" minOccurs="0"/>
|
362 |
+
<element name="adjustment_positive" type="xsd:double" minOccurs="0"/>
|
363 |
+
<element name="adjustment_negative" type="xsd:double" minOccurs="0"/>
|
364 |
+
</all>
|
365 |
+
</complexType>
|
366 |
+
|
367 |
+
|
368 |
+
|
369 |
+
|
370 |
+
<complexType name="mshopProductSalesEntity">
|
371 |
+
<all>
|
372 |
+
<element name="sku" type="xsd:string" minOccurs="0" />
|
373 |
+
<element name="qty" type="xsd:double" minOccurs="0" />
|
374 |
+
</all>
|
375 |
+
</complexType>
|
376 |
+
|
377 |
+
<complexType name="mshopProductSalesEntityArray">
|
378 |
+
<complexContent>
|
379 |
+
<restriction base="soapenc:Array">
|
380 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopProductSalesEntity[]" />
|
381 |
+
</restriction>
|
382 |
+
</complexContent>
|
383 |
+
</complexType>
|
384 |
+
|
385 |
+
<complexType name="salesOrderEntity">
|
386 |
+
<all>
|
387 |
+
<element name="increment_id" type="xsd:string" minOccurs="0" />
|
388 |
+
<element name="parent_id" type="xsd:string" minOccurs="0" />
|
389 |
+
<element name="store_id" type="xsd:string" minOccurs="0" />
|
390 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
391 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
392 |
+
<element name="is_active" type="xsd:string" minOccurs="0" />
|
393 |
+
<element name="customer_id" type="xsd:string" minOccurs="0" />
|
394 |
+
<element name="tax_amount" type="xsd:string" minOccurs="0" />
|
395 |
+
<element name="shipping_amount" type="xsd:string"
|
396 |
+
minOccurs="0" />
|
397 |
+
<element name="discount_amount" type="xsd:string"
|
398 |
+
minOccurs="0" />
|
399 |
+
<element name="subtotal" type="xsd:string" minOccurs="0" />
|
400 |
+
<element name="grand_total" type="xsd:string" minOccurs="0" />
|
401 |
+
<element name="total_paid" type="xsd:string" minOccurs="0" />
|
402 |
+
<element name="total_refunded" type="xsd:string" minOccurs="0" />
|
403 |
+
<element name="total_qty_ordered" type="xsd:string"
|
404 |
+
minOccurs="0" />
|
405 |
+
<element name="total_canceled" type="xsd:string" minOccurs="0" />
|
406 |
+
<element name="total_invoiced" type="xsd:string" minOccurs="0" />
|
407 |
+
<element name="total_online_refunded" type="xsd:string"
|
408 |
+
minOccurs="0" />
|
409 |
+
<element name="total_offline_refunded" type="xsd:string"
|
410 |
+
minOccurs="0" />
|
411 |
+
<element name="base_tax_amount" type="xsd:string"
|
412 |
+
minOccurs="0" />
|
413 |
+
<element name="base_shipping_amount" type="xsd:string"
|
414 |
+
minOccurs="0" />
|
415 |
+
<element name="base_discount_amount" type="xsd:string"
|
416 |
+
minOccurs="0" />
|
417 |
+
<element name="base_subtotal" type="xsd:string" minOccurs="0" />
|
418 |
+
<element name="base_grand_total" type="xsd:string"
|
419 |
+
minOccurs="0" />
|
420 |
+
<element name="base_total_paid" type="xsd:string"
|
421 |
+
minOccurs="0" />
|
422 |
+
<element name="base_total_refunded" type="xsd:string"
|
423 |
+
minOccurs="0" />
|
424 |
+
<element name="base_total_qty_ordered" type="xsd:string"
|
425 |
+
minOccurs="0" />
|
426 |
+
<element name="base_total_canceled" type="xsd:string"
|
427 |
+
minOccurs="0" />
|
428 |
+
<element name="base_total_invoiced" type="xsd:string"
|
429 |
+
minOccurs="0" />
|
430 |
+
<element name="base_total_online_refunded" type="xsd:string"
|
431 |
+
minOccurs="0" />
|
432 |
+
<element name="base_total_offline_refunded" type="xsd:string"
|
433 |
+
minOccurs="0" />
|
434 |
+
<element name="billing_address_id" type="xsd:string"
|
435 |
+
minOccurs="0" />
|
436 |
+
<element name="billing_firstname" type="xsd:string"
|
437 |
+
minOccurs="0" />
|
438 |
+
<element name="billing_lastname" type="xsd:string"
|
439 |
+
minOccurs="0" />
|
440 |
+
<element name="shipping_address_id" type="xsd:string"
|
441 |
+
minOccurs="0" />
|
442 |
+
<element name="shipping_firstname" type="xsd:string"
|
443 |
+
minOccurs="0" />
|
444 |
+
<element name="shipping_lastname" type="xsd:string"
|
445 |
+
minOccurs="0" />
|
446 |
+
<element name="billing_name" type="xsd:string" minOccurs="0" />
|
447 |
+
<element name="shipping_name" type="xsd:string" minOccurs="0" />
|
448 |
+
<element name="store_to_base_rate" type="xsd:string"
|
449 |
+
minOccurs="0" />
|
450 |
+
<element name="store_to_order_rate" type="xsd:string"
|
451 |
+
minOccurs="0" />
|
452 |
+
<element name="base_to_global_rate" type="xsd:string"
|
453 |
+
minOccurs="0" />
|
454 |
+
<element name="base_to_order_rate" type="xsd:string"
|
455 |
+
minOccurs="0" />
|
456 |
+
<element name="weight" type="xsd:string" minOccurs="0" />
|
457 |
+
<element name="store_name" type="xsd:string" minOccurs="0" />
|
458 |
+
<element name="remote_ip" type="xsd:string" minOccurs="0" />
|
459 |
+
<element name="status" type="xsd:string" minOccurs="0" />
|
460 |
+
<element name="state" type="xsd:string" minOccurs="0" />
|
461 |
+
<element name="applied_rule_ids" type="xsd:string"
|
462 |
+
minOccurs="0" />
|
463 |
+
<element name="global_currency_code" type="xsd:string"
|
464 |
+
minOccurs="0" />
|
465 |
+
<element name="base_currency_code" type="xsd:string"
|
466 |
+
minOccurs="0" />
|
467 |
+
<element name="store_currency_code" type="xsd:string"
|
468 |
+
minOccurs="0" />
|
469 |
+
<element name="order_currency_code" type="xsd:string"
|
470 |
+
minOccurs="0" />
|
471 |
+
<element name="shipping_method" type="xsd:string"
|
472 |
+
minOccurs="0" />
|
473 |
+
<element name="shipping_description" type="xsd:string"
|
474 |
+
minOccurs="0" />
|
475 |
+
<element name="customer_email" type="xsd:string" minOccurs="0" />
|
476 |
+
<element name="customer_firstname" type="xsd:string"
|
477 |
+
minOccurs="0" />
|
478 |
+
<element name="customer_lastname" type="xsd:string"
|
479 |
+
minOccurs="0" />
|
480 |
+
<element name="quote_id" type="xsd:string" minOccurs="0" />
|
481 |
+
<element name="is_virtual" type="xsd:string" minOccurs="0" />
|
482 |
+
<element name="customer_group_id" type="xsd:string"
|
483 |
+
minOccurs="0" />
|
484 |
+
<element name="customer_note_notify" type="xsd:string"
|
485 |
+
minOccurs="0" />
|
486 |
+
<element name="customer_is_guest" type="xsd:string"
|
487 |
+
minOccurs="0" />
|
488 |
+
<element name="email_sent" type="xsd:string" minOccurs="0" />
|
489 |
+
<element name="order_id" type="xsd:string" minOccurs="0" />
|
490 |
+
<element name="gift_message_id" type="xsd:string"
|
491 |
+
minOccurs="0" />
|
492 |
+
<element name="gift_message" type="xsd:string" minOccurs="0" />
|
493 |
+
<element name="mshop_invoice_date" type="xsd:string"
|
494 |
+
minOccurs="0" />
|
495 |
+
<element name="mshop_shipment_tax_rule" type="xsd:string"
|
496 |
+
minOccurs="0" />
|
497 |
+
<element name="shipping_address" type="typens:salesOrderAddressEntity"
|
498 |
+
minOccurs="0" />
|
499 |
+
<element name="billing_address" type="typens:salesOrderAddressEntity"
|
500 |
+
minOccurs="0" />
|
501 |
+
<element name="items" type="typens:salesOrderItemEntityArray"
|
502 |
+
minOccurs="0" />
|
503 |
+
<element name="payment" type="typens:salesOrderPaymentEntity"
|
504 |
+
minOccurs="0" />
|
505 |
+
<element name="status_history" type="typens:salesOrderStatusHistoryEntityArray"
|
506 |
+
minOccurs="0" />
|
507 |
+
<element name="mshop_store_views_visible_in" type="typens:mshopProductVisibleEntityArray"
|
508 |
+
minOccurs="0" />
|
509 |
+
<element name="mshop_customer_comment" type="xsd:string"
|
510 |
+
minOccurs="0" />
|
511 |
+
<element name="mshop_customer_prefix" type="xsd:string" minOccurs="0"/>
|
512 |
+
<element name="mshop_customer_middlename" type="xsd:string" minOccurs="0"/>
|
513 |
+
<element name="mshop_bankaccount" type="xsd:string" minOccurs="0"/>
|
514 |
+
<element name="mshop_gross_shipping_amount" type="xsd:double" minOccurs="0"/>
|
515 |
+
<element name="mshop_discount_amount" type="xsd:double" minOccurs="0"/>
|
516 |
+
<!-- <element name="mshop_discount_description" type="typens:ArrayOfString" minOccurs="0"/> -->
|
517 |
+
<!-- <element name="mshop_credit_memo" type="typens:mshopSalesCreditMemoEntityArray" minOccurs="0" /> -->
|
518 |
+
<element name="mshop_invoice_id" type="typens:ArrayOfString" minOccurs="0"/>
|
519 |
+
<element name="status_creditmemo" type="xsd:int" minOccurs="0" default="0"/>
|
520 |
+
<!-- <element name="mshop_rembours" type="xsd:string" minOccurs="0" default="0"/> -->
|
521 |
+
<!-- <element name="mshop_creditmemo_increment_id" type="xsd:string" minOccurs="0" default="0"/> -->
|
522 |
+
<!-- <element name="mshop_creditmemo_id" type="xsd:string" minOccurs="0" default="0"/> -->
|
523 |
+
<element name="mshop_customer_language" type="xsd:string" minOccurs="0" default="0"/>
|
524 |
+
<element name="mshop_billing_address" type="xsd:string" minOccurs="0" default="0"/>
|
525 |
+
<element name="mshop_billing_street_name" type="xsd:string" minOccurs="0" default="0"/>
|
526 |
+
<element name="mshop_billing_street_number" type="xsd:string" minOccurs="0" default="0"/>
|
527 |
+
<element name="mshop_billing_number_addition" type="xsd:string" minOccurs="0" default="0"/>
|
528 |
+
<element name="mshop_shipping_address" type="xsd:string" minOccurs="0" default="0"/>
|
529 |
+
<element name="mshop_shipping_street_name" type="xsd:string" minOccurs="0" default="0"/>
|
530 |
+
<element name="mshop_shipping_street_number" type="xsd:string" minOccurs="0" default="0"/>
|
531 |
+
<element name="mshop_shipping_number_addition" type="xsd:string" minOccurs="0" default="0"/>
|
532 |
+
|
533 |
+
<!-- custom order attributes -->
|
534 |
+
<element name="custom_order_1" type="xsd:string" minOccurs="0" default="0"/>
|
535 |
+
<element name="custom_order_2" type="xsd:string" minOccurs="0" default="0"/>
|
536 |
+
<element name="custom_order_3" type="xsd:string" minOccurs="0" default="0"/>
|
537 |
+
|
538 |
+
<!-- for credit memo -->
|
539 |
+
<element name="mshop_order_increment_id" type="xsd:string" minOccurs="0" />
|
540 |
+
|
541 |
+
<!-- for processing date -->
|
542 |
+
<element name="mshop_payment_date" type="xsd:string" minOccurs="0" />
|
543 |
+
|
544 |
+
</all>
|
545 |
+
</complexType>
|
546 |
+
|
547 |
+
<complexType name="salesOrderAddressEntity">
|
548 |
+
<all>
|
549 |
+
<element name="increment_id" type="xsd:string" minOccurs="0" />
|
550 |
+
<element name="parent_id" type="xsd:string" minOccurs="0" />
|
551 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
552 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
553 |
+
<element name="is_active" type="xsd:string" minOccurs="0" />
|
554 |
+
<element name="address_type" type="xsd:string" minOccurs="0" />
|
555 |
+
<element name="firstname" type="xsd:string" minOccurs="0" />
|
556 |
+
<element name="mshop_middle_name" type="xsd:string" minOccurs="0" />
|
557 |
+
<element name="lastname" type="xsd:string" minOccurs="0" />
|
558 |
+
<element name="company" type="xsd:string" minOccurs="0" />
|
559 |
+
<element name="street" type="xsd:string" minOccurs="0" />
|
560 |
+
<element name="city" type="xsd:string" minOccurs="0" />
|
561 |
+
<element name="region" type="xsd:string" minOccurs="0" />
|
562 |
+
<element name="postcode" type="xsd:string" minOccurs="0" />
|
563 |
+
<element name="country_id" type="xsd:string" minOccurs="0" />
|
564 |
+
<element name="telephone" type="xsd:string" minOccurs="0" />
|
565 |
+
<element name="fax" type="xsd:string" minOccurs="0" />
|
566 |
+
<element name="region_id" type="xsd:string" minOccurs="0" />
|
567 |
+
<element name="address_id" type="xsd:string" minOccurs="0" />
|
568 |
+
</all>
|
569 |
+
</complexType>
|
570 |
+
|
571 |
+
|
572 |
+
|
573 |
+
<complexType name="mshopProductVisibleEntityArray">
|
574 |
+
<complexContent>
|
575 |
+
<restriction base="soapenc:Array">
|
576 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopProductVisibleEntity[]" />
|
577 |
+
</restriction>
|
578 |
+
</complexContent>
|
579 |
+
</complexType>
|
580 |
+
|
581 |
+
<complexType name="mshopProductVisibleEntity">
|
582 |
+
<all>
|
583 |
+
<element name="product_id" type="xsd:string" />
|
584 |
+
<element name="store_view_ids" type="typens:ArrayOfString"
|
585 |
+
minOccurs="0" />
|
586 |
+
</all>
|
587 |
+
</complexType>
|
588 |
+
|
589 |
+
<complexType name="salesOrderItemEntity">
|
590 |
+
<all>
|
591 |
+
<element name="item_id" type="xsd:string" minOccurs="0" />
|
592 |
+
<element name="order_id" type="xsd:string" minOccurs="0" />
|
593 |
+
<element name="quote_item_id" type="xsd:string" minOccurs="0" />
|
594 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
595 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
596 |
+
<element name="product_id" type="xsd:string" minOccurs="0" />
|
597 |
+
<element name="product_type" type="xsd:string" minOccurs="0" />
|
598 |
+
<element name="product_options" type="xsd:string"
|
599 |
+
minOccurs="0" />
|
600 |
+
<element name="weight" type="xsd:string" minOccurs="0" />
|
601 |
+
<element name="is_virtual" type="xsd:string" minOccurs="0" />
|
602 |
+
<element name="sku" type="xsd:string" minOccurs="0" />
|
603 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
604 |
+
<element name="applied_rule_ids" type="xsd:string"
|
605 |
+
minOccurs="0" />
|
606 |
+
<element name="free_shipping" type="xsd:string" minOccurs="0" />
|
607 |
+
<element name="is_qty_decimal" type="xsd:string" minOccurs="0" />
|
608 |
+
<element name="no_discount" type="xsd:string" minOccurs="0" />
|
609 |
+
<element name="qty_canceled" type="xsd:string" minOccurs="0" />
|
610 |
+
<element name="qty_invoiced" type="xsd:string" minOccurs="0" />
|
611 |
+
<element name="qty_ordered" type="xsd:string" minOccurs="0" />
|
612 |
+
<element name="qty_refunded" type="xsd:string" minOccurs="0" />
|
613 |
+
<element name="qty_shipped" type="xsd:string" minOccurs="0" />
|
614 |
+
<element name="cost" type="xsd:string" minOccurs="0" />
|
615 |
+
<element name="price" type="xsd:string" minOccurs="0" />
|
616 |
+
<element name="base_price" type="xsd:string" minOccurs="0" />
|
617 |
+
<element name="original_price" type="xsd:string" minOccurs="0" />
|
618 |
+
<element name="base_original_price" type="xsd:string"
|
619 |
+
minOccurs="0" />
|
620 |
+
<element name="tax_percent" type="xsd:string" minOccurs="0" />
|
621 |
+
<element name="tax_amount" type="xsd:string" minOccurs="0" />
|
622 |
+
<element name="base_tax_amount" type="xsd:string"
|
623 |
+
minOccurs="0" />
|
624 |
+
<element name="tax_invoiced" type="xsd:string" minOccurs="0" />
|
625 |
+
<element name="base_tax_invoiced" type="xsd:string"
|
626 |
+
minOccurs="0" />
|
627 |
+
<element name="discount_percent" type="xsd:string"
|
628 |
+
minOccurs="0" />
|
629 |
+
<element name="discount_amount" type="xsd:string"
|
630 |
+
minOccurs="0" />
|
631 |
+
<element name="base_discount_amount" type="xsd:string"
|
632 |
+
minOccurs="0" />
|
633 |
+
<element name="discount_invoiced" type="xsd:string"
|
634 |
+
minOccurs="0" />
|
635 |
+
<element name="base_discount_invoiced" type="xsd:string"
|
636 |
+
minOccurs="0" />
|
637 |
+
<element name="amount_refunded" type="xsd:string"
|
638 |
+
minOccurs="0" />
|
639 |
+
<element name="base_amount_refunded" type="xsd:string"
|
640 |
+
minOccurs="0" />
|
641 |
+
<element name="row_total" type="xsd:string" minOccurs="0" />
|
642 |
+
<element name="base_row_total" type="xsd:string" minOccurs="0" />
|
643 |
+
<element name="row_invoiced" type="xsd:string" minOccurs="0" />
|
644 |
+
<element name="base_row_invoiced" type="xsd:string"
|
645 |
+
minOccurs="0" />
|
646 |
+
<element name="row_weight" type="xsd:string" minOccurs="0" />
|
647 |
+
<element name="gift_message_id" type="xsd:string"
|
648 |
+
minOccurs="0" />
|
649 |
+
<element name="gift_message" type="xsd:string" minOccurs="0" />
|
650 |
+
<element name="gift_message_available" type="xsd:string"
|
651 |
+
minOccurs="0" />
|
652 |
+
<element name="base_tax_before_discount" type="xsd:string"
|
653 |
+
minOccurs="0" />
|
654 |
+
<element name="tax_before_discount" type="xsd:string"
|
655 |
+
minOccurs="0" />
|
656 |
+
<element name="weee_tax_applied" type="xsd:string"
|
657 |
+
minOccurs="0" />
|
658 |
+
<element name="weee_tax_applied_amount" type="xsd:string"
|
659 |
+
minOccurs="0" />
|
660 |
+
<element name="weee_tax_applied_row_amount" type="xsd:string"
|
661 |
+
minOccurs="0" />
|
662 |
+
<element name="base_weee_tax_applied_amount" type="xsd:string"
|
663 |
+
minOccurs="0" />
|
664 |
+
<element name="base_weee_tax_applied_row_amount" type="xsd:string"
|
665 |
+
minOccurs="0" />
|
666 |
+
<element name="weee_tax_disposition" type="xsd:string"
|
667 |
+
minOccurs="0" />
|
668 |
+
<element name="weee_tax_row_disposition" type="xsd:string"
|
669 |
+
minOccurs="0" />
|
670 |
+
<element name="base_weee_tax_disposition" type="xsd:string"
|
671 |
+
minOccurs="0" />
|
672 |
+
<element name="base_weee_tax_row_disposition" type="xsd:string"
|
673 |
+
minOccurs="0" />
|
674 |
+
<element name="mshop_taxclass_rule_id" type="xsd:string"
|
675 |
+
minOccurs="0" />
|
676 |
+
<element name="mshop_taxclass_rule_code" type="xsd:string"
|
677 |
+
minOccurs="0" />
|
678 |
+
<element name="mshop_base_price_incl_tax" type="xsd:double"
|
679 |
+
minOccurs="0" />
|
680 |
+
<element name="mshop_base_price_excl_tax" type="xsd:double"
|
681 |
+
minOccurs="0" />
|
682 |
+
<element name="mshop_item_id" type="xsd:string"
|
683 |
+
minOccurs="0" />
|
684 |
+
<element name="mshop_parent_item_id" type="xsd:string"
|
685 |
+
minOccurs="0" />
|
686 |
+
<element name="mshop_discount_percent" type="xsd:string"
|
687 |
+
minOccurs="0" />
|
688 |
+
<element name="mshop_bundle_type" type="xsd:string" minOccurs="0" />
|
689 |
+
<element name="mshop_short_description" type="xsd:string" minOccurs="0" />
|
690 |
+
</all>
|
691 |
+
</complexType>
|
692 |
+
|
693 |
+
<complexType name="salesOrderEntityArray">
|
694 |
+
<complexContent>
|
695 |
+
<restriction base="soapenc:Array">
|
696 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:salesOrderEntity[]" />
|
697 |
+
</restriction>
|
698 |
+
</complexContent>
|
699 |
+
</complexType>
|
700 |
+
|
701 |
+
<!--
|
702 |
+
<complexType name="mshopSalesOrderListEntity">
|
703 |
+
<all>
|
704 |
+
<element name="increment_id" type="xsd:string" minOccurs="0" />
|
705 |
+
<element name="store_id" type="xsd:string" minOccurs="0" />
|
706 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
707 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
708 |
+
<element name="customer_id" type="xsd:string" minOccurs="0" />
|
709 |
+
<element name="tax_amount" type="xsd:string" minOccurs="0" />
|
710 |
+
<element name="shipping_amount" type="xsd:string"
|
711 |
+
minOccurs="0" />
|
712 |
+
<element name="discount_amount" type="xsd:string"
|
713 |
+
minOccurs="0" />
|
714 |
+
<element name="subtotal" type="xsd:string" minOccurs="0" />
|
715 |
+
<element name="grand_total" type="xsd:string" minOccurs="0" />
|
716 |
+
<element name="total_paid" type="xsd:string" minOccurs="0" />
|
717 |
+
<element name="total_refunded" type="xsd:string" minOccurs="0" />
|
718 |
+
<element name="total_qty_ordered" type="xsd:string"
|
719 |
+
minOccurs="0" />
|
720 |
+
<element name="total_canceled" type="xsd:string" minOccurs="0" />
|
721 |
+
<element name="total_invoiced" type="xsd:string" minOccurs="0" />
|
722 |
+
<element name="total_online_refunded" type="xsd:string"
|
723 |
+
minOccurs="0" />
|
724 |
+
<element name="total_offline_refunded" type="xsd:string"
|
725 |
+
minOccurs="0" />
|
726 |
+
<element name="base_tax_amount" type="xsd:string"
|
727 |
+
minOccurs="0" />
|
728 |
+
<element name="base_shipping_amount" type="xsd:string"
|
729 |
+
minOccurs="0" />
|
730 |
+
<element name="base_discount_amount" type="xsd:string"
|
731 |
+
minOccurs="0" />
|
732 |
+
<element name="base_subtotal" type="xsd:string" minOccurs="0" />
|
733 |
+
<element name="base_grand_total" type="xsd:string"
|
734 |
+
minOccurs="0" />
|
735 |
+
<element name="base_total_paid" type="xsd:string"
|
736 |
+
minOccurs="0" />
|
737 |
+
<element name="base_total_refunded" type="xsd:string"
|
738 |
+
minOccurs="0" />
|
739 |
+
<element name="base_total_qty_ordered" type="xsd:string"
|
740 |
+
minOccurs="0" />
|
741 |
+
<element name="base_total_canceled" type="xsd:string"
|
742 |
+
minOccurs="0" />
|
743 |
+
<element name="base_total_invoiced" type="xsd:string"
|
744 |
+
minOccurs="0" />
|
745 |
+
<element name="base_total_online_refunded" type="xsd:string"
|
746 |
+
minOccurs="0" />
|
747 |
+
<element name="base_total_offline_refunded" type="xsd:string"
|
748 |
+
minOccurs="0" />
|
749 |
+
<element name="billing_address_id" type="xsd:string"
|
750 |
+
minOccurs="0" />
|
751 |
+
<element name="billing_firstname" type="xsd:string"
|
752 |
+
minOccurs="0" />
|
753 |
+
<element name="billing_lastname" type="xsd:string"
|
754 |
+
minOccurs="0" />
|
755 |
+
<element name="shipping_address_id" type="xsd:string"
|
756 |
+
minOccurs="0" />
|
757 |
+
<element name="shipping_firstname" type="xsd:string"
|
758 |
+
minOccurs="0" />
|
759 |
+
<element name="shipping_lastname" type="xsd:string"
|
760 |
+
minOccurs="0" />
|
761 |
+
<element name="billing_name" type="xsd:string" minOccurs="0" />
|
762 |
+
<element name="shipping_name" type="xsd:string" minOccurs="0" />
|
763 |
+
<element name="store_to_base_rate" type="xsd:string"
|
764 |
+
minOccurs="0" />
|
765 |
+
<element name="store_to_order_rate" type="xsd:string"
|
766 |
+
minOccurs="0" />
|
767 |
+
<element name="base_to_global_rate" type="xsd:string"
|
768 |
+
minOccurs="0" />
|
769 |
+
<element name="base_to_order_rate" type="xsd:string"
|
770 |
+
minOccurs="0" />
|
771 |
+
<element name="weight" type="xsd:string" minOccurs="0" />
|
772 |
+
<element name="store_name" type="xsd:string" minOccurs="0" />
|
773 |
+
<element name="remote_ip" type="xsd:string" minOccurs="0" />
|
774 |
+
<element name="status" type="xsd:string" minOccurs="0" />
|
775 |
+
<element name="state" type="xsd:string" minOccurs="0" />
|
776 |
+
<element name="applied_rule_ids" type="xsd:string"
|
777 |
+
minOccurs="0" />
|
778 |
+
<element name="global_currency_code" type="xsd:string"
|
779 |
+
minOccurs="0" />
|
780 |
+
<element name="base_currency_code" type="xsd:string"
|
781 |
+
minOccurs="0" />
|
782 |
+
<element name="store_currency_code" type="xsd:string"
|
783 |
+
minOccurs="0" />
|
784 |
+
<element name="order_currency_code" type="xsd:string"
|
785 |
+
minOccurs="0" />
|
786 |
+
<element name="shipping_method" type="xsd:string"
|
787 |
+
minOccurs="0" />
|
788 |
+
<element name="shipping_description" type="xsd:string"
|
789 |
+
minOccurs="0" />
|
790 |
+
<element name="customer_email" type="xsd:string" minOccurs="0" />
|
791 |
+
<element name="customer_firstname" type="xsd:string"
|
792 |
+
minOccurs="0" />
|
793 |
+
<element name="customer_lastname" type="xsd:string"
|
794 |
+
minOccurs="0" />
|
795 |
+
<element name="quote_id" type="xsd:string" minOccurs="0" />
|
796 |
+
<element name="is_virtual" type="xsd:string" minOccurs="0" />
|
797 |
+
<element name="customer_group_id" type="xsd:string"
|
798 |
+
minOccurs="0" />
|
799 |
+
<element name="customer_note_notify" type="xsd:string"
|
800 |
+
minOccurs="0" />
|
801 |
+
<element name="customer_is_guest" type="xsd:string"
|
802 |
+
minOccurs="0" />
|
803 |
+
<element name="email_sent" type="xsd:string" minOccurs="0" />
|
804 |
+
<element name="order_id" type="xsd:string" minOccurs="0" />
|
805 |
+
<element name="gift_message_id" type="xsd:string"
|
806 |
+
minOccurs="0" />
|
807 |
+
<element name="coupon_code" type="xsd:string" minOccurs="0" />
|
808 |
+
<element name="protect_code" type="xsd:string" minOccurs="0" />
|
809 |
+
<element name="base_discount_canceled" type="xsd:string"
|
810 |
+
minOccurs="0" />
|
811 |
+
<element name="base_discount_invoiced" type="xsd:string"
|
812 |
+
minOccurs="0" />
|
813 |
+
<element name="base_discount_refunded" type="xsd:string"
|
814 |
+
minOccurs="0" />
|
815 |
+
<element name="base_shipping_canceled" type="xsd:string"
|
816 |
+
minOccurs="0" />
|
817 |
+
<element name="base_shipping_invoiced" type="xsd:string"
|
818 |
+
minOccurs="0" />
|
819 |
+
<element name="base_shipping_refunded" type="xsd:string"
|
820 |
+
minOccurs="0" />
|
821 |
+
<element name="base_shipping_tax_amount" type="xsd:string"
|
822 |
+
minOccurs="0" />
|
823 |
+
<element name="base_shipping_tax_refunded" type="xsd:string"
|
824 |
+
minOccurs="0" />
|
825 |
+
<element name="base_subtotal_canceled" type="xsd:string"
|
826 |
+
minOccurs="0" />
|
827 |
+
<element name="base_subtotal_invoiced" type="xsd:string"
|
828 |
+
minOccurs="0" />
|
829 |
+
<element name="base_subtotal_refunded" type="xsd:string"
|
830 |
+
minOccurs="0" />
|
831 |
+
<element name="base_tax_canceled" type="xsd:string"
|
832 |
+
minOccurs="0" />
|
833 |
+
<element name="base_tax_invoiced" type="xsd:string"
|
834 |
+
minOccurs="0" />
|
835 |
+
<element name="base_tax_refunded" type="xsd:string"
|
836 |
+
minOccurs="0" />
|
837 |
+
<element name="base_total_invoiced_cost" type="xsd:string"
|
838 |
+
minOccurs="0" />
|
839 |
+
<element name="discount_canceled" type="xsd:string"
|
840 |
+
minOccurs="0" />
|
841 |
+
<element name="discount_invoiced" type="xsd:string"
|
842 |
+
minOccurs="0" />
|
843 |
+
<element name="discount_refunded" type="xsd:string"
|
844 |
+
minOccurs="0" />
|
845 |
+
<element name="shipping_canceled" type="xsd:string"
|
846 |
+
minOccurs="0" />
|
847 |
+
<element name="shipping_invoiced" type="xsd:string"
|
848 |
+
minOccurs="0" />
|
849 |
+
<element name="shipping_refunded" type="xsd:string"
|
850 |
+
minOccurs="0" />
|
851 |
+
<element name="shipping_tax_amount" type="xsd:string"
|
852 |
+
minOccurs="0" />
|
853 |
+
<element name="shipping_tax_refunded" type="xsd:string"
|
854 |
+
minOccurs="0" />
|
855 |
+
<element name="subtotal_canceled" type="xsd:string"
|
856 |
+
minOccurs="0" />
|
857 |
+
<element name="subtotal_invoiced" type="xsd:string"
|
858 |
+
minOccurs="0" />
|
859 |
+
<element name="subtotal_refunded" type="xsd:string"
|
860 |
+
minOccurs="0" />
|
861 |
+
<element name="tax_canceled" type="xsd:string" minOccurs="0" />
|
862 |
+
<element name="tax_invoiced" type="xsd:string" minOccurs="0" />
|
863 |
+
<element name="tax_refunded" type="xsd:string" minOccurs="0" />
|
864 |
+
<element name="can_ship_partially" type="xsd:string"
|
865 |
+
minOccurs="0" />
|
866 |
+
<element name="can_ship_partially_item" type="xsd:string"
|
867 |
+
minOccurs="0" />
|
868 |
+
<element name="edit_increment" type="xsd:string" minOccurs="0" />
|
869 |
+
<element name="forced_do_shipment_with_invoice" type="xsd:string"
|
870 |
+
minOccurs="0" />
|
871 |
+
<element name="payment_authorization_expiration" type="xsd:string"
|
872 |
+
minOccurs="0" />
|
873 |
+
<element name="paypal_ipn_customer_notified" type="xsd:string"
|
874 |
+
minOccurs="0" />
|
875 |
+
<element name="quote_address_id" type="xsd:string"
|
876 |
+
minOccurs="0" />
|
877 |
+
<element name="adjustment_negative" type="xsd:string"
|
878 |
+
minOccurs="0" />
|
879 |
+
<element name="adjustment_positive" type="xsd:string"
|
880 |
+
minOccurs="0" />
|
881 |
+
<element name="base_adjustment_negative" type="xsd:string"
|
882 |
+
minOccurs="0" />
|
883 |
+
<element name="base_adjustment_positive" type="xsd:string"
|
884 |
+
minOccurs="0" />
|
885 |
+
<element name="base_shipping_discount_amount" type="xsd:string"
|
886 |
+
minOccurs="0" />
|
887 |
+
<element name="base_subtotal_incl_tax" type="xsd:string"
|
888 |
+
minOccurs="0" />
|
889 |
+
<element name="base_total_due" type="xsd:string" minOccurs="0" />
|
890 |
+
<element name="payment_authorization_amount" type="xsd:string"
|
891 |
+
minOccurs="0" />
|
892 |
+
<element name="shipping_discount_amount" type="xsd:string"
|
893 |
+
minOccurs="0" />
|
894 |
+
<element name="subtotal_incl_tax" type="xsd:string"
|
895 |
+
minOccurs="0" />
|
896 |
+
<element name="total_due" type="xsd:string" minOccurs="0" />
|
897 |
+
<element name="customer_dob" type="xsd:string" minOccurs="0" />
|
898 |
+
<element name="customer_middlename" type="xsd:string"
|
899 |
+
minOccurs="0" />
|
900 |
+
<element name="customer_prefix" type="xsd:string"
|
901 |
+
minOccurs="0" />
|
902 |
+
<element name="customer_suffix" type="xsd:string"
|
903 |
+
minOccurs="0" />
|
904 |
+
<element name="customer_taxvat" type="xsd:string"
|
905 |
+
minOccurs="0" />
|
906 |
+
<element name="discount_description" type="xsd:string"
|
907 |
+
minOccurs="0" />
|
908 |
+
<element name="ext_customer_id" type="xsd:string"
|
909 |
+
minOccurs="0" />
|
910 |
+
<element name="ext_order_id" type="xsd:string" minOccurs="0" />
|
911 |
+
<element name="hold_before_state" type="xsd:string"
|
912 |
+
minOccurs="0" />
|
913 |
+
<element name="hold_before_status" type="xsd:string"
|
914 |
+
minOccurs="0" />
|
915 |
+
<element name="original_increment_id" type="xsd:string"
|
916 |
+
minOccurs="0" />
|
917 |
+
<element name="relation_child_id" type="xsd:string"
|
918 |
+
minOccurs="0" />
|
919 |
+
<element name="relation_child_real_id" type="xsd:string"
|
920 |
+
minOccurs="0" />
|
921 |
+
<element name="relation_parent_id" type="xsd:string"
|
922 |
+
minOccurs="0" />
|
923 |
+
<element name="relation_parent_real_id" type="xsd:string"
|
924 |
+
minOccurs="0" />
|
925 |
+
<element name="x_forwarded_for" type="xsd:string"
|
926 |
+
minOccurs="0" />
|
927 |
+
<element name="customer_note" type="xsd:string" minOccurs="0" />
|
928 |
+
<element name="total_item_count" type="xsd:string"
|
929 |
+
minOccurs="0" />
|
930 |
+
<element name="customer_gender" type="xsd:string"
|
931 |
+
minOccurs="0" />
|
932 |
+
<element name="hidden_tax_amount" type="xsd:string"
|
933 |
+
minOccurs="0" />
|
934 |
+
<element name="base_hidden_tax_amount" type="xsd:string"
|
935 |
+
minOccurs="0" />
|
936 |
+
<element name="shipping_hidden_tax_amount" type="xsd:string"
|
937 |
+
minOccurs="0" />
|
938 |
+
<element name="base_shipping_hidden_tax_amount" type="xsd:string"
|
939 |
+
minOccurs="0" />
|
940 |
+
<element name="hidden_tax_invoiced" type="xsd:string"
|
941 |
+
minOccurs="0" />
|
942 |
+
<element name="base_hidden_tax_invoiced" type="xsd:string"
|
943 |
+
minOccurs="0" />
|
944 |
+
<element name="hidden_tax_refunded" type="xsd:string"
|
945 |
+
minOccurs="0" />
|
946 |
+
<element name="base_hidden_tax_refunded" type="xsd:string"
|
947 |
+
minOccurs="0" />
|
948 |
+
<element name="shipping_incl_tax" type="xsd:string"
|
949 |
+
minOccurs="0" />
|
950 |
+
<element name="base_shipping_incl_tax" type="xsd:string"
|
951 |
+
minOccurs="0" />
|
952 |
+
<element name="base_customer_balance_amount" type="xsd:string"
|
953 |
+
minOccurs="0" />
|
954 |
+
<element name="customer_balance_amount" type="xsd:string"
|
955 |
+
minOccurs="0" />
|
956 |
+
<element name="base_customer_balance_invoiced" type="xsd:string"
|
957 |
+
minOccurs="0" />
|
958 |
+
<element name="customer_balance_invoiced" type="xsd:string"
|
959 |
+
minOccurs="0" />
|
960 |
+
<element name="base_customer_balance_refunded" type="xsd:string"
|
961 |
+
minOccurs="0" />
|
962 |
+
<element name="customer_balance_refunded" type="xsd:string"
|
963 |
+
minOccurs="0" />
|
964 |
+
<element name="base_customer_balance_total_refunded" type="xsd:string"
|
965 |
+
minOccurs="0" />
|
966 |
+
<element name="customer_balance_total_refunded" type="xsd:string"
|
967 |
+
minOccurs="0" />
|
968 |
+
<element name="gift_cards" type="xsd:string" minOccurs="0" />
|
969 |
+
<element name="base_gift_cards_amount" type="xsd:string"
|
970 |
+
minOccurs="0" />
|
971 |
+
<element name="gift_cards_amount" type="xsd:string"
|
972 |
+
minOccurs="0" />
|
973 |
+
<element name="base_gift_cards_invoiced" type="xsd:string"
|
974 |
+
minOccurs="0" />
|
975 |
+
<element name="gift_cards_invoiced" type="xsd:string"
|
976 |
+
minOccurs="0" />
|
977 |
+
<element name="base_gift_cards_refunded" type="xsd:string"
|
978 |
+
minOccurs="0" />
|
979 |
+
<element name="gift_cards_refunded" type="xsd:string"
|
980 |
+
minOccurs="0" />
|
981 |
+
<element name="reward_points_balance" type="xsd:string"
|
982 |
+
minOccurs="0" />
|
983 |
+
<element name="base_reward_currency_amount" type="xsd:string"
|
984 |
+
minOccurs="0" />
|
985 |
+
<element name="reward_currency_amount" type="xsd:string"
|
986 |
+
minOccurs="0" />
|
987 |
+
<element name="base_reward_currency_amount_invoiced" type="xsd:string"
|
988 |
+
minOccurs="0" />
|
989 |
+
<element name="reward_currency_amount_invoiced" type="xsd:string"
|
990 |
+
minOccurs="0" />
|
991 |
+
<element name="base_reward_currency_amount_refunded" type="xsd:string"
|
992 |
+
minOccurs="0" />
|
993 |
+
<element name="reward_currency_amount_refunded" type="xsd:string"
|
994 |
+
minOccurs="0" />
|
995 |
+
<element name="reward_points_balance_refunded" type="xsd:string"
|
996 |
+
minOccurs="0" />
|
997 |
+
<element name="reward_points_balance_to_refund" type="xsd:string"
|
998 |
+
minOccurs="0" />
|
999 |
+
<element name="reward_salesrule_points" type="xsd:string"
|
1000 |
+
minOccurs="0" />
|
1001 |
+
<element name="firstname" type="xsd:string" minOccurs="0" />
|
1002 |
+
<element name="lastname" type="xsd:string" minOccurs="0" />
|
1003 |
+
<element name="telephone" type="xsd:string" minOccurs="0" />
|
1004 |
+
<element name="postcode" type="xsd:string" minOccurs="0" />
|
1005 |
+
</all>
|
1006 |
+
</complexType>
|
1007 |
+
<complexType name="mshopSalesOrderListEntityArray">
|
1008 |
+
<complexContent>
|
1009 |
+
<restriction base="soapenc:Array">
|
1010 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopSalesOrderListEntity[]" />
|
1011 |
+
</restriction>
|
1012 |
+
</complexContent>
|
1013 |
+
</complexType>
|
1014 |
+
-->
|
1015 |
+
|
1016 |
+
<complexType name="salesOrderCustomFeldsMappingEntity">
|
1017 |
+
<all>
|
1018 |
+
<element name="order_custom_field" type="xsd:string" />
|
1019 |
+
<element name="order_beckend_field" type="xsd:string"/>
|
1020 |
+
<element name="order_beckend_field_label" type="xsd:string"/>
|
1021 |
+
</all>
|
1022 |
+
</complexType>
|
1023 |
+
|
1024 |
+
<complexType name="salesOrderCustomFeldsMappingArray">
|
1025 |
+
<complexContent>
|
1026 |
+
<restriction base="soapenc:Array">
|
1027 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:salesOrderCustomFeldsMappingEntity[]" />
|
1028 |
+
</restriction>
|
1029 |
+
</complexContent>
|
1030 |
+
</complexType>
|
1031 |
+
|
1032 |
+
|
1033 |
+
<!-- end sales -->
|
1034 |
+
|
1035 |
+
<!-- catalog -->
|
1036 |
+
|
1037 |
+
<complexType name="mshopCatalogProductCreateEntity">
|
1038 |
+
|
1039 |
+
<all>
|
1040 |
+
<element name="categories" type="typens:ArrayOfString" minOccurs="0" />
|
1041 |
+
<element name="websites" type="typens:ArrayOfString" minOccurs="0" />
|
1042 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
1043 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
1044 |
+
<element name="short_description" type="xsd:string" minOccurs="0" />
|
1045 |
+
<element name="weight" type="xsd:string" minOccurs="0" />
|
1046 |
+
<element name="status" type="xsd:string" minOccurs="0" />
|
1047 |
+
<element name="url_key" type="xsd:string" minOccurs="0" />
|
1048 |
+
<element name="url_path" type="xsd:string" minOccurs="0" />
|
1049 |
+
<element name="visibility" type="xsd:string" minOccurs="0" />
|
1050 |
+
<element name="category_ids" type="typens:ArrayOfString" minOccurs="0" />
|
1051 |
+
<element name="website_ids" type="typens:ArrayOfString" minOccurs="0" />
|
1052 |
+
<element name="has_options" type="xsd:string" minOccurs="0" />
|
1053 |
+
<element name="gift_message_available" type="xsd:string" minOccurs="0" />
|
1054 |
+
<element name="price" type="xsd:string" minOccurs="0" />
|
1055 |
+
<element name="special_price" type="xsd:string" minOccurs="0" />
|
1056 |
+
<element name="special_from_date" type="xsd:string" minOccurs="0" />
|
1057 |
+
<element name="special_to_date" type="xsd:string" minOccurs="0" />
|
1058 |
+
<element name="tax_class_id" type="xsd:string" minOccurs="0" />
|
1059 |
+
<element name="tier_price" type="typens:catalogProductTierPriceEntityArray" minOccurs="0" />
|
1060 |
+
<element name="cost" type="xsd:string" minOccurs="0" />
|
1061 |
+
<element name="meta_title" type="xsd:string" minOccurs="0" />
|
1062 |
+
<element name="meta_keyword" type="xsd:string" minOccurs="0" />
|
1063 |
+
<element name="meta_description" type="xsd:string" minOccurs="0" />
|
1064 |
+
<element name="custom_design" type="xsd:string" minOccurs="0" />
|
1065 |
+
<element name="custom_layout_update" type="xsd:string" minOccurs="0" />
|
1066 |
+
<element name="options_container" type="xsd:string" minOccurs="0" />
|
1067 |
+
<element name="additional_attributes" type="typens:associativeArray" minOccurs="0" />
|
1068 |
+
<element name="stock_data" type="typens:catalogInventoryStockItemUpdateEntity" minOccurs="0"/>
|
1069 |
+
</all>
|
1070 |
+
|
1071 |
+
</complexType>
|
1072 |
+
|
1073 |
+
|
1074 |
+
<complexType name="catalogProductReturnEntity">
|
1075 |
+
<all>
|
1076 |
+
<element name="product_id" type="xsd:string" minOccurs="0" />
|
1077 |
+
<element name="sku" type="xsd:string" minOccurs="0" />
|
1078 |
+
<element name="set" type="xsd:string" minOccurs="0" />
|
1079 |
+
<element name="type" type="xsd:string" minOccurs="0" />
|
1080 |
+
<element name="categories" type="typens:ArrayOfString"
|
1081 |
+
minOccurs="0" />
|
1082 |
+
<element name="websites" type="typens:ArrayOfString"
|
1083 |
+
minOccurs="0" />
|
1084 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
1085 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
1086 |
+
<element name="type_id" type="xsd:string" minOccurs="0" />
|
1087 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
1088 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
1089 |
+
<element name="short_description" type="xsd:string"
|
1090 |
+
minOccurs="0" />
|
1091 |
+
<element name="weight" type="xsd:string" minOccurs="0" />
|
1092 |
+
<element name="status" type="xsd:string" minOccurs="0" />
|
1093 |
+
<element name="url_key" type="xsd:string" minOccurs="0" />
|
1094 |
+
<element name="url_path" type="xsd:string" minOccurs="0" />
|
1095 |
+
<element name="visibility" type="xsd:string" minOccurs="0" />
|
1096 |
+
<element name="category_ids" type="typens:ArrayOfString"
|
1097 |
+
minOccurs="0" />
|
1098 |
+
<element name="website_ids" type="typens:ArrayOfString"
|
1099 |
+
minOccurs="0" />
|
1100 |
+
<element name="has_options" type="xsd:string" minOccurs="0" />
|
1101 |
+
<element name="gift_message_available" type="xsd:string"
|
1102 |
+
minOccurs="0" />
|
1103 |
+
<element name="price" type="xsd:string" minOccurs="0" />
|
1104 |
+
<element name="special_price" type="xsd:string" minOccurs="0" />
|
1105 |
+
<element name="special_from_date" type="xsd:string"
|
1106 |
+
minOccurs="0" />
|
1107 |
+
<element name="special_to_date" type="xsd:string"
|
1108 |
+
minOccurs="0" />
|
1109 |
+
<element name="tax_class_id" type="xsd:string" minOccurs="0" />
|
1110 |
+
<element name="tier_price" type="typens:catalogProductTierPriceEntityArray"
|
1111 |
+
minOccurs="0" />
|
1112 |
+
<element name="meta_title" type="xsd:string" minOccurs="0" />
|
1113 |
+
<element name="meta_keyword" type="xsd:string" minOccurs="0" />
|
1114 |
+
<element name="meta_description" type="xsd:string"
|
1115 |
+
minOccurs="0" />
|
1116 |
+
<element name="custom_design" type="xsd:string" minOccurs="0" />
|
1117 |
+
<element name="custom_layout_update" type="xsd:string"
|
1118 |
+
minOccurs="0" />
|
1119 |
+
<element name="options_container" type="xsd:string"
|
1120 |
+
minOccurs="0" />
|
1121 |
+
<element name="additional_attributes" type="typens:associativeArray"
|
1122 |
+
minOccurs="0" />
|
1123 |
+
<element name="enable_googlecheckout" type="xsd:string"
|
1124 |
+
minOccurs="0" />
|
1125 |
+
<element name="cost" type="xsd:string"
|
1126 |
+
minOccurs="0" />
|
1127 |
+
</all>
|
1128 |
+
</complexType>
|
1129 |
+
|
1130 |
+
<complexType name="mshopCatalogInventoryStockUpdateRequestEntityArray">
|
1131 |
+
<complexContent>
|
1132 |
+
<restriction base="soapenc:Array">
|
1133 |
+
<attribute ref="soapenc:arrayType"
|
1134 |
+
wsdl:arrayType="typens:mshopCatalogInventoryStockUpdateRequestEntity[]" />
|
1135 |
+
</restriction>
|
1136 |
+
</complexContent>
|
1137 |
+
</complexType>
|
1138 |
+
|
1139 |
+
<complexType name="mshopCatalogInventoryStockUpdateRequestEntity">
|
1140 |
+
<all>
|
1141 |
+
<element name="productSku" type="xsd:string" />
|
1142 |
+
<element name="productQty" type="xsd:double" />
|
1143 |
+
<element name="productFutureQty" type="xsd:int" default="1"/>
|
1144 |
+
<element name="extraAttributes" type="typens:mshopCatalogInventoryStockUpdateExtraAtributesEntity" minOccurs="0"/>
|
1145 |
+
</all>
|
1146 |
+
</complexType>
|
1147 |
+
|
1148 |
+
<complexType name="mshopCatalogInventoryStockUpdateExtraAtributesEntity">
|
1149 |
+
<all>
|
1150 |
+
<element name="mamut_store1" type="xsd:string" />
|
1151 |
+
<element name="mamut_store2" type="xsd:string"/>
|
1152 |
+
<element name="mamut_store3" type="xsd:string"/>
|
1153 |
+
<element name="mamut_store4" type="xsd:string"/>
|
1154 |
+
<element name="mamut_store5" type="xsd:string"/>
|
1155 |
+
<element name="mamut_nextdeliverydate" type="xsd:string"/>
|
1156 |
+
</all>
|
1157 |
+
</complexType>
|
1158 |
+
|
1159 |
+
<complexType name="mshopCatalogProductReturnEntityArray">
|
1160 |
+
<complexContent>
|
1161 |
+
<restriction base="soapenc:Array">
|
1162 |
+
<attribute ref="soapenc:arrayType"
|
1163 |
+
wsdl:arrayType="typens:mshopCatalogProductReturnCustomEntity[]" />
|
1164 |
+
</restriction>
|
1165 |
+
</complexContent>
|
1166 |
+
</complexType>
|
1167 |
+
|
1168 |
+
<complexType name="mshopCatalogProductReturnCustomEntity">
|
1169 |
+
<all>
|
1170 |
+
<element name="product_id" type="xsd:string" minOccurs="0" />
|
1171 |
+
<element name="sku" type="xsd:string" minOccurs="0" />
|
1172 |
+
<element name="set" type="xsd:string" minOccurs="0" />
|
1173 |
+
<element name="type" type="xsd:string" minOccurs="0" />
|
1174 |
+
<element name="categories" type="typens:ArrayOfString"
|
1175 |
+
minOccurs="0" />
|
1176 |
+
<element name="websites" type="typens:ArrayOfString"
|
1177 |
+
minOccurs="0" />
|
1178 |
+
<element name="created_at" type="xsd:string" minOccurs="0" />
|
1179 |
+
<element name="updated_at" type="xsd:string" minOccurs="0" />
|
1180 |
+
<element name="type_id" type="xsd:string" minOccurs="0" />
|
1181 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
1182 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
1183 |
+
<element name="short_description" type="xsd:string"
|
1184 |
+
minOccurs="0" />
|
1185 |
+
<element name="weight" type="xsd:string" minOccurs="0" />
|
1186 |
+
<element name="status" type="xsd:string" minOccurs="0" />
|
1187 |
+
<element name="url_key" type="xsd:string" minOccurs="0" />
|
1188 |
+
<element name="url_path" type="xsd:string" minOccurs="0" />
|
1189 |
+
<element name="visibility" type="xsd:string" minOccurs="0" />
|
1190 |
+
<element name="category_ids" type="typens:ArrayOfString"
|
1191 |
+
minOccurs="0" />
|
1192 |
+
<element name="website_ids" type="typens:ArrayOfString"
|
1193 |
+
minOccurs="0" />
|
1194 |
+
<element name="has_options" type="xsd:string" minOccurs="0" />
|
1195 |
+
<element name="gift_message_available" type="xsd:string"
|
1196 |
+
minOccurs="0" />
|
1197 |
+
<element name="price" type="xsd:string" minOccurs="0" />
|
1198 |
+
<element name="special_price" type="xsd:string" minOccurs="0" />
|
1199 |
+
<element name="special_from_date" type="xsd:string"
|
1200 |
+
minOccurs="0" />
|
1201 |
+
<element name="special_to_date" type="xsd:string"
|
1202 |
+
minOccurs="0" />
|
1203 |
+
<element name="tax_class_id" type="xsd:string" minOccurs="0" />
|
1204 |
+
<element name="tier_price" type="typens:catalogProductTierPriceEntityArray"
|
1205 |
+
minOccurs="0" />
|
1206 |
+
<element name="meta_title" type="xsd:string" minOccurs="0" />
|
1207 |
+
<element name="meta_keyword" type="xsd:string" minOccurs="0" />
|
1208 |
+
<element name="meta_description" type="xsd:string"
|
1209 |
+
minOccurs="0" />
|
1210 |
+
<element name="custom_design" type="xsd:string" minOccurs="0" />
|
1211 |
+
<element name="custom_layout_update" type="xsd:string"
|
1212 |
+
minOccurs="0" />
|
1213 |
+
<element name="options_container" type="xsd:string"
|
1214 |
+
minOccurs="0" />
|
1215 |
+
<element name="additional_attributes" type="typens:associativeArray"
|
1216 |
+
minOccurs="0" />
|
1217 |
+
<element name="enable_googlecheckout" type="xsd:string"
|
1218 |
+
minOccurs="0" />
|
1219 |
+
<element name="mshop_store_view_id" type="xsd:string" minOccurs="0" />
|
1220 |
+
<element name="mshop_store_view_name" type="xsd:string"
|
1221 |
+
minOccurs="0" />
|
1222 |
+
</all>
|
1223 |
+
</complexType>
|
1224 |
+
|
1225 |
+
<complexType name="mshopCatalogCategoryEntityCreate">
|
1226 |
+
<all>
|
1227 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
1228 |
+
<element name="is_active" type="xsd:string" minOccurs="0" />
|
1229 |
+
<element name="position" type="xsd:int" minOccurs="0" />
|
1230 |
+
<element name="available_sort_by" type="typens:ArrayOfString"
|
1231 |
+
minOccurs="0" />
|
1232 |
+
<element name="custom_design" type="xsd:string" minOccurs="0" />
|
1233 |
+
<element name="custom_design_apply" type="xsd:int"
|
1234 |
+
minOccurs="0" />
|
1235 |
+
<element name="custom_design_from" type="xsd:string"
|
1236 |
+
minOccurs="0" />
|
1237 |
+
<element name="custom_design_to" type="xsd:string"
|
1238 |
+
minOccurs="0" />
|
1239 |
+
<element name="custom_layout_update" type="xsd:string"
|
1240 |
+
minOccurs="0" />
|
1241 |
+
<element name="default_sort_by" type="xsd:string"
|
1242 |
+
minOccurs="0" />
|
1243 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
1244 |
+
<element name="display_mode" type="xsd:string" minOccurs="0" />
|
1245 |
+
<element name="is_anchor" type="xsd:int" minOccurs="0" />
|
1246 |
+
<element name="landing_page" type="xsd:int" minOccurs="0" />
|
1247 |
+
<element name="meta_description" type="xsd:string"
|
1248 |
+
minOccurs="0" />
|
1249 |
+
<element name="meta_keywords" type="xsd:string" minOccurs="0" />
|
1250 |
+
<element name="meta_title" type="xsd:string" minOccurs="0" />
|
1251 |
+
<element name="page_layout" type="xsd:string" minOccurs="0" />
|
1252 |
+
<element name="url_key" type="xsd:string" minOccurs="0" />
|
1253 |
+
<element name="include_in_menu" type="xsd:int" minOccurs="0" />
|
1254 |
+
</all>
|
1255 |
+
</complexType>
|
1256 |
+
|
1257 |
+
<complexType name="catalogCategoryEntityCreate">
|
1258 |
+
<all>
|
1259 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
1260 |
+
<element name="is_active" type="xsd:int" minOccurs="0" />
|
1261 |
+
<element name="position" type="xsd:int" minOccurs="0" />
|
1262 |
+
<element name="available_sort_by" type="typens:ArrayOfString"
|
1263 |
+
minOccurs="0" />
|
1264 |
+
<element name="custom_design" type="xsd:string" minOccurs="0" />
|
1265 |
+
<element name="custom_design_apply" type="xsd:int"
|
1266 |
+
minOccurs="0" />
|
1267 |
+
<element name="custom_design_from" type="xsd:string"
|
1268 |
+
minOccurs="0" />
|
1269 |
+
<element name="custom_design_to" type="xsd:string"
|
1270 |
+
minOccurs="0" />
|
1271 |
+
<element name="custom_layout_update" type="xsd:string"
|
1272 |
+
minOccurs="0" />
|
1273 |
+
<element name="default_sort_by" type="xsd:string"
|
1274 |
+
minOccurs="0" />
|
1275 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
1276 |
+
<element name="display_mode" type="xsd:string" minOccurs="0" />
|
1277 |
+
<element name="is_anchor" type="xsd:int" minOccurs="0" />
|
1278 |
+
<element name="landing_page" type="xsd:int" minOccurs="0" />
|
1279 |
+
<element name="meta_description" type="xsd:string"
|
1280 |
+
minOccurs="0" />
|
1281 |
+
<element name="meta_keywords" type="xsd:string" minOccurs="0" />
|
1282 |
+
<element name="meta_title" type="xsd:string" minOccurs="0" />
|
1283 |
+
<element name="page_layout" type="xsd:string" minOccurs="0" />
|
1284 |
+
<element name="url_key" type="xsd:string" minOccurs="0" />
|
1285 |
+
<element name="include_in_menu" type="xsd:int" minOccurs="0" />
|
1286 |
+
</all>
|
1287 |
+
</complexType>
|
1288 |
+
|
1289 |
+
<complexType name="mshopCatalogProductTierPriceEntity">
|
1290 |
+
<all>
|
1291 |
+
<element name="customer_group_id" type="xsd:string" minOccurs="0"/>
|
1292 |
+
<element name="website" type="xsd:string" minOccurs="0"/>
|
1293 |
+
<element name="qty" type="xsd:int" minOccurs="0"/>
|
1294 |
+
<element name="price" type="xsd:double" minOccurs="0"/>
|
1295 |
+
<element name="tier_type" type="xsd:int" minOccurs="0"/>
|
1296 |
+
</all>
|
1297 |
+
</complexType>
|
1298 |
+
<complexType name="mshopCatalogProductTierPriceEntityArray">
|
1299 |
+
<complexContent>
|
1300 |
+
<restriction base="soapenc:Array">
|
1301 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:mshopCatalogProductTierPriceEntity[]"/>
|
1302 |
+
</restriction>
|
1303 |
+
</complexContent>
|
1304 |
+
</complexType>
|
1305 |
+
|
1306 |
+
<!-- end catalog -->
|
1307 |
+
|
1308 |
+
|
1309 |
+
</schema>
|
1310 |
+
</types>
|
1311 |
+
|
1312 |
+
<!-- utility -->
|
1313 |
+
|
1314 |
+
<message name="mshopUtilityListTaxClassRulesRequest">
|
1315 |
+
<part name="sessionId" type="xsd:string" />
|
1316 |
+
</message>
|
1317 |
+
|
1318 |
+
<message name="mshopUtilityListTaxClassRulesResponse">
|
1319 |
+
<part name="taxclasses" type="typens:mshopUtilityListTaxClassRulesEntityArray" />
|
1320 |
+
</message>
|
1321 |
+
|
1322 |
+
|
1323 |
+
<message name="mshopUtilityListPaymentStatusesRequest">
|
1324 |
+
<part name="sessionId" type="xsd:string" />
|
1325 |
+
</message>
|
1326 |
+
|
1327 |
+
<message name="mshopUtilityListPaymentStatusesResponse">
|
1328 |
+
<part name="taxclasses" type="typens:mshopUtilityListPaymentStatusesEntityArray" />
|
1329 |
+
</message>
|
1330 |
+
|
1331 |
+
<message name="mshopUtilityListProductTaxClassesRequest">
|
1332 |
+
<part name="sessionId" type="xsd:string" />
|
1333 |
+
</message>
|
1334 |
+
|
1335 |
+
<message name="mshopUtilityListProductTaxClassesResponse">
|
1336 |
+
<part name="taxclasses" type="typens:mshopUtilityListTaxClassesEntityArray" />
|
1337 |
+
</message>
|
1338 |
+
<message name="mshopUtilityCleanCacheRequest">
|
1339 |
+
<part name="sessionId" type="xsd:string" />
|
1340 |
+
</message>
|
1341 |
+
<message name="mshopUtilityCleanCacheResponse">
|
1342 |
+
<part name="responce" type="xsd:boolean" />
|
1343 |
+
</message>
|
1344 |
+
|
1345 |
+
<message name="mshopUtilityListPaymentMethodsRequest">
|
1346 |
+
<part name="sessionId" type="xsd:string" />
|
1347 |
+
</message>
|
1348 |
+
|
1349 |
+
<message name="mshopUtilityListPaymentMethodsResponse">
|
1350 |
+
<part name="paymentmethods" type="typens:mshopUtilityListPaymentMethodsEntityArray" />
|
1351 |
+
</message>
|
1352 |
+
|
1353 |
+
<message name="mshopUtilityListShippingMethodsRequest">
|
1354 |
+
<part name="sessionId" type="xsd:string" />
|
1355 |
+
</message>
|
1356 |
+
|
1357 |
+
<message name="mshopUtilityListShippingMethodsResponse">
|
1358 |
+
<part name="shippingmethods" type="typens:mshopUtilityListShippingMethodsEntityArray" />
|
1359 |
+
</message>
|
1360 |
+
|
1361 |
+
<message name="mshopUtilityListStoreViewsRequest">
|
1362 |
+
<part name="sessionId" type="xsd:string" />
|
1363 |
+
</message>
|
1364 |
+
|
1365 |
+
<message name="mshopUtilityListStoreViewsResponse">
|
1366 |
+
<part name="multistore" type="typens:mshopUtilityListStoreViewEntityArray" />
|
1367 |
+
</message>
|
1368 |
+
|
1369 |
+
<message name="mshopUtilityListPaymentMethodsByStoreRequest">
|
1370 |
+
<part name="sessionId" type="xsd:string" />
|
1371 |
+
<part name="store" type="xsd:int" />
|
1372 |
+
</message>
|
1373 |
+
|
1374 |
+
<message name="mshopUtilityListPaymentMethodsByStoreResponse">
|
1375 |
+
<part name="paymentmethods"
|
1376 |
+
type="typens:mshopUtilityListPaymentMethodsByStoreEntityArray" />
|
1377 |
+
</message>
|
1378 |
+
|
1379 |
+
<message name="mshopUtilityGetMagentoVersionRequest">
|
1380 |
+
<part name="sessionId" type="xsd:string" />
|
1381 |
+
</message>
|
1382 |
+
|
1383 |
+
<message name="mshopUtilityGetMagentoVersionResponse">
|
1384 |
+
<part name="version" type="xsd:string" />
|
1385 |
+
</message>
|
1386 |
+
|
1387 |
+
<message name="mshopUtilityGetSettingRequest">
|
1388 |
+
<part name="sessionId" type="xsd:string" />
|
1389 |
+
<part name="settingCode" type="xsd:string" />
|
1390 |
+
</message>
|
1391 |
+
|
1392 |
+
<message name="mshopUtilityGetSettingResponse">
|
1393 |
+
<part name="setting" type="xsd:boolean" />
|
1394 |
+
</message>
|
1395 |
+
|
1396 |
+
<message name="mshopUtilityGetMshopVersionRequest">
|
1397 |
+
<part name="sessionId" type="xsd:string" />
|
1398 |
+
</message>
|
1399 |
+
|
1400 |
+
<message name="mshopUtilityGetMshopVersionResponse">
|
1401 |
+
<part name="version" type="xsd:string" />
|
1402 |
+
</message>
|
1403 |
+
|
1404 |
+
<message name="mshopUtilityGetMshopB2BVersionRequest">
|
1405 |
+
<part name="sessionId" type="xsd:string" />
|
1406 |
+
</message>
|
1407 |
+
|
1408 |
+
<message name="mshopUtilityGetMshopB2BVersionResponse">
|
1409 |
+
<part name="version" type="xsd:string" />
|
1410 |
+
</message>
|
1411 |
+
|
1412 |
+
<message name="mshopUtilityGetOrderInvoiceDateRequest">
|
1413 |
+
<part name="sessionId" type="xsd:string" />
|
1414 |
+
<part name="orderNumber" type="xsd:int" />
|
1415 |
+
</message>
|
1416 |
+
|
1417 |
+
<message name="mshopUtilityGetOrderInvoiceDateResponse">
|
1418 |
+
<part name="date" type="xsd:string" />
|
1419 |
+
</message>
|
1420 |
+
|
1421 |
+
<message name="mshopUtilityIsMshopB2BInstalledRequest">
|
1422 |
+
<part name="sessionId" type="xsd:string" />
|
1423 |
+
</message>
|
1424 |
+
|
1425 |
+
<message name="mshopUtilityIsMshopB2BInstalledResponse">
|
1426 |
+
<part name="installed" type="xsd:boolean" />
|
1427 |
+
</message>
|
1428 |
+
|
1429 |
+
<!-- end utility -->
|
1430 |
+
|
1431 |
+
|
1432 |
+
<!-- attribute -->
|
1433 |
+
|
1434 |
+
<message name="mshopProductAttributeOptionIdRequest">
|
1435 |
+
<part name="sessionId" type="xsd:string" />
|
1436 |
+
<part name="attributeCode" type="xsd:string" />
|
1437 |
+
<part name="attributeOptionLabel" type="xsd:string" />
|
1438 |
+
</message>
|
1439 |
+
|
1440 |
+
|
1441 |
+
<message name="mshopProductAttributeOptionIdResponse">
|
1442 |
+
<part name="result" type="xsd:int" />
|
1443 |
+
</message>
|
1444 |
+
|
1445 |
+
<message name="mshopProductAttributeSetOptionsRequest">
|
1446 |
+
<part name="sessionId" type="xsd:string" />
|
1447 |
+
<part name="attributeCode" type="xsd:string" />
|
1448 |
+
<part name="attributeOptions" type="typens:ArrayOfString" />
|
1449 |
+
</message>
|
1450 |
+
|
1451 |
+
|
1452 |
+
<message name="mshopProductAttributeSetOptionsResponse">
|
1453 |
+
<part name="result" type="xsd:int" />
|
1454 |
+
</message>
|
1455 |
+
|
1456 |
+
<message name="mshopProductAttributeDeleteOptionsRequest">
|
1457 |
+
<part name="sessionId" type="xsd:string" />
|
1458 |
+
<part name="attributeCode" type="xsd:string" />
|
1459 |
+
</message>
|
1460 |
+
|
1461 |
+
|
1462 |
+
<message name="mshopProductAttributeDeleteOptionsResponse">
|
1463 |
+
<part name="result" type="xsd:int" />
|
1464 |
+
</message>
|
1465 |
+
|
1466 |
+
<message name="mshopProductAttributeCreateRequest">
|
1467 |
+
<part name="sessionId" type="xsd:string" />
|
1468 |
+
<part name="attributeLabel" type="xsd:string" />
|
1469 |
+
<part name="attributeCode" type="xsd:string" />
|
1470 |
+
<part name="attributeValues" type="typens:mshopProductAttributeCreateArrayEntity" />
|
1471 |
+
<part name="attributeProductTypes" type="typens:ArrayOfString" />
|
1472 |
+
</message>
|
1473 |
+
|
1474 |
+
|
1475 |
+
<message name="mshopProductAttributeCreateResponse">
|
1476 |
+
<part name="result" type="xsd:int" />
|
1477 |
+
</message>
|
1478 |
+
|
1479 |
+
<message name="mshopProductAttributeDeleteRequest">
|
1480 |
+
<part name="sessionId" type="xsd:string" />
|
1481 |
+
<part name="attributeCode" type="xsd:string" />
|
1482 |
+
</message>
|
1483 |
+
|
1484 |
+
|
1485 |
+
<message name="mshopProductAttributeDeleteResponse">
|
1486 |
+
<part name="result" type="xsd:int" />
|
1487 |
+
</message>
|
1488 |
+
|
1489 |
+
<message name="mshopProductAttributeAddOptionsRequest">
|
1490 |
+
<part name="sessionId" type="xsd:string" />
|
1491 |
+
<part name="attributeCode" type="xsd:string" />
|
1492 |
+
<part name="attributeOptions" type="typens:ArrayOfString" />
|
1493 |
+
</message>
|
1494 |
+
|
1495 |
+
|
1496 |
+
<message name="mshopProductAttributeAddOptionsResponse">
|
1497 |
+
<part name="result" type="xsd:int" />
|
1498 |
+
</message>
|
1499 |
+
|
1500 |
+
<message name="mshopProductAttributeSetsThatContainRequest">
|
1501 |
+
<part name="sessionId" type="xsd:string" />
|
1502 |
+
<part name="attributeCodes" type="typens:ArrayOfString" />
|
1503 |
+
</message>
|
1504 |
+
|
1505 |
+
<message name="mshopProductAttributeSetsThatContainResponse">
|
1506 |
+
<part name="attributeSets" type="typens:mshopProductAttributeSetsEntityArray" />
|
1507 |
+
</message>
|
1508 |
+
|
1509 |
+
<message name="mshopProductAttributeCopySetRequest">
|
1510 |
+
<part name="sessionId" type="xsd:string" />
|
1511 |
+
<part name="setId" type="xsd:int" />
|
1512 |
+
<part name="newSetName" type="xsd:string" />
|
1513 |
+
|
1514 |
+
</message>
|
1515 |
+
|
1516 |
+
<message name="mshopProductAttributeCopySetResponse">
|
1517 |
+
<part name="result" type="xsd:int" />
|
1518 |
+
</message>
|
1519 |
+
|
1520 |
+
<message name="mshopProductAttributeAddToSetRequest">
|
1521 |
+
<part name="sessionId" type="xsd:string" />
|
1522 |
+
<part name="attributeCode" type="xsd:string" />
|
1523 |
+
<part name="setId" type="xsd:int" />
|
1524 |
+
|
1525 |
+
</message>
|
1526 |
+
|
1527 |
+
<message name="mshopProductAttributeAddToSetResponse">
|
1528 |
+
<part name="result" type="xsd:string" />
|
1529 |
+
</message>
|
1530 |
+
|
1531 |
+
<!-- end attribute -->
|
1532 |
+
|
1533 |
+
<!-- catalog -->
|
1534 |
+
<message name="mshopCatalogDisableProductsRequest">
|
1535 |
+
<part name="sessionId" type="xsd:string" />
|
1536 |
+
<part name="requestEntityArray" type="typens:ArrayOfString" />
|
1537 |
+
</message>
|
1538 |
+
|
1539 |
+
<message name="mshopCatalogDisableProductsResponse">
|
1540 |
+
<part name="result" type="typens:ArrayOfString" />
|
1541 |
+
</message>
|
1542 |
+
|
1543 |
+
<message name="mshopCatalogInventoryStockUpdateRequest">
|
1544 |
+
<part name="sessionId" type="xsd:string" />
|
1545 |
+
<part name="requestEntityArray" type="typens:mshopCatalogInventoryStockUpdateRequestEntityArray" />
|
1546 |
+
<part name="use_future_stock" type="xsd:int" />
|
1547 |
+
</message>
|
1548 |
+
|
1549 |
+
<message name="mshopCatalogInventoryStockUpdateResponse">
|
1550 |
+
<part name="result" type="typens:ArrayOfString" />
|
1551 |
+
</message>
|
1552 |
+
|
1553 |
+
<message name="mshopCatalogInventoryStockItemUpdateRequest">
|
1554 |
+
<part name="sessionId" type="xsd:string" />
|
1555 |
+
<part name="productSku" type="xsd:string" />
|
1556 |
+
<part name="productQty" type="xsd:double" />
|
1557 |
+
</message>
|
1558 |
+
|
1559 |
+
<message name="mshopCatalogInventoryStockItemUpdateResponse">
|
1560 |
+
<part name="result" type="xsd:boolean" />
|
1561 |
+
</message>
|
1562 |
+
|
1563 |
+
<message name="mshopCatalogInventoryStockItemFutureStockUpdateRequest">
|
1564 |
+
<part name="sessionId" type="xsd:string" />
|
1565 |
+
<part name="productSku" type="xsd:string" />
|
1566 |
+
<part name="productQty" type="xsd:double" />
|
1567 |
+
<part name="mamut_future_stock" type="xsd:double" />
|
1568 |
+
<part name="use_future_stock" type="xsd:int" />
|
1569 |
+
</message>
|
1570 |
+
|
1571 |
+
<message name="mshopCatalogInventoryStockItemFutureStockUpdateResponse">
|
1572 |
+
<part name="result" type="xsd:boolean" />
|
1573 |
+
</message>
|
1574 |
+
|
1575 |
+
|
1576 |
+
<message name="mshopCatalogSimpleProductsListRequest">
|
1577 |
+
<part name="sessionId" type="xsd:string" />
|
1578 |
+
</message>
|
1579 |
+
|
1580 |
+
<message name="mshopCatalogSimpleProductsListResponse">
|
1581 |
+
<part name="result" type="typens:ArrayOfString" />
|
1582 |
+
</message>
|
1583 |
+
|
1584 |
+
<message name="mshopCatalogProductsListRequest">
|
1585 |
+
<part name="sessionId" type="xsd:string" />
|
1586 |
+
</message>
|
1587 |
+
|
1588 |
+
<message name="mshopCatalogProductsListResponse">
|
1589 |
+
<part name="result" type="typens:ArrayOfString" />
|
1590 |
+
</message>
|
1591 |
+
|
1592 |
+
<message name="mshopCatalogProductFullInfoRequest">
|
1593 |
+
<part name="sessionId" type="xsd:string" />
|
1594 |
+
<part name="sku" type="xsd:string" />
|
1595 |
+
</message>
|
1596 |
+
|
1597 |
+
<message name="mshopCatalogProductFullInfoResponse">
|
1598 |
+
<part name="result" type="typens:mshopCatalogProductReturnEntityArray" />
|
1599 |
+
</message>
|
1600 |
+
|
1601 |
+
<message name="mshopCatalogCheckCreateGroupedProductRequest">
|
1602 |
+
<part name="sessionId" type="xsd:string" />
|
1603 |
+
<part name="setId" type="xsd:int" />
|
1604 |
+
<part name="sku" type="xsd:string" />
|
1605 |
+
<part name="productData" type="typens:mshopCatalogProductCreateEntity" />
|
1606 |
+
<part name="linkedProductsData" type="typens:ArrayOfString" />
|
1607 |
+
</message>
|
1608 |
+
|
1609 |
+
<message name="mshopCatalogCheckCreateGroupedProductResponse">
|
1610 |
+
<part name="result" type="xsd:int" />
|
1611 |
+
</message>
|
1612 |
+
|
1613 |
+
|
1614 |
+
<message name="mshopCatalogSetProductVisibleInStoreViewsRequest">
|
1615 |
+
<part name="sessionId" type="xsd:string" />
|
1616 |
+
<part name="productSKU" type="xsd:string" />
|
1617 |
+
<part name="storeViewIds" type="typens:ArrayOfString" />
|
1618 |
+
<part name="visibilityLevel" type="xsd:int" />
|
1619 |
+
|
1620 |
+
</message>
|
1621 |
+
|
1622 |
+
<message name="mshopCatalogSetProductVisibleInStoreViewsResponse">
|
1623 |
+
<part name="result" type="xsd:string" />
|
1624 |
+
</message>
|
1625 |
+
|
1626 |
+
<message name="mshopCatalogRemoveProductCategoriesBelowRequest">
|
1627 |
+
<part name="sessionId" type="xsd:string" />
|
1628 |
+
<part name="productSKU" type="xsd:string" />
|
1629 |
+
<part name="rootCategory" type="xsd:int" />
|
1630 |
+
</message>
|
1631 |
+
|
1632 |
+
<message name="mshopCatalogRemoveProductCategoriesBelowResponse">
|
1633 |
+
<part name="result" type="xsd:string" />
|
1634 |
+
</message>
|
1635 |
+
|
1636 |
+
<message name="mshopCatalogCheckCreateConfigurableProductRequest">
|
1637 |
+
<part name="sessionId" type="xsd:string" />
|
1638 |
+
<part name="setId" type="xsd:int" />
|
1639 |
+
<part name="sku" type="xsd:string" />
|
1640 |
+
<part name="productData" type="typens:mshopCatalogProductCreateEntity" />
|
1641 |
+
<part name="configurableProductsData" type="typens:ArrayOfString" />
|
1642 |
+
<part name="configurableAttributesData" type="typens:ArrayOfString" />
|
1643 |
+
</message>
|
1644 |
+
|
1645 |
+
<message name="mshopCatalogCheckCreateConfigurableProductResponse">
|
1646 |
+
<part name="result" type="xsd:int" />
|
1647 |
+
</message>
|
1648 |
+
|
1649 |
+
<message name="mshopCatalogSetProductsToComplexRequest">
|
1650 |
+
<part name="sessionId" type="xsd:string" />
|
1651 |
+
<part name="configurableProductId" type="xsd:string" />
|
1652 |
+
<part name="simpleProductsIds" type="typens:ArrayOfString" />
|
1653 |
+
|
1654 |
+
</message>
|
1655 |
+
|
1656 |
+
<message name="mshopCatalogSetProductsToComplexResponse">
|
1657 |
+
<part name="result" type="xsd:string" />
|
1658 |
+
</message>
|
1659 |
+
|
1660 |
+
|
1661 |
+
<message name="mshopCatalogProductCreateRequest">
|
1662 |
+
<part name="sessionId" type="xsd:string" />
|
1663 |
+
<part name="type" type="xsd:string" />
|
1664 |
+
<part name="set" type="xsd:string" />
|
1665 |
+
<part name="sku" type="xsd:string" />
|
1666 |
+
<part name="productData" type="typens:mshopCatalogProductCreateEntity" />
|
1667 |
+
</message>
|
1668 |
+
|
1669 |
+
<message name="mshopCatalogProductCreateResponse">
|
1670 |
+
<part name="result" type="xsd:int"/>
|
1671 |
+
</message>
|
1672 |
+
|
1673 |
+
<message name="mshopCatalogProductGetProductsChangedSinceRequest">
|
1674 |
+
<part name="sessionId" type="xsd:string" />
|
1675 |
+
<part name="date" type="xsd:string" />
|
1676 |
+
</message>
|
1677 |
+
|
1678 |
+
<message name="mshopCatalogProductGetProductsChangedSinceResponse">
|
1679 |
+
<part name="result" type="typens:ArrayOfString" />
|
1680 |
+
</message>
|
1681 |
+
|
1682 |
+
|
1683 |
+
<message name="mshopCatalogProductUpdateRequest">
|
1684 |
+
<part name="sessionId" type="xsd:string"/>
|
1685 |
+
<part name="product" type="xsd:string"/>
|
1686 |
+
<part name="productData" type="typens:mshopCatalogProductCreateEntity" />
|
1687 |
+
<part name="storeView" type="xsd:string"/>
|
1688 |
+
<part name="productIdentifierType" type="xsd:string"/>
|
1689 |
+
</message>
|
1690 |
+
|
1691 |
+
<message name="mshopCatalogProductUpdateResponse">
|
1692 |
+
<part name="result" type="xsd:boolean"/>
|
1693 |
+
</message>
|
1694 |
+
|
1695 |
+
<message name="mshopCatalogImportImagesRequest">
|
1696 |
+
<part name="sessionId" type="xsd:string"/>
|
1697 |
+
</message>
|
1698 |
+
|
1699 |
+
<message name="mshopCatalogImportImagesResponse">
|
1700 |
+
<part name="result" type="xsd:boolean"/>
|
1701 |
+
</message>
|
1702 |
+
|
1703 |
+
<message name="mshopCatalogProductAttributeTierPriceUpdateRequest">
|
1704 |
+
<part name="sessionId" type="xsd:string"/>
|
1705 |
+
<part name="product" type="xsd:string"/>
|
1706 |
+
<part name="tier_price" type="typens:mshopCatalogProductTierPriceEntityArray"/>
|
1707 |
+
<part name="productIdentifierType" type="xsd:string"/>
|
1708 |
+
</message>
|
1709 |
+
<message name="mshopCatalogProductAttributeTierPriceUpdateResponse">
|
1710 |
+
<part name="result" type="xsd:int"/>
|
1711 |
+
</message>
|
1712 |
+
|
1713 |
+
|
1714 |
+
<!-- end catalog -->
|
1715 |
+
|
1716 |
+
<!-- catalog category -->
|
1717 |
+
|
1718 |
+
<message name="mshopMCategoryCreateRequest">
|
1719 |
+
<part name="sessionId" type="xsd:string" />
|
1720 |
+
<part name="parentId" type="xsd:int" />
|
1721 |
+
<part name="categoryData" type="typens:mshopCatalogCategoryEntityCreate" />
|
1722 |
+
<part name="storeView" type="xsd:int" />
|
1723 |
+
</message>
|
1724 |
+
|
1725 |
+
<message name="mshopMCategoryCreateResponse">
|
1726 |
+
<part name="id" type="xsd:int" />
|
1727 |
+
</message>
|
1728 |
+
|
1729 |
+
<!-- end catalog category -->
|
1730 |
+
|
1731 |
+
<!-- sales -->
|
1732 |
+
|
1733 |
+
<message name="mshopSalesOrderShipmentRequest">
|
1734 |
+
<part name="sessionId" type="xsd:string" />
|
1735 |
+
<part name="orderIncrementId" type="xsd:string" />
|
1736 |
+
<part name="comment" type="xsd:string" />
|
1737 |
+
<part name="email" type="xsd:int" />
|
1738 |
+
<part name="trackNumber" type="xsd:string" />
|
1739 |
+
</message>
|
1740 |
+
<message name="mshopSalesOrderShipmentResponse">
|
1741 |
+
<part name="shipmentIncrementId" type="xsd:string" />
|
1742 |
+
</message>
|
1743 |
+
|
1744 |
+
<message name="mshopSalesCreditMemoRequest">
|
1745 |
+
<part name="sessionId" type="xsd:string" />
|
1746 |
+
<part name="creditmemoIncrementId" type="xsd:string" />
|
1747 |
+
</message>
|
1748 |
+
<message name="mshopSalesCreditMemoResponse">
|
1749 |
+
<part name="result" type="typens:salesOrderEntity" />
|
1750 |
+
</message>
|
1751 |
+
|
1752 |
+
<message name="mshopSalesGetOrdersFromWithStatusRequest">
|
1753 |
+
<part name="sessionId" type="xsd:string" />
|
1754 |
+
<part name="ordersId" type="xsd:int" />
|
1755 |
+
<part name="ordersStatuses" type="typens:ArrayOfString" />
|
1756 |
+
</message>
|
1757 |
+
<message name="mshopSalesGetOrdersFromWithStatusResponse">
|
1758 |
+
<part name="result" type="typens:ArrayOfString" />
|
1759 |
+
</message>
|
1760 |
+
|
1761 |
+
<message name="mshopSalesGetCreditmemosFromRequest">
|
1762 |
+
<part name="sessionId" type="xsd:string" />
|
1763 |
+
<part name="startId" type="xsd:int" />
|
1764 |
+
</message>
|
1765 |
+
<message name="mshopSalesGetCreditmemosFromResponse">
|
1766 |
+
<part name="result" type="typens:ArrayOfString" />
|
1767 |
+
</message>
|
1768 |
+
|
1769 |
+
<message name="mshopSalesGetSalesForOrdersRequest">
|
1770 |
+
<part name="sessionId" type="xsd:string" />
|
1771 |
+
<part name="ordersIds" type="typens:ArrayOfString" />
|
1772 |
+
</message>
|
1773 |
+
<message name="mshopSalesGetSalesForOrdersResponse">
|
1774 |
+
<part name="result" type="typens:mshopProductSalesEntityArray" />
|
1775 |
+
</message>
|
1776 |
+
|
1777 |
+
<message name="mshopSalesGetSalesForOrdersWithStatusRequest">
|
1778 |
+
<part name="sessionId" type="xsd:string" />
|
1779 |
+
<part name="ordersIds" type="typens:ArrayOfString" />
|
1780 |
+
</message>
|
1781 |
+
<message name="mshopSalesGetSalesForOrdersWithStatusResponse">
|
1782 |
+
<part name="result" type="typens:mshopProductSalesEntityArray" />
|
1783 |
+
</message>
|
1784 |
+
|
1785 |
+
<message name="mshopSalesOrderListResponse">
|
1786 |
+
<part name="result" type="typens:salesOrderEntityArray" />
|
1787 |
+
</message>
|
1788 |
+
|
1789 |
+
<message name="mshopSalesHasTaxClassForShippingRequest">
|
1790 |
+
<part name="sessionId" type="xsd:string" />
|
1791 |
+
</message>
|
1792 |
+
<message name="mshopSalesHasTaxClassForShippingResponse">
|
1793 |
+
<part name="setting" type="xsd:boolean" />
|
1794 |
+
</message>
|
1795 |
+
|
1796 |
+
<message name="mshopSalesOrderCreateInvoiceRequest">
|
1797 |
+
<part name="sessionId" type="xsd:string" />
|
1798 |
+
<part name="incrementId" type="xsd:string" />
|
1799 |
+
<part name="mamutInvoiceId" type="xsd:int" />
|
1800 |
+
</message>
|
1801 |
+
<message name="mshopSalesOrderCreateInvoiceResponse">
|
1802 |
+
<part name="invoiceIncrementId" type="xsd:string" />
|
1803 |
+
</message>
|
1804 |
+
|
1805 |
+
<message name="mshopSalesOrderCancelRequest">
|
1806 |
+
<part name="sessionId" type="xsd:string" />
|
1807 |
+
<part name="incrementId" type="xsd:string" />
|
1808 |
+
</message>
|
1809 |
+
<message name="mshopSalesOrderCancelResponse">
|
1810 |
+
<part name="responce" type="xsd:boolean" />
|
1811 |
+
</message>
|
1812 |
+
|
1813 |
+
|
1814 |
+
<message name="mshopSalesOrderNotInStockRequest">
|
1815 |
+
<part name="sessionId" type="xsd:string" />
|
1816 |
+
<part name="incrementId" type="xsd:string" />
|
1817 |
+
</message>
|
1818 |
+
<message name="mshopSalesOrderNotInStockResponse">
|
1819 |
+
<part name="responce" type="xsd:boolean" />
|
1820 |
+
</message>
|
1821 |
+
|
1822 |
+
<message name="mshopSalesOrderPickedRequest">
|
1823 |
+
<part name="sessionId" type="xsd:string" />
|
1824 |
+
<part name="incrementId" type="xsd:string" />
|
1825 |
+
</message>
|
1826 |
+
<message name="mshopSalesOrderPickedResponse">
|
1827 |
+
<part name="responce" type="xsd:boolean" />
|
1828 |
+
</message>
|
1829 |
+
|
1830 |
+
|
1831 |
+
<message name="mshopSalesOrderCreateShipmentRequest">
|
1832 |
+
<part name="sessionId" type="xsd:string" />
|
1833 |
+
<part name="incrementId" type="xsd:string" />
|
1834 |
+
<part name="trackAndTraceCode" type="xsd:string" />
|
1835 |
+
</message>
|
1836 |
+
<message name="mshopSalesOrderCreateShipmentResponse">
|
1837 |
+
<part name="shipmentIncrementId" type="xsd:string" />
|
1838 |
+
</message>
|
1839 |
+
|
1840 |
+
|
1841 |
+
<message name="mshopSalesOrderCustomFieldsMappingRequest">
|
1842 |
+
<part name="sessionId" type="xsd:string" />
|
1843 |
+
</message>
|
1844 |
+
|
1845 |
+
<message name="mshopSalesOrderCustomFieldsMappingResponse">
|
1846 |
+
<part name="result" type="typens:salesOrderCustomFeldsMappingArray" />
|
1847 |
+
</message>
|
1848 |
+
<!-- end sales -->
|
1849 |
+
|
1850 |
+
|
1851 |
+
<portType name="{{var wsdl.handler}}PortType">
|
1852 |
+
|
1853 |
+
<!-- utility operations -->
|
1854 |
+
<operation name="mshopUtilityListTaxClassRules">
|
1855 |
+
<documentation>List of product tax classes</documentation>
|
1856 |
+
<input message="typens:mshopUtilityListTaxClassRulesRequest" />
|
1857 |
+
<output message="typens:mshopUtilityListTaxClassRulesResponse" />
|
1858 |
+
</operation>
|
1859 |
+
|
1860 |
+
<operation name="mshopUtilityListPaymentStatuses">
|
1861 |
+
<documentation>List of product tax classes</documentation>
|
1862 |
+
<input message="typens:mshopUtilityListPaymentStatusesRequest" />
|
1863 |
+
<output message="typens:mshopUtilityListPaymentStatusesResponse" />
|
1864 |
+
</operation>
|
1865 |
+
|
1866 |
+
<operation name="mshopUtilityListProductTaxClasses">
|
1867 |
+
<documentation>List of product tax classes</documentation>
|
1868 |
+
<input message="typens:mshopUtilityListProductTaxClassesRequest" />
|
1869 |
+
<output message="typens:mshopUtilityListProductTaxClassesResponse" />
|
1870 |
+
</operation>
|
1871 |
+
|
1872 |
+
<operation name="mshopUtilityCleanCache">
|
1873 |
+
<documentation>Clean cache type:Web Services Configuration</documentation>
|
1874 |
+
<input message="typens:mshopUtilityCleanCacheRequest" />
|
1875 |
+
<output message="typens:mshopUtilityCleanCacheResponse" />
|
1876 |
+
</operation>
|
1877 |
+
|
1878 |
+
<operation name="mshopUtilityListPaymentMethods">
|
1879 |
+
<documentation>List of payment methods</documentation>
|
1880 |
+
<input message="typens:mshopUtilityListPaymentMethodsRequest" />
|
1881 |
+
<output message="typens:mshopUtilityListPaymentMethodsResponse" />
|
1882 |
+
</operation>
|
1883 |
+
|
1884 |
+
<operation name="mshopUtilityListShippingMethods">
|
1885 |
+
<documentation>List of shipping methods</documentation>
|
1886 |
+
<input message="typens:mshopUtilityListShippingMethodsRequest" />
|
1887 |
+
<output message="typens:mshopUtilityListShippingMethodsResponse" />
|
1888 |
+
</operation>
|
1889 |
+
|
1890 |
+
<operation name="mshopUtilityListStoreViews">
|
1891 |
+
<documentation>List of stores</documentation>
|
1892 |
+
<input message="typens:mshopUtilityListStoreViewsRequest" />
|
1893 |
+
<output message="typens:mshopUtilityListStoreViewsResponse" />
|
1894 |
+
</operation>
|
1895 |
+
|
1896 |
+
<operation name="mshopUtilityListPaymentMethodsByStore">
|
1897 |
+
<documentation>List of payment methods for store</documentation>
|
1898 |
+
<input message="typens:mshopUtilityListPaymentMethodsByStoreRequest" />
|
1899 |
+
<output message="typens:mshopUtilityListPaymentMethodsByStoreResponse" />
|
1900 |
+
</operation>
|
1901 |
+
|
1902 |
+
<operation name="mshopUtilityGetMagentoVersion">
|
1903 |
+
<documentation>Get magento version</documentation>
|
1904 |
+
<input message="typens:mshopUtilityGetMagentoVersionRequest" />
|
1905 |
+
<output message="typens:mshopUtilityGetMagentoVersionResponse" />
|
1906 |
+
</operation>
|
1907 |
+
|
1908 |
+
<operation name="mshopUtilityGetSetting">
|
1909 |
+
<documentation>Get magento admin setting</documentation>
|
1910 |
+
<input message="typens:mshopUtilityGetSettingRequest" />
|
1911 |
+
<output message="typens:mshopUtilityGetSettingResponse" />
|
1912 |
+
</operation>
|
1913 |
+
|
1914 |
+
<operation name="mshopUtilityGetMshopVersion">
|
1915 |
+
<documentation>Get Mshop Module Version</documentation>
|
1916 |
+
<input message="typens:mshopUtilityGetMshopVersionRequest" />
|
1917 |
+
<output message="typens:mshopUtilityGetMshopVersionResponse" />
|
1918 |
+
</operation>
|
1919 |
+
|
1920 |
+
<operation name="mshopUtilityGetMshopB2BVersion">
|
1921 |
+
<documentation>Get MshopB2B Module Version</documentation>
|
1922 |
+
<input message="typens:mshopUtilityGetMshopB2BVersionRequest" />
|
1923 |
+
<output message="typens:mshopUtilityGetMshopB2BVersionResponse" />
|
1924 |
+
</operation>
|
1925 |
+
|
1926 |
+
<operation name="mshopUtilityGetOrderInvoiceDate">
|
1927 |
+
<documentation>Get Order Invoice Date</documentation>
|
1928 |
+
<input message="typens:mshopUtilityGetOrderInvoiceDateRequest" />
|
1929 |
+
<output message="typens:mshopUtilityGetOrderInvoiceDateResponse" />
|
1930 |
+
</operation>
|
1931 |
+
<!--
|
1932 |
+
<operation name="mshopUtilityGetMshopType">
|
1933 |
+
<documentation>Get Mshop extension type</documentation>
|
1934 |
+
<input message="typens:mshopUtilityGetMshopTypeRequest" />
|
1935 |
+
<output message="typens:mshopUtilityGetMshopTypeResponse" />
|
1936 |
+
</operation>
|
1937 |
+
-->
|
1938 |
+
<operation name="mshopUtilityIsMshopB2BInstalled">
|
1939 |
+
<documentation>Check if MshopB2B Is installed</documentation>
|
1940 |
+
<input message="typens:mshopUtilityIsMshopB2BInstalledRequest" />
|
1941 |
+
<output message="typens:mshopUtilityIsMshopB2BInstalledResponse" />
|
1942 |
+
</operation>
|
1943 |
+
|
1944 |
+
|
1945 |
+
<!-- end utillity -->
|
1946 |
+
|
1947 |
+
<!-- attribute operations -->
|
1948 |
+
|
1949 |
+
<operation name="mshopProductAttributeOptionId">
|
1950 |
+
<documentation>Get attribute option id</documentation>
|
1951 |
+
<input message="typens:mshopProductAttributeOptionIdRequest" />
|
1952 |
+
<output message="typens:mshopProductAttributeOptionIdResponse" />
|
1953 |
+
</operation>
|
1954 |
+
|
1955 |
+
<operation name="mshopProductAttributeSetOptions">
|
1956 |
+
<documentation>Set Attribute options</documentation>
|
1957 |
+
<input message="typens:mshopProductAttributeSetOptionsRequest" />
|
1958 |
+
<output message="typens:mshopProductAttributeSetOptionsResponse" />
|
1959 |
+
</operation>
|
1960 |
+
|
1961 |
+
<operation name="mshopProductAttributeDeleteOptions">
|
1962 |
+
<documentation>Delete Attribute options</documentation>
|
1963 |
+
<input message="typens:mshopProductAttributeDeleteOptionsRequest" />
|
1964 |
+
<output message="typens:mshopProductAttributeDeleteOptionsResponse" />
|
1965 |
+
</operation>
|
1966 |
+
|
1967 |
+
<operation name="mshopProductAttributeCreate">
|
1968 |
+
<documentation>Create product attribute</documentation>
|
1969 |
+
<input message="typens:mshopProductAttributeCreateRequest" />
|
1970 |
+
<output message="typens:mshopProductAttributeCreateResponse" />
|
1971 |
+
</operation>
|
1972 |
+
|
1973 |
+
<operation name="mshopProductAttributeDelete">
|
1974 |
+
<documentation>Delete product attribute</documentation>
|
1975 |
+
<input message="typens:mshopProductAttributeDeleteRequest" />
|
1976 |
+
<output message="typens:mshopProductAttributeDeleteResponse" />
|
1977 |
+
</operation>
|
1978 |
+
|
1979 |
+
<operation name="mshopProductAttributeAddOptions">
|
1980 |
+
<documentation>Add options to the attribute</documentation>
|
1981 |
+
<input message="typens:mshopProductAttributeAddOptionsRequest" />
|
1982 |
+
<output message="typens:mshopProductAttributeAddOptionsResponse" />
|
1983 |
+
</operation>
|
1984 |
+
|
1985 |
+
<operation name="mshopProductAttributeSetsThatContain">
|
1986 |
+
<documentation>Retrive sets that contain list of attributes
|
1987 |
+
</documentation>
|
1988 |
+
<input message="typens:mshopProductAttributeSetsThatContainRequest" />
|
1989 |
+
<output message="typens:mshopProductAttributeSetsThatContainResponse" />
|
1990 |
+
</operation>
|
1991 |
+
|
1992 |
+
<operation name="mshopProductAttributeCopySet">
|
1993 |
+
<documentation>Copy attribute set to the new one</documentation>
|
1994 |
+
<input message="typens:mshopProductAttributeCopySetRequest" />
|
1995 |
+
<output message="typens:mshopProductAttributeCopySetResponse" />
|
1996 |
+
</operation>
|
1997 |
+
|
1998 |
+
<operation name="mshopProductAttributeAddToSet">
|
1999 |
+
<documentation>Add atribute to the set</documentation>
|
2000 |
+
<input message="typens:mshopProductAttributeAddToSetRequest" />
|
2001 |
+
<output message="typens:mshopProductAttributeAddToSetResponse" />
|
2002 |
+
</operation>
|
2003 |
+
|
2004 |
+
<!-- end attribute -->
|
2005 |
+
|
2006 |
+
<!-- catalog operations -->
|
2007 |
+
<operation name="mshopCatalogDisableProducts">
|
2008 |
+
<documentation>Massively Updates the Product Status</documentation>
|
2009 |
+
<input message="typens:mshopCatalogDisableProductsRequest" />
|
2010 |
+
<output message="typens:mshopCatalogDisableProductsResponse" />
|
2011 |
+
</operation>
|
2012 |
+
|
2013 |
+
<operation name="mshopCatalogInventoryStockUpdate">
|
2014 |
+
<documentation>Massively Updates the Product Inventory: Qty</documentation>
|
2015 |
+
<input message="typens:mshopCatalogInventoryStockUpdateRequest" />
|
2016 |
+
<output message="typens:mshopCatalogInventoryStockUpdateResponse" />
|
2017 |
+
</operation>
|
2018 |
+
|
2019 |
+
<operation name="mshopCatalogInventoryStockItemUpdate">
|
2020 |
+
<documentation>Update the Product Inventory: Qty</documentation>
|
2021 |
+
<input message="typens:mshopCatalogInventoryStockItemUpdateRequest" />
|
2022 |
+
<output message="typens:mshopCatalogInventoryStockItemUpdateResponse" />
|
2023 |
+
</operation>
|
2024 |
+
|
2025 |
+
<operation name="mshopCatalogInventoryStockItemFutureStockUpdate">
|
2026 |
+
<documentation>Update the Product Inventory: Qty</documentation>
|
2027 |
+
<input message="typens:mshopCatalogInventoryStockItemFutureStockUpdateRequest" />
|
2028 |
+
<output message="typens:mshopCatalogInventoryStockItemFutureStockUpdateResponse" />
|
2029 |
+
</operation>
|
2030 |
+
|
2031 |
+
|
2032 |
+
<operation name="mshopCatalogSimpleProductsList">
|
2033 |
+
<documentation>Return Simple Products SKUs</documentation>
|
2034 |
+
<input message="typens:mshopCatalogSimpleProductsListRequest" />
|
2035 |
+
<output message="typens:mshopCatalogSimpleProductsListResponse" />
|
2036 |
+
</operation>
|
2037 |
+
|
2038 |
+
<operation name="mshopCatalogProductsList">
|
2039 |
+
<documentation>Return All Products SKUs</documentation>
|
2040 |
+
<input message="typens:mshopCatalogProductsListRequest" />
|
2041 |
+
<output message="typens:mshopCatalogProductsListResponse" />
|
2042 |
+
</operation>
|
2043 |
+
|
2044 |
+
<operation name="mshopCatalogProductFullInfo">
|
2045 |
+
<documentation>Get Product Info For All Store Views</documentation>
|
2046 |
+
<input message="typens:mshopCatalogProductFullInfoRequest" />
|
2047 |
+
<output message="typens:mshopCatalogProductFullInfoResponse" />
|
2048 |
+
</operation>
|
2049 |
+
|
2050 |
+
<operation name="mshopCatalogCheckCreateGroupedProduct">
|
2051 |
+
<documentation>Create grouped product</documentation>
|
2052 |
+
<input message="typens:mshopCatalogCheckCreateGroupedProductRequest" />
|
2053 |
+
<output message="typens:mshopCatalogCheckCreateGroupedProductResponse" />
|
2054 |
+
</operation>
|
2055 |
+
|
2056 |
+
<operation name="mshopCatalogSetProductVisibleInStoreViews">
|
2057 |
+
<documentation>Set product visibility in store views</documentation>
|
2058 |
+
<input message="typens:mshopCatalogSetProductVisibleInStoreViewsRequest" />
|
2059 |
+
<output message="typens:mshopCatalogSetProductVisibleInStoreViewsResponse" />
|
2060 |
+
</operation>
|
2061 |
+
|
2062 |
+
<operation name="mshopCatalogRemoveProductCategoriesBelow">
|
2063 |
+
<documentation>Remove product from categories below root category
|
2064 |
+
</documentation>
|
2065 |
+
<input message="typens:mshopCatalogRemoveProductCategoriesBelowRequest" />
|
2066 |
+
<output message="typens:mshopCatalogRemoveProductCategoriesBelowResponse" />
|
2067 |
+
</operation>
|
2068 |
+
|
2069 |
+
<operation name="mshopCatalogCheckCreateConfigurableProduct">
|
2070 |
+
<documentation>Create configurable product</documentation>
|
2071 |
+
<input message="typens:mshopCatalogCheckCreateConfigurableProductRequest" />
|
2072 |
+
<output message="typens:mshopCatalogCheckCreateConfigurableProductResponse" />
|
2073 |
+
</operation>
|
2074 |
+
|
2075 |
+
<operation name="mshopCatalogSetProductsToComplex">
|
2076 |
+
<documentation>Add simple products to configurable or grouped product
|
2077 |
+
</documentation>
|
2078 |
+
<input message="typens:mshopCatalogSetProductsToComplexRequest" />
|
2079 |
+
<output message="typens:mshopCatalogSetProductsToComplexResponse" />
|
2080 |
+
</operation>
|
2081 |
+
|
2082 |
+
<operation name="mshopCatalogProductCreate">
|
2083 |
+
<documentation>Create product method compatible with versions pre 1.6.2
|
2084 |
+
</documentation>
|
2085 |
+
<input message="typens:mshopCatalogProductCreateRequest" />
|
2086 |
+
<output message="typens:mshopCatalogProductCreateResponse" />
|
2087 |
+
</operation>
|
2088 |
+
|
2089 |
+
<operation name="mshopCatalogProductGetProductsChangedSince">
|
2090 |
+
<documentation>
|
2091 |
+
</documentation>
|
2092 |
+
<input message="typens:mshopCatalogProductGetProductsChangedSinceRequest" />
|
2093 |
+
<output message="typens:mshopCatalogProductGetProductsChangedSinceResponse" />
|
2094 |
+
</operation>
|
2095 |
+
|
2096 |
+
<operation name="mshopCatalogProductUpdate">
|
2097 |
+
<documentation>Update product method compatible with versions pre 1.6.2
|
2098 |
+
</documentation>
|
2099 |
+
<input message="typens:mshopCatalogProductUpdateRequest" />
|
2100 |
+
<output message="typens:mshopCatalogProductUpdateResponse" />
|
2101 |
+
</operation>
|
2102 |
+
|
2103 |
+
<operation name="mshopCatalogImportImages">
|
2104 |
+
<documentation>Import product images from ftp location
|
2105 |
+
</documentation>
|
2106 |
+
<input message="typens:mshopCatalogImportImagesRequest" />
|
2107 |
+
<output message="typens:mshopCatalogImportImagesResponse" />
|
2108 |
+
</operation>
|
2109 |
+
|
2110 |
+
<operation name="mshopCatalogProductAttributeTierPriceUpdate">
|
2111 |
+
<documentation>Update tier prices of product(percentage or fixed)</documentation>
|
2112 |
+
<input message="typens:mshopCatalogProductAttributeTierPriceUpdateRequest" />
|
2113 |
+
<output message="typens:mshopCatalogProductAttributeTierPriceUpdateResponse" />
|
2114 |
+
</operation>
|
2115 |
+
|
2116 |
+
|
2117 |
+
|
2118 |
+
|
2119 |
+
<!-- end catalog -->
|
2120 |
+
|
2121 |
+
<!-- catalog category operations -->
|
2122 |
+
|
2123 |
+
<operation name="mshopMCategoryCreate">
|
2124 |
+
<documentation>Create new category</documentation>
|
2125 |
+
<input message="typens:mshopMCategoryCreateRequest" />
|
2126 |
+
<output message="typens:mshopMCategoryCreateResponse" />
|
2127 |
+
</operation>
|
2128 |
+
|
2129 |
+
|
2130 |
+
|
2131 |
+
<!-- end catalog category -->
|
2132 |
+
<!-- sales operations -->
|
2133 |
+
|
2134 |
+
<operation name="mshopSalesOrderShipment">
|
2135 |
+
<documentation>Create new shipment for order</documentation>
|
2136 |
+
<input message="typens:mshopSalesOrderShipmentRequest" />
|
2137 |
+
<output message="typens:mshopSalesOrderShipmentResponse" />
|
2138 |
+
</operation>
|
2139 |
+
<operation name="mshopSalesCreditMemo">
|
2140 |
+
<documentation>Retrieve list of order increment ids</documentation>
|
2141 |
+
<input message="typens:mshopSalesCreditMemoRequest" />
|
2142 |
+
<output message="typens:mshopSalesCreditMemoResponse" />
|
2143 |
+
</operation>
|
2144 |
+
|
2145 |
+
<operation name="mshopSalesGetOrdersFromWithStatus">
|
2146 |
+
<documentation>Retrieve list of order increment ids</documentation>
|
2147 |
+
<input message="typens:mshopSalesGetOrdersFromWithStatusRequest" />
|
2148 |
+
<output message="typens:mshopSalesGetOrdersFromWithStatusResponse" />
|
2149 |
+
</operation>
|
2150 |
+
|
2151 |
+
<operation name="mshopSalesGetCreditmemosFrom">
|
2152 |
+
<documentation>Retrieve list of creditmemo increment ids</documentation>
|
2153 |
+
<input message="typens:mshopSalesGetCreditmemosFromRequest" />
|
2154 |
+
<output message="typens:mshopSalesGetCreditmemosFromResponse" />
|
2155 |
+
</operation>
|
2156 |
+
|
2157 |
+
<operation name="mshopSalesGetSalesForOrders">
|
2158 |
+
<documentation>Retrieve list of order items ant their sales</documentation>
|
2159 |
+
<input message="typens:mshopSalesGetSalesForOrdersRequest" />
|
2160 |
+
<output message="typens:mshopSalesGetSalesForOrdersResponse" />
|
2161 |
+
</operation>
|
2162 |
+
|
2163 |
+
<operation name="mshopSalesGetSalesForOrdersWithStatus">
|
2164 |
+
<documentation>Retrieve list of order items ant their sales</documentation>
|
2165 |
+
<input message="typens:mshopSalesGetSalesForOrdersWithStatusRequest" />
|
2166 |
+
<output message="typens:mshopSalesGetSalesForOrdersWithStatusResponse" />
|
2167 |
+
</operation>
|
2168 |
+
|
2169 |
+
<operation name="mshopSalesOrderList">
|
2170 |
+
<documentation>Retrieve list of orders by filters</documentation>
|
2171 |
+
<input message="typens:salesOrderListRequest" />
|
2172 |
+
<output message="typens:mshopSalesOrderListResponse" />
|
2173 |
+
</operation>
|
2174 |
+
|
2175 |
+
<operation name="mshopSalesHasTaxClassForShipping">
|
2176 |
+
<documentation>Checks if has tax class for shipping</documentation>
|
2177 |
+
<input message="typens:mshopSalesHasTaxClassForShippingRequest" />
|
2178 |
+
<output message="typens:mshopSalesHasTaxClassForShippingResponse" />
|
2179 |
+
</operation>
|
2180 |
+
|
2181 |
+
|
2182 |
+
<operation name="mshopSalesOrderCreateInvoice">
|
2183 |
+
<documentation>Create invoice for mamut order</documentation>
|
2184 |
+
<input message="typens:mshopSalesOrderCreateInvoiceRequest" />
|
2185 |
+
<output message="typens:mshopSalesOrderCreateInvoiceResponse" />
|
2186 |
+
</operation>
|
2187 |
+
|
2188 |
+
<operation name="mshopSalesOrderCancel">
|
2189 |
+
<documentation>Order cancellation</documentation>
|
2190 |
+
<input message="typens:mshopSalesOrderCancelRequest" />
|
2191 |
+
<output message="typens:mshopSalesOrderCancelResponse" />
|
2192 |
+
</operation>
|
2193 |
+
|
2194 |
+
<operation name="mshopSalesOrderNotInStock">
|
2195 |
+
<documentation>Some ordered items are not in stock</documentation>
|
2196 |
+
<input message="typens:mshopSalesOrderNotInStockRequest" />
|
2197 |
+
<output message="typens:mshopSalesOrderNotInStockResponse" />
|
2198 |
+
</operation>
|
2199 |
+
|
2200 |
+
<operation name="mshopSalesOrderPicked">
|
2201 |
+
<documentation>Order is picked</documentation>
|
2202 |
+
<input message="typens:mshopSalesOrderPickedRequest" />
|
2203 |
+
<output message="typens:mshopSalesOrderPickedResponse" />
|
2204 |
+
</operation>
|
2205 |
+
|
2206 |
+
<operation name="mshopSalesOrderCreateShipment">
|
2207 |
+
<documentation>Order is shipped</documentation>
|
2208 |
+
<input message="typens:mshopSalesOrderCreateShipmentRequest" />
|
2209 |
+
<output message="typens:mshopSalesOrderCreateShipmentResponse" />
|
2210 |
+
</operation>
|
2211 |
+
|
2212 |
+
<operation name="mshopSalesOrderCustomFieldsMapping">
|
2213 |
+
<documentation>Order custom fields</documentation>
|
2214 |
+
<input message="typens:mshopSalesOrderCustomFieldsMappingRequest" />
|
2215 |
+
<output message="typens:mshopSalesOrderCustomFieldsMappingResponse" />
|
2216 |
+
</operation>
|
2217 |
+
|
2218 |
+
|
2219 |
+
<!-- end sales opertations -->
|
2220 |
+
|
2221 |
+
|
2222 |
+
|
2223 |
+
|
2224 |
+
</portType>
|
2225 |
+
<binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
|
2226 |
+
<soap:binding style="rpc"
|
2227 |
+
transport="http://schemas.xmlsoap.org/soap/http" />
|
2228 |
+
|
2229 |
+
<!-- catalog category operations -->
|
2230 |
+
|
2231 |
+
<operation name="mshopMCategoryCreate">
|
2232 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2233 |
+
<input>
|
2234 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2235 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2236 |
+
</input>
|
2237 |
+
<output>
|
2238 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2239 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2240 |
+
</output>
|
2241 |
+
</operation>
|
2242 |
+
|
2243 |
+
<!-- end catalog category operations -->
|
2244 |
+
|
2245 |
+
<!-- catalog operations -->
|
2246 |
+
<operation name="mshopCatalogDisableProducts">
|
2247 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2248 |
+
<input>
|
2249 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2250 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2251 |
+
</input>
|
2252 |
+
<output>
|
2253 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2254 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2255 |
+
</output>
|
2256 |
+
</operation>
|
2257 |
+
|
2258 |
+
<operation name="mshopCatalogInventoryStockUpdate">
|
2259 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2260 |
+
<input>
|
2261 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2262 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2263 |
+
</input>
|
2264 |
+
<output>
|
2265 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2266 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2267 |
+
</output>
|
2268 |
+
</operation>
|
2269 |
+
|
2270 |
+
<operation name="mshopCatalogInventoryStockItemUpdate">
|
2271 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2272 |
+
<input>
|
2273 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2274 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2275 |
+
</input>
|
2276 |
+
<output>
|
2277 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2278 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2279 |
+
</output>
|
2280 |
+
</operation>
|
2281 |
+
|
2282 |
+
<operation name="mshopCatalogInventoryStockItemFutureStockUpdate">
|
2283 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2284 |
+
<input>
|
2285 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2286 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2287 |
+
</input>
|
2288 |
+
<output>
|
2289 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2290 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2291 |
+
</output>
|
2292 |
+
</operation>
|
2293 |
+
|
2294 |
+
<operation name="mshopCatalogSimpleProductsList">
|
2295 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2296 |
+
<input>
|
2297 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2298 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2299 |
+
</input>
|
2300 |
+
<output>
|
2301 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2302 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2303 |
+
</output>
|
2304 |
+
</operation>
|
2305 |
+
|
2306 |
+
<operation name="mshopCatalogProductsList">
|
2307 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2308 |
+
<input>
|
2309 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2310 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2311 |
+
</input>
|
2312 |
+
<output>
|
2313 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2314 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2315 |
+
</output>
|
2316 |
+
</operation>
|
2317 |
+
|
2318 |
+
|
2319 |
+
<operation name="mshopCatalogProductFullInfo">
|
2320 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2321 |
+
<input>
|
2322 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2323 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2324 |
+
</input>
|
2325 |
+
<output>
|
2326 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2327 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2328 |
+
</output>
|
2329 |
+
</operation>
|
2330 |
+
|
2331 |
+
<operation name="mshopCatalogCheckCreateGroupedProduct">
|
2332 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2333 |
+
<input>
|
2334 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2335 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2336 |
+
</input>
|
2337 |
+
<output>
|
2338 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2339 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2340 |
+
</output>
|
2341 |
+
</operation>
|
2342 |
+
<operation name="mshopCatalogSetProductsToComplex">
|
2343 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2344 |
+
<input>
|
2345 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2346 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2347 |
+
</input>
|
2348 |
+
<output>
|
2349 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2350 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2351 |
+
</output>
|
2352 |
+
</operation>
|
2353 |
+
|
2354 |
+
<operation name="mshopCatalogCheckCreateConfigurableProduct">
|
2355 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2356 |
+
<input>
|
2357 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2358 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2359 |
+
</input>
|
2360 |
+
<output>
|
2361 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2362 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2363 |
+
</output>
|
2364 |
+
</operation>
|
2365 |
+
|
2366 |
+
<operation name="mshopCatalogRemoveProductCategoriesBelow">
|
2367 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2368 |
+
<input>
|
2369 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2370 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2371 |
+
</input>
|
2372 |
+
<output>
|
2373 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2374 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2375 |
+
</output>
|
2376 |
+
</operation>
|
2377 |
+
|
2378 |
+
<operation name="mshopCatalogSetProductVisibleInStoreViews">
|
2379 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2380 |
+
<input>
|
2381 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2382 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2383 |
+
</input>
|
2384 |
+
<output>
|
2385 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2386 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2387 |
+
</output>
|
2388 |
+
</operation>
|
2389 |
+
|
2390 |
+
<operation name="mshopCatalogProductCreate">
|
2391 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2392 |
+
<input>
|
2393 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2394 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2395 |
+
</input>
|
2396 |
+
<output>
|
2397 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2398 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2399 |
+
</output>
|
2400 |
+
</operation>
|
2401 |
+
|
2402 |
+
<operation name="mshopCatalogProductGetProductsChangedSince">
|
2403 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2404 |
+
<input>
|
2405 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2406 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2407 |
+
</input>
|
2408 |
+
<output>
|
2409 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2410 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2411 |
+
</output>
|
2412 |
+
</operation>
|
2413 |
+
|
2414 |
+
<operation name="mshopCatalogProductUpdate">
|
2415 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2416 |
+
<input>
|
2417 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2418 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2419 |
+
</input>
|
2420 |
+
<output>
|
2421 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2422 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2423 |
+
</output>
|
2424 |
+
</operation>
|
2425 |
+
|
2426 |
+
<operation name="mshopCatalogImportImages">
|
2427 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2428 |
+
<input>
|
2429 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2430 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2431 |
+
</input>
|
2432 |
+
<output>
|
2433 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2434 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2435 |
+
</output>
|
2436 |
+
</operation>
|
2437 |
+
|
2438 |
+
|
2439 |
+
<operation name="mshopCatalogProductAttributeTierPriceUpdate">
|
2440 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2441 |
+
<input>
|
2442 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2443 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2444 |
+
</input>
|
2445 |
+
<output>
|
2446 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2447 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2448 |
+
</output>
|
2449 |
+
</operation>
|
2450 |
+
|
2451 |
+
<!-- end catalog operations -->
|
2452 |
+
|
2453 |
+
<!-- attribute operations -->
|
2454 |
+
|
2455 |
+
<operation name="mshopProductAttributeOptionId">
|
2456 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2457 |
+
<input>
|
2458 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2459 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2460 |
+
</input>
|
2461 |
+
<output>
|
2462 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2463 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2464 |
+
</output>
|
2465 |
+
</operation>
|
2466 |
+
|
2467 |
+
|
2468 |
+
<operation name="mshopProductAttributeSetOptions">
|
2469 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2470 |
+
<input>
|
2471 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2472 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2473 |
+
</input>
|
2474 |
+
<output>
|
2475 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2476 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2477 |
+
</output>
|
2478 |
+
</operation>
|
2479 |
+
|
2480 |
+
<operation name="mshopProductAttributeDeleteOptions">
|
2481 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2482 |
+
<input>
|
2483 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2484 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2485 |
+
</input>
|
2486 |
+
<output>
|
2487 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2488 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2489 |
+
</output>
|
2490 |
+
</operation>
|
2491 |
+
|
2492 |
+
<operation name="mshopProductAttributeAddToSet">
|
2493 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2494 |
+
<input>
|
2495 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2496 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2497 |
+
</input>
|
2498 |
+
<output>
|
2499 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2500 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2501 |
+
</output>
|
2502 |
+
</operation>
|
2503 |
+
|
2504 |
+
<operation name="mshopProductAttributeCopySet">
|
2505 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2506 |
+
<input>
|
2507 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2508 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2509 |
+
</input>
|
2510 |
+
<output>
|
2511 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2512 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2513 |
+
</output>
|
2514 |
+
</operation>
|
2515 |
+
|
2516 |
+
<operation name="mshopProductAttributeSetsThatContain">
|
2517 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2518 |
+
<input>
|
2519 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2520 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2521 |
+
</input>
|
2522 |
+
<output>
|
2523 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2524 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2525 |
+
</output>
|
2526 |
+
</operation>
|
2527 |
+
|
2528 |
+
<operation name="mshopProductAttributeAddOptions">
|
2529 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2530 |
+
<input>
|
2531 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2532 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2533 |
+
</input>
|
2534 |
+
<output>
|
2535 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2536 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2537 |
+
</output>
|
2538 |
+
</operation>
|
2539 |
+
|
2540 |
+
<operation name="mshopProductAttributeDelete">
|
2541 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2542 |
+
<input>
|
2543 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2544 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2545 |
+
</input>
|
2546 |
+
<output>
|
2547 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2548 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2549 |
+
</output>
|
2550 |
+
</operation>
|
2551 |
+
|
2552 |
+
<operation name="mshopProductAttributeCreate">
|
2553 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2554 |
+
<input>
|
2555 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2556 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2557 |
+
</input>
|
2558 |
+
<output>
|
2559 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2560 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2561 |
+
</output>
|
2562 |
+
</operation>
|
2563 |
+
|
2564 |
+
<!-- end attribute operations -->
|
2565 |
+
|
2566 |
+
<!-- utility operations -->
|
2567 |
+
<operation name="mshopUtilityListTaxClassRules">
|
2568 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2569 |
+
<input>
|
2570 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2571 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2572 |
+
</input>
|
2573 |
+
<output>
|
2574 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2575 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2576 |
+
</output>
|
2577 |
+
</operation>
|
2578 |
+
|
2579 |
+
<operation name="mshopUtilityListPaymentStatuses">
|
2580 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2581 |
+
<input>
|
2582 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2583 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2584 |
+
</input>
|
2585 |
+
<output>
|
2586 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2587 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2588 |
+
</output>
|
2589 |
+
</operation>
|
2590 |
+
|
2591 |
+
<operation name="mshopUtilityListProductTaxClasses">
|
2592 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2593 |
+
<input>
|
2594 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2595 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2596 |
+
</input>
|
2597 |
+
<output>
|
2598 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2599 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2600 |
+
</output>
|
2601 |
+
</operation>
|
2602 |
+
|
2603 |
+
<operation name="mshopUtilityCleanCache">
|
2604 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2605 |
+
<input>
|
2606 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2607 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2608 |
+
</input>
|
2609 |
+
<output>
|
2610 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2611 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2612 |
+
</output>
|
2613 |
+
</operation>
|
2614 |
+
|
2615 |
+
<operation name="mshopUtilityListPaymentMethods">
|
2616 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2617 |
+
<input>
|
2618 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2619 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2620 |
+
</input>
|
2621 |
+
<output>
|
2622 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2623 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2624 |
+
</output>
|
2625 |
+
</operation>
|
2626 |
+
|
2627 |
+
<operation name="mshopUtilityListShippingMethods">
|
2628 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2629 |
+
<input>
|
2630 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2631 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2632 |
+
</input>
|
2633 |
+
<output>
|
2634 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2635 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2636 |
+
</output>
|
2637 |
+
</operation>
|
2638 |
+
|
2639 |
+
<operation name="mshopUtilityListStoreViews">
|
2640 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2641 |
+
<input>
|
2642 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2643 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2644 |
+
</input>
|
2645 |
+
<output>
|
2646 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2647 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2648 |
+
</output>
|
2649 |
+
</operation>
|
2650 |
+
|
2651 |
+
<operation name="mshopUtilityListPaymentMethodsByStore">
|
2652 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2653 |
+
<input>
|
2654 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2655 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2656 |
+
</input>
|
2657 |
+
<output>
|
2658 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2659 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2660 |
+
</output>
|
2661 |
+
</operation>
|
2662 |
+
|
2663 |
+
<operation name="mshopUtilityGetMagentoVersion">
|
2664 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2665 |
+
<input>
|
2666 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2667 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2668 |
+
</input>
|
2669 |
+
<output>
|
2670 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2671 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2672 |
+
</output>
|
2673 |
+
</operation>
|
2674 |
+
|
2675 |
+
<operation name="mshopUtilityGetSetting">
|
2676 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2677 |
+
<input>
|
2678 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2679 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2680 |
+
</input>
|
2681 |
+
<output>
|
2682 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2683 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2684 |
+
</output>
|
2685 |
+
</operation>
|
2686 |
+
|
2687 |
+
|
2688 |
+
<operation name="mshopUtilityGetMshopVersion">
|
2689 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2690 |
+
<input>
|
2691 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2692 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2693 |
+
</input>
|
2694 |
+
<output>
|
2695 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2696 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2697 |
+
</output>
|
2698 |
+
</operation>
|
2699 |
+
|
2700 |
+
<operation name="mshopUtilityGetMshopB2BVersion">
|
2701 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2702 |
+
<input>
|
2703 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2704 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2705 |
+
</input>
|
2706 |
+
<output>
|
2707 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2708 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2709 |
+
</output>
|
2710 |
+
</operation>
|
2711 |
+
|
2712 |
+
|
2713 |
+
<operation name="mshopUtilityGetOrderInvoiceDate">
|
2714 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2715 |
+
<input>
|
2716 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2717 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2718 |
+
</input>
|
2719 |
+
<output>
|
2720 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2721 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2722 |
+
</output>
|
2723 |
+
</operation>
|
2724 |
+
<!--
|
2725 |
+
<operation name="mshopUtilityGetMshopType">
|
2726 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2727 |
+
<input>
|
2728 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2729 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2730 |
+
</input>
|
2731 |
+
<output>
|
2732 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2733 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2734 |
+
</output>
|
2735 |
+
</operation>
|
2736 |
+
-->
|
2737 |
+
<operation name="mshopUtilityIsMshopB2BInstalled">
|
2738 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2739 |
+
<input>
|
2740 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2741 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2742 |
+
</input>
|
2743 |
+
<output>
|
2744 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2745 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2746 |
+
</output>
|
2747 |
+
</operation>
|
2748 |
+
|
2749 |
+
|
2750 |
+
|
2751 |
+
|
2752 |
+
<!-- end utility operations -->
|
2753 |
+
|
2754 |
+
<!-- sales operations -->
|
2755 |
+
|
2756 |
+
<operation name="mshopSalesOrderShipment">
|
2757 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2758 |
+
<input>
|
2759 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2760 |
+
</input>
|
2761 |
+
<output>
|
2762 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2763 |
+
</output>
|
2764 |
+
</operation>
|
2765 |
+
<operation name="mshopSalesCreditMemo">
|
2766 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2767 |
+
<input>
|
2768 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2769 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2770 |
+
</input>
|
2771 |
+
<output>
|
2772 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2773 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2774 |
+
</output>
|
2775 |
+
</operation>
|
2776 |
+
|
2777 |
+
<operation name="mshopSalesGetOrdersFromWithStatus">
|
2778 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2779 |
+
<input>
|
2780 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2781 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2782 |
+
</input>
|
2783 |
+
<output>
|
2784 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2785 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2786 |
+
</output>
|
2787 |
+
</operation>
|
2788 |
+
<operation name="mshopSalesGetCreditmemosFrom">
|
2789 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2790 |
+
<input>
|
2791 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2792 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2793 |
+
</input>
|
2794 |
+
<output>
|
2795 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2796 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2797 |
+
</output>
|
2798 |
+
</operation>
|
2799 |
+
|
2800 |
+
<operation name="mshopSalesGetSalesForOrders">
|
2801 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2802 |
+
<input>
|
2803 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2804 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2805 |
+
</input>
|
2806 |
+
<output>
|
2807 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2808 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2809 |
+
</output>
|
2810 |
+
</operation>
|
2811 |
+
|
2812 |
+
<operation name="mshopSalesGetSalesForOrdersWithStatus">
|
2813 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2814 |
+
<input>
|
2815 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2816 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2817 |
+
</input>
|
2818 |
+
<output>
|
2819 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2820 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2821 |
+
</output>
|
2822 |
+
</operation>
|
2823 |
+
|
2824 |
+
<operation name="mshopSalesOrderList">
|
2825 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2826 |
+
<input>
|
2827 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2828 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2829 |
+
</input>
|
2830 |
+
<output>
|
2831 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2832 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2833 |
+
</output>
|
2834 |
+
</operation>
|
2835 |
+
|
2836 |
+
<operation name="mshopSalesHasTaxClassForShipping">
|
2837 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2838 |
+
<input>
|
2839 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2840 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2841 |
+
</input>
|
2842 |
+
<output>
|
2843 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2844 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2845 |
+
</output>
|
2846 |
+
</operation>
|
2847 |
+
|
2848 |
+
<operation name="mshopSalesOrderCreateInvoice">
|
2849 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2850 |
+
<input>
|
2851 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2852 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2853 |
+
</input>
|
2854 |
+
<output>
|
2855 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2856 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2857 |
+
</output>
|
2858 |
+
</operation>
|
2859 |
+
|
2860 |
+
<operation name="mshopSalesOrderCancel">
|
2861 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2862 |
+
<input>
|
2863 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2864 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2865 |
+
</input>
|
2866 |
+
<output>
|
2867 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2868 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2869 |
+
</output>
|
2870 |
+
</operation>
|
2871 |
+
|
2872 |
+
<operation name="mshopSalesOrderNotInStock">
|
2873 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2874 |
+
<input>
|
2875 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2876 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2877 |
+
</input>
|
2878 |
+
<output>
|
2879 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2880 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2881 |
+
</output>
|
2882 |
+
</operation>
|
2883 |
+
|
2884 |
+
<operation name="mshopSalesOrderPicked">
|
2885 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2886 |
+
<input>
|
2887 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2888 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2889 |
+
</input>
|
2890 |
+
<output>
|
2891 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2892 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2893 |
+
</output>
|
2894 |
+
</operation>
|
2895 |
+
|
2896 |
+
<operation name="mshopSalesOrderCreateShipment">
|
2897 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2898 |
+
<input>
|
2899 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2900 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2901 |
+
</input>
|
2902 |
+
<output>
|
2903 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2904 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2905 |
+
</output>
|
2906 |
+
</operation>
|
2907 |
+
|
2908 |
+
<operation name="mshopSalesOrderCustomFieldsMapping">
|
2909 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
2910 |
+
<input>
|
2911 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2912 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2913 |
+
</input>
|
2914 |
+
<output>
|
2915 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
2916 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
2917 |
+
</output>
|
2918 |
+
</operation>
|
2919 |
+
|
2920 |
+
<!-- end of sales operations -->
|
2921 |
+
|
2922 |
+
</binding>
|
2923 |
+
<service name="{{var wsdl.name}}Service">
|
2924 |
+
<port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
|
2925 |
+
<soap:address location="{{var wsdl.url}}" />
|
2926 |
+
</port>
|
2927 |
+
</service>
|
2928 |
+
</definitions>
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-install-2.0.1.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->run("
|
8 |
+
CREATE TABLE IF NOT EXISTS {$this->getTable('ecomwise_settings_before_order')} (
|
9 |
+
`order_id` int(11) NOT NULL default '0',
|
10 |
+
`including_tax` int(1) NOT NULL default '0',
|
11 |
+
UNIQUE KEY `key_ecomwise_settings_before_order` (`order_id`,`including_tax`)
|
12 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
13 |
+
");
|
14 |
+
|
15 |
+
Mage::getModel('core/config')->saveConfig('tax/calculation/apply_after_discount', 1 );
|
16 |
+
|
17 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.10-2.1.0.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
$installer->startSetup();
|
4 |
+
|
5 |
+
$installer->run("
|
6 |
+
|
7 |
+
ALTER TABLE {$this->getTable('cataloginventory/stock_item')} ADD COLUMN mamut_store1 VARCHAR(30) ;
|
8 |
+
ALTER TABLE {$this->getTable('cataloginventory/stock_item')} ADD COLUMN mamut_store2 VARCHAR(30) ;
|
9 |
+
ALTER TABLE {$this->getTable('cataloginventory/stock_item')} ADD COLUMN mamut_store3 VARCHAR(30) ;
|
10 |
+
ALTER TABLE {$this->getTable('cataloginventory/stock_item')} ADD COLUMN mamut_store4 VARCHAR(30) ;
|
11 |
+
ALTER TABLE {$this->getTable('cataloginventory/stock_item')} ADD COLUMN mamut_store5 VARCHAR(30) ;
|
12 |
+
ALTER TABLE {$this->getTable('cataloginventory/stock_item')} ADD COLUMN mamut_nextdeliverydate VARCHAR(30) ;
|
13 |
+
|
14 |
+
");
|
15 |
+
|
16 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.3-2.0.4.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
Mage::getModel('core/config')->saveConfig('tax/calculation/apply_after_discount', 1 );
|
8 |
+
|
9 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.4-2.0.5.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.5-2.0.6.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.6-2.0.7.php
ADDED
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->addAttribute('invoice', 'mamut_invoice_id', array('type'=>'integer', 'visible'=> true, 'unsigned'=> true));
|
8 |
+
|
9 |
+
|
10 |
+
$templateTextShipment = '
|
11 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
12 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
13 |
+
<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
|
14 |
+
<tr>
|
15 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
16 |
+
<!-- [ header starts here] -->
|
17 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
18 |
+
<tr>
|
19 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{skin url="images/logo_email.gif" _area="frontend"}}" alt="{{var store.getFrontendName()}}" style="margin-bottom:10px;" border="0"/></a></td>
|
20 |
+
</tr>
|
21 |
+
<!-- [ middle starts here] -->
|
22 |
+
<tr>
|
23 |
+
<td valign="top">
|
24 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Hello, {{htmlescape var=$order.getCustomerName()}}</h1>
|
25 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
26 |
+
Thank you for your order from {{var store.getFrontendName()}}.
|
27 |
+
You can check the status of your order by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
28 |
+
If you have any questions about your order please contact us at <a href="mailto:{{config path="trans_email/ident_support/email"}}" style="color:#1E7EC8;">{{config path="trans_email/ident_support/email"}}</a> or call us at <span class="nobr">{{config path="general/store_information/phone"}}</span> Monday - Friday, 8am - 5pm PST.
|
29 |
+
</p>
|
30 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
31 |
+
Your shipping confirmation is below. Thank you again for your business.
|
32 |
+
</p>
|
33 |
+
</td>
|
34 |
+
</tr>
|
35 |
+
<tr>
|
36 |
+
<td>
|
37 |
+
<h2 style="font-size:18px; font-weight:normal; margin:0;">Your Shipment #{{var shipment.increment_id}} for Order #{{var order.increment_id}}</h2>
|
38 |
+
<p>Shipping tracking number: {{var trackingCode}}</p>
|
39 |
+
</td>
|
40 |
+
</tr>
|
41 |
+
<tr>
|
42 |
+
<td>
|
43 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
44 |
+
<thead>
|
45 |
+
<tr>
|
46 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Billing Information:</th>
|
47 |
+
<th width="10"></th>
|
48 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Payment Method:</th>
|
49 |
+
</tr>
|
50 |
+
</thead>
|
51 |
+
<tbody>
|
52 |
+
<tr>
|
53 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
54 |
+
{{var order.billing_address.format("html")}}
|
55 |
+
</td>
|
56 |
+
<td> </td>
|
57 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
58 |
+
{{var payment_html}}
|
59 |
+
</td>
|
60 |
+
</tr>
|
61 |
+
</tbody>
|
62 |
+
</table>
|
63 |
+
<br/>
|
64 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
65 |
+
<thead>
|
66 |
+
<tr>
|
67 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Information:</th>
|
68 |
+
<th width="10"></th>
|
69 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Method:</th>
|
70 |
+
</tr>
|
71 |
+
</thead>
|
72 |
+
<tbody>
|
73 |
+
<tr>
|
74 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
75 |
+
{{var order.shipping_address.format("html")}}
|
76 |
+
|
77 |
+
</td>
|
78 |
+
<td> </td>
|
79 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
80 |
+
{{var order.shipping_description}}
|
81 |
+
|
82 |
+
</td>
|
83 |
+
</tr>
|
84 |
+
</tbody>
|
85 |
+
</table>
|
86 |
+
<br/>
|
87 |
+
{{layout handle="sales_email_order_shipment_items" shipment=$shipment order=$order}}
|
88 |
+
<!-- {{block type=\'core/template\' area=\'frontend\' template=\'email/order/shipment/track.phtml\' shipment=$shipment order=$order}}-->
|
89 |
+
<p style="font-size:12px; margin:0 10px 10px 0">{{var comment}}</p>
|
90 |
+
</td>
|
91 |
+
</tr>
|
92 |
+
<tr>
|
93 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
94 |
+
</tr>
|
95 |
+
</table>
|
96 |
+
</td>
|
97 |
+
</tr>
|
98 |
+
</table>
|
99 |
+
</div>
|
100 |
+
</body>
|
101 |
+
';
|
102 |
+
$templateShipment = Mage::getModel('core/email_template');
|
103 |
+
$templateShipment->setTemplateCode('New Shipment With Tracking Number');
|
104 |
+
$templateShipment->setTemplateText($templateTextShipment);
|
105 |
+
$templateShipment->setTemplateType(2);
|
106 |
+
$templateShipment->setTemplateSubject('{{var store.getFrontendName()}}: Shipment # {{var shipment.increment_id}} for Order # {{var order.increment_id}}');
|
107 |
+
$templateShipment->save();
|
108 |
+
$tem_id = $templateShipment->getId();
|
109 |
+
Mage::getModel('core/config')->saveConfig('mshop/parameters_order_shipped/email_template', $tem_id);
|
110 |
+
|
111 |
+
|
112 |
+
$templateOrderCanceled = '
|
113 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
114 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
115 |
+
<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
|
116 |
+
<tr>
|
117 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
118 |
+
<!-- [ header starts here] -->
|
119 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
120 |
+
<tr>
|
121 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{skin url="images/logo_email.gif" _area=\'frontend\'}}" alt="{{var store.getFrontendName()}}" style="margin-bottom:10px;" border="0"/></a></td>
|
122 |
+
</tr>
|
123 |
+
<!-- [ middle starts here] -->
|
124 |
+
<tr>
|
125 |
+
<td valign="top">
|
126 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;">Dear {{htmlescape var=$order.getCustomerName()}},</h1>
|
127 |
+
<p style="font-size:12px; line-height:16px; margin:0 0 10px 0;">
|
128 |
+
Your order # {{var order.increment_id}} has been <br/>
|
129 |
+
<strong>{{var order.getStatusLabel()}}</strong>.
|
130 |
+
</p>
|
131 |
+
<p style="font-size:12px; line-height:16px; margin:0 0 10px 0;">You can check the status of your order by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.</p>
|
132 |
+
<p style="font-size:12px; line-height:16px; margin:0 0 10px 0;">{{var comment}}</p>
|
133 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
134 |
+
If you have any questions, please feel free to contact us at
|
135 |
+
<a href="mailto:{{config path=\'trans_email/ident_support/email\'}}" style="color:#1E7EC8;">{{config path=\'trans_email/ident_support/email\'}}</a>
|
136 |
+
or by phone at {{config path=\'general/store_information/phone\'}}.
|
137 |
+
</p>
|
138 |
+
</td>
|
139 |
+
</tr>
|
140 |
+
<tr>
|
141 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you again, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
142 |
+
</tr>
|
143 |
+
</table>
|
144 |
+
</td>
|
145 |
+
</tr>
|
146 |
+
</table>
|
147 |
+
</div>
|
148 |
+
</body>
|
149 |
+
';
|
150 |
+
$templateShipment = Mage::getModel('core/email_template');
|
151 |
+
$templateShipment->setTemplateCode('Order is canceled');
|
152 |
+
$templateShipment->setTemplateText($templateOrderCanceled);
|
153 |
+
$templateShipment->setTemplateType(2);
|
154 |
+
$templateShipment->setTemplateSubject('{{var store.getFrontendName()}}: Order # {{var order.increment_id}} is canceled');
|
155 |
+
$templateShipment->save();
|
156 |
+
$tem_id = $templateShipment->getId();
|
157 |
+
Mage::getModel('core/config')->saveConfig('mshop/parameters_order_cancellation/email_template', $tem_id);
|
158 |
+
|
159 |
+
|
160 |
+
$templateOrderpiked = '
|
161 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
162 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
163 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
164 |
+
<tr>
|
165 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
166 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
167 |
+
<!-- [ header starts here] -->
|
168 |
+
<tr>
|
169 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{skin url="images/logo_email.gif" _area=\'frontend\'}}" alt="{{var store.getFrontendName()}}" style="margin-bottom:10px;" border="0"/></a></td>
|
170 |
+
</tr>
|
171 |
+
<!-- [ middle starts here] -->
|
172 |
+
|
173 |
+
<tr><td><h4>You order has been picked up.</h4></td></tr>
|
174 |
+
<tr>
|
175 |
+
<td valign="top">
|
176 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Hello, {{htmlescape var=$order.getCustomerName()}}</h1>
|
177 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
178 |
+
Thank you for your order from {{var store.getFrontendName()}}.
|
179 |
+
Once your package ships we will send an email with a link to track your order.
|
180 |
+
You can check the status of your order by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
181 |
+
If you have any questions about your order please contact us at <a href="mailto:{{config path=\'trans_email/ident_support/email\'}}" style="color:#1E7EC8;">{{config path=\'trans_email/ident_support/email\'}}</a> or call us at <span class="nobr">{{config path=\'general/store_information/phone\'}}</span> Monday - Friday, 8am - 5pm PST.
|
182 |
+
</p>
|
183 |
+
<p style="font-size:12px; line-height:16px; margin:0;">Your order confirmation is below. Thank you again for your business.</p>
|
184 |
+
</tr>
|
185 |
+
<tr>
|
186 |
+
<td>
|
187 |
+
<h2 style="font-size:18px; font-weight:normal; margin:0;">Your Order #{{var order.increment_id}} <small>(placed on {{var order.getCreatedAtFormated(\'long\')}})</small></h2>
|
188 |
+
</td>
|
189 |
+
</tr>
|
190 |
+
<tr>
|
191 |
+
<td>
|
192 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
193 |
+
<thead>
|
194 |
+
<tr>
|
195 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Billing Information:</th>
|
196 |
+
<th width="10"></th>
|
197 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Payment Method:</th>
|
198 |
+
</tr>
|
199 |
+
</thead>
|
200 |
+
<tbody>
|
201 |
+
<tr>
|
202 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
203 |
+
{{var order.getBillingAddress().format(\'html\')}}
|
204 |
+
</td>
|
205 |
+
<td> </td>
|
206 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
207 |
+
{{var payment_html}}
|
208 |
+
</td>
|
209 |
+
</tr>
|
210 |
+
</tbody>
|
211 |
+
</table>
|
212 |
+
<br/>
|
213 |
+
{{depend order.getIsNotVirtual()}}
|
214 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
215 |
+
<thead>
|
216 |
+
<tr>
|
217 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Information:</th>
|
218 |
+
<th width="10"></th>
|
219 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Method:</th>
|
220 |
+
</tr>
|
221 |
+
</thead>
|
222 |
+
<tbody>
|
223 |
+
<tr>
|
224 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
225 |
+
{{var order.getShippingAddress().format(\'html\')}}
|
226 |
+
|
227 |
+
</td>
|
228 |
+
<td> </td>
|
229 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
230 |
+
{{var order.getShippingDescription()}}
|
231 |
+
|
232 |
+
</td>
|
233 |
+
</tr>
|
234 |
+
</tbody>
|
235 |
+
</table>
|
236 |
+
<br/>
|
237 |
+
{{/depend}}
|
238 |
+
{{layout handle="sales_email_order_items" order=$order}}
|
239 |
+
<p style="font-size:12px; margin:0 0 10px 0">{{var order.getEmailCustomerNote()}}</p>
|
240 |
+
</td>
|
241 |
+
</tr>
|
242 |
+
<tr>
|
243 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
244 |
+
</tr>
|
245 |
+
</table>
|
246 |
+
</td>
|
247 |
+
</tr>
|
248 |
+
</table>
|
249 |
+
</div>
|
250 |
+
</body>
|
251 |
+
';
|
252 |
+
$templateShipment = Mage::getModel('core/email_template');
|
253 |
+
$templateShipment->setTemplateCode('Order is picked');
|
254 |
+
$templateShipment->setTemplateText($templateOrderpiked);
|
255 |
+
$templateShipment->setTemplateType(2);
|
256 |
+
$templateShipment->setTemplateSubject(' {{var store.getFrontendName()}}: Order is picked # {{var order.increment_id}}');
|
257 |
+
$templateShipment->save();
|
258 |
+
$tem_id = $templateShipment->getId();
|
259 |
+
Mage::getModel('core/config')->saveConfig('mshop/parameters_order_picked/email_template', $tem_id);
|
260 |
+
|
261 |
+
|
262 |
+
|
263 |
+
$templateOrdernodelivered = '
|
264 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
265 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
266 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
267 |
+
<tr>
|
268 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
269 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
270 |
+
<!-- [ header starts here] -->
|
271 |
+
<tr>
|
272 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{skin url="images/logo_email.gif" _area=\'frontend\'}}" alt="{{var store.getFrontendName()}}" style="margin-bottom:10px;" border="0"/></a></td>
|
273 |
+
</tr>
|
274 |
+
<!-- [ middle starts here] -->
|
275 |
+
|
276 |
+
<tr><td><h4>You order can not be delivered. Items out of stock</h4</td></tr>
|
277 |
+
<tr>
|
278 |
+
<td valign="top">
|
279 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Hello, {{htmlescape var=$order.getCustomerName()}}</h1>
|
280 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
281 |
+
Thank you for your order from {{var store.getFrontendName()}}.
|
282 |
+
Once your package ships we will send an email with a link to track your order.
|
283 |
+
You can check the status of your order by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
284 |
+
If you have any questions about your order please contact us at <a href="mailto:{{config path=\'trans_email/ident_support/email\'}}" style="color:#1E7EC8;">{{config path=\'trans_email/ident_support/email\'}}</a> or call us at <span class="nobr">{{config path=\'general/store_information/phone\'}}</span> Monday - Friday, 8am - 5pm PST.
|
285 |
+
</p>
|
286 |
+
<p style="font-size:12px; line-height:16px; margin:0;">Your order confirmation is below. Thank you again for your business.</p>
|
287 |
+
</tr>
|
288 |
+
<tr>
|
289 |
+
<td>
|
290 |
+
<h2 style="font-size:18px; font-weight:normal; margin:0;">Your Order #{{var order.increment_id}} <small>(placed on {{var order.getCreatedAtFormated(\'long\')}})</small></h2>
|
291 |
+
</td>
|
292 |
+
</tr>
|
293 |
+
<tr>
|
294 |
+
<td>
|
295 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
296 |
+
<thead>
|
297 |
+
<tr>
|
298 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Billing Information:</th>
|
299 |
+
<th width="10"></th>
|
300 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Payment Method:</th>
|
301 |
+
</tr>
|
302 |
+
</thead>
|
303 |
+
<tbody>
|
304 |
+
<tr>
|
305 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
306 |
+
{{var order.getBillingAddress().format(\'html\')}}
|
307 |
+
</td>
|
308 |
+
<td> </td>
|
309 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
310 |
+
{{var payment_html}}
|
311 |
+
</td>
|
312 |
+
</tr>
|
313 |
+
</tbody>
|
314 |
+
</table>
|
315 |
+
<br/>
|
316 |
+
{{depend order.getIsNotVirtual()}}
|
317 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
318 |
+
<thead>
|
319 |
+
<tr>
|
320 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Information:</th>
|
321 |
+
<th width="10"></th>
|
322 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Method:</th>
|
323 |
+
</tr>
|
324 |
+
</thead>
|
325 |
+
<tbody>
|
326 |
+
<tr>
|
327 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
328 |
+
{{var order.getShippingAddress().format(\'html\')}}
|
329 |
+
|
330 |
+
</td>
|
331 |
+
<td> </td>
|
332 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
333 |
+
{{var order.getShippingDescription()}}
|
334 |
+
|
335 |
+
</td>
|
336 |
+
</tr>
|
337 |
+
</tbody>
|
338 |
+
</table>
|
339 |
+
<br/>
|
340 |
+
{{/depend}}
|
341 |
+
{{layout handle="sales_email_order_items" order=$order}}
|
342 |
+
<p style="font-size:12px; margin:0 0 10px 0">{{var order.getEmailCustomerNote()}}</p>
|
343 |
+
</td>
|
344 |
+
</tr>
|
345 |
+
<tr>
|
346 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you, <strong>{{var store.getFrontendName()}}</strong></p></center></td>
|
347 |
+
</tr>
|
348 |
+
</table>
|
349 |
+
</td>
|
350 |
+
</tr>
|
351 |
+
</table>
|
352 |
+
</div>
|
353 |
+
</body>
|
354 |
+
';
|
355 |
+
$templateShipment = Mage::getModel('core/email_template');
|
356 |
+
$templateShipment->setTemplateCode('Order can not be delivered');
|
357 |
+
$templateShipment->setTemplateText($templateOrdernodelivered);
|
358 |
+
$templateShipment->setTemplateType(2);
|
359 |
+
$templateShipment->setTemplateSubject(' {{var store.getFrontendName()}}: Order can not be delivered # {{var order.increment_id}}');
|
360 |
+
$templateShipment->save();
|
361 |
+
$tem_id = $templateShipment->getId();
|
362 |
+
Mage::getModel('core/config')->saveConfig('mshop/parameters_not_in_stock/email_template', $tem_id);
|
363 |
+
|
364 |
+
|
365 |
+
|
366 |
+
|
367 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.7-2.0.8.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$templateOrderInvoiceCreate = '
|
8 |
+
<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
9 |
+
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;">
|
10 |
+
<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
|
11 |
+
<tr>
|
12 |
+
<td align="center" valign="top" style="padding:20px 0 20px 0">
|
13 |
+
<!-- [ header starts here] -->
|
14 |
+
<table bgcolor="#FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;">
|
15 |
+
<tr>
|
16 |
+
<td valign="top"><a href="{{store url=""}}"><img src="{{skin url="images/logo_email.gif" _area=\'frontend\'}}" alt="{{var store.getFrontendName()}}" style="margin-bottom:10px;" border="0"/></a></td>
|
17 |
+
</tr>
|
18 |
+
<!-- [ middle starts here] -->
|
19 |
+
<tr>
|
20 |
+
<td valign="top">
|
21 |
+
<h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Hello, {{htmlescape var=$order.getCustomerName()}}</h1>
|
22 |
+
<p style="font-size:12px; line-height:16px; margin:0;">
|
23 |
+
Thank you for your order from {{var store.getFrontendName()}}.
|
24 |
+
You can check the status of your order by <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">logging into your account</a>.
|
25 |
+
If you have any questions about your order please contact us at <a href="mailto:{{config path=\'trans_email/ident_support/email\'}}" style="color:#1E7EC8;">{{config path=\'trans_email/ident_support/email\'}}</a> or call us at <span class="nobr">{{config path=\'general/store_information/phone\'}}</span> Monday - Friday, 8am - 5pm PST.
|
26 |
+
</p>
|
27 |
+
</td>
|
28 |
+
</tr>
|
29 |
+
<tr>
|
30 |
+
<td>
|
31 |
+
<h2 style="font-size:18px; font-weight:normal; margin:0;">Your Invoice #{{var invoice.increment_id}} for Order #{{var order.increment_id}}</h2>
|
32 |
+
<p>Mamut Invoice Id: {{var mamutInvoiceId}}</p>
|
33 |
+
</td>
|
34 |
+
</tr>
|
35 |
+
<tr>
|
36 |
+
<td>
|
37 |
+
<table cellspacing="0" cellpadding="0" border="0" width="650">
|
38 |
+
<thead>
|
39 |
+
<tr>
|
40 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Billing Information:</th>
|
41 |
+
<th width="10"></th>
|
42 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Payment Method:</th>
|
43 |
+
</tr>
|
44 |
+
</thead>
|
45 |
+
<tbody>
|
46 |
+
<tr>
|
47 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
48 |
+
{{var order.billing_address.format(\'html\')}}
|
49 |
+
</td>
|
50 |
+
<td> </td>
|
51 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
52 |
+
{{var payment_html}}
|
53 |
+
</td>
|
54 |
+
</tr>
|
55 |
+
</tbody>
|
56 |
+
</table>
|
57 |
+
<br/>
|
58 |
+
{{depend order.getIsNotVirtual()}}
|
59 |
+
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
60 |
+
<thead>
|
61 |
+
<tr>
|
62 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Information:</th>
|
63 |
+
<th width="10"></th>
|
64 |
+
<th align="left" width="325" bgcolor="#EAEAEA" style="font-size:13px; padding:5px 9px 6px 9px; line-height:1em;">Shipping Method:</th>
|
65 |
+
</tr>
|
66 |
+
</thead>
|
67 |
+
<tbody>
|
68 |
+
<tr>
|
69 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
70 |
+
{{var order.shipping_address.format(\'html\')}}
|
71 |
+
|
72 |
+
</td>
|
73 |
+
<td> </td>
|
74 |
+
<td valign="top" style="font-size:12px; padding:7px 9px 9px 9px; border-left:1px solid #EAEAEA; border-bottom:1px solid #EAEAEA; border-right:1px solid #EAEAEA;">
|
75 |
+
{{var order.shipping_description}}
|
76 |
+
</td>
|
77 |
+
</tr>
|
78 |
+
</tbody>
|
79 |
+
</table>
|
80 |
+
<br/>
|
81 |
+
{{/depend}}
|
82 |
+
{{layout area="frontend" handle="sales_email_order_invoice_items" invoice=$invoice order=$order}}
|
83 |
+
<p style="font-size:12px; margin:0 10px 10px 0;">{{var comment}}</p>
|
84 |
+
</td>
|
85 |
+
</tr>
|
86 |
+
<tr>
|
87 |
+
<td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you again, <strong>{{var store.getFrontendName()}}</strong></strong></p></center></td>
|
88 |
+
</tr>
|
89 |
+
</table>
|
90 |
+
</td>
|
91 |
+
</tr>
|
92 |
+
</table>
|
93 |
+
</div>
|
94 |
+
</body>
|
95 |
+
';
|
96 |
+
$templateShipment = Mage::getModel('core/email_template');
|
97 |
+
$templateShipment->setTemplateCode('New Invoice with Mamut Id');
|
98 |
+
$templateShipment->setTemplateText($templateOrderInvoiceCreate);
|
99 |
+
$templateShipment->setTemplateType(2);
|
100 |
+
$templateShipment->setTemplateSubject('{{var store.getFrontendName()}}: Invoice # {{var invoice.increment_id}} for Order # {{var order.increment_id}}');
|
101 |
+
$templateShipment->save();
|
102 |
+
$tem_id = $templateShipment->getId();
|
103 |
+
Mage::getModel('core/config')->saveConfig('mshop/parameters_invoice/email_template', $tem_id);
|
104 |
+
|
105 |
+
|
106 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.8-2.0.9.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.0.9-2.0.10.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.1.0-2.1.1.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$model = Mage::getModel('eav/entity_setup','core_setup');
|
8 |
+
|
9 |
+
$model->addAttribute('catalog_product', 'mamut_future_stock', array(
|
10 |
+
'type' => 'varchar',
|
11 |
+
'backend' => '',
|
12 |
+
'frontend' => '',
|
13 |
+
'label' => 'Mamut Future Stock',
|
14 |
+
'input' => 'text',
|
15 |
+
'class' => '',
|
16 |
+
'source' => '',
|
17 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
18 |
+
'visible' => false,
|
19 |
+
'required' => false,
|
20 |
+
'user_defined' => true,
|
21 |
+
'default' => '',
|
22 |
+
'searchable' => false,
|
23 |
+
'filterable' => false,
|
24 |
+
'comparable' => false,
|
25 |
+
'visible_on_front' => false,
|
26 |
+
'unique' => false,
|
27 |
+
'apply_to' => '',
|
28 |
+
'is_configurable' => false,
|
29 |
+
'required' => false
|
30 |
+
));
|
31 |
+
|
32 |
+
|
33 |
+
$attribute = $model->getAttribute('catalog_product','mamut_future_stock');
|
34 |
+
$attributeId = $attribute['attribute_id'];
|
35 |
+
$allAttributeSetIds = $model->getAllAttributeSetIds('catalog_product');
|
36 |
+
foreach ($allAttributeSetIds as $attributeSetId) {
|
37 |
+
|
38 |
+
try{
|
39 |
+
$attributeGroup = $model->getAttributeGroup('catalog_product',$attributeSetId,'General');
|
40 |
+
$attributeGroupId = $attributeGroup["attribute_group_id"];
|
41 |
+
//Zend_Debug::dump($attributeGroupId); exit();
|
42 |
+
}catch(Exception $e){
|
43 |
+
$attributeGroupId = $model->getDefaultAttributeGroupId('catalog_product',$attributeSetId);
|
44 |
+
}
|
45 |
+
$model->addAttributeToSet('catalog_product',$attributeSetId,$attributeGroupId,$attributeId, null);
|
46 |
+
|
47 |
+
}
|
48 |
+
|
49 |
+
|
50 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.1.1-2.1.2.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
$installer->run("ALTER TABLE {$this->getTable('catalog_product_entity_tier_price')} ADD tier_type INT NOT NULL AFTER qty;");
|
7 |
+
|
8 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/Mshop/sql/mshop_setup/mysql4-upgrade-2.1.2-2.1.3.php
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
$installer->startSetup();
|
5 |
+
|
6 |
+
if (!$installer->tableExists($installer->getTable('ecomwise_settings_before_order'))){
|
7 |
+
|
8 |
+
$installer->run("
|
9 |
+
CREATE TABLE IF NOT EXISTS {$this->getTable('ecomwise_settings_before_order')} (
|
10 |
+
`order_id` int(11) NOT NULL default '0',
|
11 |
+
`including_tax` int(1) NOT NULL default '0',
|
12 |
+
UNIQUE KEY `key_ecomwise_settings_before_order` (`order_id`,`including_tax`)
|
13 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
14 |
+
");
|
15 |
+
}
|
16 |
+
|
17 |
+
|
18 |
+
if ($installer->tableExists($installer->getTable('experius_settings_before_order')) && $installer->tableExists($installer->getTable('ecomwise_settings_before_order'))) {
|
19 |
+
|
20 |
+
$installer->run("INSERT INTO {$this->getTable('ecomwise_settings_before_order')} (`order_id`, `including_tax`) SELECT `order_id`, `including_tax` FROM {$this->getTable('experius_settings_before_order')};");
|
21 |
+
|
22 |
+
}
|
23 |
+
|
24 |
+
$installer->endSetup();
|
app/design/adminhtml/default/default/template/catalog/product/edit/price/tier_plus.phtml
ADDED
@@ -0,0 +1,182 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
/* @var $this Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Tier */
|
27 |
+
?>
|
28 |
+
<?php $_htmlId = $this->getElement()->getHtmlId() ?>
|
29 |
+
<?php $_htmlClass = $this->getElement()->getClass() ?>
|
30 |
+
<?php $_htmlName = $this->getElement()->getName() ?>
|
31 |
+
<?php $_readonly = $this->getElement()->getReadonly() ?>
|
32 |
+
<?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
|
33 |
+
<?php $_editWebsite = $this->isAllowChangeWebsite(); ?>
|
34 |
+
<?php $_priceValueValidation = $this->getPriceValidation('validate-greater-than-zero'); ?>
|
35 |
+
|
36 |
+
<?php //die("tem");?>
|
37 |
+
<?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
|
38 |
+
<?php $_showWebsite= $this->isMultiWebsites(); ?>
|
39 |
+
<tr>
|
40 |
+
<td class="label"><?php echo $this->getElement()->getLabel() ?></td>
|
41 |
+
<td colspan="10" class="grid tier">
|
42 |
+
<table cellspacing="0" class="data border" id="tiers_table" style="width:520px;">
|
43 |
+
<?php if ($_showWebsite): ?>
|
44 |
+
<col width="135" />
|
45 |
+
<?php endif; ?>
|
46 |
+
<col width="120" />
|
47 |
+
<col width="95" />
|
48 |
+
<col />
|
49 |
+
<col width="1" />
|
50 |
+
<thead>
|
51 |
+
<tr class="headings">
|
52 |
+
<th <?php if (!$_showWebsite): ?>style="display:none"<?php endif; ?>><?php echo Mage::helper('sales')->__('Website') ?></th>
|
53 |
+
<th><?php echo Mage::helper('catalog')->__('Customer Group') ?></th>
|
54 |
+
<th><?php echo Mage::helper('catalog')->__('Qty') ?></th>
|
55 |
+
<th><?php echo Mage::helper('catalog')->__('Type') ?></th>
|
56 |
+
<th><?php echo $this->getPriceColumnHeader(Mage::helper('catalog')->__('Price')) ?></th>
|
57 |
+
<th class="last"><?php echo Mage::helper('catalog')->__('Action') ?></th>
|
58 |
+
</tr>
|
59 |
+
</thead>
|
60 |
+
<tbody id="<?php echo $_htmlId ?>_container"></tbody>
|
61 |
+
<tfoot>
|
62 |
+
<tr>
|
63 |
+
<td <?php if (!$_showWebsite): ?>style="display:none"<?php endif; ?>></td>
|
64 |
+
<td colspan="5" class="a-right"><?php echo $this->getAddButtonHtml() ?></td>
|
65 |
+
</tr>
|
66 |
+
</tfoot>
|
67 |
+
</table>
|
68 |
+
|
69 |
+
<script type="text/javascript">
|
70 |
+
//<![CDATA[
|
71 |
+
var tierPriceRowTemplate = '<tr>'
|
72 |
+
+ '<td<?php if (!$_showWebsite): ?> style="display:none"<?php endif; ?>>'
|
73 |
+
+ '<select class="<?php echo $_htmlClass ?> required-entry" name="<?php echo $_htmlName ?>[{{index}}][website_id]" id="tier_price_row_{{index}}_website">'
|
74 |
+
<?php foreach ($this->getWebsites() as $_websiteId => $_info): ?>
|
75 |
+
+ '<option value="<?php echo $_websiteId ?>"><?php echo $this->jsQuoteEscape($this->htmlEscape($_info['name'])) ?><?php if (!empty($_info['currency'])): ?> [<?php echo $this->htmlEscape($_info['currency']) ?>]<?php endif; ?></option>'
|
76 |
+
<?php endforeach ?>
|
77 |
+
+ '</select></td>'
|
78 |
+
+ '<td><select class="<?php echo $_htmlClass ?> custgroup required-entry" name="<?php echo $_htmlName ?>[{{index}}][cust_group]" id="tier_price_row_{{index}}_cust_group">'
|
79 |
+
<?php foreach ($this->getCustomerGroups() as $_groupId=>$_groupName): ?>
|
80 |
+
+ '<option value="<?php echo $_groupId ?>"><?php echo $this->jsQuoteEscape($this->htmlEscape($_groupName)) ?></option>'
|
81 |
+
<?php endforeach ?>
|
82 |
+
+ '</select></td>'
|
83 |
+
+ '<td class="nobr"><input class="<?php echo $_htmlClass ?> qty required-entry validate-greater-than-zero" type="text" name="<?php echo $_htmlName ?>[{{index}}][price_qty]" value="{{qty}}" id="tier_price_row_{{index}}_qty" />'
|
84 |
+
+ ' <small class="nobr"><?php echo Mage::helper("catalog")->__("and above")?></small></td>'
|
85 |
+
|
86 |
+
+ '<td class="nobr">'
|
87 |
+
+'<select class="<?php echo $_htmlClass ?> tiertype required-entry" name="<?php echo $_htmlName ?>[{{index}}][tier_type]" id="tier_price_row_{{index}}_tier_type" >'
|
88 |
+
+'<option value="0">Fixed</option><option value="1">% Off</option></select></td>'
|
89 |
+
|
90 |
+
+ '<td><input class="<?php echo $_htmlClass ?> required-entry <?php echo $_priceValueValidation ?>" type="text" name="<?php echo $_htmlName ?>[{{index}}][price]" value="{{price}}" id="tier_price_row_{{index}}_price" /></td>'
|
91 |
+
+ '<td class="last"><input type="hidden" name="<?php echo $_htmlName ?>[{{index}}][delete]" class="delete" value="" id="tier_price_row_{{index}}_delete" />'
|
92 |
+
+ '<button title="<?php echo Mage::helper("catalog")->__("Delete Tier") ?>" type="button" class="scalable delete icon-btn delete-product-option" id="tier_price_row_{{index}}_delete_button" onclick="return tierPriceControl.deleteItem(event);">'
|
93 |
+
+ '<span><?php echo Mage::helper("catalog")->__("Delete") ?></span></button></td>'
|
94 |
+
+ '</tr>';
|
95 |
+
|
96 |
+
var tierPriceControl = {
|
97 |
+
template: new Template(tierPriceRowTemplate, new RegExp('(^|.|\\r|\\n)({{\\s*(\\w+)\\s*}})', "")),
|
98 |
+
itemsCount: 0,
|
99 |
+
addItem : function () {
|
100 |
+
<?php if ($_readonly): ?>
|
101 |
+
if (arguments.length < 4) {
|
102 |
+
return;
|
103 |
+
}
|
104 |
+
<?php endif; ?>
|
105 |
+
var data = {
|
106 |
+
website_id: '<?php echo $this->getDefaultWebsite() ?>',
|
107 |
+
group: '<?php echo $this->getDefaultCustomerGroup() ?>',
|
108 |
+
qty: '',
|
109 |
+
price: '',
|
110 |
+
readOnly: false,
|
111 |
+
index: this.itemsCount++
|
112 |
+
};
|
113 |
+
//alert(arguments[5]);
|
114 |
+
if(arguments.length >= 4) {
|
115 |
+
data.website_id = arguments[0];
|
116 |
+
data.group = arguments[1];
|
117 |
+
data.qty = arguments[2];
|
118 |
+
data.price = arguments[3];
|
119 |
+
data.tier_type = arguments[5];
|
120 |
+
|
121 |
+
|
122 |
+
}
|
123 |
+
if (arguments.length == 6) {
|
124 |
+
data.readOnly = arguments[4];
|
125 |
+
}
|
126 |
+
|
127 |
+
Element.insert($('<?php echo $_htmlId ?>_container'), {
|
128 |
+
bottom : this.template.evaluate(data)
|
129 |
+
});
|
130 |
+
|
131 |
+
$('tier_price_row_' + data.index + '_cust_group').value = data.group;
|
132 |
+
$('tier_price_row_' + data.index + '_website').value = data.website_id;
|
133 |
+
$('tier_price_row_'+data.index+'_tier_type').value = data.tier_type;
|
134 |
+
|
135 |
+
<?php if ($this->isShowWebsiteColumn() && !$this->isAllowChangeWebsite()):?>
|
136 |
+
var wss = $('tier_price_row_' + data.index + '_website');
|
137 |
+
var txt = wss.options[wss.selectedIndex].text;
|
138 |
+
|
139 |
+
wss.insert({after:'<span class="website-name">' + txt + '</span>'});
|
140 |
+
wss.hide();
|
141 |
+
<?php endif;?>
|
142 |
+
|
143 |
+
if (data.readOnly == '1') {
|
144 |
+
['website', 'cust_group', 'qty', 'price', 'delete'].each(function(idx){
|
145 |
+
$('tier_price_row_'+data.index+'_'+idx).disabled = true;
|
146 |
+
});
|
147 |
+
$('tier_price_row_'+data.index+'_delete_button').hide();
|
148 |
+
}
|
149 |
+
|
150 |
+
<?php if ($_readonly): ?>
|
151 |
+
$('<?php echo $_htmlId ?>_container').select('input', 'select').each(this.disableElement);
|
152 |
+
$('<?php echo $_htmlId ?>_container').up('table').select('button').each(this.disableElement);
|
153 |
+
<?php else: ?>
|
154 |
+
$('<?php echo $_htmlId ?>_container').select('input', 'select').each(function(el){ Event.observe(el, 'change', el.setHasChanges.bind(el)); });
|
155 |
+
<?php endif; ?>
|
156 |
+
},
|
157 |
+
disableElement: function(el) {
|
158 |
+
el.disabled = true;
|
159 |
+
el.addClassName('disabled');
|
160 |
+
},
|
161 |
+
deleteItem: function(event) {
|
162 |
+
var tr = Event.findElement(event, 'tr');
|
163 |
+
if (tr) {
|
164 |
+
Element.select(tr, '.delete').each(function(elem){elem.value='1'});
|
165 |
+
Element.select(tr, ['input', 'select']).each(function(elem){elem.hide()});
|
166 |
+
Element.hide(tr);
|
167 |
+
Element.addClassName(tr, 'no-display template');
|
168 |
+
}
|
169 |
+
return false;
|
170 |
+
}
|
171 |
+
};
|
172 |
+
<?php foreach ($this->getValues() as $_item): ?>
|
173 |
+
tierPriceControl.addItem('<?php echo $_item['website_id'] ?>', '<?php echo $_item['cust_group'] ?>', '<?php echo $_item['price_qty']*1 ?>', '<?php echo sprintf('%.2f', $_item['price']) ?>', <?php echo (int)!empty($_item['readonly'])?>,'<?php echo $_item['tier_type'] ?>');
|
174 |
+
<?php endforeach; ?>
|
175 |
+
<?php if ($_readonly): ?>
|
176 |
+
$('<?php echo $_htmlId ?>_container').up('table').select('button')
|
177 |
+
.each(tierPriceControl.disableElement);
|
178 |
+
<?php endif; ?>
|
179 |
+
//]]>
|
180 |
+
</script>
|
181 |
+
</td></tr>
|
182 |
+
|
app/design/adminhtml/default/default/template/catalog/product/tab/inventory_plus.phtml
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="entry-edit form-list">
|
2 |
+
<div class="entry-edit-head">
|
3 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Mamut') ?></h4>
|
4 |
+
|
5 |
+
</div>
|
6 |
+
<fieldset>
|
7 |
+
<table>
|
8 |
+
<?php if(Mage::getStoreConfig("mshop/mamut_stock/show_fields") == "1"){?>
|
9 |
+
<tr>
|
10 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Warehouse 1') ?></label></td>
|
11 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store1" name="<?php echo $this->getFieldSuffix() ?>[stock_data][mamut_store1]" value="<?php echo $this->getFieldValue('mamut_store1') ?>" <?php //echo $_readonly;?> />
|
12 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
13 |
+
</tr>
|
14 |
+
<tr>
|
15 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Warehouse 2') ?></label></td>
|
16 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store2" name="<?php echo $this->getFieldSuffix() ?>[stock_data][mamut_store2]" value="<?php echo $this->getFieldValue('mamut_store2') ?>" <?php //echo $_readonly;?> />
|
17 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
18 |
+
</tr>
|
19 |
+
<tr>
|
20 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Warehouse 3') ?></label></td>
|
21 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store1" name="<?php echo $this->getFieldSuffix() ?>[stock_data][mamut_store3]" value="<?php echo $this->getFieldValue('mamut_store3') ?>" <?php //echo $_readonly;?> />
|
22 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
23 |
+
</tr>
|
24 |
+
<tr>
|
25 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Warehouse 4') ?></label></td>
|
26 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store1" name="<?php echo $this->getFieldSuffix() ?>[stock_data][mamut_store4]" value="<?php echo $this->getFieldValue('mamut_store4') ?>" <?php //echo $_readonly;?> />
|
27 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
28 |
+
</tr>
|
29 |
+
<tr>
|
30 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Warehouse 5') ?></label></td>
|
31 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store1" name="<?php echo $this->getFieldSuffix() ?>[stock_data][mamut_store5]" value="<?php echo $this->getFieldValue('mamut_store5') ?>" <?php //echo $_readonly;?> />
|
32 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
33 |
+
</tr>
|
34 |
+
<?php }?>
|
35 |
+
<tr>
|
36 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Next delivery date') ?></label></td>
|
37 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store1" name="<?php echo $this->getFieldSuffix() ?>[stock_data][mamut_nextdeliverydate]" value="<?php echo $this->getFieldValue('mamut_nextdeliverydate') ?>" <?php //echo $_readonly;?> />
|
38 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
39 |
+
</tr>
|
40 |
+
<tr>
|
41 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('From suppliers') ?></label></td>
|
42 |
+
<td class="value"><input type="text" class="input-text" id="inventory_mamut_store1" name="<?php echo $this->getFieldSuffix() ?>[mamut_future_stock]" value="<?php echo $this->getProduct()->getMamutFutureStock()?>" <?php //echo $_readonly;?> />
|
43 |
+
<td class="value scope-label"><?php echo Mage::helper('catalog')->__('[GLOBAL]') ?></td>
|
44 |
+
</tr>
|
45 |
+
|
46 |
+
</table>
|
47 |
+
</fieldset>
|
48 |
+
</div>
|
app/etc/modules/Ecomwise_Mshop.xml
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Ecomwise_Mshop>
|
5 |
+
<active>true</active>
|
6 |
+
<codePool>community</codePool>
|
7 |
+
</Ecomwise_Mshop>
|
8 |
+
</modules>
|
9 |
+
</config>
|
10 |
+
|
package.xml
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>Ecomwise_Mshop</name>
|
4 |
+
<version>2.1.3</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license>OSL-3.0</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>Ecomwise MshopB2C</summary>
|
10 |
+
<description>Ecomwise MshopB2C</description>
|
11 |
+
<notes>2.1.3</notes>
|
12 |
+
<authors><author><name>EcomwiseTeam</name><user>Ecomwise</user><email>info@ecomwise.com</email></author></authors>
|
13 |
+
<date>2013-03-21</date>
|
14 |
+
<time>13:12:30</time>
|
15 |
+
<contents><target name="magecommunity"><dir><dir name="Ecomwise"><dir name="Mshop"><dir name="Block"><dir name="Adminhtml"><dir name="Api"><dir name="Tab"><file name="Rolesedit.php" hash="0f8acf74402c0a62f57c031df6b993cf"/></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><file name="Inventory.php" hash="8e8676f50037234423f150bb383a3882"/></dir><file name="Tabs.php" hash="d401d2bfdcc1b26da8536b3d157c68e9"/></dir><dir name="Price"><file name="Tier.php" hash="c7197ab1b8de7fe889e7031d63b20d7d"/></dir></dir></dir><dir name="Sales"><dir name="Invoice"><file name="View.php" hash="e6aabb38936a8e74506da7ace4cda448"/></dir></dir></dir><dir name="Product"><file name="Price.php" hash="bc7a900a85e19af3632782c4bf06f15f"/></dir><dir name="System"><dir name="Config"><file name="Version.php" hash="4d69bb243bfdbf708fafec7f9f15298b"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="08367e6760f1bb4db6b2c4eee2230266"/><file name="Product.php" hash="d0192aa47c1c3096aa50168b5be12473"/></dir><dir name="Model"><dir name="Api"><dir name="Server"><dir name="Adapter"><file name="Soap.php" hash="776fb22407850b6ee5fc4fb633f8ea35"/></dir><dir name="V2"><dir name="Adapter"><file name="Soap.php" hash="2db778fc8224c3c627f4f041c1477d60"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Api"><file name="V2.php" hash="9c15dc191f7206379697f4f57cf03f97"/></dir><file name="Api.php" hash="88c7d276fd9d84d650feef4e851a6932"/><dir name="Attribute"><dir name="Api"><file name="V2.php" hash="02bc92ce7199f115ddd01961d8d868fe"/></dir><file name="Api.php" hash="22be30d5a4d8684d99b27b074b05e940"/><file name="Tierprice.php" hash="e14e0d2a024d5f0be62d5a21b40e0f7f"/></dir><dir name="Category"><dir name="Api"><file name="V2.php" hash="8671062db01fe6b20830fbd3566881cb"/></dir><file name="Api.php" hash="86854b4ad75e78a5c967856bed196bef"/></dir><dir name="Product"><dir name="Api"><file name="V2.php" hash="0fea93a819c5cd14caff543240720981"/></dir><dir name="Type"><file name="Price.php" hash="ff260726ec9289d954d8be9cc4385ee8"/></dir></dir></dir><dir name="Config"><dir name="Source"><file name="Orderattributes.php" hash="348fa8ffd616343e25a9c3a0e3714087"/></dir></dir><dir name="Customer"><dir name="Api"><file name="V2.php" hash="83bdf89c8ad3d3c80c464e6a7f8db5a8"/></dir></dir><file name="Observer.php" hash="ad0416815e864c7a212df79764cbcde6"/><dir name="Resource"><dir name="Eav"><file name="Tierprice.php" hash="d2064c4504c061877411df1c20361764"/></dir></dir><dir name="Sales"><dir name="Api"><file name="V2.php" hash="7967d7bb18bd3b9dbaf5f2dee77092e6"/></dir></dir><dir name="System"><dir name="Config"><file name="Apply.php" hash="8681be62d6e2d50dc4740bcd7ace6efc"/></dir></dir><dir name="Utility"><dir name="Api"><file name="V2.php" hash="495617b7faa546658328c3fe2c2999a1"/></dir><file name="Api.php" hash="45eb21a1480ee497dbbc25367d6edf62"/></dir></dir><dir name="etc"><file name="api.xml" hash="3727d57a816395847f0779cef7f5b205"/><file name="config.xml" hash="79c98c7f0f2a2354f1bfcfb57a66a53d"/><file name="system.xml" hash="faada22f142bfead1588a7854d0e7a39"/><file name="wsdl.xml" hash="879837a7d8facb178e9c8c94bbb6534c"/></dir><dir name="sql"><dir name="mshop_setup"><file name="mysql4-install-2.0.1.php" hash="f66653bb491d06f9a7199639478115cd"/><file name="mysql4-upgrade-2.0.10-2.1.0.php" hash="1ff9741ac551c063b47a6cdb24632055"/><file name="mysql4-upgrade-2.0.3-2.0.4.php" hash="df2053466dca236890928091b17b1019"/><file name="mysql4-upgrade-2.0.4-2.0.5.php" hash="80d414d61e6f01d8dcad3c0238434863"/><file name="mysql4-upgrade-2.0.5-2.0.6.php" hash="80d414d61e6f01d8dcad3c0238434863"/><file name="mysql4-upgrade-2.0.6-2.0.7.php" hash="acaef76db734d23928d1b08e965521a5"/><file name="mysql4-upgrade-2.0.7-2.0.8.php" hash="fbf37c994dc9c923a4926149ec9cbd3c"/><file name="mysql4-upgrade-2.0.8-2.0.9.php" hash="80d414d61e6f01d8dcad3c0238434863"/><file name="mysql4-upgrade-2.0.9-2.0.10.php" hash="80d414d61e6f01d8dcad3c0238434863"/><file name="mysql4-upgrade-2.1.0-2.1.1.php" hash="0b82b518603c7808652c4dc2095f6645"/><file name="mysql4-upgrade-2.1.1-2.1.2.php" hash="b773968fe0a9420d96aa8495e58dee4d"/><file name="mysql4-upgrade-2.1.2-2.1.3.php" hash="b0ff9de67587ece2a39fd3c8fa6027e0"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ecomwise_Mshop.xml" hash="2656a81e8de9042800ea5645f8638318"/></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="catalog"><dir name="product"><dir name="tab"><file name="inventory_plus.phtml" hash="35d259f1e1ccc26081c4dccd19f4e5ee"/></dir><dir name="edit"><dir name="price"><file name="tier_plus.phtml" hash="b69079e234ac3250ae2e170c129cf1b7"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target></contents>
|
16 |
+
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.0.0</min><max>5.4.8</max></php></required></dependencies>
|
18 |
+
</package>
|